基于BS架构的大学生成绩管理系统设计与实现Word格式.docx
- 文档编号:17128531
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:29
- 大小:55.81KB
基于BS架构的大学生成绩管理系统设计与实现Word格式.docx
《基于BS架构的大学生成绩管理系统设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《基于BS架构的大学生成绩管理系统设计与实现Word格式.docx(29页珍藏版)》请在冰豆网上搜索。
第一章绪论
1.1研究背景
随着计算机科学的发展,利用计算机来实现数据的管理已经越来越成为一种趋势。
当需要管理的数据量较大时,可以通过根据自身特点设计并开发一个对应的信息管理系统来完成既定的功能.相较于传统的信息管理,计算机信息管理系统具有存储量大、查询迅速、可靠性高、成本低和使用方便等优点。
现在的大学生成绩信息管理就可通过计算机来实现。
开发一个大学生成绩管理系统对于教务人员和学生有着很大的意义,可以帮助相应人员从繁重的信息管理工作中解放出来。
1。
2研究目标
通过对学校教务系统成绩管理的研究,开发一个与学校教务成绩管理特点想适应的学生成绩管理系统。
本系统设计的主要目标如下:
Ø
能满足成绩管理的功能需求。
有一定的人性化设计,方便用户使用。
操作快捷,提高办公效率。
有一定的安全机制,防止恶意篡改数据。
第二章系统开发相关技术介绍
本系统的开发涉及到的语言和技术有:
B/S框架技术、软件开发语言java、数据库技术(oracle)等。
2.1系统架构
2。
1.1B/S架构和C/S架构介绍
C/S全称Client/Server。
客户机需安装相应的客户端才可使用。
C/S架构通过把任务合理分配到客户端和服务器端,来降低服务器端资源开销。
但是C/S架构在系统更新时从服务器到客户机都需要更新,代价较大。
B/S全称Browser/Server。
相较于C/S架构,B/S架构不需客户机安装客户端,只需安装浏览器即可,例如360浏览器、火狐浏览器等。
浏览器通过WebServer同数据库进行数据交互。
B/S架构在系统进行更新时,只需更新服务器即可,但是本架构相较于C/S架构对服务器要求比较高.
2本系统架构
本系统用户定位于高校师生,是一个小型系统,普通的PC机即可担任客户机。
同时考虑到采用B/S架构用户不需客户端以及维护方便的优势,最终采用B/S架构。
2java语言
2.1java简介
Java语言是一种面向对象的语言,继承了c++语言面向对象的核心,同时去除了c++中难懂的指针、多重继承(以接口代替)、运算符重载等特性。
Java语言真正实现了“一次编译,到处执行”的特性.
3Oracle数据库
3。
1Oracle简介
Oracle是殷墟出土的甲骨文(oracleboneinscriptions)的英文翻译的第一个单词.
Oracle公司是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州Redwoodshore.
Oracle公司因其复杂的关系数据库产品而闻名。
Oracle的关系数据库是世界第一个支持SQL语言的数据库
2Oracle数据库体系结构概述
平常所说的Oracle或Oracle数据库指的是Oracle数据库管理系统。
Oracle数据库管理系统是管理数据库访问的计算机软件(Oracledatabasemanagersystem).它由Oracle数据库和Oracle实例(instance)构成。
Oracle数据库:
一个相关的操作系统文件(即存储在计算机硬盘上的文件)集合,这些文件组织在一起,成为一个逻辑整体,即为Oracle数据库。
Oracle用它来存储和管理相关的信息。
Oracle数据库必须要与内存里的实例合作,才能对外提供数据管理服务。
Oracle实例:
位于物理内存里的数据结构,它由操作系统的多个后台进程和一个共享的内存池所组成,共享的内存池可以被所有进程访问。
Oracle用它们来管理数据库访问.用户如果要存取数据库(也就是硬盘上的文件)里的数据,必须通过Oracle实例才能实现,不能直接读取硬盘上的文件。
实际上,Oracle实例就是平常所说的数据库服务(service)。
区别:
实例可以操作数据库;
在任何时刻一个实例只能与一个数据库关联,访问一个数据库;
而同一个数据库可由多个实例访问(RAC)。
类似java里的类和对象,一个对象只属于一个类,类可以有多个对象。
表空间(Tablespace):
oracle数据库是通过表空间来存储表的,一个数据库实例可以有n个表空间,一个表空间下有n个表。
用户(user):
oracle数据库建好后,要想在库里建表,必须先为库创建用户,并为用户指定表空间,不指定的话默认为users表空间。
表(Table):
有了数据库、表空间和用户就可以创建表,是由行和列组成的二维数据结构,用来存储行记录。
数据(Data):
表中的行记录。
2.4本章小结
本章主要对系统所用的开发工具做了简单介绍。
第三章系统需求分析
系统在开发之前,需要和用户进行沟通了解用户所需的具体功能。
需求分析不是一个简单的阶段,它是贯穿于整个系统开发过程中的。
做好需求分析是系统开发的必备工作.本系统分析主要从需求分析、权限分析、功能分析以及数据分析入手。
3.1用户权限分析
随着学校招生人数的增长,随之而来的就是大量的学生信息管理问题,本论文针对的便是学生成绩信息管理。
成绩管理主要涉及两方面用户的操作:
学生和管理员(老师)。
学生在成绩管理上的权限仅限于用户注册、个人信息查询;
管理员在成绩管理上的权限有:
所有学生用户的查询、增加、删除、编辑,所有学生用户成绩信息的查询、增加、删除。
图3-1用户权限示例
Fig。
3-1Userpermissionsexample
2系统功能分析
在对学生和教师所需功能进行分析之后,本系统分别对学生子系统和管理员子系统做了如下功能设计.
学生端功能如下:
1、登录功能
能够实现一个登录页面,提交后在后台判断用户名密码的正确性。
后台处理使用Servlet实现。
(1)输入的用户名和密码是通过和数据库中信息进行比对,比对成功判断登录成功,跳转到登录成功页面,并在页面上判断用户是否已经登录,如果是已经登录状态,则显示登录用户名及登录时间.
(2)输入的用户名和密码是通过和数据库中信息进行比对,比对失败判断登录失败,此时,跳回登录页面,并在登录页面上提示用户:
“用户或密码错误,请重新登录”.
2、注册功能
通过在注册页面输入自己信息,提交后通过验证可完成学生注册。
3、显示信息功能
登录成功后可以看到自己详细信息。
管理端功能如下:
1、登录功能(同学生端)
2、信息列表功能
(1)按照学号从小到大显示全部学生的列表
(2)学生列表进行分页显示。
(3)在列表的“姓名”列增加链接,点击链接,可以查看对应学生的详细信息。
3、各科成绩范围查询功能
在学生列表页面的“各科"
下拉框中选中某课,后面输入框中输入成绩范围,点击“查询”按钮,在学生列表页面中显示查询结果.
4、学生详细信息功能
在学生列表中,点击“姓名”列的链接,显示该学生的详细信息。
5、新增学生功能
在学生列表页面,点击“新增”按钮,跳转到新增学生页面,在页面上输入学生的信息点击“提交”按钮,将信息提交至数据库。
6、删除学生功能
在学生列表中,选中想删除的学生记录前面的复选框,点击“删除”按钮,删除选中的学生信息。
页面跳转至学生列表页面,并且被删除的学生记录不再被显示.
7、回收站功能
显示被删除的学生列表,在回收站页面提供删除撤销和彻底删除等功能。
3.3系统数据分析
本系统在开发中会使用到学生相关信息包括:
学号、姓名、性别、出生日期、手机号、班级号、各科成绩。
其中学号会作为学生在数据库中的主键使用,作为唯一标识。
图3-2系统流程
Fig.3-2SystemFlow
第四章系统设计
本章主要设计了系统技术架构设计、数据库设计和底层接口设计。
如果把系统比喻一颗树的话,本章的工作就是设计树干.好的系统设计可以大大减少之后的代码实现部分工作量.
4.1系统技术架构设计
本系统采用当前主流的B/S作为系统架构,此模块中的业务层被划分为:
客户层、表示层、业务逻辑层以及数据层。
数据层:
为系统的最底层,存储了系统所需的数据.系统所做的操作最终都会反映到数据库中.
业务逻辑层:
该层内为系统的核心代码,负责根据用户不同的指令完成对数据库对应的操作。
表示层:
该层为web服务器,负责在客户层和业务逻辑层之间传输数据。
客户层:
该层为用户的web浏览器,表示为网页。
用户可以在对应的网页上进行操作,最终会反应到数据库中.
图4—1系统总体架构图
Fig.4-1SystemArchitecture
4。
2数据库设计
通过分析,可以抽取出管理员用户和学生用户两个实体类,即对应管理员用户表和学生用户表,用来管理用户信息.
4.2.1项目E—R图
图4-2学生实体E—R图
4-2StudententityE—Rdiagram
图4-3管理员用户实体E-R图
Fig.4-3AdministratorsentityE-Rdiagram
图4-4实体间关系图
Fig.4-4InterEntityRelationshipDiagram
2.2数据库表的设计
数据库表设计的科学与否直接关系到项目开发的顺利与否。
合理的数据库表格设计能会使项目代码实现容易、简洁,而不合理的数据库表格设计给程序员带来的工作量会大很多,且会造成代码的冗余.
本系统的数据库设计基本遵循了数据库开发的三大范式。
1、第一范式:
确保每列保持原子性.
2、第二范式:
确保表中的每列都和主键相关.
3、第三范式:
确保每列都和主键直接相关,而不是间接相关。
本系统的数据库设计基本遵循了三大范式.此设计也为之后的编码实现打好了基础,能够有效提高对代码实现的简洁性。
下表即为根据上节中所给出的E—R图设计的数据库表。
1、学生信息表
表4-1学生信息表
Tab.4—1StudentInformationSheet
字段名称
数据类型
字段大小
是否主键
说明
stuid
number
4
是
学号
name
Vchar2
20
否
姓名
password
密码
sex
性别
dateTime
date
出生日期
phone
11
手机号码
pce
5,2
运控成绩
mcs
5,2
过控成绩
epa
嵌入式成绩
flag
1
删除标志位
2.管理员信息表
表4-2管理员信息表
Tab。
4-2Administratorinformationtable
manid
管理员编号
3底层接口设计
底层接口对于系统的功能实现有决定性作用,好的接口设计对系统开发后期的编码实现不言而喻。
本系统的接口设计如下:
intmatchStudent(Stringname,Stringpwd);
booleanaddStudent(Studentstudent);
//addstudent
booleandelStudent0(longid[]);
//deletestudentsbyid(假)
booleandelStudent1(longid[]);
//deletestudentsbyid(真)
booleanundoDel(longid[]);
//撤销
List〈Student〉querySubStudent(intstart,intend);
//分页
StudentqueryStudentById(longid,intflag);
//通过主键和状态查询
booleanqueryStudentById(longid);
booleanqueryStudentByName(Stringname);
//通过name模糊查询
booleanupdateStudent(Studentstudent);
//跟新
intgetRowNum();
//获得总记录数
intgetRowNumRB();
//回收站记录
List<
Student〉queryStudentBySubjectScore(Stringsubject,intscoreMin,intscoreMax);
//条件查询
Student〉querySubStudentRB(intstart,intend);
//回收站分页
Student〉queryStudentBySubjectScoreRB(Stringsubject,intscoreMin,intscoreMax);
//回收站条件查询
4.3本章小结
本章主要完成了系统的框架设计工作,完成了系统的总体架构,为之后的具体编码实现打好了基础.
第五章详细设计和实现
本系统的准备工作到此已经完毕,在本章开始对系统功能的编码实现。
5。
1登录模块
本系统为成绩信息管理系统,不能被随意进入,所以需要通过登录来进行身份验证。
登录页面是本系统的客户入口,所以首先被设计。
1.1功能分析
1、本页面要完成两种用户验证的功能,即用户需要在本页面输入用户名和密码以及用户类型。
2、本页面应该具备一定的动态效果,用来拦截错误的登录过程,比如用户名为空等;
后台完成账号密码匹配功能.
3、页面设计应美观、大方。
2代码实现
该页面的最终效果图如下图所示:
图5—1学生成绩管理系统登陆页面
5—1Studentachievementmanagementsystemloginpage
用户通过在此页面输入用户名和密码及选择用户类型后(在页面上通过javascript控制用户名和密码不可为空),在后台(LoginServlet。
java)通过与数据库中信息进行匹配,匹配成功则会进入用户类型相应的用户操作界面,失败则会返回登陆页面并有提示信息:
图5-2管理员登陆成功页面
Fig.5—2Administratorloginsuccesspage
图5—3学生登录成功
Fig.5—3Studentloginsuccesspage
图5—4学生成绩管理系统登陆失败
5—4Studentachievementmanagementsystemloginfailed
1、在jsp页面为了防止用户过多的访问服务器,减少服务器的工作量,通过JavaScript实现在客户端验证登录信息的完整性:
functioncheckName(n){//验证姓名是否为空
if(n.value==””){
alert("
用户名不可为空”)
}
}
functioncheckPwd(n){//验证密码是否为空
if(n。
value==””){
密码不可为空”)
}
}
functioncheckAll(){//登录验证
if(document。
getElementById(”n"
)。
value!
=””&
&document.getElementById("
p”).value!
="
”){
returntrue;
}else{
有信息为空"
);
returnfalse;
2、当用户点击登录按钮之后,会把用户名等信息通过post的方式提交到LoginServlet,验证是否为真实用户;
信息匹配成功时重定向到welcome。
jsp页面,否则携带者“密码或用户名错误”的信息转发到login。
jsp。
LoginServlet关键代码如下:
//读取request
Stringname=request。
getParameter(”name"
);
Stringpwd=request。
getParameter("
pwd”);
Stringuser=request.getParameter(”userType”);
//根据用户类型分别进行用户名和密码匹配
if(user.equals(”student”)){
intstuid=newStudentBizImpl().matchStudent(name,pwd);
if(stuid>
0){
SimpleDateFormatsf=newSimpleDateFormat(”yyyy-MM-dd"
StringloginTime=sf.format(newDate());
//把用户名、学号、登陆时间和用户类型记录到session
request.getSession()。
setAttribute(”username”,name);
setAttribute("
stuid”,stuid);
request。
getSession().setAttribute(”loginTime"
,loginTime);
request.getSession().setAttribute(”userType”,user);
//重定向到welcome。
jsp
response.sendRedirect("
welcome.jsp"
}else{
//匹配失败转发到login.jsp
request.setAttribute(”msg”,"
用户名或密码错误”);
getRequestDispatcher(”login。
jsp”).forward(request,
response);
if(user。
equals("
manager"
)){
Managerm=newManager(name,pwd);
if(newManagerBizImpl().matchManager(m)){
SimpleDateFormatsf=newSimpleDateFormat(”yyyy-MM—dd"
//把用户名、登陆时间和用户类型记录到session
getSession()。
username"
,name);
setAttr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 BS 架构 大学生 成绩管理系统 设计 实现