




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java程序设计课程设计 目 录 一、 总体设计1.1学生信息系统结构图1。1.2本系统的主要功能2。1.3 Java源文件及其功能2。二 、详细设计2.1主类StudentManager3.2.2类StudentSituation52.3类ModifySituation.82.4类inquest102.5类Delete122.6类Student.13三、功能测试及运行效果3.1 系统主界面.153.2 录入信息界面.153.3 修改信息界面.163.3 查询信息界面163.3 删除信息界面17程序总结17参考文献17一、总体设计1.1学生信息系统结构图学生信息管理系统查询学生信息删除学生信息
2、修改学生信息录入学生信息删除学号查询学号修改年级修改专业修改姓名录入学号修改生日录入年级出生日期录入姓名录入专业录入学号 删除专业删除姓名显示生日显示年级显示专业显示姓名删除生日删除年级 学生信息系统分析结构图1.2本系统的主要功能运行该系统成功后,会出现一个欢迎使用的主界面,上面的菜单选项,会弹出4个子菜单分别是录入基本信息、修改基本信息、查询基本信息、删除基本信息。点击它们会出现不同的界面,分别有不同的功能:1. StudentManager.java 该类负责创建学生信息管理系统的主窗口,该类还有main方法,程序从该类开始执行。 2. StudentSituation.java 该类创
3、建的对象是StudentManager类的重要成员之一,负责提供录入、重置学生基本信息的界面。 3. ModifySituation.java 该类创建的对象是StudentManager类的重要成员之一,负责提供修改学生基本信息的界面。4.Delete.java该类创建的对象是StudentManager类的重要成员之一,负责提供删除学生基本信息的界面。5.inquest.java创建的对象是StudentManager类的重要成员之一,该类负责提供查询学生基本信息的界面。该类创建的对象是StudentManager类的重要成员之一,该类在做上面操作时可以返回学生的基本信息,主要起到一个返回
4、的作用。本系统是基于数据库的学生信息管理系统,实现了连接数据库,录入、修改、查询、删除学生信息的功能。1.3 Java源文件及其功能1.icon.jpg该文件是窗口最小化时的窗口图标,StudentSituation需要调用该文件。 2.专业.txt该文件为专业组合的组合键提供下拉菜单的内容,StudentSituation和ModifySituation调用该文件。二、详细设计2.1主类StudentManager表2-1 主要成员变量(属性)成员变量描述变量类型名称面板StudentSituationNULL面板ModifySituationNULL面板inquest NULL 面板Del
5、eteNULL 菜单栏JMenuBarbar菜单组JMenufileMenu菜单项JMenuItemStudentSituation,ModifySituationInquest, Delete布局管理器CardLayoutcard表2-2 主要方法方法名称返回类型功能备注StudentManager无类型创建窗口构造方法actionPerformed无类型处理响应事件继承自父类抽象方法main无类型执行程序程序的主函数源代码StudentManager.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;imp
6、ort 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 基本信息=nu
7、ll; File file=null; CardLayout card=null; JLabel label=null; JPanel pCenter; public StudentManager() 录入=new JMenuItem("录入基本信息"); 修改=new JMenuItem("修改基本信息"); 查询=new JMenuItem("查询基本信息"); 删除=new JMenuItem("删除基本信息"); bar=new JMenuBar(); fileMenu=new JMenu("菜单
8、选项"); fileMenu.add(录入); fileMenu.add(修改); fileMenu.add(查询); fileMenu.add(删除); bar.add(fileMenu); setJMenuBar(bar); label=new JLabel("welcome to use students system!",JLabel.CENTER); label.setFont(new Font("楷体", Font.BOLD, 22); label.setForeground(Color.black); 基本信息=new Hasht
9、able(); 录入.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 File
10、OutputStream(file); ObjectOutputStream objectOut=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(&qu
11、ot;欢迎语界面",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(
12、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(pCe
13、nter,"删除界面"); public static void main(String args) new StudentManager(); 2.2类StudentSituation表2-3 主要成员变量成员变量描述变量类型名称Hashtable对象类型HashtableNULL文本域JTextField学号、姓名、专业、年级、出生组合框JComboBoxSmajor单选框ButtonGroup男、女按钮多斥作用域ButtonGroupgroup按钮JButton录入、重置表2-4 主要方法方法名称返回类型功能备注StudentSituation无类型创建录入学生信息界
14、面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法源代码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 学号,姓名,专业,年级,出生; JRadioButton 男,女; S
15、tudent 学生=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 JText
16、Field(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); 重置.addActionListe
17、ner(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
18、); 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("出生:&q
19、uot;,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,BorderLayo
20、ut.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
21、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="基本信
22、息将被录入!" int ok=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(男.isS
23、elected() 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.
24、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.WAR
25、NING_MESSAGE); if(e.getSource()=重置) 学号.setText(null); 姓名.setText(null); 专业.setText(null); 年级.setText(null); 出生.setText(null); 2.3类ModifySituation表2-5 主要成员变量成员变量描述变量类型名称Hashtable对象类型HashtableNULL文本域JTextField学号、姓名、专业、年级、出生组合框JComboBoxSmajor单选框ButtonGroup男、女按钮多斥作用域ButtonGroupgroup按钮JButton开始修改、录入修改、重置
26、表2-6 主要方法方法名称返回类型功能备注ModifySituation无类型创建修改学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类型清除文本框内容无8核心源代码ModifySituation.javapublic class ModifySituation extends JPanel implements ActionListener Hashtable 基本信息表=null; JTextField 学号,姓名,专业,年级,出生; JRadioButton 男,女; ButtonGroup group=null; JButton
27、 开始修改,录入修改,重置; 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); 专业=new JTextField(10); 年级=new JTextField(10); 出生=new
28、JTextField(10); group=new ButtonGroup(); 男=new JRadioButton("男",true); 女=new JRadioButton("女",false); group.add(男); group.add(女); 开始修改=new JButton("开始修改"); 录入修改=new JButton("录入修改"); 录入修改.setEnabled(false); 重置=new JButton("重置"); 学号.addActionListener(t
29、his); 开始修改.addActionListener(this); 录入修改.addActionListener(this); 重置.addActionListener(this); Box box1=Box.createHorizontalBox(); .部分源代码省略. 学号.setText(null); 姓名.setText(null); 专业.setText(null); 年级.setText(null); 出生.setText(null); catch(Exception ee) System.out.println(ee); 录入修改.setEnabled(false); el
30、se if(ok=JOptionPane.NO_OPTION) 录入修改.setEnabled(true); else String warning="该学号没有基本信息,不能修改!" 录入修改.setEnabled(false); else String warning="必须要输入学号!" JoptionPane.showmessageDialog(this,waring, "警告",JoptionPane.WARNING 录入修改.setEnabled(false); if(e.getSource()=重置) 学号.setTex
31、t(null); 姓名.setText(null); 专业.setText(null); 年级.setText(null); 出生.setText(null); 2.4类inquest表2-7主要成员变量成员变量描述变量类型名称Hashtable对象类型Hashtable inquest文本域JTextField学号,姓名,专业,年级,出生启动并执行打印作业PrintJobpri单选框ButtonGroup男,女按钮多斥作用域ButtonGroupgroup按钮JButton查询表2-8主要方法方法名称返回类型功能备注inquest无类型创建录入学生信息界面构造方法actionPerforme
32、d无类型处理响应事件继承自父类抽象方法核心源代码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;
33、 FileInputStream inOne=null; ObjectInputStream inTwo=null; File file=null; public Inquest(JFrame f,File file) .部分源代码省略. inOne.close(); inTwo.close(); catch(Exception ee) if(基本信息表.containsKey(number) Student stu=(Student)基本信息表.get(number); 姓名.setText(stu.getName(); 专业.setText(stu.getDisciping(); 年级.s
34、etText(stu.getGrade(); 出生.setText(stu.getBorth(); if(stu.getSex().equals("男") 男.setSelected(true); else 女.setSelected(true); else String warning="该学号不存在!" 2.5类Delete表2-9 主要成员变量成员变量描述变量类型名称Hashtable对象类型HashtabledelStu queryStu文本域JTextField学号,姓名,专业,年级,出生单选框ButtonGroup男,女按钮多斥作用域Butt
35、onGroupgroup按钮JButtondel表2-10 主要方法方法名称返回类型功能备注InputStudent无类型创建录入学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法核心源代码Delete.javapublic class Delete extends JPanel implements ActionListener Hashtable 基本信息表=null; JTextField 学号,姓名,专业,年级,出生; JRadioButton 男,女; JButton 删除; ButtonGroup group=null; FileInputStr
36、eam inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=null; public Delete(File file) this.file=file; 学号=new JTextField(10); 删除=new JButton("删除"); 学号.addActionListener(this); 删除.addActionListener(this); 姓名=new JTextField(10); 姓
37、名.setEditable(false); 专业=new JTextField(10); 专业.setEditable(false); 年级=new JTextField(10); 年级.setEditable(false); 出生=new JTextField(10); 出生.setEditable(false); 男=new JRadioButton("男",false); 女=new JRadioButton("女",false);AGE); .部分源代码省略. if(ok=JOptionPane.YES_OPTION) 基本信息表.remove(number); try outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年品牌策划经理竞聘考试回顾与指导
- 2025年公办学校历史教师招聘笔试技巧与指南
- 2025年市场营销经理招聘笔试模拟题及面试技巧
- 2025年农村手工艺合作社档案员招聘考试题库
- 2025年初级美容师技能考试模拟题及答案解析
- 插花花艺师基础考核试卷及答案
- 电器附件制造工作业指导书
- 2025年氟炭漆项目立项申请报告
- 美业专业知识直播培训课件
- 2025-2030中国游戏账号交易平台监管政策与市场规范化报告
- 餐饮加盟协议合同书
- 事业单位招聘综合类必看考点《管理常识》试题解析(2023年)
- T CEC站用低压交流电源系统剩余电流监测装置技术规范
- 办理宽带拆机委托书
- JJG 677-2006光干涉式甲烷测定仪
- 2024建筑工程监理表
- 胸部肿瘤放疗讲课
- 空乘服务语言艺术与播音技巧全套教学课件
- 小米公司物流与供应链管理案例分析课件
- 《工业视觉基础知识》课件
- 家长进课堂金融知识讲座
评论
0/150
提交评论