课程设计任务书题目:学籍管理系统组员学号组员学号组员学号专业课程 JAVA 指导教师完成时间:2011年9月——2011年12月计算机科学系制课程设计任务书及成绩评定本学籍管理系统共有6个java源文件。
类之间的主要关系如图所示。
该java文件的类负责创建学籍管理系统主窗口。
该类含有main方法,程序从该类开始执行。
该文件的类负责创建学籍管理系统的学生信息录入界面。
该文件的类负责创建学籍管理系统的学生信息修改界面。
该文件的类负责创建学籍管理系统的学生信息查询界面。
该文件的类负责创建学籍管理系统的学生信息删除界面。
负责创建存放学生信息的对象。
1.具体设计1.1主类StudentManager1.成员变量(见下表)主要成员变量(属性)成员变量描述变量类型名称基本信息录入界面StudentSituation 基本信息录入基本信息修改界面ModifySituation 基本信息修改基本信息查询界面Inquest 基本信息查询基本信息删除界面Delete 基本信息删除菜单选项JmenuItem 录入,修改,查询,删除存放基本信息的散列表Hashtable 基本信息存放散列表的文件File file主要方法名称功能备注StudentManager 创建程序主窗口构造方法actionPerformed 处理ActionEvent事件接口方法main 程序开始运行import .*;import .*;import .*;public class StudentManager extends JFrame implements ActionListener {StudentSituation 基本信息录入=null; ddActionListener(this);修改.addActionListener(this);查询.addActionListener(this);删除.addActionListener(this);card=new CardLayout();con=getContentPane();pCenter=new JPanel();(card);file=new File("基本信息.txt");if(!()){try{FileOutputStream out=new FileOutputStream(file);ObjectOutputStream objectOut=new ObjectOutputStream(out);(基本信息);();();}catch(IOException e){}}基本信息录入=new StudentSituation(file);基本信息修改=new ModifySituation(file);基本信息查询=new Inquest(this,file);基本信息删除=new Delete(file);("欢迎语界面",label);("录入界面",基本信息录入);("修改界面",基本信息修改);("删除界面",基本信息删除);(pCenter,;();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){(0);}});setVisible(true);setBounds(100,50,420,380);validate();}public void actionPerformed(ActionEvent e){if()==录入){(pCenter,"录入界面");}else if()==修改){(pCenter,"修改界面");}else if()==查询){ etVisible(true);}else if()==删除){(pCenter,"删除界面");}}public static void main(String args[]){new StudentManager();}}1.2录入界面StudentSituation1.成员变量(见下表)主要成员变量(属性)描述变量类型名称存放“学生”对象的散列表Hashtable 基本信息表输入学生基本信息的文本条JtextField 学号,姓名,专业,年级,出生存放学生信息的对象Student 学生主要方法名称功能备注StudentSituation 创建学生录入界面构造方法actionPerformed 处理ActionEvent事件接口方法3.代码import .*;import .*;import .*;import .*;public class StudentSituation extends JPanel implements ActionListener{Hashtable 基本信息表=null; ddActionListener(this);重置.addActionListener(this);Box box1=(); Box box2Box box3Box box4Box box5Box box6etText();if()>0)ontainsKey(number))WARNING_MESSAGE);}else etText();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,学生);(基本信息表);();();学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}catch(Exception ee){}}}}else{ WARNING_MESSAGE); }}if()==重置){学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}}}1.3查询界面Inquest1.成员变量(见下表)主要成员变量(属性)描述变量类型名称存放“学生”对象的散列表Hashtable year显示学生基本信息的文本条JTextField 学号,姓名,专业,年级,出生主要方法名称功能备注Inquest 创建查询界面构造方法actionPerformed 处理ActionEvent事件接口方法3.代码import .*;import .*;import .*;import .*;public class Inquest extends JDialog implements ActionListener{Hashtable 基本信息表=null; ddActionListener(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();(男);(女);Box box1Box box2Box box3Box box4Box box5Box box6etText(null);专业.setText(null);年级.setText(null);出生.setText(null);if()==查询||()==学号){String number="";number=学号.getText();if()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)();ontainsKey(number)) et(number);姓名.setText());专业.setText());年级.setText());出生.setText());if().equals("男")){男.setSelected(true);}else{女.setSelected(true);}}else{ WARNING_MESSAGE);}}}}1.4修改界面ModifySituation1.成员变量(见下表)主要成员变量(属性)描述变量类型名称存放“学生”对象的散列表Hashtable 基本信息表输入学生基本信息的文本条JTextField 学号,姓名,专业,年级,出生2.方法(见下表)主要方法名称功能备注ModifySituation 创建学生信息修改界面构造方法actionPerformed 处理ActionEvent事件接口方法3.代码import .*;import .*;import .*;import .*;public class ModifySituation extends JPanel implements ActionListener{Hashtable 基本信息表=null; etEnabled(false);重置=new JButton("重置");学号.addActionListener(this);开始修改.addActionListener(this);录入修改.addActionListener(this);重置.addActionListener(this);Box box1=(); Box box2Box box3Box box4Box box5Box box6etText();if()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)();();();}catch(Exception ee){}if(基本信息表.containsKey(number)) etEnabled(true); Student stu=(Student)基本信息表.get(number);姓名.setText());专业.setText());年级.setText());出生.setText());if().equals("男")){男.setSelected(true);}else{女.setSelected(true);}}else etEnabled(false);String warning="该学号不存在!";(this,warning,"警告",;学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}}else etEnabled(false);String warning="必须要输入学号!";(this,warning,"警告",;学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}}else if()==录入修改){String number="";number=学号.getText();if()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)();ontainsKey(number)) etText(); String discipling=专业.getText();String grade=年级.getText();String borth=出生.getText();String sex=null;if(男.isSelected()){sex=男.getText();}else{sex=女.getText();}Student 学生=new Student();学生.setNumber(number);学生.setName(name);学生.setDiscipling(discipling);学生.setGrade(grade);学生.setBorth(borth);学生.setSex(sex);try ut(number,学生);(基本信息表);();();学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}catch(Exception ee){}录入修改.setEnabled(false);}else if(ok=={录入修改.setEnabled(true);}}else{etEnabled(false);}}else{etEnabled(false);}}if()==重置){学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}}}1.5删除界面Delete1.成员变量(见下表)主要成员变量(属性)描述变量类型名称存放“学生”对象的散列表Hashtable 基本信息表显示学生基本信息的文本条JTextField 学号,姓名,专业,年级,出生2.方法(见下表)主要方法名称功能备注Delete 创建学生信息删除界面构造方法actionPerformed 处理ActionEvent事件接口方法3.代码import .*;import .*;import .*;import .*;public class Delete extends JPanel implements ActionListener{Hashtable 基本信息表=null; ddActionListener(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();(男);(女);Box box1=(); Box box2Box box3Box box4Box box5Box box6etText();if()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)();ontainsKey(number)) et(number);姓名.setText());专业.setText());年级.setText());出生.setText());if().equals("男")){男.setSelected(true);}else{女.setSelected(true);}String m="确定要删除该学号及全部信息吗";emove(number);try{outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);(基本信息表);();();学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}catch(Exception ee){}}else if(ok=={学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}}else{ //如果不存在该生的基本信息,弹出警告对话框String warning="该学号不存在!";(this,warning,"警告",;}}else{ //如果学号输入框内容为空,弹出警告对话框String warning="必须要输入学号!";(this,warning,"警告",;}}}}1.6学生对象Student1.成员变量(见下表)主要成员变量(属性)描述变量类型名称学号String number姓名String name专业String discipling 年级String grade出生String borth性别String sex主要方法名称功能备注setNumber 设置学号getNumber 获取学号setName 设置姓名getName 获取姓名setDiscipling 设置专业getDiscipling 获取专业setGrade 设置年级getGrade 获取年级setBorth 设置出生getBorth 获取出生setSex 设置性别getSex 获取性别3.代码{String number,name,discipling,grade,borth,sex;public Student(){}public void setNumber(String number){=number;}public String getNumber(){return number;}public void setName(String name){=name;}public String getName(){return name;}public void setDiscipling(String discipling) {=discipling;}public String getDisciping(){return discipling;}public void setGrade(String grade){=grade;}public String getGrade(){return grade;}public void setBorth(String borth){=borth;}public String getBorth(){return borth;}public void setSex(String sex){=sex;}public String getSex(){return sex;}}4.7运行效果系统主窗口学生信息录入界面学生信息查询界面学生信息修改界面学生信息删除界面实验总结:通过本次试验,基本应用了自己所学过的所有知识,经过不断的努力修改终于完成了这个程序,不仅加强了自己的相关知识,更进一步认识到自己的不足。