收藏 分销(赏)

JAVA学生标准管理系统.doc

上传人:a199****6536 文档编号:2827446 上传时间:2024-06-06 格式:DOC 页数:43 大小:265.04KB 下载积分:12 金币
下载 相关 举报
JAVA学生标准管理系统.doc_第1页
第1页 / 共43页
JAVA学生标准管理系统.doc_第2页
第2页 / 共43页


点击查看更多>>
资源描述
一、 需求分析 1.实现对班级和学生基础资料录入,包含学生学号,姓名,性别,所学专业,家庭住址和出生年月等。 2.能够实现对班级学生基础资料修改。 3.依据学号对学生资料进行查询。 4.能够删除学生资料。 二、 概要设计 依据此次课程设计目标和以上问题描述,把该班级管理系统分为五个模块:录入模块(StudentSituation)、查询模块(Inques)、删除模块(Delete)和修改模块(ModifySituation)。各个模块包含对学生学号,姓名,所学专业,家庭住址,出生日期等信息操作。系统结构图图一: 图1 系统结构图 三、总体设计 本班级管理系统共有6个java源文件。 类之间关键关系以下图所表示: StudentManager(主类) Delete Student StudentSituation ModiifySituation Inquest 图2 类之间关键关系 各主类关键作用以下: 1.StudentManager.java 该java文件类负责创建班级学生管理系统主窗口,该类包含main方法,程序从该类开始实施。 2.StudentStituation.java 该文件类负责创建班级学生管理系统学生信息录入界面。 3.ModifySituation.java 该文件类负责创建班级学生管理系统学生基础信息修改界面。 4.Inquest.java 该文件类负责创建班级学生管理系统学生基础信息查询界面。 5.Delete.java 该文件类负责创建班级学生管理系统学生信息删除界面。 6.Student.java 负责创建存放学生信息对象。 四、 具体设计 1.管理系统主窗口 1.1组员变量 表1-1 关键组员变量 组员变量描述 变量类型 变量名称 基础信息录入 基础信息修改 基础信息查询 基础信息删除 菜单选项 存基础信息散列表 存放散列表文件 StudentSituation ModifySituation Inquest Delete JMenuItem Hashtable File 基础信息录入 基础信息修改 基础信息查询 基础信息删除 录入,修改,查询,删除 基础信息 file 1.2方法 表1-2 关键方法 名称 功效 备注 StudentManager actionPerformed main 创建程序主窗口 处理ActionEvent事件 程序开始运行 结构方法 接口方法 1.3 界面截图: 2.基础信息录入 2.1 组员变量 表2-1 关键组员变量属性 描述 变量类型 变量名称 存放“学生”对象散列表 输入学生基础信息文本 存放学生信息对象 Hashtable JTextField Student 基础信息表 学号,姓名,所学专业,家庭住址,出生 学生 2.2 方法 表2-2 关键方法 名称 功效 备注 StudentSituation actionPerformed 创建学生信息录入界面 处理ActionEvent事件 结构方法 接口方法 2.3 录入界面截图: 3.基础信息查询 3.1 组员变量 表3-1 关键组员变量属性 描述 变量类型 变量名称 存放“学生”对象散表 显示学生基础信息文本 Hashtable JTextField 基础信息表 学号,姓名,所学专业,家庭住址,出生 3.2 方法 表3-2 关键方法 名称 功效 备注 Inquest actionPerformed 创建查询界面 处理ActionEvent事件 结构方法 接口方法 3.3 查询截图: 4.基础信息修改 4.1 组员变量 表4-1关键组员变量 描述 变量类型 变量名称 存放“学生”对象散列表 输入学生基础信息文本条 Hashtabel JTextField 基础信息表 学号,姓名,所学专业,家庭住址,出生 4.2 方法 表4-2 关键方法 名称 功效 备注 ModifySituation actionPerform 创建学生信息修改界面 处理ActionEvent事件 结构方法 接口方法 4.3 修改界面截图: 5.基础信息删除 5.1 组员变量 表5-1 关键组员变量 描述 变量类型 变量名称 存放“学生”对象散列表 显示学生基础信息文本条 Hashtable JTextField 基础信息表 学号,姓名,所学专业,家庭住址,出生 5.2 方法 表5-2 关键方法 名称 功效 备注 Delete actionPerformed 创建学生信息删除界面 处理ActionEvent 结构方法 接口方法 5.3 删除界面截图 6.学生对象 6.1 组员变量 表6-1 关键组员变量 描述 变量类型 变量名称 学号 姓名 所学专业 家庭住址 出生 性别 String String String String String String Number Name Discipling Grade Borth Sex 6.2方法 表6-2 关键方法 名称 功效 Setnumber Setnumber Setname Setname setDisciping setDisciping setGrade setGrade setBorth setBorth setSex setSex 设置学号 获取学号 设置姓名 获取姓名 设置所学专业 获取所学专业 设置家庭住址 获取家庭住址 设置出生 获取出生 设置性别 获取性别 五、总结和展望 课程设计是培养学生综合利用所学知识,发觉,提出,分析和处理实际问题,锻炼实践能力关键步骤,是对学生实际工作能力具体训练和考察过程. 此次课程设计即使很辛劳,实在是受益匪浅。原来这门课知识学就不够扎实,此次课程设计,在设计过程中碰到了很多问题,刚开始要设计时候,还真不知道从哪里下手但最终在图书、同学和老师帮助下全部得到了处理,让我学会了好多书本上没有东西,经过此次课程设计我也能将书本上知识融会贯通,起到了很好辅助学习效果,不过我发觉我学到知识比整整一个学期学到全部多。理论和实践相结合是学习最有效方法。在设计过程中发觉了自己不足之处,对以前所学过知识了解得不够深刻,掌握得不够牢靠,经过这次课程设计以后,一定把以前所学过知识重新温故。经过这次课程设计使我知道了理论和实际相结合是很关键,只有理论知识是远远不够,只有把所学理论知识和实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提升自己实际动手能力和独立思索能力。 不过,在用Java开发类似软件时,发觉在图形界面设计方面远没有用VB,VF等开发工具简单。 参考文件: 附录: 1.主界面代码 StudentManager.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.Hashtable; public class 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; JLabel label; JPanel pCenter; public StudentManager() { setTitle("欢迎进入班级管理系统"); 录入=new JMenuItem("录入学生基础信息"); 修改=new JMenuItem("修改学生基础信息"); 查询=new JMenuItem("查询学生基础信息"); 删除=new JMenuItem("删除学生基础信息"); 退出=new JMenuItem("退出本系统"); 退出.addActionListener(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(删除); 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); 基础信息=new Hashtable(); 录入.addActionListener(this); 修改.addActionListener(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); ObjectOutputStreamobjectOut=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("录入界面",基础信息录入); 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(); } 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 main(String args[]) { new StudentManager(); } } 2. 录入代码 StudentSituation.java import 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 学号,姓名,所学专业,家庭住址,出生; JRadioButton 男,女; 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); 所学专业=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); 重置.addActionListener(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("性别:",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(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); boxH.add(box6); boxH.add(Box.createVerticalGlue()); JPanel pCenter=new JPanel(); pCenter.add(boxH); setLayout(new BorderLayout()); add(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 FileInputStream(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 { String 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 sex=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(number,学生); 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,"警告",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 JDialog 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; 学号=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); 男=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.add(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.createHorizontalBox(); 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); 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(WindowEvent 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); inTwo=new ObjectInputStream(inOne); 基础信息表=(Hashtable)inTwo.readObject(); inOne.close();
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服