java学生成绩标准管理系统专业课程设计.doc
《java学生成绩标准管理系统专业课程设计.doc》由会员分享,可在线阅读,更多相关《java学生成绩标准管理系统专业课程设计.doc(40页珍藏版)》请在咨信网上搜索。
目 录 1设计目标及内容要求 1 2 系统总体设计 1 3 系统具体设计 2 4 运行结果及分析 17 致谢 21 参考文件 22 简单学生成绩管理系统设计和实现 1设计目标及内容要求 1、 设计目标: 巩固和加深学生对高级语言程序设计课程基础知识了解和掌握,掌握java语言编程和程序调试基础技能,利用java语言进行基础软件设计,提升利用java语言处理实际问题能力。 2、 内容要求 实现学生成绩管理(增、删、改、查询、持久化、成绩排序、成绩统计等功效),在文件中增加、删除、学生信息,依据学号查询、修改学生信息,统计功效求每个人总分并按从高到低排序,经过这些操作对文件中信息保留。 2 系统总体设计 成功登陆系统以后,出现成绩管理界面,系统初始化,可对学生成绩进行增加、删除、查询、修改、统计,进入对应界面进行成绩管理,退出系统自动保留此次操作内容,保留信息。 简易步骤图: 登陆 成绩管理界面 增加 删除 查询 修改 统计 退出 3 系统具体设计 ① 创建Student类,设置变量及对应方法 Student.java代码: package keshe; import java.io.Serializable; public class Student implements Serializable{ private String name; private int num; private int yuwen; private int shuxue; private int java; private int sum=0; public Student(){ } public Student(String name, int num, int yuwen, int shuxue, int java) { super(); this.name = name; this.num = num; this.yuwen = yuwen; this.shuxue = shuxue; this.java = java; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public int getYuwen() { return yuwen; } public void setYuwen(int yuwen) { this.yuwen = yuwen; } public int getShuxue() { return shuxue; } public void setShuxue(int shuxue) { this.shuxue = shuxue; } public int getJava() { return java; } public void setJava(int java) { this.java = java; } public int getSum() { return sum; } public void setSum(int sum) { this.sum = sum; } public String toString() { return "Student [name=" + name + ", num=" + num + ", yuwen=" + yuwen + ", shuxue=" + shuxue + ", java=" + java + ", sum=" + sum + "]"; } } ② Student管理类StuC,创建对应方法,实现对Student对象操作(增、删、改、查询、持久化、成绩排序、成绩统计等功效)供其对象调用。 StuC.java代码 package keshe; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; public class StuC { ArrayList <Student> al=new ArrayList<Student>(); File file = new File("e:/mydata.dat"); //添加 public void adds(Student s){ al.add(s); } //删除 public void del(int n){ for(int i=0;i<al.size();i++){ if(al.get(i).getNum()==n) al.remove(i); } } //求总分 public void sum(){ for(int i=0;i<al.size();i++){ al.get(i).setSum(al.get(i).getJava()+al.get(i).getShuxue()+al.get(i).getYuwen()); } } //排序 public void sort() { for (int i = 0; i < al.size(); i++) { for (int j = 0; j < al.size()-1-i; j++) { if (al.get(j).getSum() < al.get(j+1).getSum()) { Object o=al.get(j); al.set(j, al.get(j+1)); al.set(j+1, (Student) o); } } } } public void paint(){ for(int i=0;i<al.size();i++){ System.out.println(al.get(i)); } } public String toString() { return "StuC [al=" + al + "]"; } //输出流 public void stor() { ObjectOutputStream out = null; try { out = new ObjectOutputStream(new FileOutputStream(file)); out.writeObject(al); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } //输入流 public void read() { ObjectInputStream in = null; try { in = new ObjectInputStream(new FileInputStream(file)); try { al = (ArrayList<Student>)in.readObject(); } catch (ClassNotFoundException e) { al=null; } in.close(); } catch (FileNotFoundException e) { File file = new File("e:/mydata.dat"); } catch (IOException e) { e.printStackTrace(); } } //查找 public Student find(int n) { for(int i=0;i<al.size();i++){ if(al.get(i).getNum()==n){ return al.get(i); } } return null; } } ③ 登陆界面及成绩管理全部界面,同过创建StuC对象,调用其方法实现成绩管理 代码: package keshe; import java.awt.*; import java.awt.event.*; import java.io.FileNotFoundException; import java.io.IOException; import javax.swing.*; public class Login extends JFrame { private TextField f1; private TextField f2; private JButton b1; private JButton b2; private JButton b3; StuC scs=new StuC(); //登陆界面 public Login(){ Container cp=getContentPane();//容器 cp.setLayout(new GridLayout(3,1));//三行一列布局 Label l1=new Label("用户名"); Label l2=new Label("密 码"); Panel p1=new Panel(); Panel p2=new Panel(); Panel p3=new Panel(); f1=new TextField(10); f2=new TextField(10); f2.setEchoChar('*');//回显字符为* b1=new JButton("登录"); b2=new JButton("重置"); b3=new JButton("退出"); p1.add(l1);//第一行添加label 1 p1.add(f1); p2.add(l2); p2.add(f2); p3.add(b1); p3.add(b2); p3.add(b3); cp.add(p1); cp.add(p2); cp.add(p3); b1.addActionListener(new Enter()); b2.addActionListener(new ReWrite()); b3.addActionListener(new Close()); } class Enter implements ActionListener{ public void actionPerformed(ActionEvent e) { if((f1.getText()).equals("yazhou")&&(f2.getText()).equals("123456")) { scs.read();//初始化,从文件读入信息 XueSheng frame1 = new XueSheng(); frame1.setBounds(200, 200, 300, 300); frame1.setVisible(true); } else JOptionPane.showMessageDialog(null, "用户名或密码错误,请重新登录!"); } } class ReWrite implements ActionListener{ public void actionPerformed(ActionEvent e) { f1.setText(""); f2.setText(""); f1.requestFocus(); } } class Close implements ActionListener{ public void actionPerformed(ActionEvent e) { JButton bt=(JButton)e.getSource(); if(bt==b3){ System.exit(0); } } } //主函数 程序开始 public static void main(String[] args) { Login log=new Login(); log.setTitle("系统登录"); log.setBounds(200, 200, 300, 300); log.setBackground(Color.blue); log.setVisible(true); } //信息管理界面内部类 进行初始化和保留 class XueSheng extends JFrame implements ActionListener { private JButton cx, zj, tc, sc,xg,tj; public XueSheng() { Container c = this.getContentPane(); c.setLayout(new GridLayout(3, 1)); c.setFont(new Font("true",Font.TRUETYPE_FONT,13)); JPanel panel2 = new JPanel(); JPanel panel1 = new JPanel(); JLabel label1 = new JLabel("欢迎进入成绩管理",SwingConstants.CENTER); label1.setFont(new Font("true",Font.TRUETYPE_FONT,13)); label1.setForeground(Color.blue); c.add(label1); //添加按钮 cx = new JButton("查询"); panel2.add(cx); zj = new JButton("增加"); panel2.add(zj); sc = new JButton("删除"); panel2.add(sc); tc = new JButton("退出"); panel2.add(tc); xg = new JButton("修改"); panel1.add(xg); tj = new JButton("统计"); panel1.add(tj); c.add(panel2); c.add(panel1); cx.addActionListener(this); zj.addActionListener(this); sc.addActionListener(this); xg.addActionListener(this); tc.addActionListener(this); tj.addActionListener(this); this.setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == cx) { Find f = new Find(); } if(e.getSource()==zj){ AddFI f = new AddFI(); } if(e.getSource()==sc){ Delet d = new Delet(); } if(e.getSource()==xg){ XiuGai x=new XiuGai(); } if(e.getSource()==tc){ shutDown(); } if(e.getSource()==tj){ Tongji t=new Tongji(); } } private void shutDown() { scs.stor(); JOptionPane.showMessageDialog(null, "信息已保留"); this.dispose(); } } //增加信息界面内部类,捕捉文本框中信息创建Student对象,添加到Arraylist中,假如已存在该学号//给出提醒信息,并重新添加。 class AddFI extends JFrame implements ActionListener { private JTextField STNOText, SNAMEText, MAText, CHIText, JAVAText; private JButton b1, b2, b3; private String STNO, SNAME,MAT, CHI, JAVA; public AddFI() { super("添加学生信息"); Container c2 = this.getContentPane(); c2.setLayout(new GridLayout(3, 1)); JPanel center = new JPanel(new GridLayout(5, 2)); JPanel low = new JPanel(new FlowLayout()); JLabel label1 = new JLabel("添加学生信息", SwingConstants.CENTER); label1.setFont(new Font("TRUE", Font.TRUETYPE_FONT, 20)); c2.add(label1); STNOText = new JTextField(30);//30列文本框 SNAMEText = new JTextField(30); CHIText = new JTextField(30); MAText = new JTextField(30); JAVAText = new JTextField(30); center.add(new JLabel("学号", SwingConstants.CENTER));//添加标签学号写在标签中间 center.add(STNOText);//添加文本框 center.add(new JLabel("姓名", SwingConstants.CENTER)); center.add(SNAMEText); center.add(new JLabel("语文", SwingConstants.CENTER)); center.add(CHIText); center.add(new JLabel("数学", SwingConstants.CENTER)); center.add(MAText); center.add(new JLabel("java", SwingConstants.CENTER)); center.add(JAVAText); c2.add(center); b1 = new JButton("添加"); b2 = new JButton("清除"); b3 = new JButton("退出"); low.add(b1); low.add(b2); low.add(b3); c2.add(low); // 添加监听 b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); this.setBounds(200, 200, 600, 400); this.setVisible(true); this.setTitle("添加学生信息"); } public void actionPerformed(ActionEvent e) { if (e.getSource() == b1) { try { addFI(); } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } } if (e.getSource() == b2) { clearForm(); } if (e.getSource() == b3) { this.dispose(); } } private void addFI() throws FileNotFoundException, IOException { STNO = STNOText.getText(); SNAME = SNAMEText.getText(); CHI = CHIText.getText(); MAT = MAText.getText(); JAVA = JAVAText.getText(); if (STNO.length() == 0 || SNAME.length() == 0 || MAT.length() == 0 || JAVA.length() == 0 || CHI.length() == 0) JOptionPane.showMessageDialog(this, "请添加完全信息"); else { Student a=new Student(SNAME,Integer.parseInt(STNO), Integer.parseInt(CHI),Integer.parseInt(MAT),Integer.parseInt(JAVA)); int b=0; for(int i=0;i<scs.al.size();i++){ if(scs.al.get(i).getNum()==Integer.parseInt(STNO)){ b=1; } } if(b==0){ scs.adds(a); JOptionPane.showMessageDialog(this, "添加成功"); } else{ JOptionPane.showMessageDialog(this, "已存在"); } } } private void clearForm() { STNOText.setText(""); SNAMEText.setText(""); MAText.setText(""); CHIText.setText(""); JAVAText.setText(""); } } //查询信息界面内部类,依据输入学号,在arraylist中查找对应学号学生信息,分别输出 class Find extends JFrame implements ActionListener { private JTextField STNOText, SNAMEText, MAText, CHIText, JAVAText; private String STNO; private JButton b1, b2; public Find() { Container c1 = this.getContentPane(); c1.setLayout(new GridLayout(4, 1)); JLabel label1 = new JLabel("查询学生信息", SwingConstants.CENTER); JLabel label0 = new JLabel("请输入你学号",SwingConstants.CENTER); JPanel pp = new JPanel(new GridLayout(2, 1)); pp.add(label1); pp.add(label0); c1.add(pp); JPanel p1 = new JPanel(); STNOText = new JTextField(10); p1.add(STNOText); c1.add(p1); JPanel p2 = new JPanel(); b1 = new JButton("查询"); b2 = new JButton("退出"); b1.addActionListener(this); b2.addActionListener(this); p2.add(b1); p2.add(b2); c1.add(p2); JPanel center = new JPanel(new GridLayout(4, 2)); SNAMEText = new JTextField(30); CHIText = new JTextField(30); MAText = new JTextField(30); JAVAText = new JTextField(30); center.add(new JLabel("姓名", SwingConstants.CENTER)); center.add(SNAMEText); center.add(new JLabel("语文", SwingConstants.CENTER)); center.add(CHIText); center.add(new JLabel("数学", SwingConstants.CENTER)); center.add(MAText); center.add(new JLabel("java", SwingConstants.CENTER)); center.add(JAVAText); c1.add(center); this.setVisible(true); this.setBounds(200, 200, 400, 300); } public void actionPerformed(ActionEvent e){ if (e.getSource() == b1) { STNO = STNOText.getText(); int k=0; for(int i=0;i<scs.al.size();i++) { if(Integer.parseInt(STNO)==scs.al.get(i).getNum()) { SNAMEText.setText(scs.al.get(i).getName()); MAText.setText(String.valueOf(scs.al.get(i).getShuxue())); CHIText.setText(String.valueOf(scs.al.get(i).getYuwen())); JAVAText.setText(String.valueOf(scs.al.get(i).getJava())); k=1; } } if(k==0){ JOptionPane.showMessageDialog(this, "查无此人"); } } if (e.getSource() == b2) { this.dispose(); } } } //删除信息界面,经过输入学号进行查找并在arraylist中移除 class Delet extends JFrame implements ActionListener{ private JButton yes; private JButton cancle; private JTextField text1; private String STNO; public Delet(){ Container c3 = this.getContentPane(); c3.setLayout(new GridLayout(3, 1)); c3.setFont(new Font("true",Font.TRUETYPE_FONT,13)); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JLabel label1 = new JLabel("删除学生信息",SwingConstants.CENTER); label1.setFont(new Font("true",Font.TRUETYPE_FONT,13)); label1.setForeground(Color.blue); c3.add(label1); JLabel label2 = new JLabel("请输入学号"); text1 = new JTextField(10); p1.add(label2); p1.add(text1); c3.add(p1); yes = new JButton("确定"); cancle = new JButton("退出"); p2.add(yes); p2.add(cancle); c3.add(p2); yes.addActionListener(this); cancle.addActionListener(this); this.setTitle("删除学生信息"); this.setBounds(200,200,400,300); this.setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getSource()==yes){ delt(); } if(e.getSource()==cancle){ this.dispose(); } } private void delt(){ STNO = text1.getText(); scs.del(Integer.parseInt(STNO)); JOptionPane.showMessageDialog(this, "删除成功"); } } //统计界面,对arraylist中全部对象进行求总分,并按总分从达成小排序 class Tongji extends JFrame implements ActionListener{ private JButton b1,b2; JTextArea t; public Tongji(){ Container c1 = this.getContentPane(); c1.setLayout(new GridLayout(3, 1)); JPanel p1 =new JPanel(); JLabel label1 = new JLabel("统计信息", SwingConstants.CENTER); p1.add(label1); c1.add(p1); t=new JTextArea(); JScrollPane scroll=new JScrollPane(t); c1.add(scroll); JPanel p3=new JPanel(); b1 = new JButton("统计"); b2 = new JButton("退出"); p3.add(b1); p3.add(b2); c1.add(p3); this.setBounds(200,200,400,300); this.setVisible(t- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 学生 成绩 标准 管理 系统 专业课程 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文