收藏 分销(赏)

java学生成绩管理系统课程设计报告.doc

上传人:二*** 文档编号:4514930 上传时间:2024-09-26 格式:DOC 页数:29 大小:224KB
下载 相关 举报
java学生成绩管理系统课程设计报告.doc_第1页
第1页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、. .目 录1设计目的及容要求12 系统总体设计13 系统详细设计24 运行结果及分析17致谢21参考文献22. .word.zl. .简单学生成绩管理系统的设计与实现1设计目的及容要求1、 设计目的:稳固和加深学生对高级语言程序设计课程的根本知识的理解和掌握,掌握java语言编程和程序调试的根本技能,利用java语言进展根本的软件设计,提高运用java语言解决实际问题的能力。2、 容要求实现学生成绩的管理增、删、改、查询、持久化、成绩排序、成绩统计等功能,在文件中增加、删除、学生信息,根据学号查询、修改学生信息,统计功能求每个人的总分并按从高到低排序,通过这些操作对文件中的信息保存。2 系统

2、总体设计成功登陆系统以后,出现成绩管理界面,系统初始化,可对学生成绩进展增加、删除、查询、修改、统计,进入相应界面进展成绩管理,退出系统自动保存本次操作容,保存信息。简易流程图: 登陆成绩管理界面增加删除查询修改统计退出3 系统详细设计创立Student类,设置变量及对应方法Student.java代码:package keshe;import java.io.Serializable;publicclassStudentimplements Serializableprivate String name;privateintnum;privateintyuwen;privateintshux

3、ue;privateintjava;privateintsum=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() returnname;publicvoid setName(String name) this.name = name;

4、publicint getNum() returnnum;publicvoid setNum(int num) this.num = num;publicint getYuwen() returnyuwen;publicvoid setYuwen(int yuwen) this.yuwen = yuwen;publicint getShuxue() returnshuxue;publicvoid setShuxue(int shuxue) this.shuxue = shuxue;publicint getJava() returnjava;publicvoid setJava(int jav

5、a) this.java = java;publicint getSum() returnsum;publicvoid setSum(int sum) this.sum = sum;public String toString() returnStudent 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;impor

7、t java.util.ArrayList;public class StuC ArrayList al=new ArrayList();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.size();i+)al.get(i).setSum(al.

8、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;ial.

9、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 (IOExcep

10、tion e) e.printStackTrace();/输入流public void read()ObjectInputStream in = null;try in = new ObjectInputStream(new FileInputStream(file);try al = (ArrayList)in.readObject(); catch (ClassNotFoundException e) al=null;in.close(); catch (FileNotFoundException e) File file = new File(e:/mydata.dat); catch

11、(IOException e) e.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.IOExcep

12、tion;import javax.swing.*;public class Login extends JFrame private TextField f1;private TextField f2;private utton b1;private utton b2;private utton b3;StuC scs=new StuC();/登陆界面public Login()Container cp=getContentPane();/容器cp.setLayout(new GridLayout(3,1);/三行一列布局Label l1=new Label(用户名);Label l2=ne

13、w 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 utton(登录);b2=new utton(重置);b3=new utton(退出);p1.add(l1);/第一行添加label 1p1.add(f1);p2.add(l2);p2.add(f2);p3.add(b1);p3.add(b2);p3.add(b3);cp.add(p1);cp.ad

14、d(p2);cp.add(p3);b1.addActionListener(new Enter();b2.addActionListener(new ReWrite();b3.addActionListener(new Close();class Enter implements ActionListenerpublic void actionPerformed(ActionEvent e) if(f1.getText().equals(yazhou)&(f2.getText().equals(123456) scs.read();/初始化,从文件读入信息 XueSheng frame1 =

15、new XueSheng(); frame1.setBounds(200, 200, 300, 300); frame1.setVisible(true); else JOptionPane.showMessageDialog(null, 用户名或密码错误,请重新登录!);class ReWrite implements ActionListenerpublic void actionPerformed(ActionEvent e)f1.setText();f2.setText();f1.requestFocus();class Close implements ActionListenerp

16、ublic void actionPerformed(ActionEvent e)utton bt=(utton)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

17、extends JFrame implements ActionListener private utton 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(欢迎进入成

18、绩管理,SwingConstants.CENTER);label1.setFont(new Font(true,Font.TRUETYPE_FONT,13);label1.setForeground(Color.blue);c.add(label1);/添加按钮cx = new utton(查询);panel2.add(cx);zj = new utton(增加);panel2.add(zj);sc = new utton(删除);panel2.add(sc);tc = new utton(退出);panel2.add(tc);xg = new utton(修改);panel1.add(xg)

19、;tj = new utton(统计);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.getS

20、ource() = 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.showMessageD

21、ialog(null, 信息已保存);this.dispose();/增加信息界面部类,捕获文本框息创立Student对象,添加到Arraylist中,如果已存在该学号/给出提示信息,并重新添加。class AddFI extends JFrame implements ActionListener private JTextField STNOText, SNAMEText, MAText, CHIText, JAVAText;private utton b1, b2, b3;private String STNO, SNAME,MAT, CHI, JAVA;public AddFI() s

22、uper(添加学生信息);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);

23、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(XX, SwingConstants.CENTER);center.

24、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 utton(添加);b2 = new utton(去除);b3 = new utton(退出);low.

25、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 (Fil

26、eNotFoundException 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.getTe

27、xt();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),I

28、nteger.parseInt(JAVA);int b=0;for(int i=0;iscs.al.size();i+)if(scs.al.get(i).getNum()=Integer.parseInt(STNO)b=1;if(b=0)scs.adds(a);JOptionPane.showMessageDialog(this, 添加成功);elseJOptionPane.showMessageDialog(this, 已存在);private void clearForm() STNOText.setText();SNAMEText.setText();MAText.setText();C

29、HIText.setText();JAVAText.setText();/查询信息界面部类,根据输入的学号,在arraylist中查找对应学号的学生信息,分别输出class Find extends JFrame implements ActionListener private JTextField STNOText, SNAMEText, MAText, CHIText, JAVAText;private String STNO;private utton b1, b2;public Find() Container c1 = this.getContentPane();c1.setLay

30、out(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

31、.add(p1);JPanel p2 = new JPanel();b1 = new utton(查询);b2 = new utton(退出);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);JAVAT

32、ext = new JTextField(30);center.add(new JLabel(XX, 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(JAVAT

33、ext);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;iscs.al.size();i+)if(Integer.parseInt(STNO)=scs.al.get(i).getNum()SNAMEText.setText(scs.al.get(i).getName();MAT

34、ext.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 Dele

35、t extends JFrame implements ActionListenerprivate utton yes;private utton 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

36、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 utton(确定);cancle = new

37、utton(退出);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

38、 void delt()STNO = text1.getText();scs.del(Integer.parseInt(STNO);JOptionPane.showMessageDialog(this, 删除成功);/统计界面,对arraylist中所有对象进展求总分,并按总分从到达小排序class Tongji extends JFrame implements ActionListenerprivate utton 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();JScroll

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服