毕业论文---学生档案信息管理系统的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕
业
论
文
学生档案信息管理系统的设计与实现
目录
论文摘要 (3)
一、系统概述 (4)
(一)研究背景 (4)
(二)系统开发的意义 (4)
二、系统需求分析 (5)
(一)系统中的参与者 (5)
(二)系统的用例 (5)
1.管理员的用例图 (5)
2.系统的管理员主用例识别和描述: (6)
3.管理员主用例的子用例分析 (6)
三、系统的设计 (9)
1.功能简介 (9)
(1)学生操作模块: (9)
(2)教师操作模块: (10)
(3)管理员操作模块: (10)
(二)类的分析与设计 (10)
(三)本系统的顺序图 (14)
1.管理员添加学生信息顺序图 (14)
2.教师添加成绩顺序图: (15)
3.学生修改密码顺序图: (16)
四、数据库设计 (17)
(一)数据库概念设计 (17)
(二)数据库的逻辑设计 (18)
(三)数据库的物理设计 (19)
(三)系统所用到的视图与关系 (21)
(一)系统实现工具与支持平台 (21)
1.数据库连接 (21)
2.乱码处理 (22)
(三)系统界面 (22)
1.系统的登录界面 (23)
2.管理员添加学生信息界面 (25)
3.管理员查找教师信息 (27)
六、总结 (31)
参考文献 (32)
致谢 (32)
论文摘要
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统是一个不断发展的新型学科,任何一个单位要生存发展,就要高效率地把内部活动有机地组织起来,也就必须建立与自身特点相适应的管理信息系统。
现在的学校都在不断的扩招,而纸质的档案在使用和管理都比较的麻烦,因此学校就要有一个完善的系统来管理学生的档案信息,本系统主要完成的是教师对学生的成绩进行的管理,管理员则是管理教师和学生的基本信息,对其进行增删改查等一系列的操作,学生则可以浏览自己的一些信息等。
本系统主要采用了Jsp、Java、SQL Server数据库的相关技术,主要完成对学生的一些基本情况进行统一的管理。
系统的需求分析、功能模块划分、数据库模块分析,并由此设计了数据库结构和应用程序。
以Windows xp 操作系统为开发平台,设计出一个学生档案管理信息系统,对学生的基本信息等进行统一管理,便于添加、查询、修改。
关键词:档案管理系统数据库 SqlServer MVC MyEclipse
学生档案信息管理系统的设计与实现
孙俊骁
(开封大学软件学院软件技术)
一、系统概述
(一)研究背景
学生档案管理系统是一个教育单位不可缺少的部分,而又是一项重要而且繁琐的工作,是管理员管理学生了解学生信息的一种基本方法。
应用计算机对学生档案进行管理已经成为人们从事这行管理的迫切需求。
而它的内容对于一个学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间长了,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着计算机技术的飞速发展,计算机在各行各业中得到了迅速推广,同样在各中行业中也得到了广泛的应用,各种各样的软件也营运而生,但是这些软件都具有普通性的特点,并不是针对某一具体对象的管理机制而写的,所以,在某些特定的工作中,它就不再实用。
因此,本次将开发一个学生档案管理系统,实现学生档案管理系统的现代化、科学化,完善运行的机制,大大减少管理者的错误率和人力资源的浪费,从很大程度上减轻了管理人员的负担。
从而,提高管理人员的工作效率,使其符合现代化发展的需要。
主要实现的功能模块有学生登录、管理员登录、学生查看信息,学生修改密码、管理员对学生信息的增删查改等功能。
(二)系统开发的意义
高校的招生规模不断的扩大,在校大学生的人数不断上升,在办公化日益完善的今天,很多高校将自动化引入到学生的日常管理之中,学生信息管理系统就是其中的一个重要环节,它作为学生入学的一个起点,是实现校园信息化进程当中很重要的一个方面。
其开发主要包括前端应用程序的开发以及后台数据库的建立和维护两个方面。
本系统分析了现今学生信息管理系统中所应用的几个环节,并针对每个环节做出了详细的阐述和探讨。
学生信息管理系统需要完成2个内容:学生的基本信息,学生的成绩管理。
两个方面的内容均提供添加、修改、查询的功能。
开发用到的相关技术有Java编程语言、引入MVC设计模式理念,以及后台数据库MySQL的搭建与操作,并对模块的功能进行了具体分析和详细设计。
建立学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平。
帮助广大教师提高工作效率,实现学生档案信息管理工作流程的系统化、规范化和自动化。
二、系统需求分析
(一)系统中的参与者
根据上述分析,该系统的参与者为学生,管理员和教师;
1.学生(Student):该参与者登陆系统可以查看自己的信息和成绩进行,修改密码。
2.管理员(admin):该参与者登陆系统进行添加学生的基本信息,查看学生信息,添加老师的信息,修改学生的资料,删除学生信息,总计学生的成绩等。
3.教师(teacher):该参与者登陆系统可以修改自己的密码,查看学生的信息,并添加学生的课程成绩,查看成绩和修改成绩。
(二)系统的用例
1.管理员的用例图
学生档案系信息管理系统用例:该用例是一个没有细化的用例,包含了管理员的所有用例。
Admin
Admin
图1 管理员简单用例图
2.系统的管理员主用例识别和描述:
(1)管理员主用例:管理员可以管理学生的基本信息,教师的信息和数据库
(2)学生的基本信息用例:该用例主要是为了方便管理员添加,修改,删除学生的基本信息。
(3)教师管理信息用例:该用例主要是为了方便管理员添加,修改,删除教师信息。
(4)数据管理:该用例主要是为了方便查看学生的信息,教师的信息和学生的成绩等一系列查看工作。
该系统的主用例图如下:
print
图2 系统管理员的主用例图
3.管理员主用例的子用例分析
(1)学生基本信息子用例分析:
添加学生信息:主要是管理员添加新入学的学生信息。
修改学生信息:主要是管理员修改当时输入有误的学生的一些信息,以便确保学生信息的准确性,方便以后的对学生的管理。
删除学生信息:主要是管理员对于没有入学的学生的信息进行删除。
以减缓数据库的空间。
该子用例的用例图入下:
修改学生信息
图3 学生基本信息子用例图
(2)教师信息管理子用例分析:
添加教师信息:管理员可以添加教师的基本信息,方便在以后工作中相互联系。
修改教师信息:管理员可以修改教师的基本信息,以确保信息的正确性。
删除教师信息:管理员可以删除已经离职的教师的信息。
教师信息管理子用例的用例图如下:
添加教师信息
图4 教师基本信息管理子用例图
(3)数据管理子用例分析:
该用例主要是为了存储数据方便管理员查询自己要看的信息。
主要包括:
学生信息查询:便于管理员查找学生的信息和相关学生的一些资料。
教师信息查询:便于管理员查找教师的信息。
学生成绩的查询:便于管理员对学生成绩的总结,方便老师查看学生各科成绩。
数据管理子用例的用例图如下:
教师基本信息查询
图5 数据管理子用例用例图
三、系统的设计
(一)功能模块
功能模块图如图:
图6 功能模块图
1.功能简介
学生档案信息管理系统的功能就是为了方便老师对学生的信息进行有效的管理。
主要的功能如下:
(1)学生操作模块:
学生登录,查看自己的基本信息等操作;
学生登录:学生登录之后才可以对自己的信息进行一系列的操作;
查看自己的基本信息:该功能有包括:查看自己的基本资料,修改自己的密码和查看自己的成绩;
(2)教师操作模块:
教师登录,查看自己的基本信息,对学生成绩管理等操作;
教师登录:教师登录之前不可以进行一系列的操作;
查看自己的基本信息:教师可以通过该功能查看自己的基本信息,修改密码;
对学生成绩进行管理:主要包括对学生成绩的添加,对成绩的修改,对成绩的查询;
(3)管理员操作模块:
管理员登录,管理学生的信息,管理老师的信息,数据库的管理等操作;
管理员登录:管理员登录之后才可以执行一系列的操作;
管理学生信息:管理员可执行的操作有:添加学生的信息,修改学生的信息,查看学生的信息,查看学生的成绩等;
管理老师信息:管理员可执行的操作有:添加教师信息,查看教师的信息,修改教师有关的信息等;
数据库的管理:管理员可以对数据库进行任何的操作;
本系统将类分为三种,分别为:实体类,界面类和控制类;
实体类主要有:学生信息类,课程类,班级类,专业类,成绩类
界面类主要有:登录界面,各个角色的主界面以及各个角色执行操作的界面
控制类主要有:AdminControl(管理员控制类),TearcherControl(教师控制类),StudentControl(学生控制类),LoginControl(登录控制类);
(二)类的分析与设计
1.学生信息
学生信息的类名为:StudentInf 包含的属性有: stu_ID,stu_name,stu_password,stu_sex,stu_tel,stu_Email,stu_classID,stu_professionalID,stu_jiguan,stu_zzmm,stu_minzu,stu_shengri,stu_address,stu_sfzh,stu_bz 在UML中的属性描述如图6:
图7 学生信息类图
2.教师信息类
教师信息的类名为:TearcherInf 包含的属性有:id,teacherID,teacherName, password 在UML中的属性描述如图7:
图8 教师信息类图
3.课程信息
课程信息的类名为:course 包含的属性有: id,courseName 在UML中的属性描述如图8:
图9 课程信息类图
4.成绩信息
成绩信息的类名为:score包含的属性有:id,userID,courseID,score;在UML中的
属性描述如图9:
图10 成绩类图
5.班级信息
班级信息的类名为:stu_class 包含的属性有:id,stu_level,bz 在UML中的:
属性描述如图10
6.专业信息
专业信息的类名为:stu_professional 包含的属性有:id,stu_professional,bz 该类在UML中的属性描述如图11:
图12 专业类图
(三)本系统的顺序图
1.管理员添加学生信息顺序图
管理员输入用户名和密码,等待数据库的验证,如果正确,进入管理界面,输入新学生的信息并向数据控制层发送请求,更新数据,并返回更新结果
: 管理员
2.教师添加成绩顺序图:
教师输入用户名和密码,等待验证,登陆成功后,请求添加学生成绩,通过班级和专业查询学生的信息,数据层返回查询的结果,教师输入成绩请求更新数据,数据控制层更新数据,并返回更新结果
: 教师
图14 教师添加学生成绩顺序图
3.学生修改密码顺序图:
学生输入用户名和密码,等待验证,登陆成功后,输入新的密码后向数据控制层发送更新请求,数据控制层对数据进行更新,并给更新的结果返回到修改密码界面。
: 学生
图15 学生修改密码顺序图
四、数据库设计
根据关系数据库的原理,为了把系统数据清晰明确的表达出来,系统分析员通常需要建立概念模型。
概念模型是一种面向问题的数学模型,是按用户的观点来对数据和信息进行建模。
最常用的表示概念性数据模型的方法,是实体联系方法(Entity Relationship Approach)。
这种方法用E-R图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法,该方法又称为E-R模型。
E-R图中共用三种符号:实体、属性和联系。
通常实体用矩形来表示,属性用椭圆或圆角矩形来表示,联系用菱形来表示。
联系又分为一对一、一对多和多对多三种类型。
(一)数据库概念设计
通过对学生档案信息管理系统的分析,可以提取出以下几个实体:学生、教师、成
绩、课程、班级、专业、管理员,该系统实体关系图如下.
图16 E-R图
(二)数据库的逻辑设计
依据数据库的原理,并结合以上E-R图,经过转换,可以导出各个关系。
其转换规则为:首先每个实体应转化为一个关系,有属性的联系也应转化为一个关系,然后给出每个关系的关键字。
根据以上规则直接给出各个关系:
学生(学生ID,姓名,密码,性别,电话,电子邮箱,班级,专业,籍贯,政治面貌,民族,出生年月,地址,备注,身份证号)
班级(编号,班级名称)
专业(编号,专业名称)
课程(编号,课程名)
成绩(学生ID,课程号,成绩)
教师(教师工号,姓名,密码)
(三)数据库的物理设计
1.学生信息表(studentInf)
主要用于存放学生的基本信息
2.教师信息表(tearcherInf)
主要用于记录教师的信息
表2 教师信息表
3.课程表(course)
主要记录学生的课程
表3 课程信息表
4.成绩表(score)
记录学生的成绩
表4 成绩表
5.班级信息(stu_level)
方便对学生的查询
6.专业信息(stu_professional)
方便对学生进行添加和查询
表6 专业信息表
(三)系统所用到的视图与关系
为了方便老师查找学生的有关信息并给学生输入成绩,因此建立了视图:由学生信息表(StudentInf)与成绩表(score)建立的V_score
为了保持学生和成绩的一致性,如果学生已退学,则成绩也因此删除,建立了关系图:studentScore图,该图通过学号来进行关联,有更新和删除关联。
五、系统的具体实现
(一)系统实现工具与支持平台
1.用户界面
2.硬件接口
运行本系统的硬件基本要求如下:
CPU:Intel P3及以上;
内存:512MB及以上;
硬盘:40GB及以上。
3.软件接口
(二)系统中使用的公共代码
1.数据库连接
图17 数据库连接代码截图
2.乱码处理
由于浏览器中的参数传递是按字节传送,因此英文和数字不会有任何的问题,而中文汉字则由两个字节组成。
为了解决这个问题,使用了下面的方法:
图18 乱码处理代码截图
(三)系统界面
1.系统的登录界面
图19 系统登录界面截图
登录界面需要输入用户名和密码,同时还要选择3种身份:管理员,教师或者学生。
相对应到的代码如下:
界面的代码:
<form action="LoginControl?action=index" method="post">
<table height="300" border="0" background="img/bg_login.gif">
<tr>
<td height="60" width="450" colspan="2"
background="img/top_2.jpg"></td>
</tr>
<tr></tr>
<tr align="center" height="40">
<td>学号: <input type="text" name="name"></td>
</tr>
<tr align="center" height="40">
<td>密码: <input type="password" name="pwd"></td>
</tr>
<tr align="center" height="40">
<td colspan="2">请选择登录的身份:
<input type="radio" name="choose" value="0" >管理员
<input type="radio" name="choose" value="2">教师
<input type="radio" name="choose" value="1" checked>学生</td>
</tr>
<tr align="center" height="40">
<td ><input type="Image" name="submit"
src="img/login_top.jpg" width="70" height="22">
<input type="Image" name="reset" src="img/return.jpg" onclick="reset();return false;" width="70" height="22" border="0"></td>
</tr>
<tr></tr>
</table>
</form>
在LoginControl中对应的代码:
if(action.equals("index")){
String idStr=request.getParameter("choose");
if(idStr.equals("0")){
if(name.equals("admin")&&psw.equals("admin")){
request.getRequestDispatcher("/adminManager/main.jsp").forward(request, response);
}else{
request.getRequestDispatcher("failed.html").forward(request, response);
}
}else if(idStr.equals("1")){
StudentInf st=new StudentInf();
st.setStu_ID(code.getString(name));
st.setStu_password(code.getString(psw));
StudentDAO sdao=new StudentDAO();
if(sdao.searchStu(st)){
String stu_ID=st.getStu_ID();
StudentInf stu=sdao.searchStuById(stu_ID);
session.setAttribute("stu_id", code.getString(name));
session.setAttribute("stu_name", stu.getStu_name());
request.getRequestDispatcher("/studentManager/stu_main.jsp").forward(req uest, response);
}else{
request.getRequestDispatcher("failed.html").forward(request, response);
}
}else{
TearcherInf ad=new TearcherInf();
ad.setTearcher_ID(code.getString(name));
ad.setPassword(code.getString(psw));
TearcherDAO tdao=new TearcherDAO();
if(tdao.searchTear(ad)){
session.setAttribute("tearcherID", ad.getTearcher_ID());
session.setAttribute("password", ad.getPassword());
request.getRequestDispatcher("/tearcherManager/tearcher_main.jsp").forwa rd(request, response);
}else{
request.getRequestDispatcher("failed.html").forward(request, response);
}
}
}
2.管理员添加学生信息界面
图20管理员添加学生信息界面
添加学生信息主要添加:学号、姓名、密码、身份证号、出生年月、政治面貌等。
相对应的代码如下:
if(action.equals("addStu")){
String stu_ID=request.getParameter("stu_ID");
String stu_name=request.getParameter("stu_name");
String stu_password=request.getParameter("stu_password");
String stu_sfzID=request.getParameter("stu_sfzID");
String stu_shengri=request.getParameter("stu_shengri");
String stu_minzu=request.getParameter("stu_minzu");
String stu_sex=request.getParameter("sex");
String stu_zzmm=request.getParameter("stu_zzmm");
String stu_jiguan=request.getParameter("stu_jiguan");
String stu_address=request.getParameter("stu_address");
String stu_tel=request.getParameter("stu_tel");
String stu_Email=request.getParameter("stu_Email");
int
stu_levelID=Integer.parseInt(request.getParameter("stu_level"));
int
stu_professionalID=Integer.parseInt(request.getParameter("stu_profession al"));
String stu_bz=request.getParameter("stu_bz");
StudentInf stu=new StudentInf();
stu.setStu_ID(code.getString(stu_ID));
stu.setStu_name(code.getString(stu_name));
stu.setStu_password(code.getString(stu_password));
stu.setStu_sfzID(code.getString(stu_sfzID));
stu.setStu_shengri(code.getString(stu_shengri));
stu.setStu_minzu(code.getString(stu_minzu));
stu.setStu_sex(code.getString(stu_sex));
stu.setStu_zzmm(code.getString(stu_zzmm));
stu.setStu_jiguan(code.getString(stu_jiguan));
stu.setStu_address(code.getString(stu_address));
stu.setStu_tel(code.getString(stu_tel));
stu.setStu_Email(code.getString(stu_Email));
stu.setStu_classID(stu_levelID);
stu.setStu_professionalID(stu_professionalID);
stu.setStu_bz(code.getString(stu_bz));
StudentDAO sdao=new StudentDAO();
if(sdao.insertStudetnInf(stu)){
request.setAttribute("reslut", "44");
request.getRequestDispatcher("success.jsp").forward(request, response);
}else{
out.println("<center background='/student/img/R6C.GIF'><h3><a href='/student/adminManager/addstu.jsp'>该学生已存在,请重新添加
</h3></center>");
}
}
3.管理员查找教师信息
图21 教师查询界面
图22 教师查询结果界面
查询信息界面主要是通过班级查询和通过专业查询,如不选择,则查询全部。
if(action.equals("simpleSearch")){
String page=request.getParameter("i");
if(page==null) page="";
System.out.println(page);
String stu_class=request.getParameter("stu_level");
if(stu_class==null) stu_class="0";
int stu_classID=Integer.parseInt(stu_class);
String course=request.getParameter("course");
if(course==null) course="0";
int courseID=Integer.parseInt(course);
System.out.println("adminControl-------"+courseID);
String stu_professional=request.getParameter("stu_professional");
System.out.println("sdafadsf---"+stu_professional);
if(stu_professional==null) stu_professional="0";
int stu_professionalID=Integer.parseInt(stu_professional);
String sql="select * from studentInf where 1=1";
if(stu_classID==0 && stu_professionalID==0)
sql=sql;
if(stu_classID!=0)
sql=sql+" and stu_classID="+stu_classID;
if(stu_professionalID!=0)
sql=sql+" and stu_professionalID="+stu_professionalID;
if(!(stu_classID==0) && !(stu_professionalID==0))
sql=sql+" and stu_classID="+stu_classID +" and
stu_professionalID="+stu_professionalID;
StudentDAO sdao=new StudentDAO();
List <StudentInf>li=sdao.getStudentInf(sql);
if(li.size()>0){
pageDivideBean pdb=new pageDivideBean();
pdb.setSql(sql);
System.out.println(sql);
session.setAttribute("sql",sql);
List<StudentInf> pli=pdb.getDate(showPage);
session.setAttribute("pageNum",pdb.getPageNum());
if(pli.size()>0){
session.setAttribute("list", pli);
if(page.equals("addScore")){
Stu_scoreDAO scdao=new Stu_scoreDAO();
String sql1="select * from V_score where
stu_classID='"+stu_classID+"' and
stu_professionalID='"+stu_professionalID+"' and courseID='"+courseID+"'";
List<V_score> vli=scdao.score(sql1);
request.setAttribute("vli", vli);
request.setAttribute("courseID", courseID);
System.out.println("courserID====="+courseID);
request.setAttribute("class_ID", stu_classID);
request.setAttribute("stu_professionalID",
stu_professionalID);
request.getRequestDispatcher("/tearcherManager/searcherReasult.jsp").for ward(request, response);
}else{
request.getRequestDispatcher("/adminManager/searchResult.jsp").forward(r equest, response);
}
}
}else if(page.equals("addScore")){
out.println("<html><body
background='img/R6C.GIF'><h2><a
href='/student/tearcherManager/addScore.jsp'>没有查找到,请重新查找
</a></h2></body></hmtl>");
}else{
out.println("<html><body
background='img/R6C.GIF'><h2><a
href='/student/adminManager/simpleSearch.jsp'>没有查找到,请重新查找
</a></h2></body></hmtl>");
}
}
if(action.equals("pageDivide")){
String sql=(String) session.getAttribute("sql");
System.out.println("sql="+sql);
pageDivideBean pdb=new pageDivideBean();
pdb.setSql(sql);
pdb.setShowPage(showPage);
List<StudentInf> list=pdb.getDate(showPage);
if(list.size()>0){
//查询结果不为空
request.setAttribute("list", list);
request.getRequestDispatcher("/adminManager/searchResult.jsp").forward(r equest, response);
}
else{
out.println("查询结果为空");
}
}
六、总结
通过这次的毕业设计,让我从原来的对一段程序只要知道如何实现就可以了,只要可以得到自己想要的结果,这个程序就可以,但是从这次我知道了,一段程序写出来之前,要经历这么多的事情,特别是在写代码之前要经过需求分析,数据库设计等方面的知识,我对于需求分析这个方面的知识知道的并不是太多,特别是对于需求分析使用到的用例图,我知道的更是少。
不过经过这次我真的从中学到了许多,让我知道了需求分析对于一个项目是多么的重要,同时也让我对用例图这方面的知识得到了又有了更清楚的了解。
本次设计我只实现了一些基本的功能。
还有许多的设想由于时间和自身和因素无法得以实现,这不能不说是本次设计的遗憾之处。
不过,至少它已经启发了自己的思维,提高了我的动手能力,这是我在课本中学不到的。
它为我们在以后的工作岗位上发挥自己的才能奠定了坚实的基础。
这个设计中有许多的不足之处,例如:管理员没有为学生上传照片,这是系统的弊端,同时老师给学生添加成绩的是时候不能直接对成绩进行修改,只能通过查看成绩之后才能修改成绩等。
在这次毕业设计中我从中学到了许多,让我把我之前没有了解清楚的每个图之间的关系都了解了一下,同时让我清楚了用例图的具体画法并且清楚的了解到每一个项目之后都是有许多的成员的努力在里面,让我更清楚的知道了,我走出校门之后,自己从事项目开发是自己所需的各个方面的知识,并不是我们在学校中的这么简单,每一个项目都包含了许多的知识点。
不过我会在以后的时间里继续完善它,使它的功能更全更好。
这次的毕业设计,对我来说是一个很好的锻炼,从学习相关经验,到查看资料和书籍,讯问老师和同学,从而加深了对于JSP和SQL等相关技术更深刻的认识,头脑中的概念也逐渐清晰,每一次的改进都有不少的收获。
总之,这次毕业设计让我得到了很大的锻炼,各方面都进步了很多。
参考文献
1.郎波,《JAVA语言程序设计》,清华大学出版社,2010年4月
2.蒋卫祥、朱利华,《Java Web 应用开发》,清华大学出版社,2010年4 月
3.谭建辉,《网页制作与实训》,科学出版社,2009年2月
4.李建中、王珊,《数据库系统原理》,科学出版社,2007年9月
5.张孝祥,《Java就业培训教程》,清华大学出版社,2003
6.吕风顺,《SQL Server数据库基础与实训教程》,清华大学出版社,2006年9月
7.钱银中,《java程序设计案例教程》,机械工业出版社,2009年7月
8.江文,《软件建模技术》,北京邮电大学出版社,2009年8月
9.孙卫琴,《精通Struts:基于MVC的Java Web设计与开发》,电子工业出版社,2004.08
10.古乐声,《Jsp程序设计》,国防科技大学出版社, 2009年8月
致谢
本项目是在张书贵老师的悉心指导下完成的。
他对我进行了无私的指导和帮助,不厌其烦的帮助论文的修改和改进,也许我不是您最出色的学生,而您却是我最尊敬的老师,您治学严谨,学识渊博,不仅在学业上给我以精心的指导,同时还在思想、生活上给我无微不至的关怀,在此谨向张书贵老师致以诚挚的谢意和崇高的敬意。
感谢在校学习期间关心我的学校领导、给我上课的学校老师,还有我们敬爱的辅导员,他们孜孜不倦的教诲让我学到了很多知识,让我学到了很多学习方法和为人处事的道理。
最后还要感谢培育我的开封大学,两年的学习让我成长了很多,也学到了很多我以前所学不到的东西。
同时我还要感谢那些陪伴我走过大学生涯的同学们,他们给予我很多帮助,有了他们的陪伴我才能在学习和生活中不断进步。