java班级管理系统.docx

上传人:b****0 文档编号:9312338 上传时间:2023-05-18 格式:DOCX 页数:27 大小:109.87KB
下载 相关 举报
java班级管理系统.docx_第1页
第1页 / 共27页
java班级管理系统.docx_第2页
第2页 / 共27页
java班级管理系统.docx_第3页
第3页 / 共27页
java班级管理系统.docx_第4页
第4页 / 共27页
java班级管理系统.docx_第5页
第5页 / 共27页
java班级管理系统.docx_第6页
第6页 / 共27页
java班级管理系统.docx_第7页
第7页 / 共27页
java班级管理系统.docx_第8页
第8页 / 共27页
java班级管理系统.docx_第9页
第9页 / 共27页
java班级管理系统.docx_第10页
第10页 / 共27页
java班级管理系统.docx_第11页
第11页 / 共27页
java班级管理系统.docx_第12页
第12页 / 共27页
java班级管理系统.docx_第13页
第13页 / 共27页
java班级管理系统.docx_第14页
第14页 / 共27页
java班级管理系统.docx_第15页
第15页 / 共27页
java班级管理系统.docx_第16页
第16页 / 共27页
java班级管理系统.docx_第17页
第17页 / 共27页
java班级管理系统.docx_第18页
第18页 / 共27页
java班级管理系统.docx_第19页
第19页 / 共27页
java班级管理系统.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java班级管理系统.docx

《java班级管理系统.docx》由会员分享,可在线阅读,更多相关《java班级管理系统.docx(27页珍藏版)》请在冰点文库上搜索。

java班级管理系统.docx

java班级管理系统

班级管理系统

一课程设计目的

本班级管理系统软件主要用于实现用户对学生一些基本信息的常用操作,在本系统中定义了对学生基本信息进行添加,删除,查找等几个模块。

此系统是一个非常方便快捷的班级学生信息管理软件,用户可以随心所欲地添加学生信息、查询学生信息、修改学生信息,删除学生信息等等。

具体实现要求如下:

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等开发工具简单。

五各功能模块的主要代码

importjava。

awt。

*;

importjava。

awt.event.*;

importjavax.swing.*;

importjava。

io.*;

importjava。

util.*;

publicclassStudentSituationextendsJPanelimplementsActionListener

Hashtable基本信息表=null;

JTextField学号,姓名,所学专业,家庭住址,出生日期;

JRadioButton男,女;

Student学生=null;

ButtonGroupgroup=null;

JButton录入,重置;

FileInputStreaminOne=null;

ObjectInputStreaminTwo=null;

FileOutputStreamoutOne=null;

ObjectOutputStreamoutTwo=null;

Filefile=null;

publicStudentSituation(Filefile)

{

学号=newJTextField(10);

姓名=newJTextField(10);

所学专业=newJTextField(10);

家庭住址=newJTextField(10);

出生日期=newJTextField(10);

group=newButtonGroup();

男=newJRadioButton("男”,true);

女=newJRadioButton(”女",false);

group。

add(男);

group。

add(女);

录入=newJButton(”录入”);

重置=newJButton(”重置");

录入。

addActionListener(this);

重置.addActionListener(this);

Boxbox1=Box.createHorizontalBox();

box1.add(newJLabel("学号:

",JLabel.CENTER));

box1。

add(学号);

Boxbox2=Box.createHorizontalBox();

box2。

add(newJLabel(”姓名:

",JLabel。

CENTER));

box2.add(姓名);

Boxbox3=Box.createHorizontalBox();

box3。

add(newJLabel("性别:

",JLabel。

CENTER));

box3.add(男);

box3。

add(女);

Boxbox4=Box.createHorizontalBox();

box4.add(newJLabel("所学专业:

”,JLabel.CENTER));

box4.add(所学专业);

Boxbox5=Box。

createHorizontalBox();

box5.add(newJLabel(”家庭住址:

”,JLabel.CENTER));

box5。

add(家庭住址);

Boxbox6=Box。

createHorizontalBox();

box6。

add(newJLabel("出生日期:

”,JLabel。

CENTER));

box6.add(出生日期);

BoxboxH=Box。

createVerticalBox();

boxH。

add(box1);

boxH。

add(box2);

boxH。

add(box3);

boxH.add(box4);

boxH。

add(box5);

boxH.add(box6);

boxH。

add(Box.createVerticalGlue());

JPanelpCenter=newJPanel();

pCenter。

add(boxH);

setLayout(newBorderLayout());

add(pCenter,BorderLayout.CENTER);

JPanelpSouth=newJPanel();

pSouth。

add(录入);

pSouth。

add(重置);

add(pSouth,BorderLayout。

SOUTH);

validate();

publicvoidactionPerformed(ActionEvente)

if(e.getSource()==录入)

Stringnumber="”;

number=学号.getText();

if(number.length()>0)

try{

inOne=newFileInputStream(file);

inTwo=newObjectInputStream(inOne);

基本信息表=(Hashtable)inTwo.readObject();

inOne。

close();

inTwo。

close();

catch(Exceptionee)

if(基本信息表。

containsKey(number))

{

Stringwarning=”该生基本信息已存在,请到修改页面修改!

”;

JOptionPane。

showMessageDialog(this,warning,”警告",JOptionPane.WARNING_MESSAGE);

}

else

{

Stringm=”基本信息将被录入!

”;

intok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,

}}

importjava.awt.*;

importjava.awt。

event。

*;

importjavax。

swing。

*;

importjava.io。

*;

importjava。

util.*;

publicclassInquestextendsJDialogimplementsActionListener

Hashtable基本信息表=null;

JTextField学号,姓名,所学专业,家庭住址,出生日期;

JRadioButton男,女;

JButton查询;

ButtonGroupgroup=null;

FileInputStreaminOne=null;

ObjectInputStreaminTwo=null;

Filefile=null;

publicInquest(JFramef,Filefile)

super(f,”查询对话框”,false);

this.file=file;

学号=newJTextField(10);

查询=newJButton(”查询");

学号.addActionListener(this);

查询.addActionListener(this);

姓名=newJTextField(10);

姓名.setEditable(false);

所学专业=newJTextField(10);

所学专业.setEditable(false);

家庭住址=newJTextField(10);

家庭住址.setEditable(false);

出生日期=newJTextField(10);

出生日期。

setEditable(false);

男=newJRadioButton("男”,false);

女=newJRadioButton("女”,false);

group=newButtonGroup();

group。

add(男);

publicvoidactionPerformed(ActionEvente)

姓名.setText(null);

所学专业.setText(null);

家庭住址。

setText(null);

出生日期。

setText(null);

if(e。

getSource()==查询||e.getSource()==学号)

{

Stringnumber=””;

number=学号。

getText();

if(number.length()〉0)

try{

inOne=newFileInputStream(file);

inTwo=newObjectInputStream(inOne);

基本信息表=(Hashtable)inTwo.readObject();

inOne.close();

inTwo。

close();

catch(Exceptionee)

if(基本信息表.containsKey(number))

{

Studentstu=(Student)基本信息表。

get(number);

姓名.setText(stu。

getName());

所学专业.setText(stu.getDisciping());

家庭住址.setText(stu。

getGrade());

出生日期。

setText(stu。

getBorth());

Stringwarning=”该学号不存在!

”;

Stringwarning=”必须要输入学号!

”;

JOptionPane.showMessageDialog(this,warning,”警告",JOptionPane.WARNING_MESSAGE);

}

importjava.awt.*;

importjava。

awt.event。

*;

importjavax。

swing。

*;

importjava.io.*;

importjava。

util。

*;

publicclassDeleteextendsJPanelimplementsActionListener

Hashtable基本信息表=null;

JTextField学号,姓名,所学专业,家庭住址,出生日期;

JRadioButton男,女;

JButton删除;

Bu

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2