学生信息管理软件工程.docx
《学生信息管理软件工程.docx》由会员分享,可在线阅读,更多相关《学生信息管理软件工程.docx(32页珍藏版)》请在冰豆网上搜索。
![学生信息管理软件工程.docx](https://file1.bdocx.com/fileroot1/2023-4/24/2f61aacf-e132-4d47-90cc-fd82702b2100/2f61aacf-e132-4d47-90cc-fd82702b21001.gif)
学生信息管理软件工程
武汉理工大学华夏学院
课程设计报告书
课程名称:
软件工程
题目:
学生信息管理系统的设计与开发
系名:
信息工程系
专业班级:
计算机1121班
姓名:
刘明
学号:
指导教师:
钱小红
2015年7月9日
课程设计任务书
学生姓名:
刘明专业班级:
计算机1121班
指导教师:
钱小红工作单位:
信息工程系
设计题目:
学生信息管理系统的设计与开发
课程设计的目的与任务:
软件工程课程设计是《软件工程》课程的后续实践课程,本课程设计的目的是通过一周的实践训练,开发一个学生信息管理系统,使同学们经历一个软件从问题定义、分析、设计到开发的全过程和受到一次软件系统开发的综合训练,以便能熟练掌握软件开发的完整生命周期过程及较全面地理解、掌握和综合运用所学的软件工程的知识。
结合具体的学生信息管理选题开发项目,理解并掌握系统分析、系统设计、系统实施的主要环节和步骤以及软件文档的制作能力,进一步提高学生分析问题、解决问题,进行一个完整系统开发的能力。
课程设计的内容与主要要求:
要求学生根据所学的软件工程的知识,利用所学的Java语言/C++语言/Vb语言+Mysql/SQL知识实现一个学生信息管理系统,并对实现后的软件进行测试。
学生信息管理是学校管理中一项烦琐的工作,各类人员都可能需要借助学生信息管理系统完成一些统计、查询、汇总等工作。
例如:
系统管理员需要建立新的角色和用户;
对现有专业、班级、班级学生信息、老师信息及课程信息进行查询以及增加、修改;
学生完成一门课程的学习后,教师需要录入学生的考试成绩,计算平均成绩、查看最高最低分;学生需要查询已结业的各门课程的成绩;系统主要实现用户管理、班级管理、课程管理、成绩管理、学生管理、教师管理、用户登陆、修改密码等功能,详见下表。
表学生信息管理系统主要功能表
编号
功能名称
功能说明
1
系统管理
添加用户、角色
2
班级管理
创建、浏览班级信息(班级ID、班级名称、专业名称、班级、年制、教师、教室、备注)
3
学生管理
登记学生的基本信息(学生ID、学生编号、姓名、性别、名族、籍贯、电话、政治面貌等),提供查询功能。
4
课程管理
登记课程基本情况(课程ID、班级ID、课程名称、开设学期、教师编号、教师名称),提供查询
5
教师管理
登记教师基本情况(姓名、年龄、性别、学历等),提供查询统计
6
成绩管理
登记学生各门课程的考试成绩、提供查询、统计功能
7
授课管理
登记教师讲授课程、授课地点、授课学期,提供查询功能
8
用户操作
修改密码,重新登录,退出系统等
课程设计的步骤及时间进度、场地安排
本课程设计将安排在第19周,教育技术中心211。
具体安排如下:
7月6日上午:
下发任务,学生查找资料、确定实训项目;理清整理软件工程实验课所完成的学生信息管理系统需求分析、系统设计及相关模型的建立(通过visio/rationalrose/powerdesigner建立系统的需求模型、数据模型及设计模型,具体包括数据流图、软件结构图、程序流程图、ER图、用例图、类图、时序图、活动图、状态图等);
7月7日-7月9日:
完成学生信息管理系统的开发及测试;
7月10日:
完成答辩验收、报告的写作,并将以上工作整理成为课程设计报告,于7月10日中午前提交课程设计报告。
课程设计场地安排
周次
星期一
星期二
星期三
星期四
星期五
第19周
第1-4节
第1-4节
第5-7节
第1-4节
第1-4节
地点
现教211
现教211
现教211
现教211
现教211
课程设计报告撰写格式要求:
1设计题目与要求
2设计思想
3系统结构
4数据结构的说明和模块的算法流程图
5使用说明书(即用户手册)、运行结果、关键界面截图
6测试计划说明书、测试用例规格说明、缺陷报告
7自我评价与总结
8附录:
程序清单,注意加注释(包括关键字、方法、变量等),在每个模块前加注释;
要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者一律以抄袭论处。
设计报告正文字数不少于万字(不包括附录)。
第1级(章)题序和题名用黑体三号字;第2级(目)题序和题名用黑体小四号字;第3级(条)题序和题名用黑体小四号字;正文内容用宋体五号字(英文用新罗马体),多倍行距。
报告内容一律使用A4打印纸计算机打印,页码在页下居中标明。
必须使用国家公布的规范字。
页面设置:
上空cm,下空cm,左空cm,右空(左装订)。
插图图面要整齐、美观,插图应与正文呼应,不能脱节。
每幅插图应有图序与图题,图序编号要连续,图序与图题间空一格且要放在插图下方居中处。
课程设计考核及评分标准
课程设计考核将综合考虑学生考勤和参与度,系统设计方案正确性,系统设计和开发效果以及课程设计报告书的质量。
总分按五级记分法记载最后成绩:
优秀(100~90分),良好(80~89分),中等(70~79分),及格(60~69分),不及格(0~59分)
指导教师签字:
钱小红2015年7月9日
系主任签字:
邱珊2015年7月9日
1.系统概述
社会背景
学生管理工作是每个学校必须面对的,它是一项传统且繁琐的教育基础管理工作,极为耗费人力、物力。
往常,各学校采用人工管理形式每学期开学时相关人员分别统计各个学生的情况,到了期末又要对相关信息进行处理,比如考试情况、学生课程调动等,面对如此不断反复、繁杂的变化,各学校都要耗费大量的人力、物力。
同时,这种传统人工的方式来管理学生工作,还存在着很多缺点,如效率低、保密性差,另外时间长,将产生大量的冗余文件和数据,这给数据的查找、更新和维护工作带来了很大的困难。
随着科学技术的不断提高,特别是计算机、网络等相关技术的日渐成熟,其强大的功能已被人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用,特别是它具有的手工管理所无法比拟的优点,使得各个学校都相继采用了信息技术对学生的有关信息进行管理。
通过使用计算机技术等手段,将工作人员从重复、繁杂的手工处理中解脱出来,提高了工作效率,而且减少了人工处理产生的错误。
使得教育基础管理工作迈上了一个新的台阶,从而实现了教育基础管理的信息化、科学化、现代化。
研究中出现的主要问题
本文主要基于Java的学生信息管理系统为应用背景,主要研究以下两个方面的问题:
(1)采用比C语言更先进的Java技术建立系统模型和划分模块,采用基于SQL技术访问数据库并构建一个完整的学生信息管理系统。
(2)改进Java技术的安全性,对系统进行全面综合的评测。
分析测评结果,并就java的安全机制的研究与实现提出了几个观点及改进建议。
研究目的
本统提供了学生信息管理中常见的基本功能,主要包括管理员和学生两大模块。
管理员的主要功能有对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。
学生的主要功能有对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。
开发环境和软件
操作系统:
winXP
数据库软件:
SQLServer2005
Java开发工具:
Eclipse
2.系统需求分析
系统设计
学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。
该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。
用ODBC驱动实现前台Java与后台SQL数据库的连接。
Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。
SQLServer2005数据库高效安全,两者结合可相互利用各自的优势。
系统功能分析
传统的学习信息管理处理方式主要是手工处理,一般只是打印一些学生的主要信息,譬如:
学生个人信息、学生各科分数、学生各学期课程。
本学生信息管理系统远远超越了传统的手工处理方式,本系统的大致功能有:
1.用户登陆界面。
该界面可以选择使用者的身份,“管理员,学生”。
不同的身份有不同的操作界面和功能权限,ID号和密码输入正确即可登录。
2.学生管理界面:
提供了学生个人信息、班级信息、专业信息、院级信息以及相关科目的成绩查询,修改登录密码等功能。
3.管理员管理界面:
提供了对学生学籍信息的查询、添加、修改、删除,学生成绩的录入、修改、删除,查询班级排名、修改密码等功能。
4.管理员管理界面:
拥有最高的权限,可以管理人员的登录和退出,通过学号查询学生的信息,添加学生信息,修改学生的信息,删除学生的信息。
5.信息分别存储在SQL数据库的“学生信息表”、“课程信息表”、“选课信息表”和用户信息表中,如果信息这四张表中不存在,将会无权利登录本管理系统。
可行性分析
对于学生信息管理,现在需要用计算机进行对这种庞大数据的处理,本系统主要提供给高校的老师和学生,对于他们来说,基于JAVA系统的学生信息管理系统是非常简单且实用,学生可以随时查看自己的个人信息,如果有需要可以修改自己的个人信息。
对于管理者或者说是老师而言,他们可以在家就对学生进行有效的管理,做到快捷,方便。
所以从这几个角度出发我们不难发现该系统的可操作性是完全可行的。
3.系统详细设计
系统概述
对于学生信息管理系统而言,会存在很多的实体对象,这些对象之间的关系处理非常的重要,因此在最开始的时候首先想到的是设计数据库里的表结构以及表字段。
即想好了需求中需要哪些表,表与表之间的关联是通过哪些字段。
以及这样设计的话它的可行性。
系统总体设计
学生信息管理系统主要包括管理员和学生两大模块。
管理员模块包括:
学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等。
用户模块包括:
学生信息查看、成绩信息查看、个人信息管理等。
系统总体结构如图3-1所示,用户验证流程图如图3-2所示。
图3-1系统总体结构图
验证成功
图3-2用户验证流程图
系统详细设计
用户信息管理模块
用户信息管理模块包括修改、查询、显示全部等。
具体的结构图如图3-3所示。
图3-3用户信息管理模块结构图
学生信息管理模块
学生信息管理模块包括增加、删除、修改、查询、显示全部等。
具体的结构图如图3-4所示
图3-4学生信息管理模块结构图
课程信息管理模块
课程信息管理模块包括增加、删除、修改、查询、显示全部等。
具体的结构图如图3-5所示
图3-5课程信息管理模块结构图
选课信息管理模块
选课信息管理模块包括查询、显示全部等。
具体的结构图如图3-6所示。
图3-6选课信息管理模块结构图
成绩信息管理模块
成绩信息管理模块包括修改成绩、查询、显示全部等。
具体的结构图如图3-7所示。
图3-7成绩信息管理模块结构图
4.系统数据库设计
建立数据库
安装好SQLServer2005之后,连接数据库在里面新建student数据库文件
建立数据表
在数据库student中共有4张数据表:
s(学生信息表)、c(课程信息表)、sc(选课信息表)、unpw(用户信息表),下面定义每张表的字段名称和数据类型。
s(学生信息表)
字段名称
数据类型
中文描述
sno
char(10)
学号,关键字
sn
char(20)
姓名
sa
int
年龄
ss
char(10)
性别
sd
char(10)
院系
c(课程信息表)
字段名称
数据类型
中文描述
cno
char(10)
课程号,关键字
cn
char(30)
课程名
pcno
char(10)
先行课程号
sc(选课信息表)
字段名称
数据类型
中文描述
sno
char(10)
学号,关键字
cno
char(10)
课程号,关键字
g
int
成绩
unpw(用户信息表)
字段名称
数据类型
中文描述
un
char(10)
用户名,关键字
pw
char(10)
密码
qx
int
角色
5.系统测试
学生信息管理系统的登录
学生信息管理系统可由管理员和学生两种身份的人使用。
管理员和学生身份登录所能操作的功能有很大的区别。
由于在后台数据库里面新建的用户只有一个管理员(admin)和一个学生(xuesheng),所以登录界面只有这种情况,如图5-1所示
图5-1登录界面
管理员登录
管理员登录之后就会出现如图5-2所示的界面,管理员可以进入学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理以及退出管理系统就行相应的添加、修改、查询和删除。
图5-2管理员登录系统后的界面
管理员对学生信息的添加
点击学生信息管理模块之后,管理员就在学生信息管理模块上面选择“添加”就可以添加学生信息了,如图5-3所示
图5-3添加学生信息
管理员对学生信息的修改
点击学生信息管理模块之后,管理员就在学生信息管理模块上面选择“修改”就可以修改学生信息了,如图5-4所示
图5-4修改学生信息
管理员对学生信息的查询
点击学生信息管理模块之后,管理员就在学生信息管理模块上面选择“查询”就可以查询学生信息了,如图5-5所示
图5-5查询学生信息
管理员对学生信息的删除
点击学生信息管理模块之后,管理员就在学生信息管理模块上面选择“删除”就可以删除学生信息了,如图5-6所示
图5-6学生信息删除
管理员显示学生信息
点击学生信息管理模块之后,管理员就在学生信息管理模块上面选择“显示”就可以显示所有学生信息了,如图5-7所示
图5-7显示学生信息
6.总结
在这次课程设计的过程中,在与代码为伴的一个星期里,我真的收获了很多。
这次软件工程的课程设计,让我巩固了这学期学的知识,又复习了关于数据库的知识,更是学会了如何将所学的知识运用到实际,真正的应用软件开发,Java开发中来。
并且,在设计过程中,通过上网搜索有关资料的同时,也开阔了视野,丰富了自己的知识面。
为期一个星期的课程设计已经结束了,在这个过程中我获益匪浅,比如说初步学会了用Java开发界面,虽然做出的网页不是特别美观,很多地方有瑕疵,但是从一窍不通成长到能逐渐能做出一个功能基本完善的简单的系统,一步步走来,其中收获的不仅是知识,还有动手能力,自学能力,合作能力。
总体来说,这次的软件工程课程设计没有我想象中的那么难,刚开始设计时就遇到了很多困难,不过认真听过老师每天的讲解后,很多困难也就迎刃而解了。
同时也要感谢老师和同学们的帮助,如果没有他们的帮助,很难完成这次的课程设计。
虽然我的设计其功能基本符合用户需求,能够完成基本的业务操作流程,并提供部分系统维护功能,使用户方便进行数据添加、修改、查询和删除。
但是由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如说明文档比较少,用户界面不够美观,出错处理不够等多方面的问题。
这些都有待进一步改善,希望在以后的学习和工作中得以完善。
参考文献
[1]邱珊主编,《Java语言程序设计》,科学出版社
[2]高金兰,鲁立,《数据库原理与SQLServer应用》,科学出版社
[3]李春宝主编,《数据库原理与应用》,清华大学出版社,
附录
1.程序类的设计
SimpleStudentManager主函数类
DLFrame登陆界面类
ManagerFrane管理员界面类
StudentFrame学生界面类
SM学生信息管理的类
SAdd用于学生信息管理中增加或修改某条记录的界面的类
SSelect用于学生基本信息管理中查询时输入学号的界面的类
CM课程信息管理的类
CAdd用于课程信息管理中增加或修改某条记录的界面的类
CSelect用于课程信息管理中查询时输入课程号的界面的类
SCM选课信息管理的类
SCSelect用于选课信息管理中查询时输入学号的界面的类
GM成绩信息管理的类
GAdd用于成绩信息管理中修改成绩的界面的类
GSelect用于成绩信息管理中查询时输入学号的界面的类
PM用户信息管理的类
UAdd用于用户信息管理中修改密码的界面的类
PSelect用于用户信息管理中查询时输入用户名的界面的类
StudentS用于学生信息查看时输入学号的界面的类
StudentSelect用于成绩信息查看时输入学号的界面的类
PPM个人信息管理的类
PPSelect用于个人信息管理查询时输入用户名的界面的类
2.源代码
import.*;
import.*;
import.*;
classCAddextendsJFrameimplementsActionListener{isplay();
}
isNewsm=true;
}
if()=="取消"){
(false);
newCM("课程信息管理").display();
}
}
}
import.*;
import.*;
import.*;
classCMextendsJFrameimplementsActionListener{isplay();
}catch(SQLExceptione){
();
}
}else{
try{
intrs1=("deletefromcwherecno='"
+mkch+"'");isplay();
}catch(SQLExceptione){
();
}
}
}
}
publicvoidupdate(){isplay();
}else{
sTable=newJTable(playerInfo,columnNames);isplay();
}
}
}
import.*;
publicclassCSelectextendsJFrameimplementsActionListener{elect();
}
}
}
import.*;
import.*;
import.*;
classDLFrameextendsJFrameimplementsActionListener,ItemListener{quals("")||().equals("")){rim();
pw=("pw").trim();
if().equals(un)){
if().equals(pw)){
actionCode=OK;
(false);
if(qxian==0){
newManagerFrane();;
import.*;
import.*;
classGAddextendsJFrameimplementsActionListener{isplay();
();
}
isNewsm=true;
}
if()=="取消"){
(false);
newGM("成绩信息管理").display();
}
}
}
import.*;
import.*;
import.*;
classGMextendsJFrameimplementsActionListener{xecuteQuery("select*fromsc,cwhere=");
}else{
rs=stmt
.executeQuery("select*fromsc,cwhere=andsno='"
+mxh+"'");
}
while()&&j1<=row){
kch=("sno");
kcm=("cn");
xxkch=("g");
j1++;
}
}catch(SQLExceptione){
();
}
GAddgadd=newGAdd();
("修改成绩");
();
}
}
publicvoidselect(){xecuteQuery("select*fromsc,cwhere=andsno='"
+mxh+"'");
while()){
playerInfo[j][0]=("sno");
playerInfo[j][1]=("cn");
playerInfo[j][2]=("g");
j++;
}
}catch(SQLExceptione){
();
}
if(playerInfo[0][1]==null){
();
(null,"学号不存在!
");
newGM("成绩信息管理").display();
}else{
sTable=newJTable(playerInfo,columnNames);
(sTable);
scroll=newJScrollPane(sTable);
(scroll);
}
}
publicvoidactionPerformed(ActionEvente){
if()=="修改成绩"){
();
}
if()=="查询"){
gst=newGSelect();
();
}
if()=="显示"){
();
newGM("成绩信息管理").display();
}
}
}
import.*;
publicclassGSelectextendsJFrameimplementsActionListener{xecuteQuery("select*fromsc,cwhere=andsno='"
+gxh+"'");
while()){
("sno"));
("cn"));
("g"));
i++;elect();
}
}
}
import.*;
import.*;
classManagerFraneextendsJFrameimplementsActionListener{isplay();
if()=="课程信息管理"){