版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.班级管理系统一课程设计目的本班级管理系统软件主要用于实现用户对学生一些基本信息的常用操作,在本系统中定义了对学生基本信息进行添加,删除,查找等几个模块。 此系统是一个非常方便快捷的班级学生信息管理软件,用户可以随心所欲地添加学生信息、查询学生信息、修改学生信息,删除学生信息等等。具体实现要求如下:1) 能够实现对班级学生基本资料的录入,包括学生的学号,姓名,性别,所学专业,家庭住址以及出生年月等。2) 能够实现对学生基本资料的修改。3) 根据学号对学生资料进行查询。4) 能够删除某些学生的资料。二 设计方案1 设计概述设计一个班级管理系统,能够实现对学生基本资料的录入,包括学生的学号,姓名,
2、性别,所学专业,家庭住址以及出生年月等;能够实现对学生基本资料的修改;根据学号对学生资料进行查询;能够删除某些学生的资料。2 需求分析2.1系统结构图根据本次课程设计的目的和以上的问题描述, 把该班级管理系统分为五个模块:录入模块( StudentSituation )、查询模块( Inques )、删除模块( Delete )和修改模块( ModifySituation )。各个模块包括对学生学号 , 姓名 , 所学专业 , 家庭住址 , 出生日期等信息的操作。系统结构图如下:.姓名学号学生信息专业家庭住址出生日期删除班级管理系统查询录入修改图一 系统结构图2.2系统主要类定义由于在本班级管
3、理系统中各个模块操作的变量和方法大体相同,在程序中,录入模块( StudentSituation)、查询模块( Inques )、删除模块( Delete )和修改模块( ModifySituation)所操作的变量都是学生的学号,姓名,性别,所学专业,家庭住址以及出生年月等,所以把这四个模块都定义为主类( StudentManager )的子类。在该设计中, 由于没有用数据库对用户所录入的信息进行存储, 所以又定义了录入模块 (StudentSituation )的一个子类 , 该类可以存储用户所输入的学生信息, 也可以接收用户对信息的修改, 而当用户删除学生信息时,该子类删除该信息。所以该
4、系统中共有 6 个 java 源文件,类之间的主要关系如下图所示:StudentManager( 主类 )StudentSituationInquesDeleteModiifySituationStudent图二 类之间的关系图.各主类的主要作用如下:1).StudentManager.java该 java 文件的类负责创建班级学生管理系统的主窗口。该类包含main 方法, main 方法是程序执行的入口,即程序从该类开始执行。2).StudentStituation.java该文件的类负责创建班级学生管理系统的学生信息录入界面。3).ModifySituation.java该文件的类负责创建
5、班级学生管理系统的学生基本信息修改界面。4).Inquest.java该文件的类负责创建班级学生管理系统的学生基本信息查询界面。5).Delete.java该文件的类负责创建班级学生管理系统的学生信息删除界面。6).Student.java负责创建存放学生信息的对象。2.3 功能需求根据上述的信息管理系统的业务流程、要求以及所要实现的目标,我们可以拟出以下需求目标:( 1)建立学生档案的管理和维护。实现计算机自动化管理体制。( 2)建立学生成绩管理机制,在计算机的支持下快速的完成学生成绩的查询和修改。( 3)建立课程设置管理,在计算机的支持下实现课程的添加、删除、修改。( 4)建立班级设置管理
6、,在计算机的支持下实现班级的添加、删除和修改。( 5)实现系统的权限设置管理,保证系统安全性。根据系统的需求分析,得到本系统的功能要求如下:( 1)班级、课程的设置管理:学校的教务秘书可以根据本校具体情况在每学期开始时设置所需班级数量和人数。并设置本学期的课程。( 2)权限管理:为了很好的保证系统的安全性,学校相关负责人可以设置不同类型的人员的权限。( 3)学生档案管理:学生档案的数量十分庞大,教务管理人员进行新生入学的档案录入及更改。其中包括学生个人信息的修改。( 4)学生成绩管理:教务管理人员可以查询和修改学生的历年考试成绩,掌握学生学习情况,作为评定学生素质的数据依据。3 详细设计3.1
7、主类 StudentManager.java该 java 文件的类负责创建班级学生管理系统的主窗口。该类包含 main方法, main 方法是程序执行的入口,即程序从该类开始执行。在该主类StudentManager.java所包含的主要方法和主要成员变量如表1 和表 2 所.示:表 1主要方法名称功能备注StudentManager创建程序主窗口构造方法actionPerformed处理 ActionEvent事件接口方法main系统主方法 , 程序开始行系统主方法表 2 主要成员变量成员变量描述变量类型变量名称基本信息录入界面StudentSituation基本信息录入基本信息修改界面Mo
8、difySituation基本信息修改基本信息查询界面Inquest基本信息查询基本信息删除界面Delete基本信息删除菜单选项JMenuItem录入,修改,查询,删除存基本信息的散表Hashtable基本信息存放散列表的文件Filefile3.2录入界面 StudentStituation.java该文件的类负责创建班级学生管理系统的学生信息录入界面,该界面包括对学生学号 , 姓名 , 所学专业 , 家庭住址,出生日期的录入,在该类中定义了两个方法创建学生信息录入界面(StudentSituation),此方法属于一个构造方法;处理ActionEvent事件( actionPerformed
9、 ),这是一个接口方法。该类的主要成员变量和主要方法如表3和表 4所示:表 3 主要成员变量属性描述变量类型变量名称“学生 ” 对象的散列表Hashtable基本信息表学生基本信息的文本JTextField学号 , 姓名 , 所学专业等学生信息的对象Student表 4 主要方法定义名称功能备注StudentSituation创建学生信息录入面构造方法actionPerformed处理 ActionEvent件接口方法3.3 查询界面 Inquest.java该文件的类负责创建班级学生管理系统的学生基本信息查询界面,在该类中所操作的数据成员变量与录入界面相同,也包括学生学号,姓名,所.学专业
10、, 家庭住址,出生日期。在该类中定义了一个构造方法创建查询界面( Inquest ),和一个接口方法( actionPerformed )该类的主要成员变量和主要方法如表 5 和表 6 所示:表 5 主要成员变量属性描述变量类型变量名称存放“学生”对象的表Hashtable基本信息表显示学生基本信息文本JTextField学号 , 姓名 , 所学专业等表 6 主要方法定义名称功能备注Inquest创建查询界面构造方法actionPerformed处理 ActionEvent事件接口方法3.4修改界面 ModifySituation.java该文件的类负责创建班级学生管理系统的学生基本信息修改界
11、面,在该类中可以对各个成员变量进行修改,可以修改学生学号,姓名,所学专业,家庭住址及出生日期,同样在该类中也创建了一个构造方法和接口方法:创建学生信息修改界面( ModifySituation)和处理 ActionEvent 事件( actionPerform)。主要的成员变量如表7 所示,主要方法如表8 所示:表 7 主要成员变量描述变量类型变量名称存放“学生”对象的散列Hashtabel基本信息表表输入学生基本信息的文本JTextField学号 , 姓名 , 所学专业等条表 8 主要方法名称功能备注ModifySituation创建学生信息修改界面构造方法actionPerform处理 A
12、ctionEvent事件接口方法3.5删除界面 Delete.java该文件的类负责创建班级学生管理系统的学生信息删除界面。当用户要删除某一个学生的信息时,输入要删除的学生学号,这时系统会提示用户是否要删除所选择的学生信息,删除后在学生信息表中会删除该学生的记录。在该类中定义的主要成员变量和主要方法如表9 和表 10 所示:.表 9 主要成员变量描述变量类型变量名称存放“学生”对象的散列Hashtable基本信息表显示学生基本信息的文本JTextField学号 , 姓名 , 所学专业等条表 10 主要方法名称功能备注Delete创建学生信息删除界面构造方法actionPerformed处理 A
13、ctionEvent接口方法3.6学生对象 Student.java负责创建存放学生信息的对象。正如前面所述,在本次课程设计所开发的系统中,其他模块所操作的成员变量都存放在学生对象Student.java类中,且该类是StudentSituation类的子类,也是主类的间接子类,所以该类继承了这两个类的成员变量和成员方法。在该类中所定义的主要成员变量和主要方法如表11 和表 12 所示:表 11 主要成员变量描述变量类型变量名称学号StringNumber姓名StringName所学专业StringDiscipling家庭住址StringGrade出生StringBorth性别StringSe
14、x表 12 主要方法名称功能Setnumber设置学号Setnumber获取学号Setname设置姓名Setname获取姓名setDisciping设置所学专业setDisciping获取所学专业setGrade设置家庭住址setGrade获取家庭住址setBorth设置出生setBorth获取出生.setSex设置性别setSex获取性别三程序运行结果本程序为一简单的班级管理系统,功能比较单一,但是基本功能还是实现了,能够对学生基本资料的录入,修改,删除以及查询。1 主界面窗口程序运行后在主界面窗口上有一个菜单项“菜单选项” ,该菜单包括五个下拉菜单:“录入学生基本信息” ,“修改学生基本信
15、息” ,“查询学生基本信息”,“删除学生基本信息” ,“退出系统”。程序运行的主要界面如图三所示:图三系统主窗口2 录入窗口界面进入主界面窗口后,点击“录入学生基本信息”下拉菜单项,填写完学生基本信息点击录入,在弹出的对话框中选择“是”,这样用户就可以录入学生的基本信息。具体功能演示如下图四所示:.图四录入窗口界面3 学生信息修改界面当用户想要修改某一学生的基本信息时,输入待修改学生的学号, 点击开始修改,即可对学生信息中的任意一项进行修改。当修改完成时, 点击录入修改。在如图五所示的对话框中选择“确定”,即可完成对学生信息的修改。图五学生信息修改界面4 学生信息查询界面当用户想要查询某个学生
16、的基本信息时,只需要在查询界面中输入待查询学生的学号,点击“查询”即可查询到学生的基本信息。具体功能图如图六所示 :.图六学生信息查询界面5 学生信息删除界面同样,当用户想要删除某个学生的基本信息时,也只需输入待删除学生的学号,点击“删除” ,在弹出的对话框中点击确定,即可完成对学生基本信息的删除操作。程序运行界面如图七所示图七学生信息删除界面四总结展望这次课程设计作业使我对用Java 面向对象语言编程产生了极大兴趣。通过这次课程设计也着实让自己感受到了一次编程的乐趣,从中也学到了不少知识。由于在本系统涉及到的数据对象较多,且而由于Java 面向对象设计中对异常处理的严格要求, 所以在本次课程
17、设计中深刻体会到了在程序开发中对问题的.全面考虑,如果对某个操作可能出现的异常考虑不到, 将会使程序运行中出现错误。在该 系统 中还 运用 了 Java 中所提供的两个 处理 图形 用户 界面 的类库 :java.awt 包 javax.swing 包。在所定义的几个模块中都用到了这两个包,用于设计图形用户界面。 通过对图形用户界面的设计, 对这两个包中的标签, 文本,框架及容器等类的常用方法都有了比较深刻的了解。在这次实验中,对系统中成员变量和成员方法的调用也进行了很多种尝试,已经能够相对准确的选择合适的参数形式来实现函数之间的数据传输交互了, 同时也体会到了类的继承在程序设计中的巨大优势。
18、不过,在用 Java 开发类似的软件时, 发现在图形界面的设计方面远没有用VB,VF等开发工具简单。五各功能模块的主要代码public class StudentSituation extends JPanel implements ActionListener Hashtable基本信息表 =null;JTextField学号 , 姓名 , 所学专业 , 家庭住址 , 出生日期 ;JRadioButton男, 女;Student学生 =null;ButtonGroup group=null;JButton录入,重置;FileInputStream inOne=null;ObjectInput
19、Stream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public StudentSituation(File file)学号 =new JTextField(10);姓名 =new JTextField(10);所学专业 =new JTextField(10);家庭住址 =new JTextField(10);出生日期 =new JTextField(10);group=new ButtonGroup();.男 =new JRadioButton("
20、男",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); box
21、1.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(" 所学专业 :
22、",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(bo
23、x1);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,BorderLay
24、out.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(
25、Exception ee)if(基本信息表 .containsKey(number)String warning="该生基本信息已存在, 请到修改页面修改 !"JOptionPane.showMessageDialog(this,warning,"警 告",JOptionPane.WARNING_MESSAGE);elseString m="基本信息将被录入 !"intok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,imp
26、ort java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Inquest extends JDialog implements ActionListenerHashtable基本信息表 =null;JTextField学号 , 姓名 , 所学专业 , 家庭住址 , 出生日期 ;JRadioButton 男, 女;JButton查询 ;ButtonGroup group=null;.FileInputStream inOne=null;O
27、bjectInputStream 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 JText
28、Field(10);所学专业 .setEditable(false);家庭住址 =new JTextField(10);家庭住址 .setEditable(false);出生日期 =new JTextField(10);出生日期 .setEditable(false);男 =new JRadioButton(" 男",false);女 =new JRadioButton(" 女",false);group=new ButtonGroup();group.add(男);public void actionPerformed(ActionEvent e)姓名
29、 .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.
30、close();inTwo.close();catch(Exception ee)if(基本信息表 .containsKey(number).Student stu=(Student) 基本信息表 .get(number); 姓名 .setText(stu.getName();所学专业 .setText(stu.getDisciping();家庭住址 .setText(stu.getGrade();出生日期 .setText(stu.getBorth();String warning="该学号不存在 !"String warning="必须要输入学号 !"
31、;JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);public class Delete extends JPanel implements ActionListenerHashtable基本信息表 =null;JTextField学号 , 姓名 , 所学专业 , 家庭住址 , 出生日期 ;JRadioButton男, 女;JButton删除 ;ButtonGroup group=null;FileInputStream inOne=null;FileOutputStr
32、eam 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);姓名 .setEditable(false);所学专业 =new JTextField(10);所学专业 .setEditab
33、le(false);家庭住址 =new JTextField(10);家庭住址 .setEditable(false);出生日期 =new JTextField(10);.出生日期 .setEditable(false);男 =new JRadioButton(" 男",false);女 =new JRadioButton("女",false);public void actionPerformed(ActionEvent e)if(e.getSource()=删除 |e.getSource()=学号 )String number=""
34、;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)Student stu=(Student) 基本信息表 .get(number); 姓名 .setText(stu.getName();所
35、学专业 .setText(stu.getDisciping();家庭住址 .setText(stu.getGrade();出生日期 .setText(stu.getBorth();if(stu.getSex().equals("男")男.setSelected(true);else女.setSelected(true);public void actionPerformed(ActionEvent e)if(e.getSource()=开始修改 |e.getSource()=学号 )String number="".number=学号 .getText(
36、);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)录入修改 .setEnabled(true);Student stu=(Student) 基本信息表 .get(number); 姓名 .setText(stu.getName(
37、);所学专业 .setText(stu.getDisciping();家庭住址 .setText(stu.getGrade();出生日期 .setText(stu.getBorth();if(stu.getSex().equals("男")男.setSelected(true);else女.setSelected(true);public class StudentManager extends JFrame implements ActionListenerStudentSituation基本信息录入 =null;ModifySituation基本信息修改 =null;I
38、nquest基本信息查询 =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(" 录入学生基本信息 ");修改 =
39、new JMenuItem(" 修改学生基本信息 ");查询 =new JMenuItem(" 查询学生基本信息 ");删除 =new JMenuItem(" 删除学生基本信息 ");退出 =new JMenuItem(" 退出本系统 ");退出 .addActionListener(new ActionListener()public void actionPerformed(ActionEvent event)System.exit(0);label=new JLabel("欢迎进入班级管理系统 !",label.CENTER);label.setFont(new Font(" 隶书 ",Font.BOLD,30); label.se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年工会疗休养工作实务知识题库
- 2026年经济预测与决策分析专业知识题库
- 2026年企业管理与商业经营策略分析题库
- 2026年机场安检面试常见错误与规避
- 2026年水土保持公报编制知识考核试题
- 2026年品牌传播与市场营销案例解析
- 2026年财政涉企资金直达机制与监管题库
- 2026年法律援助经济困难标准问答
- 2026年医学基础知识及临床应用题集
- 2026年村级耕地保护协管员职责练习题
- 2026年卫生高级职称面审答辩(重症医学科)副高面审经典试题及答案
- (二模)2026年合肥市高三第二次教学质量检测英语试卷(含答案)
- 2026年音乐教资考前冲刺测试卷附参考答案详解【达标题】
- 2026年北京理工大学博士英语真题及答案
- 山东中烟工业有限责任公司招聘笔试题库2026
- 客运防汛应急预案(3篇)
- 基因型知识点讲解课件
- 2026年匹克球裁判员考核题库含答案
- 公交车驾驶员的职业素养及规范
- 心内一科科室质量与安全管理小组工作记录(共27页)
- 微电子工艺-工艺集成与封装测试(共104页).ppt
评论
0/150
提交评论