JAVA学生班级管理系统-源代码-截图_第1页
JAVA学生班级管理系统-源代码-截图_第2页
JAVA学生班级管理系统-源代码-截图_第3页
JAVA学生班级管理系统-源代码-截图_第4页
JAVA学生班级管理系统-源代码-截图_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、 需求分析1.实现对班级和学生基本资料的录入,包括学生的学号,姓名,性别,所学专业,家庭住址以及出生年月等。2.能够实现对班级学生基本资料的修改。3.根据学号对学生资料进行查询。4.能够删除学生的资料。2、 概要设计根据本次课程设计的目的和以上的问题描述,把该班级管理系统分为五个模块:录入模块(StudentSituation)、查询模块(Inques)、删除模块(Delete)和修改模块(ModifySituation)。各个模块包括对学生学号,姓名,所学专业,家庭住址,出生日期等信息的操作。系统的结构图如图一:图1 系统结构图三、总体设计 本班级管理系统共有6个java源文件。类之间的

2、主要关系如下图所示: StudentManager(主类)DeleteStudentStudentSituationModiifySituationInquest图2 类之间的主要关系各主类的主要作用如下:1.StudentManager.java该java文件的类负责创建班级学生管理系统的主窗口,该类包含main方法,程序从该类开始执行。2.StudentStituation.java该文件的类负责创建班级学生管理系统的学生信息录入界面。3.ModifySituation.java该文件的类负责创建班级学生管理系统的学生基本信息修改界面。4.Inquest.java该文件的类负责创建班级学生

3、管理系统的学生基本信息查询界面。5.Delete.java该文件的类负责创建班级学生管理系统的学生信息删除界面。6.Student.java负责创建存放学生信息的对象。4、 详细设计1.管理系统主窗口1.1成员变量表1-1 主要成员变量成员变量描述变量类型变量名称基本信息录入基本信息修改基本信息查询基本信息删除菜单选项 存基本信息的散列表存放散列表的文件StudentSituationModifySituationInquestDeleteJMenuItemHashtableFile基本信息录入基本信息修改基本信息查询基本信息删除录入,修改,查询,删除基本信息file1.2方法表1-2 主要方

4、法名称功能备注StudentManageractionPerformedmain创建程序主窗口 处理ActionEvent事件程序开始运行构造方法接口方法1.3 界面截图:2.基本信息录入2.1 成员变量表2-1 主要成员变量属性描述变量类型变量名称存放“学生”对象的散列表输入学生基本信息的文本存放学生信息的对象HashtableJTextFieldStudent基本信息表学号,姓名,所学专业,家庭住址,出生学生2.2 方法表2-2 主要方法名称功能备注StudentSituationactionPerformed创建学生信息录入界面处理ActionEvent事件构造方法接口方法2.3 录入界

5、面截图:3.基本信息查询3.1 成员变量表3-1 主要成员变量属性描述变量类型变量名称存放“学生”对象的散表显示学生基本信息的文本HashtableJTextField基本信息表学号,姓名,所学专业,家庭住址,出生3.2 方法表3-2 主要方法名称功能备注InquestactionPerformed创建查询界面处理ActionEvent事件构造方法接口方法3.3 查询截图:4.基本信息修改4.1 成员变量表4-1主要成员变量描述变量类型变量名称存放“学生”对象的散列表输入学生基本信息的文本条HashtabelJTextField基本信息表学号,姓名,所学专业,家庭住址,出生4.2 方法表4-2

6、 主要方法名称功能备注ModifySituationactionPerform创建学生信息修改界面处理ActionEvent事件构造方法接口方法4.3 修改界面截图:5.基本信息删除5.1 成员变量表5-1 主要成员变量描述变量类型变量名称存放“学生”对象的散列表显示学生基本信息的文本条HashtableJTextField基本信息表学号,姓名,所学专业,家庭住址,出生5.2 方法表5-2 主要方法名称功能备注DeleteactionPerformed创建学生信息删除界面处理ActionEvent构造方法接口方法5.3 删除界面截图6.学生对象6.1 成员变量表6-1 主要成员变量描述变量类型

7、变量名称学号姓名所学专业家庭住址出生性别StringStringStringStringStringStringNumberNameDisciplingGradeBorthSex6.2方法表6-2 主要方法名称功能SetnumberSetnumberSetnameSetnamesetDiscipingsetDiscipingsetGradesetGradesetBorthsetBorthsetSexsetSex设置学号获取学号设置姓名获取姓名设置所学专业获取所学专业设置家庭住址获取家庭住址设置出生获取出生设置性别获取性别五、总结与展望课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实

8、际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程. 本次课程设计虽然很辛苦,实在是受益匪浅。本来这门课的知识学的就不够扎实,本次课程设计,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。理论和实践的相结合是学习最有效的方法。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重

9、新温故。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。不过,在用Java开发类似的软件时,发现在图形界面的设计方面远没有用VB,VF等开发工具简单。参考文献:附录:1.主界面代码StudentManager.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.Hashtable;public c

10、lass StudentManager extends JFrame implements ActionListener StudentSituation 基本信息录入=null; ModifySituation 基本信息修改=null; Inquest 基本信息查询=null; Delete 基本信息删除=null; JMenuBar bar; JMenu fileMenu; JMenuItem 录入,修改,查询,删除,退出; Container con=null; Hashtable 基本信息=null; File file=null; CardLayout card=null; JLab

11、el label; JPanel pCenter; public StudentManager() setTitle("欢迎进入班级管理系统"); 录入=new JMenuItem("录入学生基本信息"); 修改=new JMenuItem("修改学生基本信息"); 查询=new JMenuItem("查询学生基本信息"); 删除=new JMenuItem("删除学生基本信息"); 退出=new JMenuItem("退出本系统"); 退出.addActionListene

12、r(new ActionListener() public void actionPerformed(ActionEvent event) System.exit(0); ); bar=new JMenuBar(); fileMenu=new JMenu("菜单选项"); fileMenu.add(录入); fileMenu.addSeparator(); fileMenu.add(修改); fileMenu.addSeparator(); fileMenu.add(查询); fileMenu.addSeparator(); fileMenu.add(删除); fileMe

13、nu.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); 基本信息=new Hashtable(); 录入.addActionListener(this); 修改.addAct

14、ionListener(this); 查询.addActionListener(this); 删除.addActionListener(this); card=new CardLayout(); con=getContentPane(); pCenter=new JPanel(); pCenter.setLayout(card); file=new File("学生基本信息.txt"); if(!file.exists() try FileOutputStream out=new FileOutputStream(file); ObjectOutputStreamobjec

15、tOut=new ObjectOutputStream(out); objectOut.writeObject(基本信息); objectOut.close(); out.close(); catch(IOException e) 基本信息录入=new StudentSituation(file); 基本信息修改=new ModifySituation(file); 基本信息查询=new Inquest(this,file); 基本信息删除=new Delete(file); pCenter.add("欢迎语界面",label); pCenter.add("录入界

16、面",基本信息录入); pCenter.add("修改界面",基本信息修改); pCenter.add("删除界面",基本信息删除); con.add(pCenter,BorderLayout.CENTER); con.validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); setVisible(true); setBounds(100,50,420,380); validate()

17、; public 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 m

18、ain(String args) new StudentManager(); 2. 录入代码StudentSituation.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class StudentSituation extends JPanel implements ActionListener Hashtable 基本信息表=null; JTextField 学号,姓名,所学专业,家庭住址,出生; JRadioButt

19、on 男,女; Student 学生=null; ButtonGroup group=null; JButton 录入,重置; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=null; public StudentSituation(File file) this.file=file; 学号=new JTextField(10); 姓名=new JTextField(10); 所学专

20、业=new JTextField(10); 家庭住址=new JTextField(10); 出生=new JTextField(10); group=new ButtonGroup(); 男=new JRadioButton("男",true); 女=new JRadioButton("女",false); group.add(男); group.add(女); 录入=new JButton("录入"); 重置=new JButton("重置"); 录入.addActionListener(this); 重置.a

21、ddActionListener(this); Box box1=Box.createHorizontalBox(); box1.add(new JLabel("学号:",JLabel.CENTER); box1.add(学号); Box box2=Box.createHorizontalBox(); box2.add(new JLabel("姓名:",JLabel.CENTER); box2.add(姓名); Box box3=Box.createHorizontalBox(); box3.add(new JLabel("性别:",

22、JLabel.CENTER); box3.add(男); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel("所学专业:",JLabel.CENTER); box4.add(所学专业); Box box5=Box.createHorizontalBox(); box5.add(new JLabel("家庭住址:",JLabel.CENTER); box5.add(家庭住址); Box box6=Box.createHorizontalBox(); box6.add(n

23、ew JLabel("出生:",JLabel.CENTER); box6.add(出生); Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box4); boxH.add(box5); boxH.add(box6); boxH.add(Box.createVerticalGlue(); JPanel pCenter=new JPanel(); pCenter.add(boxH); setLayout(new BorderLayout(); a

24、dd(pCenter,BorderLayout.CENTER); JPanel pSouth=new JPanel(); pSouth.add(录入); pSouth.add(重置); add(pSouth,BorderLayout.SOUTH); validate(); public void actionPerformed(ActionEvent e) if(e.getSource()=录入) String number="" number=学号.getText(); if(number.length()>0) try inOne=new FileInputStr

25、eam(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception ee) if(基本信息表.containsKey(number) String warning="该生基本信息已存在,请到修改页面修改!" JOptionPane.showMessageDialog(this,warning,警告",JOptionPane.WARNING_MESSAGE); else Str

26、ing m="基本信息将被录入!" intok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE); if(ok=JOptionPane.YES_OPTION) String name=姓名.getText(); String discipling=所学专业.getText(); String grade=家庭住址.getText(); String borth=出生.getText(); String s

27、ex=null; if(男.isSelected() sex=男.getText(); else sex=女.getText(); 学生=new Student(); 学生.setNumber(number); 学生.setName(name); 学生.setDiscipling(discipling); 学生.setGrade(grade); 学生.setBorth(borth); 学生.setSex(sex); try outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne); 基本信息表.put(nu

28、mber,学生); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close(); 学号.setText(null); 姓名.setText(null); 所学专业.setText(null); 家庭住址.setText(null); 出生.setText(null); catch(Exception ee) System.out.println(ee); else String warning="必须要输入学号!" JOptionPane.showMessageDialog(this,warning,"警告&

29、quot;,JOptionPane.WARNING_MESSAGE); if(e.getSource()=重置) 学号.setText(null); 姓名.setText(null); 所学专业.setText(null); 家庭住址.setText(null); 出生.setText(null); 3. 查询代码Inquest.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Inquest extends JD

30、ialog implements ActionListener Hashtable 基本信息表=null; JTextField 学号,姓名,所学专业,家庭住址,出生; JRadioButton 男,女; JButton 查询; ButtonGroup group=null; FileInputStream inOne=null; ObjectInputStream inTwo=null; File file=null; public Inquest(JFrame f,File file) super(f,"查询对话框",false); this.file=file; 学号

31、=new JTextField(10); 查询=new JButton("查询"); 学号.addActionListener(this); 查询.addActionListener(this); 姓名=new JTextField(10); 姓名.setEditable(false); 所学专业=new JTextField(10); 所学专业.setEditable(false); 家庭住址=new JTextField(10); 家庭住址.setEditable(false); 出生=new JTextField(10); 出生.setEditable(false);

32、 男=new JRadioButton("男",false); 女=new JRadioButton("女",false); group=new ButtonGroup(); group.add(男); group.add(女); Box box1=Box.createHorizontalBox(); box1.add(new JLabel("输入要查询的学号:",JLabel.CENTER); box1.add(学号); box1.add(查询); Box box2=Box.createHorizontalBox(); box2.a

33、dd(new JLabel("姓名:",JLabel.CENTER); box2.add(姓名); Box box3=Box.createHorizontalBox(); box3.add(new JLabel("性别:",JLabel.CENTER); box3.add(男); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel("所学专业:",JLabel.CENTER); box4.add(所学专业); Box box5=Box.createH

34、orizontalBox(); box5.add(new JLabel("家庭住址:",JLabel.CENTER); box5.add(家庭住址); Box box6=Box.createHorizontalBox(); box6.add(new JLabel("出生:",JLabel.CENTER); box6.add(出生); Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box4); boxH.add(box5)

35、; boxH.add(box6); boxH.add(Box.createVerticalGlue(); JPanel pCenter=new JPanel(); pCenter.add(boxH); Container con=getContentPane(); con.add(pCenter,BorderLayout.CENTER); con.validate(); setVisible(false); setBounds(100,200,360,270); addWindowListener(new WindowAdapter() public void windowClosing(Wi

36、ndowEvent e) setVisible(false); ); public void actionPerformed(ActionEvent e) 姓名.setText(null); 所学专业.setText(null); 家庭住址.setText(null); 出生.setText(null); if(e.getSource()=查询|e.getSource()=学号) String number="" number=学号.getText(); if(number.length()>0) try inOne=new FileInputStream(file)

37、; inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception ee) if(基本信息表.containsKey(number) Student stu=(Student)基本信息表.get(number); 姓名.setText(stu.getName(); 所学专业.setText(stu.getDisciping(); 家庭住址.setText(stu.getGrade(); 出生.setText(stu.get

38、Borth(); if(stu.getSex().equals("男") 男.setSelected(true); else 女.setSelected(true); else String warning="该学号不存在!" JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); else String warning="必须要输入学号!" JOptionPane.showMessageDialog(this,wa

39、rning,"警告",JOptionPane.WARNING_MESSAGE); 4.修改代码ModifySituation.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class ModifySituation extends JPanel implements ActionListener Hashtable 基本信息表=null; JTextField 学号,姓名,所学专业,家庭住址,出生; J

40、RadioButton 男,女; ButtonGroup group=null; JButton 开始修改,录入修改,重置; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=null; public ModifySituation(File file) this.file=file; 学号=new JTextField(10); 姓名=new JTextField(10); 所学专业=

41、new JTextField(10); 家庭住址=new JTextField(10); 出生=new JTextField(10); group=new ButtonGroup(); 男=new JRadioButton("男",true); 女=new JRadioButton("女",false); group.add(男); group.add(女); 开始修改=new JButton("开始修改"); 录入修改=new JButton("录入修改"); 录入修改.setEnabled(false); 重置

42、=new JButton("重置"); 学号.addActionListener(this); 开始修改.addActionListener(this); 录入修改.addActionListener(this); 重置.addActionListener(this); Box box1=Box.createHorizontalBox(); box1.add(new JLabel("输入要修改信息的学号:",JLabel.CENTER); box1.add(学号); box1.add(开始修改); Box box2=Box.createHorizontalBox(); box2.add(new JLabel("(新)姓名:",JLabel.CENTER); box2.add(姓名); Box box3=Box.createHorizo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论