《java课程设计学生信息管理系统(共19页).doc》由会员分享,可在线阅读,更多相关《java课程设计学生信息管理系统(共19页).doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上Java程序设计课程设计 目 录 1.1学生信息系统结构图1。1.3 Java源文件及其功能2。5.81012.13.15163.3 查询信息界面163.3 删除信息界面17程序总结1717一、总体设计1.1学生信息系统结构图学生信息管理系统查询学生信息删除学生信息修改学生信息录入学生信息删除学号查询学号修改年级修改专业修改姓名录入学号修改生日录入年级出生日期录入姓名录入专业录入学号 删除专业删除姓名显示生日显示年级显示专业显示姓名删除生日删除年级 学生信息系统分析结构图1.2本系统的主要功能运行该系统成功后,会出现一个欢迎使用的主界面,上面的菜单选项,会弹出4个子菜
2、单分别是录入基本信息、修改基本信息、查询基本信息、删除基本信息。点击它们会出现不同的界面,分别有不同的功能:1. StudentManager.java 该类负责创建学生信息管理系统的主窗口,该类还有main方法,程序从该类开始执行。 2. StudentSituation.java 该类创建的对象是StudentManager类的重要成员之一,负责提供录入、重置学生基本信息的界面。 3. ModifySituation.java 该类创建的对象是StudentManager类的重要成员之一,负责提供修改学生基本信息的界面。4.Delete.java该类创建的对象是StudentManager
3、类的重要成员之一,负责提供删除学生基本信息的界面。5.inquest.java创建的对象是StudentManager类的重要成员之一,该类负责提供查询学生基本信息的界面。6.Student.java该类创建的对象是StudentManager类的重要成员之一,该类在做上面操作时可以返回学生的基本信息,主要起到一个返回的作用。本系统是基于数据库的学生信息管理系统,实现了连接数据库,录入、修改、查询、删除学生信息的功能。1.3 Java源文件及其功能1.icon.jpg该文件是窗口最小化时的窗口图标,StudentSituation需要调用该文件。 2.专业.txt该文件为专业组合的组合键提供下
4、拉菜单的内容,StudentSituation和ModifySituation调用该文件。二、详细设计2.1主类StudentManager表2-1 主要成员变量(属性)成员变量描述变量类型名称面板StudentSituationNULL面板ModifySituationNULL面板inquest NULL 面板DeleteNULL 菜单栏JMenuBarbar菜单组JMenufileMenu菜单项JMenuItemStudentSituation,ModifySituationInquest, Delete布局管理器CardLayoutcard表2-2 主要方法方法名称返回类型功能备注Stu
5、dentManager无类型创建窗口构造方法actionPerformed无类型处理响应事件继承自父类抽象方法main无类型执行程序程序的主函数源代码StudentManager.javaimport 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;
6、ModifySituation 基本信息修改=null; Inquest 基本信息查询=null; Delete 基本信息删除=null; JMenuBar bar; JMenu fileMenu; JMenuItem 录入,修改,查询,删除; Container con=null; Hashtable 基本信息=null; File file=null; CardLayout card=null; JLabel label=null; JPanel pCenter; public StudentManager() 录入=new JMenuItem(录入基本信息); 修改=new JMenuI
7、tem(修改基本信息); 查询=new JMenuItem(查询基本信息); 删除=new JMenuItem(删除基本信息); bar=new JMenuBar(); fileMenu=new JMenu(菜单选项); 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(n
8、ew Font(楷体, Font.BOLD, 22); label.setForeground(Color.black); 基本信息=new Hashtable(); 录入.addActionListener(this); 修改.addActionListener(this); 查询.addActionListener(this); 删除.addActionListener(this); card=new CardLayout(); con=getContentPane(); pCenter=new JPanel(); pCenter.setLayout(card); file=new Fil
9、e(基本信息.txt); if(!file.exists() try FileOutputStream out=new FileOutputStream(file); ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(基本信息); objectOut.close(); out.close(); catch(IOException e) 基本信息录入=new StudentSituation(file); 基本信息修改=new ModifySituation(file); 基本信息查询=
10、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)
11、; ); 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,删除界
12、面); public static void main(String args) new StudentManager(); 2.2类StudentSituation表2-3 主要成员变量成员变量描述变量类型名称Hashtable对象类型HashtableNULL文本域JTextField学号、姓名、专业、年级、出生组合框JComboBoxSmajor单选框ButtonGroup男、女按钮多斥作用域ButtonGroupgroup按钮JButton录入、重置表2-4 主要方法方法名称返回类型功能备注StudentSituation无类型创建录入学生信息界面构造方法actionPerformed
13、无类型处理响应事件继承自父类抽象方法源代码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 男,女; Student 学生=null; Butt
14、onGroup 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 JT
15、extField(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(学
16、号:,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);
17、 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.ad
18、d(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 actionPerfor
19、med(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 warnin
20、g=该生基本信息已存在,请到修改页面修改!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); else String m=基本信息将被录入!; int ok=JOptionPane.showConfirmDialog(this,m,确认,JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE); if(ok=JOptionPane.YES_OPTION) String name=姓名.getText(); String disci
21、pling=专业.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 outO
22、ne=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 war
23、ning=必须要输入学号!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); if(e.getSource()=重置) 学号.setText(null); 姓名.setText(null); 专业.setText(null); 年级.setText(null); 出生.setText(null); 表2-5 主要成员变量成员变量描述变量类型名称Hashtable对象类型HashtableNULL文本域JTextField学号、姓名、专业、年级、出生组合框JComboBoxSmajor单选框B
24、uttonGroup男、女按钮多斥作用域ButtonGroupgroup按钮JButton开始修改、录入修改、重置表2-6 主要方法方法名称返回类型功能备注ModifySituation无类型创建修改学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法clearMess无类型清除文本框内容无8核心源代码ModifySituation.javapublic class ModifySituation extends JPanel implements ActionListener Hashtable 基本信息表=null; JTextField 学号,姓名,专业
25、,年级,出生; JRadioButton 男,女; 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(1
26、0); 专业=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); 重置=new JButton(重置); 学号.addActionListener(this
27、); 开始修改.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); else
28、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()=重置) 学号.setText(null); 姓名.setText(null); 专业.setText
29、(null); 年级.setText(null); 出生.setText(null); 表2-7主要成员变量成员变量描述变量类型名称Hashtable对象类型Hashtable inquest文本域JTextField学号,姓名,专业,年级,出生启动并执行打印作业PrintJobpri单选框ButtonGroup男,女按钮多斥作用域ButtonGroupgroup按钮JButton查询表2-8主要方法方法名称返回类型功能备注inquest无类型创建录入学生信息界面构造方法actionPerformed无类型处理响应事件继承自父类抽象方法核心源代码inquest.javaimport java.
30、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) .部分源代码省略. inOne.close(); inTwo.close(); catch(Exception ee)