学生信息管理系统课设报告javaeeWord下载.docx
《学生信息管理系统课设报告javaeeWord下载.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统课设报告javaeeWord下载.docx(32页珍藏版)》请在冰豆网上搜索。
![学生信息管理系统课设报告javaeeWord下载.docx](https://file1.bdocx.com/fileroot1/2023-1/21/5a377d2b-ba10-47fe-bb0a-df7887cd9769/5a377d2b-ba10-47fe-bb0a-df7887cd97691.gif)
需求分析、总体设计、详细设计、工程复审、编码、测试。
关键词:
学生成绩管理;
NetBeans;
SQLSERVER2021;
学生信息管理
;
JSP和Servlet技术
可行性分析
1经济可行性
〔1〕系统开发、建立费用自费。
其中:
本系统开发期为两个星期,需开发人员1人。
根据软件系统的规模估算,开发工作量约为1人两星期。
〔2〕硬件设备费暂无,其中:
自行带有电脑。
〔3〕对于效益,由于本软件的主要背景(为课程设计)在经济上不注重直接的经济收益。
2技术可行性
本人已经具备相应的根底开发能力:
UML模型构建技术、JAVA与HTML编程等,能够根据方案和说明书的要求,按时完成系统的每一局部,保证后面的开发进程可以顺利进展。
3形势开展可行性
从社会经济开展看,将来很长时间上,学生信息管理系统都将为学校所需要。
4法律可行性
本系统符合国家的相关法律政策。
5后期维护可行性
本系统提供后期维护。
需求分析
1引言
1.1编写目的
在我国,各大中小学校的各类信息管理系统并非一个新的课题,但也有的学校根本就没有信息任何管理系统,所有的工作几乎还是手工操作来完成。
计算机技术在日新月异的开展,但是有的很多学校,特别是在西部贫困地区,学校的种类管理都依然由手工操作来完成,这十分落后,效率极低,本钱很大,而且极异出错。
所以机器代替人力是必然的历史开展趋势,只有领导的重视和支持才能从人工操作改为计算机的自动化系统。
人工操作必将被计算机代替。
学生信息管理系统主要用来给学生提供一个信息平台,可以随时进展交流以及信息查询。
设计出学生成绩管理系统就是一个很好的解决方法。
1.2背景
a.开发软件的名称:
学生信息管理系统。
b.工程的提出者:
Javaee课设指导教师。
c.工程的任务开发者:
潘国伟
d.工程的用户:
学校。
e.本工程和学校的其他系统有直接的联系。
1.3定义
查询:
对数据库的操作的一种,用于搜索数据信息。
插入:
对数据库的操作的一种,用于将数据存入数据库中。
更新:
对数据库的操作的一种,用于更改数据库中的数据信息。
数据字典:
是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
SQLSERVER:
本系统效劳器所使用的数据库管理系统。
1.4参考资料
a.?
javaee编程技术?
郝玉龙著清华大学
b.需求规格说明书
2任务概述
2.1目标
实现学生信息的便管理
2.2用户的特点
本软件的最终用户是学校的师生,学校的操作人员无计算机技术专长,凡熟悉电脑根本操作人员进展2-3天的系统相应的培训可根本掌握软件的使用。
一般师生,无技术专长,教育水平不等,凡熟悉电脑根本操作人员进展根本掌握本系统的使用。
维护人员教育水平大学,有维护系统的技术专长。
本软件的预期使用频度高。
2.3假定和约束
1.人力、资金、时间的约束
学生信息管理系统实施的目标就是要带给信息管理的便捷,其开发过程中也要考虑到人力、资金和时间的约束。
因此,在设计中,重点是管理系统中的方便快捷,能提供应师生以优质高效的操作,并提高信息管理的效率和便捷,为学校带来良好的工作效率。
2.技术开展规律的约束
计算机技术和产品的开展日新月异,将会给信息处理带来更多的手段,同时也会带来更加丰富的信息表达形式。
例如图象和语音技术的进步,多媒体技术的开展,这些都要求系统在设计时考虑技术变化的可能性,为可能的变化预留一定的系统处理能力。
3需求规定
3.1对功能的需求
通过用户身份登陆验证后,用户可以进展:
3.2对性能的需求
能对用户输入账号、密码进展验证并反应给用户账号信息〔账号不存在或密码错误〕。
可以选择记住账号。
3.2.1精度
数据准确度:
数据库逻辑表
表格
名称
说明
Attendance_Semester
学期
Attendence
出勤
Library
图书
Message
消息
Result
成绩
Student
学生
学生信息
Subjects
课程
TimeTable
课表
Fee
费用
学费
3.2.2时间特性要求
要求数据传输时间在20秒以内,效劳器响应时间在10秒以内,总响应时间为1分钟。
3.3数据管理能力要求
软件系统连接后台数据库,数据库存储用户信息,课表信息,成绩单信息等根本信息。
后台数据库管理软件数据,保存数据操作,以支持数据管理的平安性。
本系统需要管理的文件和记录有3个,要按可预见的增长对数据及其分量的存储的估算是2G。
3.5故障处理要求
如果输入数据出错,可立即进展取消操作,重新输入。
所有数据应同时具备硬拷贝〔备份到外部介质〕和软拷贝〔备份到本地〕两种备份方式,具有迅速的灾难恢复能力。
同时应充分考虑各种突发情况的处理方式,如果突然断电或系统没有响应,那么关机,等系统重新启动时,会根据日志ROLLBACK到正确的阶段。
需要等待一段时间。
系统应能够自动切换到备份效劳器以保证用户能够继续访问。
3.6其他专门要求
由于数据的传输上需要通过网络传输,为了客户资料进展XX,需要在网络的传输过程中对数据进展加密。
这个工作主要是在准备网络包,及解开网络包这两个模块完成,它们各对数据进展加密及解密复原工作。
在加密算法选择上将使用RSA加密算法。
4.使用要求
易用性:
系统设计应具有良好的易用性、操作简便,考虑到大多数用户习惯了Windows操作风格。
同时,尽量减少用户的记忆工作量。
系统设计应具有风格一致性,对各种用户的错误输入应能及时识别并给出相应提示。
平安性:
系统中所有涉及敏感信息如登录口令等,效劳器端应设置严格平安访问控制策略,从而保证系统平安性和操作责任的可追溯性。
灵活性:
〔1〕操作系统:
该软件当遇到非预期输入数据或操作时,会进展报错处理,并要求用户重新进展输入数据或操作。
〔2〕同其他软件接口的变化:
考虑到接口的变化,尽量将代码模块化,多提供一些接口类,提高代码的可移植性。
〔3〕运行环境的变化:
由于代码输入到不同的环境,其虚拟机可能有所不同,所以编写代码时要考虑运行在不同平台上的问题,即代码的平台可移植性。
(4)方案的变化或改良:
工程过程中可能要更改方案,如更换背景,更换页面风格,或者调整每次系统输出信息的时间等。
这些就要依赖于代码的可扩展性,当需要修改时,可以不用更改很多代码就能到达目的。
5运行环境规定
5.1设备
(1)硬件环境:
采用普通办公用个人计算机作为效劳器即可。
a.效劳器端:
PentiumII450以上,1024MRAM,36GHD
客户机端:
Pentium133以上,32MRAM,2.1GHD
b.硬盘150G
c.键盘输入。
d.数据通信设备的型号和数量;
e.集成显卡
(2)Java运行环境:
采用JRE1.5以上中文版本。
(3)客户端:
采用浏览器工具即可。
5.2支持软件
系统软件、效劳器端:
WindowsXP/Win7/Win8
WindowsXP/Win7/Win8
数据库管理系统:
SQLServer2021
5.3接口
1外部接口
(1)用户界面
在用户界面局部,根据需求分析的结果,用户需要一个用户友善界面。
在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。
外观上也要做到合理化,考虑到用户多对WINDOW风格较熟悉,应尽量向这一方向靠拢。
在设计语言上,已决定使用JAVA进展编程,在界面上可使用HTML所提供的页面设计标签,向WINDOWS风格靠近。
其中效劳器程序界面要做到操作简单,易于管理。
在设计上采用下拉式菜单方式,在出错显示上可调用JAVA库中的错误提示函数。
总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用
(2)软件接口
效劳器程序可使用JAVA提供的对SQLSERVER的接口,进展对数据库的所有访问。
效劳器程序上可使用SQLSERVER2021的对数据库的备分命令,以做到对数据的保存。
在网络软件接口方面,使用一种无过失的传输协议,采用滑动窗口方式对数据进展网络传输及接收。
(3)硬件接口
在输入方面,对于键盘、鼠标的输入,可用JAVA的标准输入/输出,对输入进展处理。
在输出方面,打印机的连接及使用,也可用JAVA的标准输入/输出对其进展处理。
在网络传输局部,在网络硬件局部,为了实现高速传输,将使用高速ATM。
2内部接口
内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进展信息传递。
接口传递的信息将是以数据构造封装了的数据,以参数传递或返回值的形式在各模块间传输。
5.4控制
运行控制将严格按照各模块间函数调用关系来实现。
在各事务中心模块中,需对运行控制进展正确的判断,选择正确的运行控制路径。
在网络传方面,客户机在发送数据后,将等待效劳器确实认收到信号,收到后,再次等待效劳器发送答复数据,然后对数据进展确认。
效劳器在接到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户端,并等待确认。
6尚未解决的问题
由于水平问题,我们做的订票系统还是不如现有学生信息管理系统,我们的界面不够美观,查询个学期的课表,我还没有做到。
所以我们会不断学习提高自己的能力,继续不断完善其功能,给用户更好的使用体验。
总体设计
1.系统概述
本系统是信息查询系统,因此应该构建在学校内部网络上,通过上网的方式随时使用。
通常,使用NETBEANS开发互联网程序是比拟方便的,可以利用JSP技术来编写本系统。
2.系统总体构造
按照系统的需求要求,可以把系统功能进展分解,以便按照每个功能模块的要求分别
实现对应的功能。
下列图图是系统总体构造图。
3.人工处理过程
该系统刚建立时,由于数据库的资料比拟少,所以数据库管理员要输入大量的资料信息,逐条输入到数据库表中,这是一个比拟繁琐的工程,需要花费大量的人力物力。
同时还有对数据库的维护,都需要专业人士处理。
运行设计
4运行模块组合
本系统无论是前台模块还是后台模块,在程序翻开后,用户单击导航按钮分别进入不同的子模块,再在这些模块中分别调用它们的子模块完成一系列的操作。
5控制流程:
主页面运行,等待用户选择导航条,根据用户的选择调用不同的模块。
6运行时间
各模块的运行时间比拟短,但均不至于影响软件的质量。
7数据库设计
Student表:
Attendence表:
Result表:
Library表:
Time表:
8系统出错处理设计
在运行本程序过程中难免会遇到这样那样的问题导致系统无法正常操作,例如加载数据库驱动程序失败、连接数据库失败、更新数据库失败等,那么怎么解决这些问题呢?
在这里我们列举一些常见的问题以及解决方法。
8.1加载数据库驱动程序失败
对于该问题,如果用户使用的是JDBC连接数据库,首先单看通过Class.forName()方法加载的驱动程序是否正确,然后查看WEB-INF/lib目录下是否存在msutil.jar、mssqlserver.jar、mabase.jar文件。
或者查看‘URL‘是否正确
8.2更新数据库失败
更新数据库失败一般情况下是因为进展添加、删除、修改、查找的SQL语句存在错误,例如,将from写成form,或者所写的字表名与实际要操作的字表名不一致等。
9维护设计
除了严格按照软件工程的科学方法开发软件、认真建立文档、编码阶段写详细的注释外,没有特殊的维护设计。
详细设计
1.设计流程和技术方法
本系统根据角色划分功能,可以按照下列图所示的活动图进展分解,包括了学生和
管理员两个角色的功能。
登陆界面:
主界面:
选课信息:
个人信息修改界面:
成绩查询界面:
课表界面:
图书借阅查询:
工程复审
1.评审目的
1.1系统目标与市场定位审核
系统目标:
能够较好的改善学学生信息管理方面的周期长,时间较长,比拟合理,能较好的抓住所需求的理想的状态,节约很多时间
市场定位:
本系统对学校开放,较多人使用,使用周期长,应该设计合理不出现大的BUG,通过评审找出软件的缺乏,加以完善
1.2系统主要功能审核
能实现根本的功能,需求分析做的比拟具体,客户群心理抓的较准,业务模式能在多数的浏览器下运行
1.3系统主要特色审核
系统能较好的发挥出自己的特色
1.3.1用户需求
系统中保存所有学生的信息,毕业后信息转储,但随时可以查询,输出。
1.3.2功能要求审核
·
选课查询:
查出已选的课程,进展选课;
课表查询:
查出自己的课表;
成绩:
查询自己的各科成绩以及总共的学分绩;
个人信息:
查询个人信息并可以修改;
费用信息:
各学年应交的学费。
功能较完善
1.3.3功能实现状况
功能根本已经实现,系统构思较为严谨本系统是运行在浏览器环境下的信息管理平台。
但是缺乏的是,该系统没有做到创新突破前人的工作,界面也不够美观,缺少装饰来美化界面。
总的来说根本完成了功能需求,但是还有待改就。
2.市场调研与分析
通过考察能正确了解使用者使用流程,融入软件使用者的思想
2.1用户市场调研
所以机器代替人力是必然的历史开展趋势,人工操作必将被计算机代替。
2.2产品市场调研
3.意见及建议
对于这个程序的开发的需求研究的较为清楚透彻,比拟可贵,但是在产品的周期上研发时间较短,需要更加多的时间磨合,以加强软件的实用性。
编码
源代码见附录。
工程测试
测试方案
测试方案是测试阶段的关键技术问题。
为了提高测试效率降低测试本钱,本测试方案采用黑盒法设计根本的测试方案,再用白盒法补充一些方案。
在黑盒法测试方案中,采用等价划分技术,把所有可能的输入数据〔有效的和无效的〕划分成等价类,其划分类在以下的输入中再详述。
1.1测试的模块
1.2测试准备
在测试前,以概要设计说明书.详细设计说明书作为总的提纲,选择适宜的输入输出数据,并加以意义列举说明。
1.3测试人员
2具体测试
2.1根本路径
进入系统注册界面---输入用户名、密码完成注册---进入登陆界面---输入用户名、密码登陆---选择相应的等功能;
注销---界面恢复初始状态。
2.2功能用例测试:
2.2.1系统注册模块测试
对用户注册进展测试,输入用户名、密码,结果为成功注册或出错信息。
〔1〕、划分等价类:
输入等价类
有效等价类
无效等价类
输入用户名、
两次密码
①、输入不存在的用户名、两次一致的密码
②、用户名已经存在;
③、密码两次输入不一致;
④、用户名输入为空
⑤、密码输入为空
(2)、设计测试用例,以便覆盖所有的等价类
系统已存在的用户名有:
X宇,X明,赵信
测试数据
预期结果
覆盖的等价类
X三123123
注册成功
①
X宇456456
提示用户名已经存在
②
李四123456
提示密码两次输入不一致
③
121121
提示用户名输入为空
④
黄明
提示密码输入为空
⑤
提示输入不能为空
④、⑤
2.2.2系统登陆模块测试
对用户登陆进展测试,输入用户名、密码,结果为成功登陆或出错信息。
输入用户名、密码
①、输入已存在的用户名、正确的密码
②、用户名不存在;
③、密码输入不正确;
(3)、设计测试用例,以便覆盖所有的等价类
X宇,密码为:
456
X宇456
登陆成功
X三456
提示用户名不存在
X宇123
提示密码不正确
121
2.2.3成绩查询模块测试
(4)用户正常登录后,进入订票页面,选择乘坐的航班,假设查询到该航班还有座位,可进展订票。
(5)
测试过程
未有成绩,点击查询
提示您没有成绩信息
假设有成绩,点击查询
显示您的成绩信息
总结
本次课程设计我设计的工程是学生信息管理系统。
为期两周,我都积极投入到课设当中,和同学一起讨论、互相学习、互相帮助,在良好的学习气氛中完成课设。
课设开场我们小组进展了调研,利用网络,浏览各种学生信息管理系统。
通过调研我做出了可行性研究报告以及需求分析。
根据后得到的信息,确定了总的功能模块;
由于需求分析和性能需求没有做好,有些细节没有考虑,只能想到的时候再加进去,大大拖延了整个工程的进度,我也从中认识到了一个工程的需求分析是非常重要的,这也表达了软件工程的思想,需要我们引以为戒。
工程刚开场的时候困难重重,不过工程方案做得好,即使困难我们也摸索前进,我们也永远知道下步要做什么,不会迷茫。
说短不短说长不长的两周在紧X和忙碌中过去了。
有过争吵,有过欢笑,也曾走入过“误区〞,从起初的迷茫到稳健,俗话说众人拾柴火焰高,在教师和同学的帮助下我解决了一个又一个的问题。
有了这个课设的经历我对JAVAEE有了新的认识。
深刻认识到了没有学到东西还很多,我要好好学习JAVAEE的方方面面,对JAVAEE一系列知识消化吸收,为将来的工作打好根底。
参考文献
[1]郝玉龙JavaEE编程技术清华大学
[2]课程设计指导书
附录
登陆处理servlet:
package.servlet;
importjava.io.*;
importjava.sql.*;
importjava.util.*;
importjavax.servlet.*;
importjavax.servlet..*;
import.sql.connetion;
publicclassMServletextendsServlet{
protectedvoidprocessRequest(ServletRequestrequest,ServletResponseresponse)
throwsServletException,IOException{
response.setContentType("
text/html;
charset=UTF-8"
);
PrintWriterout=response.getWriter();
try{
StringID=request.getParameter("
ID"
StringPassword=request.getParameter("
psw"
java.sql.ResultSetsqlrst=null;
.sql.connetionconnet=new.sql.connetion();
connetionconn=new.sql.connetion();
Stringsqlquery="
select*fromstudentwhereSID='
"
+ID+"
'
"
;
sqlrst=connet.SQLeq(sqlquery);
Stringid="
Stringpassword="
Stringname="
Stringquanxian="
while(sqlrst.next()){
id=sqlrst.getString("
SID"
password=sqlrst.getString("
Password"
//out.print(password);
name=sqlrst.getString("
Sname"
quanxian=sqlrst.getString("
权限"
}
if(id.equals(ID)&
(password.equals(Password))){
Sessionsession=request.getSession(true);
session.setAttribute("
id"
ID);
na