收藏 分享(赏)

java课设简单成绩系统.doc

上传人:dreamzhangning 文档编号:2605065 上传时间:2018-09-23 格式:DOC 页数:35 大小:978.66KB
下载 相关 举报
java课设简单成绩系统.doc_第1页
第1页 / 共35页
java课设简单成绩系统.doc_第2页
第2页 / 共35页
java课设简单成绩系统.doc_第3页
第3页 / 共35页
java课设简单成绩系统.doc_第4页
第4页 / 共35页
java课设简单成绩系统.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、Java 程序设计课程设计报告题 目: 简单成绩管理系统 学 院: 计算机科学与工程学院 专 业: 软件工程 学生姓名: 张栩诚 学 号: 1200350128 指导教师: 汪华登 年 月 日目 录1. 前言 .12. 需求分析 .13. 概要设计 .14. 详细设计 .15. 测试 .16. 总结 .1参考文献 2附录 21. 前言 1、设计目的:巩固和加深学生对高级语言程序设计课程的基本知识的理解和掌握,掌握java 语言编程和程序调试的基本技能,利用 java 语言进行基本的软件设计,提高运用 java 语言解决实际问题的能力。主要还是考察学生动身能力和动手查找正确信息的能力,当然还包括

2、很多如,布局能力,还有考验学生的毅力。2、内容要求实现学生成绩的管理(增、删、改、查询、持久化、成绩排序、成绩统计帮助管理等功能) ,在文件中增加、删除、学生信息,根据学号查询、修改学生信息,统计功能求每个人的总分并按从高到低排序,通过这些操作对文件中的信息保存,还有实现界面多样化,不单调,从而使人眼前一亮的感觉。2. 需求分析弄成绩管理系统最重要之一的是把界面跟解决问题联系起来,而解决问题最主要的方法是运通过多个函数去调用从而的解决数据问题,而我认为最重要的问题是要如何保存信息,如何转换页面,如何的设置中间变量去存储数据,确保其不丢失,在我弄课设课程中,常常是因为数据丢失,从而无法进行查询,

3、删除,统计等功能。程序主要的利用集合类来进行,集合类是可以容纳多个对象的类,集(set)是最简单的一种集合,它的对象不按特定方式排序,只是简单的把对象加入集合中,就像往口袋里放东西。对集中成员的访问和操作是通过集中对象的引用进行的,所以集中不能有重复对象。本程序也是建立在集合类进行编写的,简单易懂。为了使更多人更好的使用这个软件,软件界面上有各个提示的信息,从而会更加简单,我觉得别人一般用来存储成绩,进行排序成绩,当然还会进行完善成绩,我认为我利用它进行查询,排序和存储成绩。3. 概要设计 成绩管理系统一共有 10 个 java 文件,其中每一个 java 文件都实现不同的功能,比如 AddF

4、I 文件实现添加的功能,Delet 文件实现删除功能,Login 是主程序,启动整个系统,当然每一个文件除了包含它的功能之外吗,还包括它们的界面设计等 除了 Student 文件是定义一个学生类和 StuC 文件是实现学生成绩查询。程序主要用集合类,所以集合类贯彻整个程序,所有的基本操作都是建立在集合类上进行。成功登陆系统以后,出现成绩管理界面,系统初始化,可对学生成绩进行增加、删除、查询、修改、统计,进入相应界面进行成绩管理,退出系统自动保存本次操作内容,保存信息。简易流程图: 登陆成绩管理界面增加 删除 查询 修改 统计 退出4. 详细设计4.1主要类三个有:A:login 类主程序,实现

5、程序的启动,实现成绩系统的登陆界面。B. StuC 类,实现查询,删除,统计等功能函数,还有输入,输出流等功能C.Landingpage 类:实现各个功能的界面。4.2 主要的方法如下:A: Student 类:构造函数,给各个变量赋值(初始化)B:StuC 文件:重要集合类 al 贯彻整个类的方法,其下标与数组的一样; delet 函数实现删除的功能; add 方法是把学生类容纳进集合类;sum 方法是对所有科目的成绩进行统计;sort 方法是实现根据学生的总成绩进行排序;paint 方法是打印数据,从而显示出来;stor 方法是将字符串以 UTF 格式写入输出流和打印出异常,在控制台上re

6、ad 方法是字符串以 UTF 格式写入输入流和打印出异常,在控制台上find 方法是实现查询的功能。 C:FInd 文件;主要是构造出查询的页面,还有实现对按钮的监听D:landingpage 文件:实现信息管理界面内部类 进行初始化和保存和实现对按钮进行监听。E:login 文件:通过构造函数实现登陆界面;其中 enter 类实现密码和用户名设置,从文件读入信息Rewrite 类清空文本的功能;Close 实现退出登录页面的功能。F:modify 文件主要是用过构造函数来实现相对应的界面,还有实现对按钮的监听功能,读取存储的数据进行修改G:Tongji 文件实现统计界面,对 arraylis

7、t 中所有对象进行求总分,并按总分从达到小排序,读取已保存的数据进行统计,打印等。H: Delet 文件是实现删除信息界面,通过输入的学号进行查找并在arraylist 中移除I: AddFI 文件增加信息界面内部类,捕获文本框中信息创建 Student 对象,添加到 Arraylist 中,如果已存在该学号,给出提示信息,并重新添加private void addFI() 实现添加和保存的功能。5. 测试6. 总结通过这次课设,使我受益匪浅,更使我真真正正的认识自己所需要的,这次课设做得功能不怎么完整,但是基本功能可以实现,这次课设做得比较简单但花费的时间较多,因为以前只是学到皮毛的知识,还

8、有知识都还没有具备,比如集合类的知识,以前接触的比较少。以前不怎么了解输入流和输出流的含义,包括界面的一些基本知识布局,还有实现按钮监听等知识,因为以前动手的机会太少了。由于知识基础差,所以解决方法是图书馆借书研究,上网查找资料,这令我感触最深的是网上的东西太多,太杂,无法筛选出一些正确有用的东西和信息,所以还是书上的东西才是最实在的。通过这次课设,我明白了不实践是无法验证真理的,空想是无法成功的,只有不断的实践,不断查找知识,不懂就问身边的同学。很感谢这次课设老师的帮助,还有感谢同学的帮助,帮我解决很多很多的问题。最重要的是通过这次课设是我明白,要想明白理论必须去实践,激起了我对 java

9、的兴趣。参考文献1 美Rogers Cadenhead. Java 编程入门经典.梅兴文译.第4版. 北京:人民邮电出版社,20072 美Bruce Eckel. Thinking In Java.英文第4版.北京:机械工业出版社,20073 陈轶.姚晓昆编著.Java 程序设计实验指导.北京:清华大学出版社,20064 杨昭编著.二级 Java 语言程序设计教程. 北京:中国水利水电出版社,20065 赵文靖编著.Java 程序设计基础与上机指导. 北京:清华大学出版社,20066 赵毅主编.跨平台程序设计语言 Java.西安:西安电子科技大学出版社,20067 王路群.Java 高级程序设

10、计. 北京:中国水利水电出版社,20068 雍俊海编著.Java 程序设计习题集. 北京:清华大学出版社,20069 朱福喜编著.Java 语言习题与解析. 北京:清华大学出版社,200610 吴其庆编著.Java 程序设计实例教程.北京:冶金工业出版社,200611 柳西玲 .许斌编著.Java 语言应用开发基础.北京:清华大学出版社,200612 施霞萍等编著.Java 程序设计教程 第2版.北京:机械工业出版社,200613 美 Herbert Schidt 著.Java 参考大全.鄢爱兰. 鹿江春译.北京:清华大学出版社,2006附录Student.javapackage 课设;imp

11、ort java.io.Serializable;public class Student implements Serializable/ 对象的寿命通常随着生成该对象的程序的终止而终止。有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复。serialization 允许你将实现了 Serializable 接口的对象转换为字节序列,这些字节序列可以被完全存储以备以后重新生成原来的对象。 private String name;/private String name;private int num;private int yuwen;private int shuxue;priva

12、te 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

13、) 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 j

14、ava;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+ “;login.javapackage 课设;

15、import java.awt.*;import java.awt.event.*;import java.io.FileNotFoundException;import java.io.IOException;import javax.swing.*;import javax.swing.event.AncestorListener;public class Login extends JFrame implements ActionListenerpublic class XiuGai private TextField f1;private TextField f2;private JB

16、utton b1;private JButton b2;private JButton b3;private JButton b4;private JButton b5;private JButton b6;private JButton b7;StuC scs=new StuC();/登陆界面public Login()/构造函数Container cp=getContentPane();/容器cp.setLayout(new GridLayout(7,1);/三行一列布局Label l1=new Label(“用户名“);Label l2=new Label(“密 码“);Panel p1

17、=new Panel();Panel p2=new Panel();Panel p3=new Panel();Panel p4=new Panel();Panel p5=new Panel();Panel p6=new Panel();Panel p7=new Panel();f1=new TextField(20);f2=new TextField(20);f2.setEchoChar(*);/回显字符为*b1=new JButton(“登录 “);b2=new JButton(“重置 “);b3=new JButton(“退出 “);b4 = new JButton(“软件帮助 “);b5

18、=new JButton(“返回学校主页 “);b6=new JButton(“简介 “);b7=new JButton(“忘记密码? “);p1.add(l1);/第一行添加 label 1p1.add(f1);p2.add(l2);p2.add(f2);p3.add(b1);p3.add(b2);p3.add(b3);p4.add(b4);p5.add(b5);p6.add(b6);p7.add(b7);cp.add(p1);cp.add(p2);cp.add(p3);cp.add(p4);cp.add(p5);cp.add(p6);cp.add(p7);b1.addActionListe

19、ner(new Enter();/给吧按钮监听,实现了 ActionListener 接口的对象.b2.addActionListener(new ReWrite();b3.addActionListener(new Close();b4.addActionListener( this);b5.addActionListener( this);b6.addActionListener( this);b7.addActionListener( this);class Enter implements ActionListenerpublic void actionPerformed(Action

20、Event e) if(f1.getText().equals(“0“)/初始化,从文件读入信息LandingPage frame1 = new LandingPage();frame1.setBounds(200, 200, 300, 300);frame1.setVisible(true);Login.this.setVisible(false);else JOptionPane.showMessageDialog(null, “用户名或密码错误,请重新登录!“);/跳转提示信息class ReWrite implements ActionListenerpublic void actio

21、nPerformed(ActionEvent e)f1.setText(“);f2.setText(“);f1.requestFocus();class Close implements ActionListenerpublic 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(“系统登录“);

22、log.setBounds(200, 200, 300, 300);log.setBackground(Color.black);log.setVisible(true);Overridepublic void actionPerformed(ActionEvent e) /根据对按钮的监听,创建相对应的窗口/ TODO Auto-generated method stubif(e.getSource()=this.b4)new Message();if(e.getSource()=this.b5)new Message1();if(e.getSource()=this.b6)new Mess

23、age2();if(e.getSource()=this.b7)new Message3();class Message extends JFrameprivate JLabel jl=null;public Message()super();this.setLayout(new FlowLayout();jl=new JLabel(“本软件是正版软件,请购买正版,“);this.add(jl);this.setBackground(Color.red);this.setSize(300, 400);this.setVisible(true);public void actionPerform

24、ed(ActionEvent e) / TODO Auto-generated method stubnew Message1();class Message1 extends JFrameprivate JLabel jl1=null;public Message1()super();this.setLayout(new FlowLayout();jl1=new JLabel(“桂林电子科技欢迎你!, “);this.setTitle(“桂电“);this.setBackground(Color.black);this.add(jl1);this.setSize(300, 400);this

25、.setVisible(true);class Message2 extends JFrameprivate JLabel jl1=null;public Message2()super();this.setLayout(new FlowLayout();jl1=new JLabel(“本软件是一件简单的成绩管理软件,功能还不怎么完整,敬请谅解!,“);this.add(jl1);this.setSize(300, 400);this.setVisible(true);class Message3 extends JFrameprivate JLabel jl1=null;public Mes

26、sage3()super();this.setLayout(new FlowLayout();jl1=new JLabel(“请到教务处取回密码。回答密保问题找回“);this.add(jl1);this.setSize(300, 400);this.setVisible(true);landingpage.javapackage 课设;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;

27、import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.SwingConstants;/信息管理界面内部类 进行初始化和保存public class LandingPage extends JFrame implements ActionListener StuC scs

28、 = new StuC() ;private JButton cx, zj, tc, sc,xg,tj;public LandingPage() Container c = this.getContentPane();c.setLayout(new GridLayout(3, 1);c.setFont(new Font(“true“,Font.TRUETYPE_FONT,18);JPanel panel2 = new JPanel();JPanel panel1 = new JPanel();JLabel label1 = new JLabel(“欢迎进入桂林电子科技大学成绩管理“,Swing

29、Constants.CENTER);label1.setFont(new Font(“true“,Font.TRUETYPE_FONT,13);label1.setForeground(Color.red);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(“修改“);pa

30、nel1.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);panel1.setBackground(Color.red);panel

31、2.setBackground(Color.red);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)modify x=new modify();if(e.getSource()=tc)shutDown();if(e.getSource()=tj)Tongji t=

32、new Tongji();private void shutDown()scs.stor();JOptionPane.showMessageDialog(null, “信息已保存“);this.dispose();StuC.javapackage 课设;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileRead

33、er;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.ArrayList;public class StuC static ArrayList al=new ArrayList();/类型 ArrayList 是集合,在定义ArrayList 类型变量时,后面的中定义泛型,就是用来定义集合中每一个元素的类型,代码中的 students 对象的每一个元素都是 Student 类型的对象。File file = new Fil

34、e(“e:/mydata.dat“);/集合类可以增添许多对象,集合类的下标和数组的下标一样,从零开始的/添加public void adds(Student s)al.add(s);/把 s 这个对象增添到 al 集合里面/删除public void del(int n)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 (I

35、OException 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;AddFI.java package 课设;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.a

36、wt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.FileNotFoundException;import java.io.IOException;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax

37、.swing.SwingConstants;/增加信息界面内部类,捕获文本框中信息创建 Student 对象,添加到 Arraylist 中,如果已存在该学号/给出提示信息,并重新添加。public class AddFI extends JFrame implements ActionListener StuC scs = new StuC() ;private JTextField STNOText, SNAMEText, MAText, CHIText, JAVAText;private JButton b1, b2, b3,b4;private String STNO, SNAME,M

38、AT, CHI, JAVA;public AddFI() super(“添加学生信息“);Container cp=getContentPane();Container c2 = this.getContentPane();c2.setLayout(new GridLayout(3, 1);JPanel center = new JPanel(new GridLayout(5, 2);JPanel low = new JPanel(new FlowLayout();JPanel p=new JPanel();JLabel label1 = new JLabel(“添加学生信息“, SwingC

39、onstants.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);/添加标签

40、学号写在标签中间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

41、);center.add(JAVAText);c2.add(center);b1 = new JButton(“添加“);b2 = new JButton(“清除“);b3 = new JButton(“退出“);b4=new JButton(“注意“);p.add(b4);cp.add(p);cp.setBackground(Color.green);center.setBackground(Color.white);low.setBackground(Color.green);b4.addActionListener( this);low.add(b1);low.add(b2);low.a

42、dd(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)

43、e1.printStackTrace(); catch (IOException e1) e1.printStackTrace();if (e.getSource() = b2) clearForm();if (e.getSource() = b3) this.dispose();if(e.getSource()=this.b4)new Message7();private void addFI() throws FileNotFoundException, IOException STNO = STNOText.getText();SNAME = SNAMEText.getText();CH

44、I = 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),Inte

45、ger.parseInt(MAT),Integer.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.setT

46、ext(“);MAText.setText(“);CHIText.setText(“);JAVAText.setText(“);class Message7 extends JFrameprivate JLabel jli1=null;public Message7()super();this.setLayout(new FlowLayout();jli1=new JLabel(“请输入合法的数据,不准空!“);this.add(jli1);this.setSize(300, 400);this.setVisible(true);Find.javapackage 课设;import java.

47、awt.Container;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextF

48、ield;import javax.swing.SwingConstants;/查询信息界面内部类,根据输入的学号,在 arraylist 中查找对应学号的学生信息,分别输出public class Find extends JFrame implements ActionListenerStuC scs = new StuC() ;private JTextField STNOText, SNAMEText, MAText, CHIText, JAVAText;private String STNO;private JButton b1, b2,b3;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(3, 1);pp.add(label1);pp.add(l

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报