收藏 分销(赏)

java班级标准管理系统.doc

上传人:快乐****生活 文档编号:2993110 上传时间:2024-06-12 格式:DOC 页数:24 大小:200.04KB 下载积分:10 金币
下载 相关 举报
java班级标准管理系统.doc_第1页
第1页 / 共24页
java班级标准管理系统.doc_第2页
第2页 / 共24页


点击查看更多>>
资源描述
班级管理系统 一 课程设计目标 本班级管理系统软件关键用于实现用户对学生部分基础信息常见操作,在本系统中定义了对学生基础信息进行添加,删除,查找等多个模块。此系统是一个很方便快捷班级学生信息管理软件,用户能够随心所欲地添加学生信息、查询学生信息、修改学生信息,删除学生信息等等。具体实现要求以下: 1)能够实现对班级学生基础资料录入,包含学生学号,姓名,性别,所学专业,家庭住址和出生年月等。 2)能够实现对学生基础资料修改。 3)依据学号对学生资料进行查询。 4)能够删除一些学生资料。 二 设计方案 1 设计概述 设计一个班级管理系统,能够实现对学生基础资料录入,包含学生学号,姓名,性别,所学专业,家庭住址和出生年月等;能够实现对学生基础资料修改;依据学号对学生资料进行查询;能够删除一些学生资料。 2 需求分析 2.1 系统结构图 依据此次课程设计目标和以上问题描述,把该班级管理系统分为五个模块:录入模块(StudentSituation)、查询模块(Inques)、删除模块(Delete)和修改模块(ModifySituation)。各个模块包含对学生学号,姓名,所学专业,家庭住址,出生日期等信息操作。系统结构图以下: 图一 系统结构图 2.2 系统关键类定义 因为在本班级管理系统中各个模块操作变量和方法大致相同,在程序中,录入模块(StudentSituation)、查询模块(Inques)、删除模块(Delete)和修改模块(ModifySituation)所操作变量全部是学生学号,姓名,性别,所学专业,家庭住址和出生年月等,所以把这四个模块全部定义为主类(StudentManager)子类。在该设计中,因为没有用数据库对用户所录入信息进行存放,所以又定义了录入模块(StudentSituation)一个子类, 该类能够存放用户所输入学生信息,也能够接收用户对信息修改,而当用户删除学生信息时,该子类删除该信息。所以该系统中共有6个java源文件,类之间关键关系以下图所表示: 图二 类之间关系图 各主类关键作用以下: 1).StudentManager.java 该java文件类负责创建班级学生管理系统主窗口。该类包含main方法,main方法是程序实施入口,即程序从该类开始实施。 2).StudentStituation.java 该文件类负责创建班级学生管理系统学生信息录入界面。 3).ModifySituation.java 该文件类负责创建班级学生管理系统学生基础信息修改界面。 4).Inquest.java 该文件类负责创建班级学生管理系统学生基础信息查询界面。 5).Delete.java 该文件类负责创建班级学生管理系统学生信息删除界面。 6).Student.java 负责创建存放学生信息对象。 2.3功效需求 依据上述信息管理系统业务步骤、要求和所要实现目标,我们能够拟出以下需求目标: (1)建立学生档案管理和维护。实现计算机自动化管理体制。 (2)建立学生成绩管理机制,在计算机支持下快速完成学生成绩查询和修改。 (3)建立课程设置管理,在计算机支持下实现课程添加、删除、修改。 (4)建立班级设置管理,在计算机支持下实现班级添加、删除和修改。 (5)实现系统权限设置管理,确保系统安全性。 依据系统需求分析,得到本系统功效要求以下: (1)班级、课程设置管理:学校教务秘书能够依据本校具体情况在每学期开始时设置所需班级数量和人数。并设置本学期课程。 (2)权限管理:为了很好确保系统安全性,学校相关责任人能够设置不一样类型人员权限。 (3)学生档案管理:学生档案数量十分庞大,教务管理人员进行新生入学档案录入及更改。其中包含学生个人信息修改。 (4)学生成绩管理:教务管理人员能够查询和修改学生历年考试成绩,掌握学生学习情况,作为评定学生素质数据依据。 3 具体设计 3.1 主类StudentManager.java 该java文件类负责创建班级学生管理系统主窗口。该类包含main方法,main方法是程序实施入口,即程序从该类开始实施。在该主类StudentManager.java所包含关键方法和关键组员变量如表1和表2所表示: 表1 关键方法 名称 功效 备注 StudentManager 创建程序主窗口 结构方法 actionPerformed 处理ActionEvent事件 接口方法 main 系统主方法,程序开始行 系统主方法 表2 关键组员变量 组员变量描述 变量类型 变量名称 基础信息录入界面 StudentSituation 基础信息录入 基础信息修改界面 ModifySituation 基础信息修改 基础信息查询界面 Inquest 基础信息查询 基础信息删除界面 Delete 基础信息删除 菜单选项 JMenuItem 录入,修改,查询,删除 存基础信息散表 Hashtable 基础信息 存放散列表文件 File file 3.2 录入界面StudentStituation.java 该文件类负责创建班级学生管理系统学生信息录入界面,该界面包含对学生学号,姓名,所学专业,家庭住址,出生日期录入,在该类中定义了两个方法创建学生信息录入界面(StudentSituation),此方法属于一个结构方法;处理ActionEvent事件(actionPerformed),这是一个接口方法。该类关键组员变量和关键方法如表3和表4所表示: 表3 关键组员变量属性 描述 变量类型 变量名称 “学生”对象散列表 Hashtable 基础信息表 学生基础信息文本 JTextField 学号,姓名,所学专业等 学生信息对象 Student 表4 关键方法定义 名称 功效 备注 StudentSituation 创建学生信息录入面 结构方法 actionPerformed 处理ActionEvent件 接口方法 3.3 查询界面Inquest.java 该文件类负责创建班级学生管理系统学生基础信息查询界面,在该类中所操作数据组员变量和录入界面相同,也包含学生学号,姓名,所学专业,家庭住址,出生日期。在该类中定义了一个结构方法创建查询界面(Inquest),和一个接口方法(actionPerformed)该类关键组员变量和关键方法如表5和表6所表示: 表5 关键组员变量属性 描述 变量类型 变量名称 存放“学生”对象表 Hashtable 基础信息表 显示学生基础信息文本 JTextField 学号,姓名,所学专业等 表6 关键方法定义 名称 功效 备注 Inquest 创建查询界面 结构方法 actionPerformed 处理ActionEvent事件 接口方法 3.4 修改界面ModifySituation.java 该文件类负责创建班级学生管理系统学生基础信息修改界面,在该类中能够对各个组员变量进行修改,能够修改学生学号,姓名,所学专业,家庭住址及出生日期,一样在该类中也创建了一个结构方法和接口方法:创建学生信息修 改界面(ModifySituation)和处理ActionEvent事件(actionPerform)。 关键组员变量如表7所表示,关键方法如表8所表示: 表7 关键组员变量 描述 变量类型 变量名称 存放“学生”对象散列表 Hashtabel 基础信息表 输入学生基础信息文本条 JTextField 学号,姓名,所学专业等 表8关键方法 名称 功效 备注 ModifySituation 创建学生信息修改界面 结构方法 actionPerform 处理ActionEvent事件 接口方法 3.5 删除界面Delete.java 该文件类负责创建班级学生管理系统学生信息删除界面。当用户要删除某一个学生信息时,输入要删除学生学号,这时系统会提醒用户是否要删除所选择学生信息,删除后在学生信息表中会删除该学生统计。在该类中定义关键组员变量和关键方法如表9和表10所表示: 表9 关键组员变量 描述 变量类型 变量名称 存放“学生”对象散列 Hashtable 基础信息表 显示学生基础信息文本条 JTextField 学号,姓名,所学专业等 表10 关键方法 名称 功效 备注 Delete 创建学生信息删除界面 结构方法 actionPerformed 处理ActionEvent 接口方法 3.6 学生对象Student.java 负责创建存放学生信息对象。正如前面所述,在此次课程设计所开发系统中,其它模块所操作组员变量全部存放在学生对象Student.java类中,且该类是StudentSituation类子类,也是主类间接子类,所以该类继承了这两个类组员变量和组员方法。在该类中所定义关键组员变量和关键方法如表11和表12所表示: 表11 关键组员变量 描述 变量类型 变量名称 学号 String Number 姓名 String Name 所学专业 String Discipling 家庭住址 String Grade 出生 String Borth 性别 String Sex 表12 关键方法 名称 功效 Setnumber 设置学号 Setnumber 获取学号 Setname 设置姓名 Setname 获取姓名 setDisciping 设置所学专业 setDisciping 获取所学专业 setGrade 设置家庭住址 setGrade 获取家庭住址 setBorth 设置出生 setBorth 获取出生 setSex 设置性别 setSex 获取性别 三 程序运行结果 本程序为一简单班级管理系统,功效比较单一,不过基础功效还是实现了,能够对学生基础资料录入,修改,删除和查询。 1 主界面窗口 程序运行后在主界面窗口上有一个菜单项“菜单选项”,该菜单包含五个下拉菜单:“录入学生基础信息”,“修改学生基础信息”,“查询学生基础信息”,“删除学生基础信息”,“退出系统”。程序运行关键界面图三所表示: 图三 系统主窗口 2 录入窗口界面 进入主界面窗口后,点击“录入学生基础信息”下拉菜单项,填写完学生基础信息点击录入,在弹出对话框中选择“是”,这么用户就能够录入学生基础信息。具体功效演示以下图四所表示: 图四 录入窗口界面 3 学生信息修改界面 当用户想要修改某一学生基础信息时,输入待修改学生学号,点击开始修改,即可对学生信息中任意一项进行修改。当修改完成时,点击录入修改。在图五所表示对话框中选择“确定”,即可完成对学生信息修改。 图五 学生信息修改界面 4 学生信息查询界面 当用户想要查询某个学生基础信息时,只需要在查询界面中输入待查询学生学号,点击“查询”即可查询到学生基础信息。具体功效图图六所表示: 图六 学生信息查询界面 5 学生信息删除界面 一样,当用户想要删除某个学生基础信息时,也只需输入待删除学生学号,点击“删除”,在弹出对话框中点击确定,即可完成对学生基础信息删除操作。程序运行界面图七所表示 图七 学生信息删除界面 四 总结展望 这次课程设计作业使我对用Java面向对象语言编程产生了极大爱好。经过这次课程设计也着实让自己感受到了一次编程乐趣,从中也学到了不少知识。 因为在本系统包含到数据对象较多,且而因为Java面向对象设计中对异常处理严格要求,所以在此次课程设计中深刻体会到了在程序开发中对问题全方面考虑,假如对某个操作可能出现异常考虑不到,将会使程序运行中出现错误。 在该系统中还利用了Java中所提供两个处理图形用户界面类库:java.awt包javax.swing包。在所定义多个模块中全部用到了这两个包,用于设计图形用户界面。经过对图形用户界面设计,对这两个包中标签,文本,框架及容器等类常见方法全部有了比较深刻了解。 在这次试验中,对系统中组员变量和组员方法调用也进行了很多个尝试,已经能够相对正确选择适宜参数形式来实现函数之间数据传输交互了,同时也体会到了类继承在程序设计中巨大优势。 不过,在用Java开发类似软件时,发觉在图形界面设计方面远没有用VB,VF等开发工具简单。 五 各功效模块关键代码 import 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; ButtonGroup group=null; JButton 录入,重置; FileInputStream inOne=null; ObjectInputStream 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("男",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)); 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)); 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.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,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 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="基础信息将被录入!"; int ok=JOptionPane.showConfirmDialog(this,m,"确定",JOptionPane.YES_NO_OPTION, }} import 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; FileInputStream inOne=null; ObjectInputStream 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 JTextField(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) { 姓名.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.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="必需要输入学号!"; JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); } } } } import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; public class Delete extends JPanel implements ActionListener { Hashtable 基础信息表=null; JTextField 学号,姓名,所学专业,家庭住址,出生日期; JRadioButton 男,女; JButton 删除; ButtonGroup group=null; FileInputStream inOne=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); 姓名.setEditable(false); 所学专业=new JTextField(10); 所学专业.setEditable(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=""; 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()); 所学专业.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(); 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()); 所学专业.setText(stu.getDisciping()); 家庭住址.setText(stu.getGrade()); 出生日期.setText(stu.getBorth()); if(stu.getSex().equals("男")) 男.setSelected(true); } else { 女.setSelected(true); } } import 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; ModifySituation 基础信息修改=null; Inquest 基础信息查询=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("录入学生基础信息"); 修改=new JMenuItem("修改学生基础信息"); 查询=new JMenuItem("查询学生基础信息"); 删除=new JMenuItem("删除学生基础信息"); 退出=new JMenuItem("退出本系统"); 退出.addActionListener(new ActionListener() { public void action
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服