基于WEB的学生综合测评系统
一、系统开发背景:
随着计算机技术的不断发展,在现代化社会中,各种信息的处理基本都是由计算机来完成的。在本课题中,我们要用计算机技术实现学生综合测评信息的管理。在没有计算机之前,所有的信息记录都是由人工记录维护,不但不方便,还经常出错,有了计算机就可以方便的对各种信息进行查询和维护了。
作为高校的学生综合素质测评信息管理系统,它涉及到大量的学生信息,各个学生的素质测评信息等各种信息,信息种类多,信息量大,如果一切都靠人工操作管理,不但查找不方便,维护也更是噩梦,作为计算机专业的一名学生,更有义务通过计算机实现对这些信息的科学化管理,也能通过这次毕业设计锻炼自己独立开发系统的能力。
在这个系统中,我们使用了B/S结构的软件体系,采用的是asp动态网页设计技术和access轻量级数据库,可以灵活地管理各种信息。系统包括四大功能模块:学生信息管理,测评信息管理,信息查询,系统设置。
二、需求分析的基本任务:
需求分析的基本任务是准确回答“系统必须做什么?”这个问题,也就是确定为了满足用户的需要系统必须做什么。具体地说,应该确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景。需求分析阶段必须仔细分析系统的业务流程,对业务流程进行抽象,得到系统的数据流分析。数据流图是从数据流动和加工的角度描述了系统要处理的数据和对数据的处理,所以数据流图代表了系统的逻辑模型。数据流图只是抽象地描述了系统的概貌,还要用其它工具进行更详细的描述。数据字典、IPO图和ER图是详细描述系统中的数据元素、数据流、数据存储、处理和数据概念模型的好工具。通过业务流程图、数据流图、数据字典、IPO图、ER图等图形工具,可以准确、规范地描述系统的需求。
三、系统的功能需求
作为大学生综合素质测评信息管理系统,在系统中一定存在许多的学生,这需要对学生的信息进行管理;每学期期末时都需要对这些学生的各方面素质进行综合测评,系统能根据各个素质的分数自动计算综合的素质分数,所有需要对大量的测评信息进行管理;同时,系统可以提供信息查询的功能,显示出按要求查询到的测评信息,也能对系统的一些信息如专业信息,学期信息,个人密码信息进行设置,所以系统分四大功能模块,为了方便地对各种信息用计算机进行有效的管理,各模块的基本功能说明如下:
学生信息管理:包括学生信息的登记,查询及维护功能
测评信息管理:包括测评信息的登记,查询及维护功能
信息查询:包括学生信息查询和测评信息查询
系统管理:包括专业信息设置,学期信息设置,个人密码修改
四、数据流程分析
数据流程分析,即把数据在组织(或原系统)内部的流动情况抽象地独立出来,舍去了具体组织机构、信息载体、处理工作、物资、材料等,单从数据流动过程来考查实际业务的数据处理模式。数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。
现有的数据流程分析多是通过分层的数据流程图来实现。数据流图(Data Flow Diagram,简称DFD图)是用一些规定的图标和符号来描述数据在系统中的流动和处理情况。数据流图一般要采用自上而下逐步求精的结构化表示方法。软件系统归根结底是一个信息处理系统,其最基本的功能是感受输入信息,对输入的信息按照规定的方法归类、处理以及存储,转变为所需要的信息,最后通过输出系统向用户输出所需求的信息。其中最核心的部分就是信息(数据)处理,因此不同的数据也就决定了所需要的不同的处理方法和算法。数据流图也就是以图形的方式将系统中数据的传递、转化过程以直观的方式表述出来。
数据流图由四种基本的元素组成:数据流(Data Flow)、处理(Process)、数据存储和数据源(数据终点)。
(1)数据流(Data Flow):为具有名称且有流向的数据,用标有名称的箭头表示。一个数据流可以是记录、组合项或基本项。
(2)处理(Process):表示对数据多进行的加工和变换,在图中用圆形表示。指向处理的数据流为该处理的输入数据,离开处理的数据流为该处理的输出数据.
(3)数据存储:表示用文件方式或数据库形式所存储的数据,对其进行的存取分别以指向或离开数据存储的箭头表示。
(4)数据源及数据终点:表示数据的来源或数据的去向,可以是一个组织或人员,它处于系统范围之外,所以又称它为外部实体,它是与系统有关的外部事物或外部环境。其图形符号用平行四边形表示。符号如图2.1所示:
根据上面的分析我们可以对系统画出如图所示的顶层数据流图,如图2.2:
图1 系统顶层数据流图
第1层数据流图是在顶层上的细分,从整体考虑通讯录信息管理系统出现的数据流动及流向,如图2.3:
学生信息管理请求管理处理
学生
信息
管理界面显示
用户端提交数
界面显示登录信息
错误提示
输出
大学生综
合测评信
五、概要设计
经过前面的分析,我们已经确定了系统的基本功能,下面就是分析系统的总体框架,分析系统处理的实体对象,分析实体间的联系,从而得到系统各种实体和联系对应的数据表,最终设计中数据表。
1、系统的总体框架
整个系统信息管理中,实现了验证功能,也就是说,必须输入正确的帐号和密码才能进入系统的各个功能操作中,当通过用户认证后就可以进行各种功能的信息管理了。系统功能分四大模块:学生信息管理、测评信息管理、信息打印、系统管理,各个系统模块下都有添加,修改,删除,查询功能的实现,系统的总体框架如图3所示:
数据
处理
结果
系统管理请求 管理处理
信息打印请求 管理处理
测评信息管理请求 管理处理 数据 中心
用户提交数据 与用户
端交互
测评信
息管 理
信息打印
系统设置
数据处理
图2 系统第1层数据流图
大学生综合素质管理系统
2、系统实体联系图(E-R图)
其中,
college表:用于存储学生和学生所在专业的学院或学校;
specialFiledInfo:用于存储学生所学的专业;
termInfo:用于存储所要测评的学期信息;
studentInfo:用存储的信息,包括学生的姓名,性别,班级,学院,专业名称,学生出生等信息;
evaluationInfo :用于存储学生的测评信息; admin 表:用于存储登陆用户的信息; 3、程序流程图:
六、软件功能设计以及界面设计 1、登陆功能设计:
功能简介:提供确认系统用户的功能,用户只有提供用户名和正确的密码,才能登陆,否则拒绝用户的登录; 以下是界面的截图:
提示:初始用户名为:admin ;初始密码为:chenjl 2、主界面功能及其界面设计:
主界面是用户进入系统时看到的系统布局,主界面提供了进入各个功能的按钮,用户通过按钮进入不同的系统功
管理员登陆系统了?
是 是要添加学期信息?
取得操作命令?
是要删除学期信息?
取得学期相关信息并执行添加操作
该学期还存在测评信息?
执行该学期信息的删除
查询所有学期信息显示
转到登陆页
否
否
否
是
是
是
否
开始
能,从而进行各种系统所提供的操作,用户第一次进入系统时,第一个看到的是系统的桌面,桌面给出了该系统的功能简介;
以下是主界面截图:
3、学生管理:
该功能包括包括学生信息的添加和学生信息的维护,用户界面设计如下:
学生信息的添加界面:
学生信息维护界面:
4、综合测评管理
该功能提供了对学生测评信息的添加和维护,用户界面的设计如下:
学生测评信息的添加:
学生测评信息的维护界面:
5、信息查询:
该功能包括对学生信息的查询和对学生测评信息的查询,查询提供了时,该功能提供了按学号查询和按姓名查询两种查询条件设置,设置好条件后,可按关键字进行查询,为进一步提高查询的精确度,还提供了查询时的学生所在专业的约束:
该功能界面截图如下:
学生信息查询:
学生综合测评信息查询界面:
6、系统设置
系统的设置包括系统的密码的设置,提供修改密码密码的功能;专业设置,添加新的专业和对已有的专业进行删除的功能;学期设置,包括学期信息的添加和删除两种操作,
界面设计如下:
登陆密码设置界面:
专业信息设置界面:
学期信息设置界面:
除以上主要功能以外,还提供了以下的辅助功能:
前进、后退:返回的用户当期界面的下一个界面和前一个界面
刷新:用来刷新用户界面显示的数据;
桌面:返回到桌面界面;
退出:退出系统;
七、系统代码:
1、con.asp:(用来连接数据库)
<%
set conn=server.createobject("adodb.connection")
mypath=server.mappath("data/studentEvaluation.mdb")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&mypath %>
2、day.asp:(用来处理日期信息的)
Date-->
function getDay(v){
window.opener.document.<%=request.querystring("form")%>.<%=request.querystring("field")%>.value=v ;
window.close();
return false;
}
<%
oldDate=request("oldDate")
if not isDate(oldDate) then oldDate=date
yy=year(cdate(oldDate))
mm=month(cdate(oldDate))
if request("yy")<>"" then yy=request("yy")
if request("mm")<>"" then mm=request("mm")
if yy="" then yy=year(date)
if mm="" then mm=month(date)
if mm>12 then mm=1:yy=yy+1
if mm<1 then mm=12:yy=yy-1
dim m(12)
m(1)=31
m(3)=31
m(5)=31
m(7)=31
m(8)=31
m(10)=31
m(12)=31
m(2)=28
m(4)=30
m(6)=30
m(9)=30
m(11)=30
if (yy mod 4=0 and yy mod 100<>0) or yy mod 400=0 then m(2)=29
mms=m(mm)
week1=(weekday(cdate(yy & "-" & mm & "-1"))-1)
%>
|
日 | 一 | 二 | 三 | 四 | 五 | 六 <% if week1<>0 then response.write " |
"for i=1 to week1
response.write "
" next end if for i=1 to mms if (i+week1-1) mod 7=0 then response.write " |
"response.write "
" if cdate(yy & "-" & mm & "-" & i)=date() then %> style="BORDER:#CD0101 1px groove;width:30;height:16;font-size:9pt;background-color:#FFD9D9;color:#CD0101" onclick="javascript:getDay('<%=yy%>-<%=mm%>-<%=i%>');" title="<%=yy%>年<%=mm%>月<%=i%>日(今天)"> <% else %> style="BORDER:#000000 1px groove;width:30;height:16;font-size:9pt;background-color:#ffffff;color:#000000" onclick="javascript:getDay('<%=yy%>-<%=mm%>-<%=i%>');" title="<%=yy%>年<%=mm%>月<%=i%>日"> <% end if next if (mms+week1) mod 7<>0 then for i=1 to (7-((mms+week1) mod 7)) response.write " | " next end if %> |
3、desk.asp:(桌面实现代码)
进销存信息管理系统 - 桌面系统功能:
(1)学生信息管理:包括学生信息的登记,查询及维护功能 (2)综合测评信息管理:学生各方面素质分数的录入,系统会自动计算综合分数,并可以修改和删除
(3)信息查询:提供学生信息和测评信息的查询
(4)系统设置:可以设置系统的登陆密码,对学生的专业和学期信息进行设置。
|
|
4、eveluateInfo.asp:(学生测评信息添加功能代码)
<%
if session("userName") = "" then
Response.Redirect "login.asp"
end if
%>
<%
on error resume next
dim
studentNumber,termId,moralScore,theoryScore,healthScore,praticeScore,integrateScore,evaluation,sq lString
dim errMessage '保存业务错误信息
errMessage = ""
submit = Request("submit")
if Request("submit") <> "" then
studentNumber = Request("studentNumber") '取得学号
termId = Request("termId") '取得所在学期
moralScore = CSng(Request("moralScore")) '取得思想道德分数
theoryScore = CSng(Request("theoryScore")) '取得专业理论分数
healthScore = CSng(Request("healthScore")) '取得身体素质的分数
humanityScore = CSng(Request("humanityScore")) '取得人文素质分数
practiceScore = CSng(Request("practiceScore")) '取得创新与实践分数
evaluation = Trim(Request("evaluation")) '取得对该学期该生的评价
'首先检查管理员输入的学号信息存在不
sqlString = "select * from [studentInfo] where studentNumber='" & studentNumber & "'"
set studentRs = conn.Execute(sqlString)
if studentRs.Eof then
errMessage = "该学号的学生不存在!"
end if
'再检查是否已经选择了学期信息
if errMessage = "" then
if Request("termId") = "" then
errMessage = "对不起,你没有选择学期信息"
end if
end if
'其次检查该学期该学生的综合测评信息是否已经添加了
if errMessage = "" then
sqlString = "select * from [evaluationInfo] where studentNumber='" & studentNumber & "'"
sqlString = sqlString & " and termId=" & termId
set evaluationRs = conn.Execute(sqlString)
if not evaluationRs.Eof then
errMessage = "该学期该学生的测评信息已经添加了!"
end if
end if
'如果存在业务错误信息
if errMessage <> "" then
Response.Write ""
else
'下面开始计算该生的综合分数
integrateScore = moralScore * 0.1 + theoryScore * 0.6 + healthScore * 0.1 + humanityScore * 0.1 + practiceScore * 0.1
'然后将学生综合测评信息加入到数据库中
sqlString = "insert into [evaluationInfo] (studentNumber,termId,moralScore,theoryScore,healthScore,humanityScore,practiceScore,integrateSco re,evaluation) values ('"
sqlString = sqlString & studentNumber & "',"
sqlString = sqlString & termId & ","
sqlString = sqlString & moralScore & ","
sqlString = sqlString & theoryScore & ","
sqlString = sqlString & healthScore & ","
sqlString = sqlString & humanityScore & ","
sqlString = sqlString & practiceScore & ","
sqlString = sqlString & integrateScore & ",'"
sqlString = sqlString & evaluation & "')"
conn.Execute(sqlString)
end if
if (err.number<>0 and errMessage<>"") then
Response.Write ""
elseif (err.number=0 and errMessage="") then
Response.Write ""
end if
end if
%>
测评信息添加----大学生测评信息管理系统function chkForm() {
if(document.form1.studentNumber.value == "") {
alert("学号不能为空!");
document.form1.studentNumber.focus();
return false;
}
return true;
}
5、evaluateInfoDel.asp:(学生测评信息删除)
<%
if session("username")="" then
Response.Redirect "login.asp"
end if
%>
<%
'取得要删除测评记录的id号集合
evaluationIds = Request("evaluationIds")
sqlString = "delete from [evaluationInfo] where evaluationId in (" & evaluationIds & ")"
conn.Execute sqlString
set conn=nothing
response.write""
Response.Write ""
%>
6、evaluateInfoManage.asp:(学生信息管理)
<%
if session("username") = "" then
Response.Redirect "login.asp"
end if
%>
学生信息管理----大学生综合测评信息管理系统function checkall(all)//用于判断全选记录的函数
{
var a = document.getElementsByName("answer");
for (var i=0; i}
function del () //用于判断记录有没有选中的函数
{
var flag=true;
var temp="";
var tmp;
if((document.form1.answer.length+"") == "undefined") {tmp=1}else{tmp=document.form1.answer.length}
if (tmp==1){
if (document.form1.answer.checked){
flag=false;
temp=document.form1.answer.value;
}
}else{
for (i=0;iif (document.form1.answer[i].checked){
if (temp=="") {
flag=false;
temp=document.form1.answer[i].value;
}else{
flag=false;
temp = temp +","+ document.form1.answer[i].value;
}
}
}
}
if (flag){ alert("对不起,你还没有选择!")}
else{
if (confirm("确实要删除?")){
window.location="evaluateInfoDel.asp?evaluationIds=" + temp;
}
}
return !flag;
}
function test(){
if (document.form2.pageno.value=="" || isNaN(document.form2.pageno.value)) {
alert("输入页数必须为数值型");
document.form2.page.focus();
return false;
}
return true;
}
<%
dim sqlString,rscount,lastpage,currentpage,nextpage,pagesize,frontpage,i'skipcount;
pagesize = 8
sqlString = "select count(*) as rscount from evaluationView" '查询总的学生信息记录数
if Request("searchWay") <> "请选择查询方式" and Request("searchWay") <> "" then
sqlString = sqlString & " where " & Request("searchWay") & " like '%" & Request("keyword") & "%'"
end if
set rs = conn.Execute(sqlString)
rscount = CInt(rs("rscount"))
if (0=(rscount mod pagesize)) then
lastpage = rscount \ pagesize
else
lastpage = rscount \ pagesize + 1
end if
currentpage = Request("pageno")
if currentpage = "" then
currentpage = 1
else
currentpage = CInt(currentpage)
end if
if (currentpage < 1 or currentpage > lastpage) then
currentpage = 1
end if
if currentpage = 1 then
frontpage = 1
else
frontpage = currentpage - 1
end if
if currentpage = lastpage then
nextpage = lastpage
else
nextpage = currentpage + 1
end if
'skipcount = pagesize * (currentpage - 1)
'do while skipcount>0
' rs.movenext
'skipcount = skipcount - 1
'if rs.eof then
' Exit do
' end if
'Loop
%>
测评信息维护 |
---|