
实践教学
*******************
兰州理工大学
计算机与通信学院
2013年春季学期
数据库 课程设计
题 目:
专业班级:
姓 名:
学 号:
指导教师:
成 绩:
目 录
摘 要 1
前 言 2
正 文 3
1. 需求分析 3
1.1系统的数据流程图 3
1.2数据字典 4
1.3系统功能模块图 6
2. 概念结构设计 7
3. 逻辑结构设计 10
4. 系统实现 11
5. 系统测试 18
5.1 测试概述 18
5.2测试方案及概述 18
5.3测试用例及步骤 19
6. 软件使用说明书 27
总 结 35
参考文献 36
致 谢 37
摘 要
教师档案管理系统围绕着档案资料信息的整个生命周期,在功能上涵盖信息采集、数字化加工、档案资源管理与服务以及信息产品的制作,具有信息档案资料分布式处理的功能,实现网络内及远程机关档案信息共享,异地档案资料的调阅与采集;便捷高效的数字化档案资料加工系统,短时间内可达到纸质档案资料数字化的目标;对文字、数字、图片多媒体等各种类型的非结构化信息具有强大的数据库管理、检索功能;档案信息著录、标引、处理自动化以及网络内档案信息资源拥有安全、可靠使用环境;方便、高效的档案信息获取利用功能。
进入本系统后,用户可进行相应的功能操作。管理员可对教师档案信息的修改和查询,图片信息管理、相关文章管理、统计操作等现代化的档案管理。通过此系统,可以全面对文档、图片、相关文件信息进行录入、查询、修改等。
关键词:数据库;数据字典;档案管理;C/S模式
前 言
随着学校规模的不断扩大,教师数量的急剧增加,有关教师的各种信息资料也成倍增长。办学者们所头疼的问题,就是如何面对这庞大的信息量。只有利用计算机,利用教师管理信息系统才能解决这一问题,才能提高教师管理的工作效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。
本教师档案管理系统包括教师信息、课程信息、论文信息、项目信息等内容的管理;遵从以往旧式的工作方式,该工作的工作量大,管理繁琐,既耗人力,又耗物力;如今面对大量的教师数据、报表,手工处理方式已经很难跟上现代化的步伐。随着计算机技术及网络通讯技术的飞速发展,许多学校已经有了较好的计算机应用甚至网络硬件建设基础。因此为提高学校管理工作的现代化、科学化水平,保证信息处理的即时化、准确化,开发一套对教师档案进行管理的软件是极其重要的,而且是必需的。
本系统正是为解决这一问题而设计的,大大减少了以往教师管理工作的工作量,提高了工作效率,节省了资源,适应时代的步伐。
本系统采用MySQL5.5作为后台数据库,MySQL是一套免费的数据库开发系统,能对大量数据进行处理和管理,性能优越;使用windows 7操作系统作为开发平台。
正 文
1.需求分析
教师业务档案是教师在教学、科研、教学改革等活动中直接形成的具有保存价值的历史记录。教师业务档案在个体上反应可教师个人的业务能力和水平,在群体上则反应出高校的办学水平以及师资队伍的整体素质。高校教师档案管理系统是教育单位不可缺少的部分,对于学校的决策层和管理层来说都至关重要,所以教师档案管理系统应该能够为用户提供充足的信息和快捷的查询方式。在此之前,人们使用传统的人工方式管理文件档案,这种管理方式存在着许多缺点和漏洞,例如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这给文件的查找、更新和维护都带来了不少的困难。
建立高校教师档案管理系统,采用计算机对高校教师档案进行管理,进一步提高办学效益和现代化水平。帮助各大中专学校提高工作效率,实现高校教师档案管理工作流程的系统化、规范化和自动化,方便对教师的教学能力、业务能力、学术水平等的考核与评价。
系统需要完成的基本功能有信息的录入、修改、查询等功能,包括教师个人信息、主讲课程信息、参与项目信息、发表论文信息。同时系统要能够满足多种条件下的统计分析功能,对于特别的统计数据要采用图标的格式呈现给用户。要求采用数据库系统进行开发。
1.1系统的数据流程图
系统的数据流程如图1-1所示:
图1-1 教师业务档案管理系统数据流程图
1.2数据字典
1.2.1登录信息表
名字:登录信息表
别名:
描述:记录管理员和教师登录信息的表
定义:登录信息表=登录号+用户名+登录密码+权限
1.2.2教师个人信息表
名字:教师个人信息表
别名:教师信息表
描述:记录教师个人信息的表
定义:教师个人信息表=编号+姓名+性别+籍贯+出生日期+学历+职称+取得资格时间+毕业学校+毕业时间+所学专业+参加工作时间+现从事专业
1.2.3课程信息表
名字:课程信息表
别名:
描述:记录教师主讲课程信息的表
定义:课程信息表=课程编号+课程名称+学时+人数+时间
1.2.4项目信息表
名字:项目信息表
别名:
描述:记录教师参与的学术项目信息的表
定义:项目信息表=项目名称+编号+类别+开始日期+完成日期+鉴定日期+鉴定结论+获奖情况+在项目中的排名
1.2.5论文信息表
名字:论文信息表
别名:
描述:记录教师个人发表的论文信息的表
定义:论文信息表=论文编号+论文名称+期刊/会议名称+时间+期刊级别+索引情况+排名
1.3系统功能模块图
系统功能模块如图1-2所示:
图1-2 系统功能模块图
2.概念结构设计
主要画E-R图
2.1教师
图2-1 教师E-R图
2.2课程
图2-2 课程E-R图
2.3项目
图2-3 项目E-R图
2.4论文
论文名称,期刊,时间,期刊级别,索引情况,排名
图2-4 论文E-R图
2.5档案管理系统E-R图
图2.5 档案管理系统E-R图
3.逻辑结构设计
主要描述数据库的设计,给出具体的关系模式及关系图
在概念结构设计阶段已经设计出系统的概念结构模型,画出实体—关系模型,在本阶段则将完成将实体和实体间的联系转换为关系模式,并确定这些关系的属性和码。在本系统中教师实体与另外三个实体:课程、项目、论文,均是1:n联系,可以转换为一个的关系模式。与该联系相关联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体的码的组合。
因此,本系统的数据库包含五个实体关系模式,即:登录信息、教师信息、课程信息、项目信息和论文信息等对应的关系模式,还有三个联系所对应的关系模式,即:“做”、“发表”、“讲”。
以下把E-R图转换成的具体的关系模型。关系的码用下横线标出。
3.1实体对应关系模式
登录信息(登录号,用户名,密码,权限)
教师(教师编号,姓名,性别,籍贯,出生日期,学历,职称,取得资格时间,毕业学校,毕业时间,所学专业,参加工作时间,现从事专业)
课程(课程号,课程名称,学时,人数,时间)
项目(项目编号,项目名称,类别,开始日期,完成日期,鉴定日期,鉴定结论,获奖情况,项目排名)
论文(论文编号,论文名称,发表期刊,时间,期刊级别,索引情况,排名)
3.2联系对应关系模式
讲(课程号,教师编号)
做(项目编号,教师编号)
发表(论文标号,教师编号)
4.系统实现
主要功能的程序流程图以及主要算法的说明(可配以界面说明)
数据库中至少包含3张表,具有数据录入,删除,修改,查询等基本功能,具体参看任务书
4.1数据库实现
在MysQL数据库管理系统中创建数据库teacher_manage,数据库包含八张表,各表的详细设计如下:
登录信息表
表名:login
| 属性名 | 类型 | 允许为空 | 主键 | 描述 |
| no | char(8) | No | 主键 | 登录号 |
| username | varchar(20) | No | 用户名 | |
| password | varchar(20) | No | 登录密码 | |
| power | varchar(20) | No | 权限 |
教师表
表名:teacher
| 属性名 | 类型 | 允许为空 | 主键 | 描述 | |
| t_no | char(8) | No | 主键 | 教师编号 | |
| t_name | varchar(20) | No | 教师姓名 | ||
| t_sex | char(4) | Yes | 性别 | ||
| t_birthplace | date | Yes | 籍贯 | ||
| t_birthdate | varchar(20) | Yes | 出生日期 | ||
| t_degree | varchar(20) | Yes | 学历 | ||
| t_proname | varchar(40) | Yes | 职称 | ||
| t_getprodate | date | Yes | 取得资格时间 | ||
| t_graduate | varchar(40) | Yes | 毕业学校 | ||
| t_graddate | date | Yes | 毕业时间 | ||
| t_major | varchar(40) | Yes | 所学专业 | ||
| t_indate | date | Yes | 参加工作时间 | ||
| t_nowmajor | varchar(40) | Yes | 现从事专业 | ||
课程表
表名:course
| 属性名 | 类型 | 允许为空 | 主键 | 描述 |
| c_no | char(4) | No | 主键 | 课程号 |
| c_name | varchar(40) | No | 课程名称 | |
| c_span | int | Yes | 学时 | |
| c_number | int | Yes | 人数 | |
| c_time | date | Yes | 时间 |
项目表
表名:project
| 属性名 | 类型 | 允许为空 | 主键 | 描述 |
| p_no | char(9) | No | 主键 | 项目编号 |
| p_name | varchar(40) | No | 项目名称 | |
| p_type | varchar(20) | Yes | 类别 | |
| p_startdate | date | Yes | 开始日期 | |
| p_finishdate | date | Yes | 完成日期 | |
| p_asesdate | date | Yes | 鉴定日期 | |
| p_asesresult | varchar(20) | Yes | 鉴定结论 | |
| p_reward | varchar(20) | Yes | 获奖情况 | |
| p_ranking | int | Yes | 项目排名 |
论文表
表名:eassy
| 属性名 | 类型 | 允许为空 | 主键 | 描述 |
| e_no | char(10) | No | 主键 | 论文编号 |
| e_name | varchar(40) | No | 论文名称 | |
| e_magname | varchar(40) | Yes | 发表期刊 | |
| e_publishdate | date | Yes | 时间 | |
| e_maglevel | varchar(20) | Yes | 期刊级别 | |
| e_index | varchar(20) | Yes | 索引情况 | |
| e_ranking | int | Yes | 排名 |
“讲”关系表
表名:teaching
| 属性名 | 类型 | 允许为空 | 主键 | 描述 |
| t_course | char(4) | No | 主键 | 课程号 |
| t_teacher | char(8) | No | 主键 | 教师编号 |
“做”关系表
表名:doing
| 属性名 | 类型 | 允许为空 | 主键 | 描述 |
| d_project | char(9) | No | 主键 | 项目编号 |
| d_teacher | char(8) | No | 主键 | 教师编号 |
“发表”关系表
表名:publishing
| 属性名 | 类型 | 允许为空 | 主键 | 描述 |
| p_eassy | char(10) | No | 主键 | 论文编号 |
| p_teacher | char(8) | No | 主键 | 教师编号 |
4.2功能实现
各功能模块的流程图如下:
登录模块
此模块主要功能是用于登录本系统,不同权限的用户登录本系统会进入不同的管理模块界面,因为在后台对该用户进行的判断,首先将从前台页面提交的用户名和密码进行接受,之后在后台进行处理,按照用户名在数据库中进行查询如果查到该用户则将该用户的权限和密码全都取出来分别赋给两个字符串变量,判断从数据库中读出的密码与登录时输入的密码是否配比上,若两个密码相同则根据权限的值进入相应的页面,否则输出密码错误。若用户未被管理员分配好权限那么也是无法登录本系统的。如图4-1所示:
图4-1 前台登陆界面
登陆程序流程图如图4-2所示
图4-2 登陆程序流程图
其实现代码:
public class login extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String num=request.getParameter("num");
String random=(String)request.getSession().getAttribute("random");
if(num!=null&&random!=null)
{
if(!num.equals(random))
{
out.println("");
out.println("");
//response.sendRedirect("img.jsp");
}
else
{
String account=request.getParameter("account");
account=new String(account.getBytes("ISO8859-1"),"utf-8");
String upwd=request.getParameter("password");
upwd=new String(upwd.getBytes("ISO8859-1"),"utf-8");
UserBean ub=new UserBean();
ub.setAccount(account);
ub.setPassword(upwd);
JavaBean jb=new JavaBean();
int i=jb.bean(ub);
System.out.println(i);
if(i==1)
{
out.println("");
}
else if(i==3)
{
out.println("");
}
else if(i==0)
{
out.println("");
}
out.println("
}
}
}
public void init() throws ServletException {
}
}
首界面模块
用户登陆在输入正确的用户名和密码后,就可以登陆本系统。如图4-3所示:
图4-3 首界面
教师个人信息管理模块
教师个人信息管理模块程序流程图如图4-1所示
图4-1教师个人信息管理模块程序流程图
5.系统测试
5.1 测试概述
在开发大型软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。我们力求在每个阶段结束之前通过严格的技术审查,尽可能早的发现并纠正错误。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。
尽管面向对象技术的基本思想保证了软件应该有更高的质量,但无论采用什么样的编程技术,编程人员的错误都是不可避免的,而且由于面向对象技术开发的软件代码重用率高,更需要严格测试,避免错误的繁衍。因此,软件测试在面向对象编程里更具有它的重要性。
与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤地继续。大型软件系统通常由若干个模块组成,每个模块又由许多模块组成。
当设计工作完成以后,我就开始着手测试的准备工作。我对整个系统设计编写测试大纲,明确测试的内容和测试通过的准则,设计完整合理的测试用例,以便系统全部实现后进行全面的测试。
5.2测试方案及概述
软件的测试方法有两种:一种是黑盒测试法(功能测试),另一种是白盒测试法(结构测试)。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接受输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。而白盒测试按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。
测试方案是测试阶段的关键技术问题。为了提高测试效率,降低测试成本,本测试方案采用黑盒法设计基本的测试方案,再用白盒法补充一些方案,其基本内容是对系统应该实现的功能进行测试,包括系统接受信息模块测试、系统输出信息模块测试、系统模块(包括数据库)测试、各模块之间的接口测试、系统整体测试等。
5.3测试用例及步骤
在此次教师业务档案管理系统的开发过程中,每开发完一个模块都会进行模块功能测试,在测试的过程中,主要问题有以下几个:
1.界面显示问题
通过运行程序,查看运行界面是否和程序设置界面一致,并且一切显示正常。
2.数据库的连接问题
在运行程序的过程中,对需要进行修改、添加、删除等操作的数据库,查看是否操作成功,并查看页面中所输入的内容与数据库中的内容是否一致。
1).对用户登录部分进行测试
用户登录时验证码测试如图5-1所示。
图5-1用户登录验证码测试用例
用户登录时用户名和密码测试:实际用户名是9240129,密码11111;测试用例:用户名9240129,密码123456;点击登录后弹出用户名或密码错误提示如图5-2,与我们的预期目标一致,即该部分功能正常。测试完毕。
图5-2用户登录用户名跟密码测试用例
2)增删改查测试
在经过对各模块的测试及集成测试后,已经能够证实该网站各方面的功能都可以正常运行。
1.5.4测试分析总结及说明
在测试过程中,我经过模块测试和组装测试,排除了系统的大部分错误。当然排除所有错误是不太可能的,我想应该还有些不易检测到的错误还没有被发现,需要在使用的过程中进一步的完善,数据库的加密是一个重要的概念,应该做好数据库的完善工作,特别是备份和安全工作,由于时间仓促难免有错误和不完善的地方,希望老师能够帮我指点和纠正。
2.5.5系统的性能分析
基于java的系统一般来说网络安全性比较好,但并不能说就一定安全,尤其在windows操作系统下,由于windows的漏洞比较多,系统装配在windows下并不是最佳的选择,如果有条件,建议可将系统装配在unix操作系统下,提高系统的抗侵入能力。
系统的核心数据库,随着数据的不断增多,必然会产生冗余,导致系统运行效率降低,建议管理员定期备份和清理冗余数据,以保证系统的正常高效运行。
6.软件使用说明书
6.1.1 JAVA虚拟机的安装
本网站采用的是基于Java的JSP技术,所以Java虚拟环境即Java虚拟机是必须要安装的。
JDK是一切Java应用程序的基础,可以说所有的Java应用程序是构建在这个之上的。目前已经正式发布的最新版本是JDK1.6。Windows下,直接运行.exe文件,安装到一个目录,如E:/jdk1.6,安装完成后就是环境变量的设置。
桌面上选择“我的电脑”(右键)/高级/环境变量,在系统变量下选择新建,在变量名中输入:JAVA_HOME,变量值输入:E:\\jdk1.6\\lib\\dt.jar; E:\\jdk1.6\\lib\ools.jar;还需要在Path变量值后面添加一个值:E:\\jdk1.6\\bin。至此JAVA环境安装成功。我们可以在命令行中敲入命令java如果现实java帮助,则证明环境设置成功。
6.1.2 Tomcat环境搭建
安装Tomcat:对于绿色版直接解压即可,假如安装在E:\\Tomcat。打开Tomcat文件中的bin文件,双击其中的运行程序startup.bat启动服务器。如果服务器启动正常,此时在浏览器上敲入本地测试地址:http://localhost:8080 如果出现Tomcat页面则证明Tomcat安装成功,而且正常启动。
到这里,系统运行所需要的基本运行环境已经安装完成。
6.2.1 部署项目
假定存放易购手机商店系统所有文件的工作目录是E:\\workspace\\make,即包含了教师业务管理系统所有文件的目录放到E盘下的workspace下的shop目录中。在Tomcat安装目录下的conf\\Catalina\\localhost目录下新建一个make.xml配置文件,在其中添加一个Context元素,代码如下:
6.2.2 拷贝数据库驱动程序
将MySql驱动程序“connector-java-5.1.21-bin.jar”拷贝到Tomcat安装目录的common\\bin子目录中。
6.3 操作指南
1)登陆界面
登陆界面提供给浏览者登陆的入口。登陆界面前后如图6-1所示,输入9240129,密码11111进入系统信息界面即可进行相应操作。
图6-1 教师业务管理系统登陆界面
2) 系统界面
系统界面主要包括用户登录信息、教师个人信息、课程信息、项目信息、论文信息以及系统信息。主界面如图6-2所示。
图6-2 教师业务管理系统主界面
2) 查询界面
在每个功能界面下都有查询功能,比如在教师信息界面,我们界面显示如图6-3,在查询一栏我们选择年龄是22岁,点击查询,界面显示如图6-3
图6-3教师信息界面
图6-4教师信息查询界面
3) 编辑界面
4) 删除界面
总 结
通过教师业务档案管理系统的设计,我进一步了解了数据库设计方式以及MyEclipse的使用的方法,以及SQL语言的运用,使我认识到软件开发的过程实际上就是描述现实世界的过程。而由现实世界向软件模型的转化过程是其中最核心的过程。在课程设计的过程中我们遇到了许多问题。而这些问题的产生都是由于理论知识和实践经验的缺乏造成的。
在为期两周的课程设计当中感触最深的便是实践联系理论的重要性,当遇到实际问题时,只要认真思考,用所学的知识,再一步步探索,是完全可以解决遇到的一般问题的。我查阅了大量的资料文献,请教老师和同学,经过耐心的调试终于达到了题目的要求。课程设计让我真正做到了学有所用,在设计当中受益匪浅。
软件开发由于时间仓促,软件还有很多不足之处,如:档案查询部分不够完善,信息输入模块不支持信息批量输入,软件代码较冗余、效率不高等等,都是对MyEclipse操作不熟练,对相关功能缺乏认识造成的。在今后的学习中我会加强理论与实践的结合,通过不断的摸索来弥补自己在软件制作方面的差距。
这次课程设计不但使我再一次巩固和掌握了软件工程和数据库原理课上所学的知识,而且,它还使我进一步了解和懂得了书本知识在实践中的应用。同时还使我懂得在工作中需要不断探索,不断克服困难,让我认识到团结合作的重要作用。
参考文献
1.李明等. 数据库原理及应用[M]. 西南交大出版社, 2007.7
2.袁方(译). 现代数据库管理(第7版)[M]. 电子工业出版社, 2006.1
3.张瑜等(译). 数据库系统设计实现与管理(第6版)[M]. 清华大学出版社, 2005.9
4.郑阿奇. SQL Server实用教程(第2版) [M]. 电子工业出版社, 2007.11
5.熊拥军,刘卫国. 数据库技术与应用实践教程—SQL Server 2005 [M]. 清华大学出版社, 2010,4
6.周涛, 吕伟臣, 夏永和. SQL Server 2005 数据库基础应用[M]. 清华大学出版社, 2007,12
7.陈磊等. PowerBuilder 9 数据库项目案例导航[M]. 清华大学出版社, 2005,1
8.杨柠. 进销存管理软件参考流程的研究与分析[J]. 黑龙江科技信息,2010,5
9.赵晓霞. 进销存管理系统的设计与实现[J]. 煤炭技术, 2010,1
致 谢
从确定设计方案到算法的实现再到编写程序,历时两个星期。在此,我谨向朱红蕾老师致以最诚挚的谢意。在这段时间内老师不辞辛苦一直奔波忙碌于指导我们与完成自己的工作之间。
朱老师的严谨的工作作风、亲切的待人方式,渊博的专业知识都给我留下了深刻的印象,老师细心的讲解和指点使我从课程设计之中受益匪浅,使我从实际的算法实现中更好地掌握了理论知识。
感谢我的《数据库原理》老师王燕老师以及与课设有关的各任课教师。一个学期以来老师们严肃的教学态度使我从对该课程的一无所知到收获颇丰,也为我今后的求学生涯树立了榜样。你们一直以来默默无闻的扮演着传道、授业、解惑的角色,您就是那将我们送到对岸的摆渡人。还要感谢所有参加评阅设计说明书以及参加答辩的老师,是你们让我及时的发现错误,改正错误,很快的取得了进步。
最后还要感谢我的同学们,感谢他们耐心的讲解和细心的指导,也感谢他们给我提出那么多的解决方案和指导性意见,帮我顺利完成我的课程设计和论文!
