


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、需求分析1. 实现对班级和学生基本资料的录入,包括学生的学号, 姓名,性别,所学专业,家庭住址以及出生年月等。2. 能够实现对班级学生基本资料的修改。3. 根据学号对学生资料进行查询。4. 能够删除学生的资料。二、概要设计根据本次课程设计的目的和以上的问题描述,把该班级管理系统分为五个模块:录入模块 ( StudentSituation)、 查 询 模 块 ( Inques )、 删 除 模 块 ( Delete ) 和 修 改 模 块( ModifySituation )。各个模块包括对学生学号 , 姓名 , 所学专业 , 家庭住址 , 出生日期等信息的操作。系统的结构图如图一:姓名学号
2、学生信息专业家庭住址出生日期删除班级管理系统查询录入修改图 1 系统结构图三、总体设计本班级管理系统共有6 个 java源文件。类之间的主要关系如下图所示:StudentManager(主类 )StudentSituationInquesDeleteModiifySituationStuden图 2 类之间的主要关系各主类的主要作用如下:该 java 文件的类负责创建班级学生管理系统的主窗口,该类包含main 方法,程序从该类开始执行。该文件的类负责创建班级学生管理系统的学生信息录入界面。该文件的类负责创建班级学生管理系统的学生基本信息修改界面。该文件的类负责创建班级学生管理系统的学生基本信息
3、查询界面。该文件的类负责创建班级学生管理系统的学生信息删除界面。负责创建存放学生信息的对象。四、详细设计1. 管理系统主窗口成员变量表 1-1主要成员变量成员变量描述基本信息录入基本信息修改变量类型StudentSituationModifySituation变量名称基本信息录入基本信息修改基本信息查询Inquest基本信息查询基本信息删除Delete基本信息删除菜单选项JMenuItem录入,修改,查询,删除存基本信息的散列表Hashtable基本信息存放散列表的文件Filefile方法表 1-2 主要方法名称功能备注StudentManager创建程序主窗口构造方法actionPerfor
4、med处理 ActionEvent事件接口方法main程序开始运行界面截图:2. 基本信息录入成员变量表 2-1 主要成员变量属性描述变量类型变量名称存放“学生”对象的散列表Hashtable基本信息表输入学生基本信息的文本JTextField学号 , 姓名 ,所学专业 , 家庭存放学生信息的对象Student住址, 出生学生方法表 2-2主要方法名称StudentSituationactionPerformed功能创建学生信息录入界面处理 ActionEvent事件备注构造方法接口方法录入界面截图:3. 基本信息查询成员变量表 3-1主要成员变量属性描述存放“学生”对象的散表显示学生基本信息
5、的文本变量类型HashtableJTextField变量名称基本信息表学号 , 姓名 , 所学专业址, 出生, 家庭住方法表 3-2主要方法名称InquestactionPerformed处理功能创建查询界面ActionEvent事件备注构造方法接口方法查询截图:4. 基本信息修改成员变量表4-1主要成员变量描述存放“学生”对象的散列表输入学生基本信息的文本条变量类型HashtabelJTextField变量名称基本信息表学号 , 姓名 , 所学专业住址,出生, 家庭方法表 4-2主要方法名称ModifySituationactionPerform功能创建学生信息修改界面处理 ActionEv
6、ent事件备注构造方法接口方法修改界面截图:5. 基本信息删除成员变量表 5-1主要成员变量描述变量类型变量名称存放“学生”对象的散列表Hashtable基本信息表显示学生基本信息的文本条JTextField学号 , 姓名 , 所学专业 , 家庭住址,出生方法表 5-2主要方法名称功能备注Delete创建学生信息删除界面构造方法actionPerformed处理 ActionEvent接口方法删除界面截图6. 学生对象成员变量表 6-1主要成员变量描述变量类型变量名称学号StringNumber姓名StringName所学专业StringDiscipling家庭住址StringGrade出生S
7、tringBorth性别StringSex方法表 6-2主要方法名称功能Setnumber设置学号Setnumber获取学号Setname设置姓名Setname获取姓名setDisciping设置所学专业setDisciping获取所学专业setGrade设置家庭住址setGrade获取家庭住址setBorth设置出生setBorth获取出生setSex设置性别setSex获取性别五、总结与展望课程设计是培养学生综合运用所学知识, 发现 , 提出 , 分析和解决实际问题, 锻炼实践能力的重要环节 , 是对学生实际工作能力的具体训练和考察过程.本次课程设计虽然很辛苦,实在是受益匪浅。本来这门课的
8、知识学的就不够扎实,本次课程设计, 在设计过程中碰到了很多问题, 刚开始要设计的时候,还真不知道从哪里下手但最终在图书、 同学和老师的帮助下都得到了解决, 让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通, 起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。 理论和实践的相结合是学习最有效的方法。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相
9、结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。不过,在用 Java 开发类似的软件时,发现在图形界面的设计方面远没有用VB,VF等开发工具简单。参考文献:附录:1. 主界面代码import .*;import .*;import .*;importclassStudentManagerextendsJFrameimplementsActionListenerStudentSituationModifySituationInquestDelete基本信息录入基本信息修改基本信息查询基本信息删除=null;=null;=null;=null;JMenu
10、Bar 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 JMen
11、uItem(" 查询学生基本信息");删除 =new JMenuItem(" 删除学生基本信息");退出 =new JMenuItem(" 退出本系统 ");退出 .addActionListener(new ActionListener()public void actionPerformed(ActionEvent event)(0););bar=new JMenuBar();fileMenu=new JMenu("菜单选项");(录入 );();(修改 );();(查询 );();(删除 );();();(退
12、出 );(fileMenu);setJMenuBar(bar);label=new JLabel("欢迎进入班级管理系统!",;(new Font("隶书 ",30);基本信息 =new Hashtable();录入 .addActionListener(this);修改 .addActionListener(this);查询 .addActionListener(this);删除 .addActionListener(this);card=new CardLayout();con=getContentPane();pCenter=new JPanel(
13、);(card);file=new File("学生基本信息.txt");if(!()tryFileOutputStream out=new FileOutputStream(file);ObjectOutputStreamobjectOut=newObjectOutputStream(out);(基本信息 );();();catch(IOException e)基本信息录入=new StudentSituation(file);基本信息修改=new ModifySituation(file);基本信息查询=new Inquest(this,file);基本信息删除=new
14、 Delete(file);("欢迎语界面 ",label);("录入界面 ", 基本信息录入 );("修改界面 ", 基本信息修改 );("删除界面 ", 基本信息删除 );(pCenter,;();addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e)(0););setVisible(true);setBounds(100,50,420,380);validate();public void actionPer
15、formed(ActionEvent e)if()=录入 )(pCenter,"录入界面 ");else if()=修改 )(pCenter,"修改界面 ");else if()=查询 )基本信息查询 .setVisible(true);else if()=删除 )(pCenter,"删除界面 ");public static void main(String args)new StudentManager();2. 录入代码import .*; import .*;import .*;import .*;public class S
16、tudentSituation 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
17、file=null;public StudentSituation(File 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);男 );女 );录入 =new JButton
18、("录入 ");重置 =new JButton("重置 ");录入 .addActionListener(this);重置 .addActionListener(this);Box box1=();(new JLabel("学号 :",);(学号 );Box box2=();(new JLabel("姓名 :",);(姓名 );Box box3=();(new JLabel("性别 :",);(男 );(女 );Box box4=();(new JLabel("所学专业 :"
19、,);(所学专业 );Box box5=();(new JLabel("家庭住址 :",);(家庭住址 );Box box6=();(new JLabel("出生 :",);(出生 );Box boxH=();(box1);(box2);(box3);(box4);(box5);(box6);();JPanel pCenter=new JPanel();(boxH);setLayout(new BorderLayout();add(pCenter,;JPanel pSouth=new JPanel();(录入 );(重置 );add(pSouth,;va
20、lidate();public void actionPerformed(ActionEvent e)if()=录入 )String number=""number=学号 .getText();if()>0)try inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表 =(Hashtable)();();();catch(Exception ee)if(基本信息表 .containsKey(number)String warning="(this,warning,该生
21、基本信息已存在警告 ",;, 请到修改页面修改!"elseString m="intok=(this,m,"确认 ",;if(ok=String name=String discipling=String grade=String borth=String sex=null;if(基本信息将被录入!"姓名 .getText();所学专业 .getText();家庭住址 .getText();出生 .getText();男 .isSelected()sex=男 .getText();elsesex=女 .getText();学生 =ne
22、w Student();学生 .setNumber(number);学生 .setName(name);学生 .setDiscipling(discipling);学生 .setGrade(grade);学生 .setBorth(borth);学生 .setSex(sex);tryoutOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);(基本信息表基本信息表.put(number,);学生 );();();学号 .setText(null);姓名 .setText(null);所学专业 .setText(n
23、ull);家庭住址 .setText(null);出生 .setText(null);catch(Exception ee)elseString warning="(this,warning,"必须要输入学号警告 ",;!"if()=重置 )学号 .setText(null);姓名 .setText(null);所学专业 .setText(null);家庭住址 .setText(null);出生 .setText(null);3. 查询代码.*;import .*;import .*;import .*;public class Inquest exte
24、nds 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);=file;学号 =new JTextF
25、ield(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 JRa
26、dioButton(" 男 ",false);女 =new JRadioButton(" 女 ",false); group=new ButtonGroup();(男 );女 );Box box1=();(new JLabel("输入要查询的学号:",);(学号 );(查询 );Box box2=();(new JLabel("姓名 :",);(姓名 );Box box3=();(new JLabel("性别 :",);(男 );女 );Box box4=();(new JLabel("
27、;所学专业 :",);(所学专业 );Box box5=();(new JLabel("家庭住址 :",);(家庭住址 );Box box6=();(new JLabel("出生 :",);(出生 );Box boxH=();(box1);(box2);(box3);(box4);(box5);(box6);();JPanel pCenter=new JPanel();(boxH);Container con=getContentPane();(pCenter,;();setVisible(false);setBounds(100,200,36
28、0,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()=查询 |()=学号 )String number=""number=学号 .getText();if()>0)try
29、inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表 =(Hashtable)();();();catch(Exception ee)if(基本信息表 .containsKey(number)Student stu=(Student)基本信息表 .get(number);姓名 .setText();所学专业 .setText();家庭住址 .setText();出生 .setText();if().equals("男 ")男 .setSelected(true);else女 .set
30、Selected(true);elseString warning="(this,warning,"该学号不存在警告 ",;!"elseString warning="(this,warning,"必须要输入学号警告 ",;!"4. 修改代码import .*; import .*;import .*;import .*;public class ModifySituation extends JPanel implements ActionListener Hashtable基本信息表 =null;JTextFi
31、eld学号,姓名,所学专业 ,家庭住址 ,出生;JRadioButton男, 女;ButtonGroup group=null;JButton开始修改 , 录入修改 , 重置 ;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public ModifySituation(File file)=file;学号 =new JTextField(10);姓名 =new JTextField
32、(10);所学专业 =new JTextField(10);家庭住址 =new JTextField(10);出生 =new JTextField(10);group=new ButtonGroup();(男 =new JRadioButton("男 ",true);女 =new JRadioButton("女 ",false);男 );女 );开始修改 =new JButton("开始修改录入修改 =new JButton("录入修改录入修改 .setEnabled(false);重置 =new JButton("重置 &
33、quot;);学号 .addActionListener(this);开始修改 .addActionListener(this);录入修改 .addActionListener(this);重置 .addActionListener(this);");");Box box1=();(new JLabel("输入要修改信息的学号:",);(学号 ); 开始修改);Box box2=();(new JLabel("(新 ) 姓名 :",);(姓名 );Box box3=();(new JLabel("(新 ) 性别 :"
34、;,);(男 );女 );Box box4=();(new JLabel("(新 ) 所学专业:",);(所学专业);Box box5=();(new JLabel("(新 ) 家庭住址 :",);(家庭住址 );Box box6=();(new JLabel("(新 ) 出生 :",);(出生 );Box boxH=();(box1);(box2);(box3);(box4);(box5);(box6);();JPanel pCenter=new JPanel();(boxH);setLayout(new BorderLayout(
35、);add(pCenter,;JPanel pSouth=new JPanel();(录入修改 );(重置 );add(pSouth,;validate();public void actionPerformed(ActionEvent e)if()=开始修改 |()=学号 )String number=""number=学号 .getText();if()>0)try inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表 =(Hashtable)();();();catch(
36、Exception ee)if(基本信息表 .containsKey(number)录入修改 .setEnabled(true);Student stu=(Student)基本信息表 .get(number);姓名 .setText();所学专业 .setText();家庭住址 .setText();出生 .setText();if().equals("男 ")男 .setSelected(true);else女 .setSelected(true);else录入修改 .setEnabled(false);String warning="(this,warning
37、,"该学号不存在警告 ",;!"学号 .setText(null);姓名 .setText(null);所学专业 .setText(null);家庭住址 .setText(null);出生 .setText(null);else录入修改 .setEnabled(false);String warning="(this,warning,"必须要输入学号警告 ",;!"学号 .setText(null);姓名 .setText(null);所学专业 .setText(null);家庭住址 .setText(null);出生 .s
38、etText(null);else if()=录入修改 )String number=""number=学号 .getText();if()>0)try inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)();();();catch(Exception ee)if(基本信息表.containsKey(number)String question="该生基本信息已存在(this,question,"警告 ",;String
39、m="基本信息将被修改!"int ok=(this,m,"确认 ",;if(ok=, 您想修改他( 她 ) 的基本信息吗?"String name=姓名 .getText();String discipling=String grade=String borth=所学专业 .getText();家庭住址 .getText();出生 .getText();String sex=null;if(男 .isSelected()sex=男 .getText();elsesex=女 .getText();Student学生 =new Student();
40、学生 .setNumber(number);学生 .setName(name);学生 .setDiscipling(discipling);学生 .setGrade(grade);学生 .setBorth(borth);学生 .setSex(sex);tryoutOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);(基本信息表基本信息表.put(number,);学生 );();();学号 .setText(null);姓名 .setText(null);所学专业 .setText(null);家庭住址 .s
41、etText(null);出生 .setText(null);catch(Exception ee)录入修改 .setEnabled(false);else if(ok=录入修改 .setEnabled(true);elseString warning="该学号没有基本信息, 不能修改!"(this,warning,"警告 ",;录入修改.setEnabled(false);elseString warning="(this,warning,"必须要输入学号警告 ",;!"录入修改 .setEnabled(fals
42、e);if()=重置 )学号 .setText(null);姓名 .setText(null);所学专业 .setText(null);家庭住址 .setText(null);出生 .setText(null);5. 删除代码import .*;import .*;import .*;import .*;public class Delete extends JPanel implements ActionListenerHashtable基本信息表 =null;JTextField学号,姓名,所学专业 ,家庭住址 ,出生;JRadioButton男, 女;JButton删除 ;ButtonG
43、roup group=null;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public Delete(File 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);出生 .setEdi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论