《JAVA学生班级管理系统源代码截图.doc》由会员分享,可在线阅读,更多相关《JAVA学生班级管理系统源代码截图.doc(24页珍藏版)》请在课桌文档上搜索。
1、-1、 需求分析1.实现对班级和学生根本资料的录入,包括学生的*,*,性别,所学专业,家庭住址以及出生年月等。2.能够实现对班级学生根本资料的修改。3.根据*对学生资料进展查询。4.能够删除学生的资料。2、 概要设计根据本次课程设计的目的和以上的问题描述,把该班级管理系统分为五个模块:录入模块StudentSituation、查询模块Inques、删除模块Delete和修改模块ModifySituation。各个模块包括对学生*,*,所学专业,家庭住址,出生日期等信息的操作。系统的构造图如图一:图1 系统构造图三、总体设计本班级管理系统共有6个java源文件。类之间的主要关系如下列图所示:St
2、udentManager(主类)DeleteStudentStudentSituationModiifySituationInquest图2 类之间的主要关系各主类的主要作用如下:该java文件的类负责创立班级学生管理系统的主窗口,该类包含main方法,程序从该类开场执行。该文件的类负责创立班级学生管理系统的学生信息录入界面。该文件的类负责创立班级学生管理系统的学生根本信息修改界面。该文件的类负责创立班级学生管理系统的学生根本信息查询界面。该文件的类负责创立班级学生管理系统的学生信息删除界面。负责创立存放学生信息的对象。4、 详细设计1.管理系统主窗口1.1成员变量表1-1 主要成员变量成员变
3、量描述变量类型变量名称根本信息录入根本信息修改根本信息查询根本信息删除菜单项选择项 存根本信息的散列表存放散列表的文件StudentSituationModifySituationInquestDeleteJMenuItemHashtableFile根本信息录入根本信息修改根本信息查询根本信息删除录入,修改,查询,删除根本信息file1.2方法表1-2 主要方法名称功能备注StudentManageractionPerformedmain创立程序主窗口 处理ActionEvent事件程序开场运行构造方法接口方法1.3 界面截图:2.根本信息录入2.1 成员变量表2-1 主要成员变量属性描述变量
4、类型变量名称存放“学生对象的散列表输入学生根本信息的文本存放学生信息的对象HashtableJTe*tFieldStudent根本信息表*,*,所学专业,家庭住址,出生学生2.2 方法表2-2 主要方法名称功能备注StudentSituationactionPerformed创立学生信息录入界面处理ActionEvent事件构造方法接口方法2.3 录入界面截图:3.根本信息查询3.1 成员变量表3-1 主要成员变量属性描述变量类型变量名称存放“学生对象的散表显示学生根本信息的文本HashtableJTe*tField根本信息表*,*,所学专业,家庭住址,出生3.2 方法表3-2 主要方法名称功
5、能备注InquestactionPerformed创立查询界面处理ActionEvent事件构造方法接口方法3.3 查询截图:4.根本信息修改4.1 成员变量表4-1主要成员变量描述变量类型变量名称存放“学生对象的散列表输入学生根本信息的文本条HashtabelJTe*tField根本信息表*,*,所学专业,家庭住址,出生4.2 方法表4-2 主要方法名称功能备注ModifySituationactionPerform创立学生信息修改界面处理ActionEvent事件构造方法接口方法4.3 修改界面截图:5.根本信息删除5.1 成员变量表5-1 主要成员变量描述变量类型变量名称存放“学生对象的
6、散列表显示学生根本信息的文本条HashtableJTe*tField根本信息表*,*,所学专业,家庭住址,出生5.2 方法表5-2 主要方法名称功能备注DeleteactionPerformed创立学生信息删除界面处理ActionEvent构造方法接口方法5.3 删除界面截图6.学生对象6.1 成员变量表6-1 主要成员变量描述变量类型变量名称*所学专业家庭住址出生性别StringStringStringStringStringStringNumberNameDisciplingGradeBorthSe*6.2方法表6-2 主要方法名称功能SetnumberSetnumberSetnameSe
7、tnamesetDiscipingsetDiscipingsetGradesetGradesetBorthsetBorthsetSe*setSe*设置*获取*设置*获取*设置所学专业获取所学专业设置家庭住址获取家庭住址设置出生获取出生设置性别获取性别五、总结与展望课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程. 本次课程设计虽然很辛苦,实在是受益匪浅。本来这门课的知识学的就不够扎实,本次课程设计,在设计过程中碰到了很多问题,刚开场要设计的时候,还真不知道从哪里下手但最终在图书、同学和教师的帮助下都得到了解决,
8、让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯穿,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。理论和实践的相结合是学习最有效的方法。在设计的过程中发现了自己的缺乏之处,对以前所学过的知识理解得不够深刻,掌握得不够结实,通过这次课程设计之后,一定把以前所学过的知识重新温故。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考的能力。不过,在用Java开发类似的软件时,发现在图形界面的设计方面远没有用
9、VB,VF等开发工具简单。参考文献:附录:1.主界面代码StudentManager.javaimport java.awt.*;import java.awt.event.*;import java*.swing.*;import java.io.*;import java.util.Hashtable;public class StudentManager e*tends JFrame implements ActionListener StudentSituation 根本信息录入=null; ModifySituation 根本信息修改=null; Inquest 根本信息查询=nul
10、l; Delete 根本信息删除=null; JMenuBar bar; JMenu fileMenu; JMenuItem 录入,修改,查询,删除,退出; Container con=null; Hashtable 根本信息=null; File file=null; CardLayout card=null; JLabel label; JPanel pCenter; public StudentManager() setTitle(欢送进入班级管理系统); 录入=new JMenuItem(录入学生根本信息); 修改=new JMenuItem(修改学生根本信息); 查询=new JMe
11、nuItem(查询学生根本信息); 删除=new JMenuItem(删除学生根本信息); 退出=new JMenuItem(退出本系统); 退出.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) System.e*it(0); ); bar=new JMenuBar(); fileMenu=new JMenu(菜单项选择项); fileMenu.add(录入); fileMenu.addSeparator(); fileMenu.add(修改); fileMenu.add
12、Separator(); fileMenu.add(查询); fileMenu.addSeparator(); fileMenu.add(删除); fileMenu.addSeparator(); fileMenu.addSeparator(); fileMenu.add(退出); bar.add(fileMenu); setJMenuBar(bar); label=new JLabel(欢送进入班级管理系统!,label.CENTER); label.setFont(new Font(隶书,Font.BOLD,30); label.setForeground(Color.blue); 根本信
13、息=new Hashtable(); 录入.addActionListener(this); 修改.addActionListener(this); 查询.addActionListener(this); 删除.addActionListener(this); card=new CardLayout(); con=getContentPane(); pCenter=new JPanel(); pCenter.setLayout(card); file=new File(学生根本信息.t*t); if(!file.e*ists() try FileOutputStream out=new Fil
14、eOutputStream(file); ObjectOutputStreamobjectOut=new ObjectOutputStream(out); objectOut.writeObject(根本信息); objectOut.close(); out.close(); catch(IOE*ception e) 根本信息录入=new StudentSituation(file); 根本信息修改=new ModifySituation(file); 根本信息查询=new Inquest(this,file); 根本信息删除=new Delete(file); pCenter.add(欢送语
15、界面,label); pCenter.add(录入界面,根本信息录入); pCenter.add(修改界面,根本信息修改); pCenter.add(删除界面,根本信息删除); con.add(pCenter,BorderLayout.CENTER);con.validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.e*it(0); ); setVisible(true); setBounds(100,50,420,380); validate(); pub
16、lic void actionPerformed(ActionEvent e) if(e.getSource()=录入) card.show(pCenter,录入界面); else if(e.getSource()=修改) card.show(pCenter,修改界面); else if(e.getSource()=查询) 根本信息查询.setVisible(true); else if(e.getSource()=删除) card.show(pCenter,删除界面); public static void main(String args) new StudentManager(); 2.
17、 录入代码StudentSituation.javaimport java.awt.*;import java.awt.event.*;import java*.swing.*;import java.io.*;import java.util.*;public class StudentSituation e*tends JPanel implements ActionListener Hashtable 根本信息表=null; JTe*tField *,*,所学专业,家庭住址,出生; JRadioButton 男,女; Student 学生=null;ButtonGroup group=n
18、ull; utton 录入,重置; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=null; public StudentSituation(File file) this.file=file; *=new JTe*tField(10); *=new JTe*tField(10); 所学专业=new JTe*tField(10); 家庭住址=new JTe*tField(10); 出
19、生=new JTe*tField(10); group=new ButtonGroup(); 男=new JRadioButton(男,true); 女=new JRadioButton(女,false); group.add(男); group.add(女); 录入=new utton(录入); 重置=new utton(重置); 录入.addActionListener(this); 重置.addActionListener(this); Bo* bo*1=Bo*.createHorizontalBo*(); bo*1.add(new JLabel(*:,JLabel.CENTER); b
20、o*1.add(*); Bo* bo*2=Bo*.createHorizontalBo*(); bo*2.add(new JLabel(*:,JLabel.CENTER); bo*2.add(*); Bo* bo*3=Bo*.createHorizontalBo*(); bo*3.add(new JLabel(性别:,JLabel.CENTER); bo*3.add(男); bo*3.add(女); Bo* bo*4=Bo*.createHorizontalBo*(); bo*4.add(new JLabel(所学专业:,JLabel.CENTER); bo*4.add(所学专业); Bo*
21、bo*5=Bo*.createHorizontalBo*(); bo*5.add(new JLabel(家庭住址:,JLabel.CENTER); bo*5.add(家庭住址); Bo* bo*6=Bo*.createHorizontalBo*(); bo*6.add(new JLabel(出生:,JLabel.CENTER); bo*6.add(出生); Bo* bo*H=Bo*.createVerticalBo*(); bo*H.add(bo*1); bo*H.add(bo*2); bo*H.add(bo*3); bo*H.add(bo*4); bo*H.add(bo*5); bo*H.a
22、dd(bo*6); bo*H.add(Bo*.createVerticalGlue(); JPanel pCenter=new JPanel(); pCenter.add(bo*H); setLayout(new BorderLayout(); add(pCenter,BorderLayout.CENTER); JPanel pSouth=new JPanel(); pSouth.add(录入); pSouth.add(重置); add(pSouth,BorderLayout.SOUTH); validate(); public void actionPerformed(ActionEvent
23、 e) if(e.getSource()=录入) String number=; number=*.getTe*t(); if(number.length()0) try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 根本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(E*ception ee) if(根本信息表.containsKey(number) String warning=该生根本信息已存在,请到修改
24、页面修改!;JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); else String m=根本信息将被录入!; intok=JOptionPane.showConfirmDialog(this,m,确认,JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE); if(ok=JOptionPane.YES_OPTION) String name=*.getTe*t(); String discipling=所学专业.getTe*t()
25、; String grade=家庭住址.getTe*t(); String borth=出生.getTe*t(); String se*=null; if(男.isSelected() se*=男.getTe*t(); else se*=女.getTe*t(); 学生=new Student(); 学生.setNumber(number); 学生.setName(name); 学生.setDiscipling(discipling); 学生.setGrade(grade); 学生.setBorth(borth); 学生.setSe*(se*); try outOne=new FileOutpu
26、tStream(file); outTwo=new ObjectOutputStream(outOne); 根本信息表.put(number,学生); outTwo.writeObject(根本信息表); outTwo.close(); outOne.close(); *.setTe*t(null); *.setTe*t(null); 所学专业.setTe*t(null); 家庭住址.setTe*t(null); 出生.setTe*t(null); catch(E*ception ee) System.out.println(ee); else String warning=必须要输入*!;
27、JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); if(e.getSource()=重置) *.setTe*t(null); *.setTe*t(null); 所学专业.setTe*t(null); 家庭住址.setTe*t(null); 出生.setTe*t(null); 3. 查询代码Inquest.javaimport java.awt.*;import java.awt.event.*;import java*.swing.*;import java.io.*;import java.
28、util.*;public class Inquest e*tends JDialog implements ActionListener Hashtable 根本信息表=null; JTe*tField *,*,所学专业,家庭住址,出生; JRadioButton 男,女; utton 查询; ButtonGroup group=null; FileInputStream inOne=null; ObjectInputStream inTwo=null; File file=null; public Inquest(JFrame f,File file) super(f,查询对话框,fals
29、e); this.file=file; *=new JTe*tField(10); 查询=new utton(查询); *.addActionListener(this); 查询.addActionListener(this); *=new JTe*tField(10); *.setEditable(false); 所学专业=new JTe*tField(10); 所学专业.setEditable(false); 家庭住址=new JTe*tField(10); 家庭住址.setEditable(false); 出生=new JTe*tField(10); 出生.setEditable(fal
30、se); 男=new JRadioButton(男,false); 女=new JRadioButton(女,false); group=new ButtonGroup(); group.add(男); group.add(女); Bo* bo*1=Bo*.createHorizontalBo*(); bo*1.add(new JLabel(输入要查询的*:,JLabel.CENTER); bo*1.add(*); bo*1.add(查询); Bo* bo*2=Bo*.createHorizontalBo*(); bo*2.add(new JLabel(*:,JLabel.CENTER); b
31、o*2.add(*); Bo* bo*3=Bo*.createHorizontalBo*(); bo*3.add(new JLabel(性别:,JLabel.CENTER); bo*3.add(男); bo*3.add(女); Bo* bo*4=Bo*.createHorizontalBo*(); bo*4.add(new JLabel(所学专业:,JLabel.CENTER); bo*4.add(所学专业); Bo* bo*5=Bo*.createHorizontalBo*(); bo*5.add(new JLabel(家庭住址:,JLabel.CENTER); bo*5.add(家庭住址)
32、; Bo* bo*6=Bo*.createHorizontalBo*(); bo*6.add(new JLabel(出生:,JLabel.CENTER); bo*6.add(出生); Bo* bo*H=Bo*.createVerticalBo*(); bo*H.add(bo*1); bo*H.add(bo*2); bo*H.add(bo*3); bo*H.add(bo*4); bo*H.add(bo*5); bo*H.add(bo*6); bo*H.add(Bo*.createVerticalGlue(); JPanel pCenter=new JPanel(); pCenter.add(bo
33、*H); Container con=getContentPane(); con.add(pCenter,BorderLayout.CENTER); con.validate(); setVisible(false); setBounds(100,200,360,270); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) setVisible(false); ); public void actionPerformed(ActionEvent e) *.setTe*t(null); 所
34、学专业.setTe*t(null); 家庭住址.setTe*t(null); 出生.setTe*t(null); if(e.getSource()=查询|e.getSource()=*) String number=; number=*.getTe*t(); if(number.length()0) try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 根本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(E*ception ee) if(根本信息表.containsKey(number) Student stu=(Student)根本信息表.get(number); *.setTe*t(stu.getName(); 所学专业.setTe*t(stu.getDisc