学生成绩管理系统课程设计报告.docx

上传人:b****5 文档编号:6694142 上传时间:2023-01-09 格式:DOCX 页数:26 大小:491.44KB
下载 相关 举报
学生成绩管理系统课程设计报告.docx_第1页
第1页 / 共26页
学生成绩管理系统课程设计报告.docx_第2页
第2页 / 共26页
学生成绩管理系统课程设计报告.docx_第3页
第3页 / 共26页
学生成绩管理系统课程设计报告.docx_第4页
第4页 / 共26页
学生成绩管理系统课程设计报告.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统课程设计报告.docx

《学生成绩管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统课程设计报告.docx(26页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统课程设计报告.docx

学生成绩管理系统课程设计报告

面向对象课程设计 报告

--学生成绩管理系统

专业年级

XXX

班 级

XXX

学 号

XXX

姓 名

XX

成 绩

指导教师

XX

2016年3月 19 日

 

学生成绩管理系统设计报告

1课程设计任务概述

1.1 设计目的

巩固和加深学生对高级语言程序设计课程的基本知识的理解和掌握,掌握JAVA语言编程和程序调试的基本技能,利用JAVA语言进行基本的软件设计,提高运用JAVA语言解决实际问题的能力以及对MVC框架的学习和应用。

 

1.2内容要求 

实现学生成绩的管理(增、删、改、查询、持久化),在系统中,管理员可以添加、删除、学生信息,根据学号查询、修改学生信息;学生可以查看个人档案信息,查看课程信息,自主选课,查看个人成绩信息。

1.3开发工具以及环境

系统编程基于JAVASwing的图形用户界面开发,数据信息连接后台为MySql数据库。

系统运行环境为运行Windows的PC机,具有JDK1.6以上JAVA编译环境,Eclipse编辑环境,以及MySql数据库环境。

2系统需求分析

2.1系统功能分析

本系统根据学生成绩管理的需要,而建立一个学生成绩管理系统,以方便对成绩的各项管理操作。

本系统能对成绩进行输入和输出;能查询学生的档案信息、课程信息、学生能够自主选课,查看个人成绩;系统用户可以修改用户密码。

整个系统模块划分如图2-1所示:

图2-1系统模块划分

2.2用例图及用例说明

2.2.1学生成绩管理系统用例图

根据学生成绩管理系统描述,画出学生成绩管理系统整体用例图,见图2-2。

图2-2学生成绩管理用例图

2.2.2系统登录用例图

系统登录是学生成绩管理系统的一项基本功能,在系统的建模过程中,将这一行为抽象为一个用例。

在不考虑软件的具体实现细节基础上,给出如下的用例描述。

用例:

用户登录

ID:

1

简单描述:

用户登录系统

参与者:

系统用户

前置条件:

系统正常运行

基本路径:

(1)用户打开学生成绩管理系统

(2)进入系统登录界面

(3)输入用户名和密码

(4)点击登录

后置条件:

用户登录成功

说明:

2.2.3学生信息管理用例

1.添加学生信息用例描述

用例:

添加学生信息

ID:

2

简单描述:

系统管理员将新学生的信息添加到数据库并保存

参与者:

系统管理员

前置条件:

登录成功,数据库中不存在此学生基本信息的记录

基本路径:

(1)系统管理员进入录入学生信息界面

(2)输入相关学生基本信息

(3)点击添加

(4)系统管理员从录入学生信息界面获得录入成功的信息。

后置条件:

系统管理员可以继续学生信息的相关操作。

说明:

数据库添加失败时,会提示相关信息

添加学生信息是学生成绩管理系统的一项基本功能。

在系统的建模过程中,将这一行为抽象为一个用例。

在不考虑软件的具体实现细节基础上,给出如下的用例描述。

2.删除学生信息用例描述

删除学生信息,是学生成绩管理的一项基本功能。

在系统的建模过程中,将这一行为抽象为一个用例。

在不考虑软件的具体实现细节基础上,给出如下的用例描述。

用例:

删除学生信息

ID:

3

简单描述:

管理员对学生信息的删除

参与者:

系统管理员

前置条件:

登录成功,数据库中存在次学生基本信息的记录

基本路径:

(1)管理员点击删除学生信息

(2)输入要删除学生的学号

(3)点击删除

后置条件:

系统管理员可以继续学生信息的相关操作。

说明:

删除信息出错,系统提示相关信息

3.修改学生信息用例描述

修改学生信息,是学生成绩管理系统的一项基本功能。

在系统的建模过程中,将这一行为抽象为一个用例。

在不考虑软件的具体实现细节基础上,给出如下的用例描述。

用例:

修改学生信息

ID:

4

简单描述:

完成系统管理员对学生的信息修改

参与者:

系统管理员

前置条件:

登录成功,数据库中存在这个学生的记录

基本路径:

(1)系统管理员点击学生信息修改按钮

(2)输入要修改的学生学号

(3)查找到要修改的学生信息

(4)在学生信息修改页面进行修改

(5)点击更新

后置条件:

系统给出学生的基本信息。

系统管理员可以进行修改操作

说明:

更新学生信息出错,系统会提示相关信息

4.查询学生信息用例描述

查询学生信息,是学生成绩管理系统的一项基本功能。

在系统的建模过程中,将这一行为抽象为一个用例。

在不考虑软件的具体实现细节基础上,给出如下的用例描述。

用例:

学生信息查询

ID:

5

简单描述:

完成系统管理员或者学生对学生的基本信息查询的完整过程

参与者:

系统管理员和学生

前置条件:

登录成功

基本路径:

(1)进入系统主见面

(2)点击学生信息查询

(3)完成搜索

后置条件:

搜索完成

说明:

2.2.4学生成绩管理用例

1.录入学生成绩信息用例描述

录入学生成绩信息,是学生成绩管理系统的一项基本功能。

在系统的建模过程中,将这一行为抽象为一个用例。

在不考虑软件的具体实现细节基础上,给出如下的用例描述。

用例:

录入学生成绩

ID:

6

简单描述:

系统管理员将学生的成绩添加到数据库并保存

参与者:

管理员

前置条件:

登录成功,数据库中不存在此学生成绩的记录并且学生选修的该课程

基本路径:

(1)点击录入录入成绩

(2)在录入学生成绩页面输入学生姓名,学生选修课程名称和分数

(3)点击提交

(4)系统提示录入成功

后置条件:

系统管理员可以继续学生成绩的相关操作。

说明:

录入成绩必须是学生选修的课程

2.查询学生成绩信息用例描述

查询学生成绩信息,是学生成绩管理系统的一项基本功能。

在系统的建模过程中,将这一行为抽象为一个用例。

在不考虑软件的具体实现细节基础上,给出如下的用例描述。

用例:

查询学生成绩

ID:

7

简单描述:

完成管理员对学生的成绩查询。

参与者:

管理员

前置条件:

登录成功,系统有学生的成绩信息

基本路径:

(1)点击查看学生成绩信息

(2)系统显示所有学生选课成绩

后置条件:

信息查询成功,得到所查信息详情

说明:

3.学生自主选课用例描述

学生自主选课,是学生成绩管理系统的一项基本功能。

在系统的建模过程中,将这一行为抽象为一个用例。

在不考虑软件的具体实现细节基础上,给出如下的用例描述。

用例:

学生自主选课

ID:

8

简单描述:

学生登录系统选择自己的选修课程

参与者:

学生

前置条件:

系统中有课程信息

基本路径:

(1)学生登录系统

(2)点击学生自主选课

(3)显示所有课程信息

(4)选择相应的选修课程

(5)点击提交

后置条件:

学生选完课程之后,还可以继续相关操作

说明:

系统没有课程信息,是不能选课的

2.2.5用户修改密码用例

1.用户修改密码用例描述

用户修改密码,是学生成绩管理系统的一项基本功能。

在系统的建模过程中,将这一行为抽象为一个用例。

在不考虑软件的具体实现细节基础上,给出如下的用例描述。

用例:

修改用户密码

ID:

9

简单描述:

用户根据个人需要修改用户密码

参与者:

系统用户

前置条件:

用户登录系统

基本路径:

(1)用户登录系统

(2)点击修改密码

(3)在显示修改密码页面输入新密码

(4)点击确定

(5)修改成功,重新登录系统

后置条件:

重新登录系统

说明:

修改完密码,不允许用户再做其他操作要重新登录系统

3系统设计

3.1系统类图

3.2系统活动图

3.2.1管理员活动图

3.2.2学生活动图

3.3系统时序图

3.3.1系统登录时序图

3.3.2添加学生信息时序图

3.3.3删除学生信息时序图

3.3.4修改学生时序图

3.3.5录入学生成绩时序图

3.3.6查询学生成绩时序图

4系统实现

4.1数据库设计

本系统运行需要与后台数据库进行数据库访问,本系统采用MySql数据进行数据库读取访问。

因此需要在建立数据库(ConnectDB),并在数据库内建立4张表,以下为数据库中表信息。

系统管理员信息表,该表的设计用于记录管理人员的信息,方便对管理员的管理,表中包括管理员用户名和管理员的登录密码,表的具体结构设计如表4-1所示:

表4-1系统管理员信息表tb_user

字段名称

数据类型

字段长度

可否为空

说明

userid

varchar

10

No

(Key)编号

username

varchar

10

No

用户名

userpass

varchar

10

No

密码

学生信息表的设计是为了对学生信息进行管理,其中学号是唯一的。

主要是为了唯一区分学生的信息。

学号和密码还可以用于系统的登录。

其他字段都是学生的一些基本信息。

表的具体结构设计如表4-2所示:

表4-2学生信息表tb_stu

字段名称

数据类型

字段长度

可否为空

说明

stuid

varchar

11

No

(Key)学号

stuname

varchar

20

No

学生姓名

stupass

varchar

10

No

初始密码

stusex

varchar

10

Yes

性别

stuschool

varchar

30

Yes

院系

stuphone

varchar

100

Yes

电话

stuclass

varchar

50

Yes

班级

课程表的设计是为了学生查询课程选课用的。

课程编号是唯一确定课程信息记录的,其他字段是课程的一些基本信息。

表的具体结构设计如表4-3所示:

表4-3课程信息表tb_course

字段名称

数据类型

字段长度

可否为空

说明

courseid

varchar

11

No

(Key)课程编号

coursename

varchar

11

No

课程名称

teachername

varchar

10

No

教师姓名

courseinfo

varchar

100

No

课程信息

成绩表的设计是为了记录学生成绩用的。

学号和课程号是唯一确定学生成绩记录的。

学生成绩是学生选修完课程由管理员录入成绩。

表的具体结构设计如表4-4所示:

表4-4成绩信息表tb_score

字段名称

数据类型

字段长度

可否为空

说明

stuid

varchar

11

No

(Key)学号

courseid

varchar

50

Yes

(Key)课程编号

score

varchar

20

Yes

学生成绩

4.2系统框架设

本系统主要采用MVC模式。

以下为系统文件结构图。

4.3系统界面UI设计

4.3.1系统登录界面设计

登录模块主要有登录

(1)登录界面设计

登录界面主要用于用户输入有效用户名与密码进行登录的。

登录界面设计效果如图所示:

4.3.2系统主界面设计

4.3.3添加学生信息界面设计

4.3.4修改学生信息界面

4.3.5录入成绩信息界面

4.3.6用户修改密码界面

4.4编码设计

4.4.1登录代码设计

publicvoidLogin_actionPerformed(ActionEvente){

if(jTextField1.getText().trim().length()==0||jPasswordField1.getPassword().length==0){

javax.swing.JOptionPane.showMessageDialog(null,"用户密码不允许为空","系统提示",javax.swing.JOptionPane.ERROR_MESSAGE);

return;

}

IAdminUserServiceudi=newAdminUserServiceImp();

IStudentServicesdi=newStudentServiceImp();

Stringusername=jTextField1.getText().trim();

Stringuserpass=String.valueOf(jPasswordField1.getPassword());

AdminUseruser=newAdminUser();

user.setUsername(username);

user.setUserpass(userpass);

Studentstu=newStudent();

stu.setStuid(username);

stu.setStupass(userpass);

if(udi.isExist(user)){

MainFrameframe=newMainFrame();

this.setVisible(false);

frame.setUsername(username);

frame.setUserdentify("管理员");

frame.showMenu();

}elseif(sdi.isExist(stu)){

MainFrameframe=newMainFrame();

frame.setUserdentify("学生");

this.setVisible(false);

frame.setUsername(username);

frame.showMenu();

}

else{

javax.swing.JOptionPane.showMessageDialog(null,"输入的口令不正确,请重新输入!

!

!

","系统提示",javax.swing.JOptionPane.ERROR_MESSAGE);

jTextField1.setText(null);

jPasswordField1.setText(null);

jTextField1.requestFocus();

return;

}

}

4.4.2添加学生信息

publicvoidaddStudent(){

Stringstuid=textstuid.getText().trim().toString();

Stringstuname=textstuname.getText().trim().toString();

Stringstupass=String.valueOf(textstupass.getPassword());

System.out.println(stupass);

Stringstusex=null;

System.out.println(rbMale.hasFocus());

if(rbMale.hasFocus()){

stusex="男";

}

else{

stusex="女";

}

Stringstuschool=textschool.getText().trim().toString();

Stringstuclass=textstuclass.getText().trim().toString();

Stringstuphone=textstuphone.getText().toString();

Studentstu=newStudent();

stu.setStuid(stuid);

stu.setStuname(stuname);

stu.setStupass(stupass);

stu.setStusex(stusex);

stu.setStuschool(stuschool);

stu.setStuclass(stuclass);

stu.setStuphone(stuphone);

intresult=sdi.addStu(stu);

if(result>0){

javax.swing.JOptionPane.showMessageDialog(null,"添加成功!

","系统提示",javax.swing.JOptionPane.ERROR_MESSAGE);

this.setVisible(false);

return;

}else{

javax.swing.JOptionPane.showMessageDialog(null,"添加失败!

","系统提示",javax.swing.JOptionPane.ERROR_MESSAGE);

return;

}

}

4.4.3修改学生信息

publicvoidUpdateStu(){

Stringstuid=textstuid.getText().trim().toString();

Stringstuname=textstuname.getText().trim().toString();

Stringstupass=String.valueOf(textstupass.getPassword());

Stringstusex=null;

if(rbMale.hasFocus()){

stusex="男";

}else{

stusex="女";

}

System.out.println(rbMale.hasFocus());

Stringstuschool=textschool.getText().trim().toString();

Stringstuclass=textstuclass.getText().trim().toString();

Stringstuphone=textstuphone.getText().toString();

Studentstu=newStudent();

stu.setStuid(stuid);

stu.setStuname(stuname);

stu.setStupass(stupass);

stu.setStusex(stusex);

stu.setStuschool(stuschool);

stu.setStuclass(stuclass);

stu.setStuphone(stuphone);

intresult=sdi.updateStuById(stu);

if(result>0){

System.out.println(stusex);

javax.swing.JOptionPane.showMessageDialog(null,"更新成功!

","系统提示",javax.swing.JOptionPane.ERROR_MESSAGE);

//this.setVisible(false);

}else{

javax.swing.JOptionPane.showMessageDialog(null,"更新失败!

","系统提示",javax.swing.JOptionPane.ERROR_MESSAGE);

}

}

 

4.4.4录入学生成绩

publicvoidaddStuScore(ActionEvente){

Stringstuname=textstuname.getText().toString().trim();

Stringcoursename=textcoursename.getText().toString().trim();

Stringstuscore=textstuscore.getText().toString().trim();

Studentstu=null;

StuCoursesc=null;

StuScoress=newStuScore();

if(stuname!

=""&&coursename!

=""&&stuscore!

=""){

Liststulist=sdi.getStuByName(stuname);

for(inti=0;i

stu=(Student)stulist.get(i);

}

Listcourselist=cdi.getCourseByName(coursename);

for(inti=0;i

sc=(StuCourse)courselist.get(i);

}

ss.setStuid(stu.getStuid());

ss.setCourseid(sc.getCourseid());

ss.setScore(stuscore);

intresult=ssdi.updateByStuidAndCouseid(ss);

if(result>0){

this.setVisible(false);

javax.swing.JOptionPane.showMessageDialog(null,"录入成功!

","系统提示",javax.swing.JOptionPane.ERROR_MESSAGE);

}else{

javax.swing.JOptionPane.showMessageDialog(null,"该学生未选修该课程!

","系统提示",javax.swing.JOptionPane.ERROR_MESSAGE);

}

}else{

javax.swing.JOptionPane.showMessageDialog(null,"请输入相关信息!

","系统提示",javax.swing.JOptionPane.ERROR_MESSAGE);

}

}

 

4.4.5用户修改密码

publicvoidUpdatePass(java.awt.event.ActionEventevt){

Stringusername=textusername.getText().trim().toString();

Stringuserpass=String.valueOf(textpass.getPassword());

if(!

userpass.equals("")){

if(userdentify.equals("管理员")){

AdminUseruser=newAdminUser();

user.setUsername(username);

user.setUserpass(userpass);

intresult=udi.updateUserpass(user);

if(result

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

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1