1、java学生成绩管理系统课程设计简单学生成绩管理系统的设计与实现1设计目的及内容要求1、设计目的:巩固和加深学生对高级语言程序设计课程的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,提高运用java语言解决实际问题的能力.2、内容要求实现学生成绩的管理(增、删、改、查询、持久化、成绩排序、成绩统计等功能),在文件中增加、删除、学生信息,根据学号查询、修改学生信息,统计功能求每个人的总分并按从高到低排序,通过这些操作对文件中的信息保存。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(
3、) 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; publi
4、c 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 = jav
5、a; 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对象的操作(增、删、改、查询、持久化、成绩排序、成绩统计等功能)供其对象调
6、用。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;imp
7、ort java.util.ArrayList;public class StuC ArrayList Student al=new ArrayListStudent(); File file = new File(”e:/mydata。dat”); /添加 public void adds(Student s) al。add(s); /删除 public void del(int n) for(int i=0;ial。size();i+) if(al。get(i)。getNum()=n) al。remove(i); /求总分 public void sum() for(int i=0;ial
8、.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 )in。readObject(); catch (ClassNotFoundException e) al=null; in。close(); catch (FileNotFoundException e) File file = new File(”e:/mydata。dat”); catch (IOException e) e
9、.printStackTrace(); /查找 public Student find(int n) for(int i=0;ial。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;impor
10、t 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(”用户名); Lab
11、el 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
12、(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”
13、) 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。r
14、equestFocus(); 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.setBackgroun
15、d(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 pane
16、l2 = 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
17、 = 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。
18、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
19、.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 J
20、TextField 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
21、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 = n
22、ew 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(”数学”, SwingConstan
23、ts。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.addActionListene
24、r(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();
25、 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(SNAM
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1