Java学生成绩管理系统说明书Word文档格式.docx
- 文档编号:22586495
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:52
- 大小:174.78KB
Java学生成绩管理系统说明书Word文档格式.docx
《Java学生成绩管理系统说明书Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java学生成绩管理系统说明书Word文档格式.docx(52页珍藏版)》请在冰豆网上搜索。
以用户登录用户名和密码来核对确认用户,管理好这些用户对系统安全有十分重要的影响。
(2)功能需求
①登录模块:
主要分为老师,管理员和学生,对于登录后,按照各自的需求进一步进行。
②基本信息管理模块:
管理员实现对学生信息的增、删、查、改等操作;
学生可以查看基本信息和成绩信息。
3.4系统总体设计
学生成绩管理系统的设计,主要解决的是对系统中的学生基本信息、学生成绩信息以及统计学生成绩的管理工作。
首先,需要定义各个所需要的数据对象,然后在这些对象上进行操作;
其次,实现功能模块时,采用先模块化,后集成化,即对系统各个功能模块分别独立设计和调试,在创建系统主登录界面时再将各个功能模块通过主菜单对各个模块的调用集成到一起,最后进行系统整体设计调试。
在数据存储和操作方面,采用文件的读写,并在读出数据之后放入链表进行操作;
并在数据更新之后,系统退出之前及时把数据写入文件,这样可以减少对磁盘的直接操作次数,从而提高系统设计的效率。
系统流程图如图3-1所示:
图3-1系统流程图
四.概念结构设计
此项目主要有四个实体,分别是管理员,老师,学生,学生有八个属性,分别是姓名,学号,性别,密码,大学外语,高数,计算机操作系统,平均分,总分。
而老师和管理员则只有两个属性,分别是用户名和密码。
根据这些信息所画的E-R图则如图4-1所示:
nm
m
m
1
图4-1系统E-R图
五.系统总体设计
5.1数据需求设计
由于这些数据都需要存入文件需要用到对象输入输出流,所以都需要实现序列化,即implementsSerializable。
(1)用户数据
首先定义一个父类级别的用户对象User,有以下属性:
publicStringname;
publicStringpasswd;
此项目中包含了三个类,一个Student类,一个主类demoMain,一个方法类,即就是function类其中管理员有自己的出原始密码,和用户名,学生类中有各自的属性。
(2)学生数据
publicStringnumber;
//学号
//姓名
publicStringsex;
//性别
publicStringpasswd;
//密码
publicStringmath;
//高数
publicStringEnglish;
//大学外语
publicStringOS;
//计算机操作系统
publicdoubleAverage;
//平均成绩
publicdoubleAllScore;
//总成绩
5.2类设计和数据存储
(1)类设计
①用户类:
首先定义一个学生类,拥有一些公共属性。
管理员,老师,学生,管理员通过对学生信息的添加,学生可以按照自己的权限,查询属于自己的信息及成绩。
这些类都需要实现序列化(implementsSerializable),同时以便于写入文件,如果是父类实现了这个接口则子类就不需要实现了,通过继承实现了代码的重用,提高了代码的利用率。
②数据的读写类:
有数据的写入文件类Output和读出类Input,主要是用到对象输入输出流,这完成对数据的读入和读取,以及数据更新后的存储工作。
③登录类:
运行登录类需要输入用户账号和密码进行登录,如果账号错误会提示没有此用户,如果账号正确密码不对则提示密码输入错误而且如果输入密码三次错误则自动退出系统,只有登录成功后才能进入管理界面。
⑤程序主类:
首先判断一下是否已创建存放文件夹的路径,如果没有则进行创建,然后判断是否有读写操作所需要的文件,没有则创建。
在创建过程中需要进行初始化管理员的账号和密码。
然后将信息添加到文件中去。
(2)方法类
①登录时:
主要实现对输入信息的校验,如学生基本信息和成绩信息中性别只能输入男或女,成绩只能在0—100分之间,进行添加学生时输入的学号不能重复,在添加学生成绩时需要先判断是否已添加此学生的基本信息如果没则提示需要先添加基本信息,还需要判断的是该学号在课程文件夹中是否已存在,如果存在则不允许添加重复学号的学生成绩信息等。
②处理学生基本信息:
此接口主要是处理学生信息增、删、改、查及从文件中读取信息的初始化操。
在进行添加学生信息时可以一次添加多条学生信息。
在进行查询时分为四种查询方式,可以按照学号进行查新也可以查询全部学生的信息。
在进行修改时可以按照用户需要进行修改个别属性。
当删除信息时,会有是否确认删除的提示。
以免因为误操作而删除了有用的数据。
③处理学生成绩信息:
此接口主要是处理学生成绩的增、删、改、查以及从文件中读取课程信息。
在添加学生成绩时需要进行对添加学生学号的校验,如果合法才允许添加其他信息,每个同学添加三门科目,通过,map的键值对的方式将课程名称和成绩添加到文件中去。
在进行修改时可以根据需要选择要修改的科目,在修改时先将map中的原成绩删除,然后添加新的成绩,然后再将信息写到文件中去。
在进行查询时可以查询全部同学的成绩,也可以按照同学查询单个同学的成绩。
(3)数据存储
数据存储主要是通过对象流来实现的,要用对象流那么所要往文件中写的对象就必须实现Serializable这个接口。
通过流仅能实现对数据的读写,不能实现对数据的增删改查,因此还需要借助List这个接口,通过接口回调得到一个list对象,将从文件中读取到的所有对象都放到list对象中,然后通过对list进行遍历,实现增删改查操作。
5.3功能模块设计
⑴学生基本信息管理模块
⑵学生成绩管理模块
管理员可以实现对学生成绩的增、删、改、查等操作。
学生只能是查询成绩,不能进行其他的操作。
六.具体功能实现
6.1登录模块的实现
进入登录界面之后,可选择登录类别‘老师’或‘学生’,登录界面如下图6-1所示,
图6-1登陆界面
进入主系统,并调用function中的firstMenue()方法来显示登录界面,管理员,老师还有同学登录的界面不同。
publicvoidfirstMenue(){
System.out.println("
请选择用户类型!
"
);
System.out
.println("
1.管理员2.老师3.学生4.退出"
System.out.print("
请输入数字:
intnum=0;
try{
num=System.in.read();
}catch(IOExceptione){
e.printStackTrace();
}
if(num=='
1'
){
manageMenue();
}elseif(num=='
2'
teacherMenue();
3'
studentManage();
4'
System.exit(0);
*********************"
}
6.2管理员登陆
进入登录界面之后,管理员可根据自己的需求选择要进行的功能,功能界面如下图6-2所示:
图6-2管理员登陆
管理员登陆所实现其功能的部分代码如下:
publicvoidmanageMenue(){
管理员登陆\n"
Stringma1=null;
Stringpasswd=null;
scan.readLine();
System.out.println("
请输入用户名"
ma1=scan.readLine();
请输入密码"
passwd=scan.readLine();
if(ma1.equals("
yuyu"
)&
&
passwd.equals("
123456"
))//系统已默认管理员的用户名与密码
{
登陆成功"
mannerAct();
}else{
输入有误,请查证后重新输入"
publicvoidmannerAct(){
**请进行如下功能选择**"
****1.查询学生成绩****"
****2.修改学生信息****"
****3.删除学生信息****"
****4.增添学生信息****"
****5.返回上级菜单****"
****请输入数字:
selectStuInformation();
try{
changeStuInformation();
}catch(IOExceptione){
e.printStackTrace();
}
deleteStuInformation();
addStuInformation();
5'
firstMenue();
6.3添加学生信息
进入登录界面之后,管理员可以添加学生的信息。
如图6-3所示:
,
图6-3添加学生信息
管理员添加学生信息的部分代码如下:
publicvoidaddStuInformation(){
Stringnumber=null;
Stringname=null;
Stringsex=null;
Stringmath=null;
StringEnglish=null;
StringOS=null;
Studentstu=null;
请输入要插入写学生信息的个数:
//inty=0;
inty=0;
y=Integer.parseInt(scan.readLine());
}catch(IOExceptione1){
e1.printStackTrace();
for(inti=1;
i<
=y;
i++){
这是第"
+i+"
个学生信息。
System.out.print("
学号:
number=scan.readLine();
}catch(IOExceptione1){
e1.printStackTrace();
姓名:
name=scan.readLine();
性别:
sex=scan.readLine();
if(sex.equals("
男"
)||sex.equals("
女"
)){
}else{
System.out.println("
输入有误,请重新输入"
System.out.print("
try{
sex=scan.readLine();
}catch(IOExceptione){
e.printStackTrace();
}
高数:
math=scan.readLine();
if(Integer.parseInt(math)>
=0&
Integer.parseInt(math)<
=100){
math=scan.readLine();
大学外语:
English=scan.readLine();
if(Integer.parseInt(English)>
=0
&
Integer.parseInt(English)<
English=scan.readLine();
计算机操作系统:
OS=scan.readLine();
System.out.println(OS);
if(Integer.parseInt(OS)>
Integer.parseInt(OS)<
OS=scan.readLine();
stu=newStudent(number,name,sex,math,English,OS);
MyObjectOutputStreamin=null;
in=MyObjectOutputStream.newInstance(stuInfo,
newFileOutputStream(stuInfo,true));
in.writeObject(stu);
}catch(FileNotFoundExceptione){
}finally{
if(in!
=null){
in.close();
}else
in=null;
添加完毕"
mannerAct();
}
6.4查询学生信息
进入登录界面之后,管理员,老师可以询学生的信息。
如图6-4所示:
!
图6-4查询学生信息
查询学生信息的部分代码如下:
publicvoidselectStuInformation(){
Studentus=null;
请输入查询学生学号:
Stringsnum=scan.readLine();
read=newObjectInputStream(newFileInputStream(stuInfo));
while(true){
us=(Student)read.readObject();
if(snum.equals(us.number)){
System.out.println("
+us.number+"
\n姓名:
"
+us.name+"
\n性别:
+us.sex+"
\n高数:
+us.math+"
\n大学外语:
+us.English+"
\n计算机操作系统:
+us.OS);
jisuan(us.math,us.English,us.OS);
break;
}catch(EOFExceptione){
没有您所需要的信息!
\n按回车键继续."
scan.readLine();
}catch(ClassNotFoundExceptione){
}catch(FileNotFoundExceptione){
6.5修改学生信息
进入登录界面之后,管理员可以修改学生的信息,如下图6-5所示:
图6-5修改学生信息
//实现此功能的部分代码如下:
publicvoidchangeStuI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 学生 成绩管理系统 说明书