JAVA学生管理系统.docx
- 文档编号:6760598
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:35
- 大小:31.25KB
JAVA学生管理系统.docx
《JAVA学生管理系统.docx》由会员分享,可在线阅读,更多相关《JAVA学生管理系统.docx(35页珍藏版)》请在冰豆网上搜索。
JAVA学生管理系统
1、需求分析
1.实现对班级和学生基本资料的录入,包括学生的学号,姓名,性别,所学专业,家庭住址以及出生年月等。
2.能够实现对班级学生基本资料的修改。
3.根据学号对学生资料进行查询。
4.能够删除学生的资料。
2、概要设计
根据本次课程设计的目的和以上的问题描述,把该班级管理系统分为五个模块:
录入模块(StudentSituation)、查询模块(Inques)、删除模块(Delete)和修改模块(ModifySituation)。
各个模块包括对学生学号,姓名,所学专业,家庭住址,出生日期等信息的操作。
系统的结构图如图一:
图1系统结构图
三、总体设计
本班级管理系统共有6个java源文件。
类之间的主要关系如下图所示:
图2类之间的主要关系
各主类的主要作用如下:
1.StudentManager.java
该java文件的类负责创建班级学生管理系统的主窗口,该类包含main方法,程序从该类开始执行。
2.StudentStituation.java
该文件的类负责创建班级学生管理系统的学生信息录入界面。
3.ModifySituation.java
该文件的类负责创建班级学生管理系统的学生基本信息修改界面。
4.Inquest.java
该文件的类负责创建班级学生管理系统的学生基本信息查询界面。
5.Delete.java
该文件的类负责创建班级学生管理系统的学生信息删除界面。
6.Student.java
负责创建存放学生信息的对象。
4、详细设计
1.管理系统主窗口
1.1成员变量
表1-1主要成员变量
成员变量描述
变量类型
变量名称
基本信息录入
基本信息修改
基本信息查询
基本信息删除
菜单选项
存基本信息的散列表
存放散列表的文件
StudentSituation
ModifySituation
Inquest
Delete
JMenuItem
Hashtable
File
基本信息录入
基本信息修改
基本信息查询
基本信息删除
录入,修改,查询,删除
基本信息
file
1.2方法
表1-2主要方法
名称
功能
备注
StudentManager
actionPerformed
main
创建程序主窗口
处理ActionEvent事件
程序开始运行
构造方法
接口方法
1.3界面截图:
2.基本信息录入
2.1成员变量
表2-1主要成员变量属性
描述
变量类型
变量名称
存放“学生”对象的散列表
输入学生基本信息的文本
存放学生信息的对象
Hashtable
JTextField
Student
基本信息表
学号,姓名,所学专业,家庭住址,出生
学生
2.2方法
表2-2主要方法
名称
功能
备注
StudentSituation
actionPerformed
创建学生信息录入界面
处理ActionEvent事件
构造方法
接口方法
2.3录入界面截图:
3.基本信息查询
3.1成员变量
表3-1主要成员变量属性
描述
变量类型
变量名称
存放“学生”对象的散表
显示学生基本信息的文本
Hashtable
JTextField
基本信息表
学号,姓名,所学专业,家庭住址,出生
3.2方法
表3-2主要方法
名称
功能
备注
Inquest
actionPerformed
创建查询界面
处理ActionEvent事件
构造方法
接口方法
3.3查询截图:
4.基本信息修改
4.1成员变量
表4-1主要成员变量
描述
变量类型
变量名称
存放“学生”对象的散列表
输入学生基本信息的文本条
Hashtabel
JTextField
基本信息表
学号,姓名,所学专业,家庭住址,出生
4.2方法
表4-2主要方法
名称
功能
备注
ModifySituation
actionPerform
创建学生信息修改界面
处理ActionEvent事件
构造方法
接口方法
4.3修改界面截图:
5.基本信息删除
5.1成员变量
表5-1主要成员变量
描述
变量类型
变量名称
存放“学生”对象的散列表
显示学生基本信息的文本条
Hashtable
JTextField
基本信息表
学号,姓名,所学专业,家庭住址,出生
5.2方法
表5-2主要方法
名称
功能
备注
Delete
actionPerformed
创建学生信息删除界面
处理ActionEvent
构造方法
接口方法
5.3删除界面截图
6.学生对象
6.1成员变量
表6-1主要成员变量
描述
变量类型
变量名称
学号
姓名
所学专业
家庭住址
出生
性别
String
String
String
String
String
String
Number
Name
Discipling
Grade
Borth
Sex
6.2方法
表6-2主要方法
名称
功能
Setnumber
Setnumber
Setname
Setname
setDisciping
setDisciping
setGrade
setGrade
setBorth
setBorth
setSex
setSex
设置学号
获取学号
设置姓名
获取姓名
设置所学专业
获取所学专业
设置家庭住址
获取家庭住址
设置出生
获取出生
设置性别
获取性别
五、总结与展望
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.本次课程设计虽然很辛苦,实在是受益匪浅。
本来这门课的知识学的就不够扎实,本次课程设计,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。
理论和实践的相结合是学习最有效的方法。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
不过,在用Java开发类似的软件时,发现在图形界面的设计方面远没有用VB,VF等开发工具简单。
参考文献:
附录:
1.主界面代码
StudentManager.java
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.Hashtable;
publicclassStudentManagerextendsJFrameimplementsActionListener
{
StudentSituation基本信息录入=null;
ModifySituation基本信息修改=null;
Inquest基本信息查询=null;
Delete基本信息删除=null;
JMenuBarbar;
JMenufileMenu;
JMenuItem录入,修改,查询,删除,退出;
Containercon=null;
Hashtable基本信息=null;
Filefile=null;
CardLayoutcard=null;
JLabellabel;
JPanelpCenter;
publicStudentManager()
{
setTitle("欢迎进入班级管理系统");
录入=newJMenuItem("录入学生基本信息");
修改=newJMenuItem("修改学生基本信息");
查询=newJMenuItem("查询学生基本信息");
删除=newJMenuItem("删除学生基本信息");
退出=newJMenuItem("退出本系统");
退出.addActionListener(newActionListener()
{
publicvoidactionPerformed(ActionEventevent)
{
System.exit(0);
}
});
bar=newJMenuBar();
fileMenu=newJMenu("菜单选项");
fileMenu.add(录入);
fileMenu.addSeparator();
fileMenu.add(修改);
fileMenu.addSeparator();
fileMenu.add(查询);
fileMenu.addSeparator();
fileMenu.add(删除);
fileMenu.addSeparator();
fileMenu.addSeparator();
fileMenu.add(退出);
bar.add(fileMenu);
setJMenuBar(bar);
label=newJLabel("欢迎进入班级管理系统!
",label.CENTER);
label.setFont(newFont("隶书",Font.BOLD,30));
label.setForeground(Color.blue);
基本信息=newHashtable();
录入.addActionListener(this);
修改.addActionListener(this);
查询.addActionListener(this);
删除.addActionListener(this);
card=newCardLayout();
con=getContentPane();
pCenter=newJPanel();
pCenter.setLayout(card);
file=newFile("学生基本信息.txt");
if(!
file.exists())
{
try{
FileOutputStreamout=newFileOutputStream(file);
ObjectOutputStreamobjectOut=newObjectOutputStream(out);
objectOut.writeObject(基本信息);
objectOut.close();
out.close();
}
catch(IOExceptione)
{
}
}
基本信息录入=newStudentSituation(file);
基本信息修改=newModifySituation(file);
基本信息查询=newInquest(this,file);
基本信息删除=newDelete(file);
pCenter.add("欢迎语界面",label);
pCenter.add("录入界面",基本信息录入);
pCenter.add("修改界面",基本信息修改);
pCenter.add("删除界面",基本信息删除);
con.add(pCenter,BorderLayout.CENTER);
con.validate();
addWindowListener(newWindowAdapter()
{publicvoidwindowClosing(WindowEvente)
{
System.exit(0);
}
});
setVisible(true);
setBounds(100,50,420,380);
validate();
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==录入)
{
card.show(pCenter,"录入界面");
}
elseif(e.getSource()==修改)
{
card.show(pCenter,"修改界面");
}
elseif(e.getSource()==查询)
{
基本信息查询.setVisible(true);
}
elseif(e.getSource()==删除)
{
card.show(pCenter,"删除界面");
}
}
publicstaticvoidmain(Stringargs[])
{
newStudentManager();
}
}
2.录入代码
StudentSituation.java
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)
{
this.file=file;
学号=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,JOptionPane.INFORMATION_MESSAGE);
if(ok==JOptionPane.YES_OPTION)
{
Stringname=姓名.getText();
Stringdiscipling=所学专业.getText();
Stringgrade=家庭住址.getText();
Stringborth=出生.getText();
Stringsex=null;
if(男.isSelected())
{
sex=男.getText();
}
else
{
sex=女.getText();
}
学生=newStudent();
学生.setNumber(number);
学生.setName(name);
学生.setDiscipling(discipling);
学生.setGrade(grade);
学生.setBorth(borth);
学生.setSex(sex);
try{
outOne=newFileOutputStream(file);
outTwo=newObjectOutputStream(outOne);
基本信息表.put(number,学生);
outTwo.writeObject(基本信息表);
outTwo.close();
outOne.close();
学号.setText(null);
姓名.setText(null);
所学专业.setText(null);
家庭住址.setText(null);
出生.setText(null);
}
catch(Exceptionee)
{
System.out.println(ee);
}
}
}
}
else
{
Stringwarning="必须要输入学号!
";
JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
}
}
if(e.getSource()==重置)
{
学号.setText(null);
姓名.setText(null);
所学专业.setText(null);
家庭住址.setText(null);
出生.setText(null);
}
}
}
3.查询代码
Inquest.javaimportjava.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);
姓名=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 学生 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)