学生成绩网站设计
学生成绩网站设计
1.课程设计目的
本次课程设计的目的在于学习如何使用用开发网站的相关技术,学习网站程序设计基本技术,了解网站设计的需求,学习如何使用ASP技术与数据库建立连接并形成一个动态得网页,通过项目开发的完整过程,学会怎样进行一个项目的需求分析、概要设计、详细设计等软件开发过程,熟练地掌握网站设计的基本技术和方法。
本学生成绩管理系统有管理员功能、学生成绩录入、成绩修改、成绩查询、成绩删除等功能。各个模块各有不同的功能,各模块的数据都存放在数据库中。数据的调用和连接都由程序来完成。
2.设计方案论证
2.1网站系统分析
(1)系统主功能
根据前面的设计思想进行分析,按照系统开发的基本观点对网站进行分解,从内容上可对网站作如下划分:
管理员登录模块:基本是每个系统必备的模块。
成绩查询模块:学生可以通过学号查询自己的成绩,也可以查询同班同学的成绩,
数据库更新前的数据记录模块:管理员可通过输入要添加成绩的同学的学号、输入要添加成绩的同学的姓名和班级、输入新的CRM成绩、输入新的英语成绩、输入新的Jsp成绩、输入新的Java成绩来更新数据记录。
添加新记录后的表的模块:学生可看到管理员更新完记录后的表。
删除记录的模块:管理员通过输入被删除记录的学号来实现删除某学生的成绩记录,同时数据库删除妻啊的数据记录也将显示出来。
删除记录后的表的模块:管理员将表中某个学生删除完之后,将会显示出删除记录后的表。
(2)数据流程图
通过前台用户登录,可以对用户的成绩信息进行查询,后台管理员可对需要添加成绩的同学的成绩信息与档案信息进行增加删除和修改操作。
图1 数据流程图
(3)业务流程图
通过登录进入用户的相应功能界面。
(4)各页面设计功能如下:
页面名称
类
型
页面功能
权限说明
index.html
h
tml
管理员登陆
无权限要求
Login.jsp
j
sp
管理员登陆信息与数据库信息核对
管理员权限
学生查询界面
成绩录入 成绩修改 成绩删除 管理员登陆界面 成绩查询 学生成绩管理系统
成绩查询
图2 业务流程图
用户
管理员
P
系统管理
编辑信息 成绩信息 档案信息
成绩信息
管理员
成绩信息
loginSucces s.jsp
j
sp
管理员登陆成功页面管理员权限
admin_query .jsp
j
sp
管理员查询成绩管理员权限
admin_query _.jsp
j
sp
管理员获取要查询的数据库
信息
管理员权限
append_1.js p
j
sp
管理员录入成绩管理员权限
append_2.js p
j
sp
将管理员录入的成绩导入数
据库中
管理员权限
update_1.js p
j
sp
管理员修改成绩管理员权限
update_2.js p
j
sp
将管理员修改的成绩与数据
库中交换
管理员权限
del_1.jsp j
sp
管理员删除成绩管理员权限
del_2.jsp j
sp
将管理员删除的成绩在数据
库中删除
管理员权限
student_que ry.jsp
j
sp
学生查询成绩无权限要求
student_que ry_.jsp
j
sp
学生从数据库中获取要查询
的成绩
无权限要求
2.2网站总体分析
(1)用户需求分析
简单友好的操作界面,以方便管理员的日常管理工作。
操作流程简单,易于管理员日常操作。
完全的系统维护管理,方便系统日常维护工作。
方便学生成绩查询
(2)系统性能分析:
系统安全可靠
功能齐全
操作方便,界面友好
易于更新
(3)主页设计
设计网站时,首先应该区别是学生访问还是管理员登录。如果是学生访问,那么该学生只有查看的权限。如果是管理员登录,则除了具有查看权限外,还用具有管理学生成绩管理网站的权限。
(4)数据库设计
通过以上的分析:我所设计的网站需要2个表,管理员登陆表(Login)和学生成绩表(student)。由于是个小型的系统,选择了Access数据库。分析得知,Login表功能的记录管理员的登陆名和登录密码。
表1 管理员登陆信息表(Login)
名称类型长度说明
XM Char 12 管理员用户
名
PW Char 12 管理员登陆
密码
student表记录学生的学号、姓名、班级、CRM成绩、英语成绩、Jsp成绩、Java成绩信息。
表2 student登录表(login)
名称类型长度说明
number Char 12 学号
name Char 12 姓名
crm Int 4 客户关系管
理成绩
english Int 4 英语成绩
jsp Int 4 Jsp成绩
java Int 4 Java成绩
class Char 12 专业班级
3.设计结果与分析
(1)管理员登录
实现实现管理员登录的功能(index.jsp),并验证用户输入的信息是否正确。图2.3所示是系统登录界面图。当单击“登录”按钮后,系统会查询数据库,验证用户登陆信息,如果信息正确,则进入 LoginSucc ess.jsp(如图4)页面,否则调用Login.jsp(如图3)页面,提示重新登陆。
图3 管理员登录(index.jsp)
图4 管理员登录成功(LoginSuccess.jsp)
在管理员输入用户名和密码时还设置了完整输入的提醒功能,如果没有出入用户名,系统会弹出“您必须完成账号的输入”提示框,点击“确定”按钮后,光标会移到用户名的输
入文本框,如图5所示;如果输入了用户名。没有输入密码,则系统会弹出“您必须完成密码的输入”提示框,点击“确定”按钮后,光标会移到密码的输入文本框,如图6所示。
图5 管理员登录失败
图6 管理员登录成功(LoginSuccess.jsp)
(2)学生成绩查询
对于学生成绩查询模块,由于管理员和学生权限不同,所以学生只能查看个人的各科成绩和同学的各科成绩,而管理员则可以查看和修改所有学生的成绩,如图7所示。
图7成绩查询页面(admin_query.jsp)
实现过程:其中学生查看学生成绩查询界面时,都是只读,不能更改。而对于管理员则可以修改学生的全部成绩信息。这样就必须在管理员页面之前添加权限检查功能,加入以下代码:
<% //检查用户是否已经完成登录
String Name = (String)session.getAttribute("UserNm");
if(Name==null) //若Name变量为null代表尚未完成登录
{
//将浏览器导向LogFrm.html文件, 要求用户重新登录
response.sendRedirect("index.html");
}
%>
只有登录的管理员才能对学生成绩进行更新,首先管理员通过admin_query.jsp提交成绩信息修改表单数据,并响应对应的action: admin_query.jsp中的Post方法,获取表单数据,实现对学生成绩信息的查询操作,如图8示。
图8 成绩查询结果页面(admin_query.jsp)
(3)学生成绩录入
学生成绩的录入操作只有管理员有权限进行,同样需要添加权限检查功能,进入该功能页面后,管理员必须完整的输入学生的学号、姓名、班级信息,再输入相关的成绩,否则会提示添加失败。如果录入成功,会提示成绩录取成功。如图9和10。
图9 成绩录入页面(append_1.jsp)
图10成绩录入
(4)学生成绩修改
学生成绩的修改操作只有管理员有权限进行,同样需要添加权限检查功能,成绩修改首先是要求数据库中已经有该学生的成绩记录,这样才能更新,如果没有记录,系统会反回更新失败。如图11至13所示为成绩修改测试过程。
图11 成绩修改页面(update_1.jsp)
图12 成绩修改测试图
图13 绩修改测试成功
图14 数据库中的数据已更新
(5)学生成绩删除
学生成绩的删除操作和其他操作一样,只有管理员有权限进行,同样需要添加权限检查功能,成绩修改首先是要求数据库中已经有该学生的成绩记录,和成绩修改功能的要求差不多,这样才能更新,如果没有记录,系统会反回更新失败。如图14至17所示为成绩修改测试过程。
图15 数据库中的数据已更新
图16 删除记录(del_1.jsp)
图17 显示删除记录成功
图18 数据库中已无删除的信息,操作成功
核心代码如下:
index.html
-->
学生成绩管理系统
Login.jsp
<%@ page contentType="text/html; charset=GB2312" import="java.sql.* " %> <%@ page import="java.io.* "%>
<%!
String CheckLogin(String Login1, String Password1) throws Exception
{
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String result = null;
String Login=Login1.trim();
String Password=Password1.trim();
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:grade");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String strSQL = "SELECT * FROM Login " +
"WHERE XM= '" + Login + "'";
rs = stmt.executeQuery(strSQL);//执行SQL语句,进行帐号查询
if(!rs.next()) //检查游标是否指到最后一条记录
{ //若指向最后一条记录则表示没有记录
result = "无此帐号"; }
else if(!rs.getString("PW").equals(Password)) //判断密码是否正确
{ result = "密码错误"; }
else //通过检查表示帐号与密码均正确成功登入
{ result = "成功登入";
}
}
catch(Exception ex)
{ throw ex;
}
finally
{
rs.close();
stmt.close();
con.close(); }
return result;
}
%>
<%
String UserNm = request.getParameter("UserNm");//取得表单输入的帐号
String UserPasswd = request.getParameter("UserPasswd");//取得表单输入的密码
//判断使用者帐号与密码所取得值是否为null, 是则将网页导向LogFrm.htm
if(UserNm == null || UserPasswd == null)
response.sendRedirect("index.html");
String strCheckLogin = CheckLogin(UserNm, UserPasswd);//进行帐号与密码的检查
if (strCheckLogin.equals("成功登入")) //判断是否成功登入
{
session.setAttribute("UserNm",UserNm); //将登入帐号储存进session中
session.setAttribute("UserPasswd",UserPasswd);//将帐号密码储存进session中response.sendRedirect("LoginSuccess.jsp");//将显示网页导向LoginSuccess.jsp网页}
%>
使用者登录
<%= strCheckLogin %>
4.设计体会
通过本次课程设计,对系统的开发流程有了比较深入的了解,对相关知识点的综合应用能力也有了一定的提高,同时也掌握了jsp网页开发系统设计中的一些相关技巧,体会到恰当地使用这些技巧会对软件开发难度及软件性能带来多大的影响。并且,学会了tomcat、Dreamweaver和Access三者的连接,在这次“学生成绩管理系统”设计完成之时,总结出了自己在这次设计中的优势和不足。
通过对学生成绩管理系统的设计研究,把所学的只是综合运用到设计过程中,获得了许多在课本中学不到的知识。当然,在设计中也遇到了许多的困难,在老师的帮助和我多方查找资料,基本把一些大的问题给逐个解决了。由于自身缺乏实践,基础知识也比较薄弱,电脑是Win7的系统,不能安装SQL2000,只有用Access数据库,还是经过查阅资料、不断摸索测试才连接成功。
在开发中,注意到了代码的复用,把功能相同的写城一个独立的方法,供多个地方使用。本系统方便学生查询自己的成绩,方便老师和教务管理员对学生成绩的管理、录入、修改、查询、删除等操作,操作简单,不足之处就是界面不够美观,在录入成绩的过程中需要输入的数据较多,不支持整体成绩的上传。
期间出现了由于经验不足而产生的错误,在做此次系统制作过程中造成要时常修改数据和界面、代码,浪费时间和人力。我从困难中得到了收获,对所学的知识更加了解如何使用。
5.参考文献
[1]王素梅.《Dreamweaver8技术精粹》[M]. 北京:清华大学出版2007.6
[2]田博文. Dreamweaver中文版网站建设实战训练[M]. 北京:人民邮电出版社, 2004.10:46-55
[3]武创,王惠. 网页设计探索之旅[M]. 北京:电子工业出版社, 2009.1:76-91
[4]任学文,范严. 网页设计与制作[M]. 北京: 中国科学技术出版社, 2008.12:132-157
[5]刘小东,陈艳玲.《Dreamweaver MX 2004与ASP动态网页设计实训教程》[M]. 北京:上海科学普及出版社,2005.06
[6]孙素华.《Dreamweaver 8&ASP动态网页设计从入门到精通》[M]. 北京:中国青年出版社,2007.01