《国家职业技能鉴定报名系统的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《国家职业技能鉴定报名系统的设计与实现毕业论文.doc(47页珍藏版)》请在三一办公上搜索。
1、单位代码 10642 密 级 公 开 学 号 200620174027 学士学位论文 国家职业技能鉴定报名系统的设计与实现(系统设计说明书)论文作者: 指导教师: 学科专业:计算机科学与技术职教师资本科 提交论文日期: 2010 年 04 月 16 日 论文答辩日期: 2010 年 04 月 28 日 学位授予单位:重庆文理学院 中 国 重 庆2010 年 4月目 录目 录I中文摘要I英文摘要II1绪 论11.1 选题的依据11.2 国内外研究现状11.3 经济可行性分析22系统分析42.1系统的主要功能42.2 数据库设计52.3 系统架构62.4 数据库结构设计73 系统详细设计113.1
2、 后台主要功能模块详细设计11311后台登录模块11312 管理员功能模块123.2 报名人员主要功能模块详细设计21321考生注册21322考生填写报名信息233.3 审核人员主要功能模块详细设计26331 考生缴费确认模块26332考生信息审核29333统计已缴费的考生信息:304 系统配置3441 JDK的安装与配置3442 Web应用程序测试环境TOMCAT的安装与配置3543 数据库的安装3544 hibernate连接数据库355. 结 论37参考文献38致 谢39附1:论文独创性声明及论文使用授权声明40国家职业技能鉴定报名系统的设计与实现计算机科学与技术(职本)专业1班 陈维蜂
3、 指导教师 刘元勇摘要: 基于B/S的职业技能鉴定网上报名系统是采用先进的JSP动态网页技术开发而成。该系统克服了传统报名模式的缺陷,突出了交互性、实时性、有效性和人性化等特点。考生可通过互联网进行网上报名,为此可以减轻报名工作人员的工作量。同时,以前由工作人员完成的统计工作现由系统代完成,有效提高了工作人员的工作效率。本系统提供了较完善的功能,包括鉴定信息管理、工作人员管理、考生报名、邮件功能、考生报名缴费确认以及报名信息统计功能等。系统采用了Java、JavaScript、Html等语言,struts、hibernate等框架技术。 关键词:JSP;网上报名;B/S模式Design and
4、 implementation of Occupational Skill Evaluation Registration SystemMajor: Computer Science and Technology Class: Class One Grade 2006Author: Chen Weifeng Supervisor: Liu YuanyongAbstract: The Occupational Skill Evaluation Registration System based on B/S, adopts the advanced JSP dynamic web technol
5、ogy. This system overcomes the shortcoming of traditional mode, and it highlights the interactivity, real-time property, effectiveness and humanization, etc. The examinee can enroll through the Internet. Therefore, it can reduce the workload of the staffs. At the same time, the statistical work will
6、 be completed by the system, by which effectively improves the efficiency of the staff. This system provides perfect functions, including identification of information management, personnel management, examinee, email function, the examinee registration confirmation, registration information capture
7、, statistics etc. It is programmed by java, JavaScript, html, as well as framework technology of struts, hibernate, etc.Keywords: JSP; Online Registration; B/S model1绪 论1.1 选题的依据在以往全国统一职业技能鉴定报名过程中,大部分考生往往要由培训机构报名参加鉴定,这样导致信息渠道不畅,很难直接、及时了解有关的政策变化、考务组织情况以及鉴定结果等信息。随着网络的信息化,目前的办公模式也不能满足当前的市场需求。这种人工纸化处理模式
8、,关注时间长,效率低。如何简单化,无纸化处理,高效率的处理这种职业技能鉴定报名的模式,所以提出了基于J2EE的职业技能鉴定网上报名系统。它不单实现了报名程序的快捷、简便,而且可以减少原有工作流程的复杂性。只需考生通过网络登录职业技能鉴定网上报名系统,就可以轻松的实现报名。这种形式,大大的节省人工环节,提高处理效率。并且可以轻松的实现网上办公,大大的减少了原有模式的出错率,及时的了解考生的情况。1.2 国内外研究现状目前,中国大部分职业网上报名系统才刚开始起步,很多技术都不是很成熟,存在着不足之处。在重庆文理学院的国家职业技能鉴定报名情况如下:工作人员把报考的鉴定信息做成简报贴到学校共公信息栏,
9、报名人员看到报考信息后,到报名办公室询问情况。如果想报考的考生,就在工作人员的协助下进行报名。报名完成后,工作人员要记录考生的报名信息以及缴费情况,最后还要统计考生报名人数、缴费人数、缴费总额等。在统计完后,确认无误后,要把这些报名信息录入电脑,并上交于上级部门。这样的报名流程,有太多的不足了,为此根据工作人员的要求特开发此系统。(1)采用VB或VFP开发的单机模式的全国统一鉴定报名录入系统。单机模式的系统在数据的安全性得到了较大的提升,从一定程度上提高了职业鉴定报名管理的工作效率。但是,这种方式仅适用于小规模的报名系统,当涉及到大量的数据时,采用这种管理方式仍然给报名管理工作者带来极大的不便
10、,从而降低了工作效率。(2)采用C+开发C/S(Client/Server)模式的全国统一鉴定报名系统。C/S模式是由客户机和服务器端两个层面构成,其形式逻辑和事务逻辑放在客户端,数据逻辑和数据存储位于服务器端。这种结构是属于重客户端、轻服务器端的结构。使用C/S模式能够有效地利用校园internet网络资源,解决了单机模式的将数据库和应用逻辑放在同一台计算机上的不足。但是,这种架构是属于重客户端、轻服务器端的结构。客户端软件一般有应用程序以及有关的数据库接口组成,当系统的应用环境发生变化而需要改变事务处理逻辑时,每个客户机上的应用程序也都需要更新,系统维护比较麻烦,在internet环境下的
11、应用也具有很大的局限性。客户端用户必须安装客户端软件程序才能够进行相应的管理。(3)采用ASP,PHP,.NET,JSP等技术开发的B/S模式的全国统一鉴定报名系统。采用B/S模式开发能够有效地利用internet资源,极大地提高了科研管理工作效率。但是,在开发系统时大都没有考虑到系统的安全性,因此给科研管理系统带来了极大的安全隐患,造成了数据的不完成性。综上所述,全国统一鉴定报名系统存在的问题主要表现在以下几个方面:(1)系统规模受限。大部分职业鉴定报名系统仅适用于中、少量数据的处理,根本无法适应当今社会的大量,甚至超大量的数据处理要求。(2)系统安全性方面存在严重漏洞。在系统的设计过程中,
12、开发人员没有充分考虑到系统的安全性,没有针对性地采取相关的系统漏洞的预防措施,使得诸多系统在实施过程中的数据完整性和保密性遭到破坏,甚至导致系统的整体瘫焕。(3)需求分析不全面,导致系统功能不完善。在系统的需求分析中,由于需求分析人员对系统的需求不够全面,没有设计出合理的数据模型,导致系统的功能不够完善。此外,国外一些报名系统基本上都采用了B/S模式开发的报名系统,在工作效率等方面都得到了一定程度的提高,但大都没有对其功能进行相应的整合,都是以子系统功能的形式出现,导致了在系统管理等方面极其复杂;而且国外大部份报名信息系统也没有运用J2EE企业级的架构与安全,导致系统存在着维护和安全性等方面的
13、漏洞。1.3 经济可行性分析职业鉴定报名传统的报名方式是学生到报名办公室报名后,工作人员要记录考生的报名信息以及缴费信息,最后还要统计考生报名人数、缴费人数、某一天缴费统计等。在统计完后,确认无误后。要把这些报名信息录入电脑,并上交于上级部门。在统计的过程中,出现几大问题:第一,统计信息时,数据量太大、太浪费时间了;第二,统计信息时,容易出错。在录入电脑数据时也会出现录入时的错误。传统的报名流程费时、也费力,而且统计数据没有保障。需要投入相当的人力物力。而网上报名实现了“收集报名信息、统计报名数据”,无须在人工的统计报名数据和人工的录入上报信息。节约了大量的物力和人力,提高了工作效率,让工作人
14、员做更少的繁琐的工作。所谓职业鉴定报名系统都是在计算机里进行的,实现了真正意义上的减轻工作人员工作强度,并提高了工作人员工作效率。2系统分析2.1系统的主要功能国家职业网上报名系统其目的是为了方便考生报名,方便管理人员收集和统计数据而设计的。按照系统开发的基本方法,通对现代报名系统功能的需求分析之后,对本系统进行了如下功能设计(每个模块的具体信息详见4.1模块设计)。报名人员模块报名人员注册账号报名人员找回密码帮助系统报名人员登录入口公告填写报名信息及报考职业照片管理报名信息修改注册信息修改资格审核报名人员密码管理确认报名信息报名审核帮助系统报名审核模块职业查询报名模块管理模块考生报名缴费确认
15、考生审核模块导出报名表统计模块添加工作人员找回工作人员密码本人密码管理本人信息修改管理员模块高级职业公告报名管理设置帮助发布鉴定信息管理鉴定信息考生审核报名缴费导出报名表查看已缴费的考生查看未缴费的考生批量删除统计模块发布公告管理公告群发邮件管理工作人员设置报名系统开放时间查看报名系统开放时间审核人员帮助系统管理员帮助系统2.2 数据库设计以下是本系统中的几个重要数据表结构及其关系数据表说明如下:数据表admin_info:是用来保存本系统中系统管理员的信息表,里面的主键id是一个使用uuid自动生成的字符串。数据表notice:是用来保存本系统的公告信息,里面的主键id是一个使用uuid自动
16、生成的字符串。数据表position_grade:是用来保存本系统中职业鉴定等级信息,里面的主键id是一个使用uuid自动生成的字符串。其中position_id做为外键与postion表关联。数据表position:是用来保存本系统中职业名称信息,里面的主键id是一个使用uuid自动生成的字符串,其中type_id做为外键与postion_type表关联。数据表position_type:是用来保存本系统中职业鉴定类型信息,里面的主键id是一个使用uuid自动生成的字符串。数据表System_open_time:是用来保存本系统开放时间的表,里面的主键id是一个使用uuid自动生成的字符串。
17、数据表user_info:是用来保存本系统中考生报名的信息表,里面的主键id是一个使用uuid自动生成的字符串,其中postion_type做为外键与postion_type表关联,其中postion_name做为外键与postion表关联,其中postion_grade做为外键与postion_grade表关联。数据库关系图请见图2-1所示:图2-12.3 系统架构采用B/S模式,选择SQL Server 2000作为后台数据库,选择JAVA、JSP、JavaScript、Html作为应用程序开发工具,运用Tomcat服务器技术,整个系统完全基于Browser/Server模式进行设计。B/
18、S模式有以下优点:(1)开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。(2)良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。因此系统的架构就采用了B/S设计模式。2.4数据库结构设计任何一个管理系统,几乎都离不开数据库的支撑,数据库设计的好坏直接影响到软件系统的质量。特别
19、是基于WEB的系统,在设计数据库的时候更应该考虑到数据库的安全性。因此设计数据库是系统设计过程中相当重要的环节。根据各大报名系统的指导思想、设计原则以及需求分析,对本系统所涉及的数据进行了详细的分析,并按数据规范化要求对表结构以及数据定义进行了描述,经对功能模块设计的反复调整,对职业鉴定报名系统的数据结构设计如下:数据库系统:Microsoft SQL Server 2000数据库名:Qualification.mdf表结构及数据定义:名称字段名称数据类型主键非空序号idvarchar(16)yesyes用户名usernamevarchar(30)nono密码passwordvarchar(2
20、0)nono真实姓名namevarchar(30)nonoE-maile_mailvarchar(30)nono性别sexvarchar(2)nono手机phonevarchar(11)nonoQQQQvarchar(12)nono身份证identificationvarchar(18)nono管理员标志is_adminvarchar(1)nono表1 管理员信息表(admin_info)名称字段名称数据类型主键非空序号idvarchar(16)yesyes标题titlevarchar(30)nono内容contenttextnono发布人adminvarchar(30)nono发布时间tim
21、evarchar(30)nono表2 公告信息表(notice)名称字段名称数据类型主键非空序号idvarchar(16)yesyes鉴定类型typevarchar(30)nono备注notetextnono发布时间timevarchar(30)nono表3 职业类型表(position_type)名称字段名称数据类型主键非空序号idvarchar(16)yesyes定鉴类型IDtype_idvarchar(30)noyes工种名称position_namevarchar(30)nono详细信息notetextnono发布时间timevarchar(30)nono表4 职业表(position
22、)名称字段名称数据类型主键非空序号idvarchar(16)yesyes职业IDposition_idvarchar(16)noyes职业等级position_gradevarchar(30)nono鉴定费entry_feeintnono培训费用training_costintnono资料费book_costintnono考试性质exam_naturevarchar(30)nono表5 职业等级表(position_grade)名称字段名称数据类型主键非空序号idvarchar(16)yesyes开始时间start_timevarchar(30)nono结束时间end_timevarchar(
23、30)nono备注sysnotetextnono发布时间timevarchar(30)nono表6 系统开放时间表(System_open_time)名称字段名称数据类型主键非空序号idvarchar(16)yesyes用户名usernamevarchar(16)nono密码passwordvarchar(30)nonoE_maile_mailvarchar(30)nono性别sexvarchar(30)nono手机phonevarchar(30)nonoQQQQvarchar(30)nono密保问题pwd_questionvarchar(30)nono密保答案pwd_answervarcha
24、r(30)nono真实姓名namevarchar(30)nono民族nationdityvarchar(30)nono生日birthvarchar(30)nono文化程度educationvarchar(30)nono身份证identificationvarchar(30)nono学校collegevarchar(30)nono院系departmentvarchar(30)nono专业majorvarchar(30)nono年级gradevarchar(30)nono学生学号student_numbervarchar(30)nono已得证书get_sertifientevarchar(30)n
25、ono籍贯native_placevarchar(30)nono通讯地址addressvarchar(30)nono鉴定类型position_typevarchar(30)noyes鉴定职业position_namevarchar(30)noyes鉴定等级position_gradevarchar(30)noyes所学专业coursevarchar(30)nono缴费情况pay_the_feesvarchar(30)nono照片photovarchar(30)nono报名时间timevarchar(30)nono缴费人员adminvarchar(30)nono表7 考生信息表(user_inf
26、o)3 系统详细设计3.1 后台主要功能模块详细设计311后台登录模块系统将用户分为三种:管理员、工作人员、考生。工作人员和管理员采用相同的登录窗口模版,用户必须输入正确的登录信息才能进入系统后台管理程序。用户登录界面如图3-1所示:图3-1为了符合系统模块化的程序设计思想,当用户输入用户名/密码后,程序调用以下程序段,判断输入的用户是否存在,密码是否正确。核心代码:Public boolean login(ActionForm form,HttpServletRequest request)AdminForm f=(AdminForm)form;String username=f.getUs
27、ername();/struts收集的用户名和密码String password=f.getPassword();try Session session = HibernateSessionFactory.getSession();Transaction tx = session.beginTransaction();MD5_Encoding e=new MD5_Encoding();/将密码进行md5加密String str=e.getMD5ofStr(password);Query q=session.createQuery(from admin_info where username=+
28、username+ and password=+str+);ArrayList l=(ArrayList)q.list();mit();session.close();if(l.size()=0|l.equals(null)return false;else/数据库存在此用户,登录成功admin_info info=(admin_info)l.get(0);request.getSession().setAttribute(is_admin,info.getIs_admin();/超级管理员权限(超级管理员,工作人员)return true; catch (HibernateException
29、 e) e.printStackTrace();return false;在每一个后台模块都加入以下这句话,来判断登录用户是否受权。/检查用户是否登录。如果没有登录,则跳转到首页登录if(request.getSession().getAttribute(AdminUsername)=null)request.getSession().setAttribute(Adminlogin_error, 对不起,您没有登录或登录超时!请重新登录!);return mapping.findForward(Adminlogin);312 管理员功能模块 该模块主要是针对管理员而言的,主要是对系统、考生、工
30、作人员等信息进行管理以及对考生等信息的统计分析。1发布职业鉴定类型信息管理员可以发布职业鉴定类型,其页面是positionType.jsp。相应的页面见图3-2:图3-2核心代码:position_typeForm f = (position_typeForm) form;position_type type = new position_type();boolean b = this.selecttype(f.getType();if (b) request.getSession().setAttribute(type_error,失败!原因:数据库中有此鉴定类型,不能再次添加此类型);re
31、turn false;type.setType(f.getType();type.setNote(f.getNote();/格式化日期类型SimpleDateFormat sdaf = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);String time = sdaf.format(new Date();type.setTime(time);try Session session = HibernateSessionFactory.getSession();Transaction tx = session.beginTransaction();sessio
32、n.save(type);mit();session.close();request.getSession().setAttribute(type_ok, 鉴定类型保存成功!);return true; 2.导出报名表管理员可以把已缴费考生的报名信息导出来,实现此功能的页面是export.jsp。见图3-3:图3-3核心代码: response.setContentType(APPLICATION/OCTET-STREAM);response.setHeader(Content-Disposition,attachment; filename=kaoshengbaomingbiao.xls);
33、HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet(sheet1);/ 以下以写表头/ 表头为第一行HSSFRow row = sheet.createRow(short) 0);HSSFCell cell1 = row.createCell(short) 0);HSSFCell cell2 = row.createCell(short) 1);HSSFCell cell3 = row.createCell(short) 2);HSSFCell cell29 = row.createCell(short)
34、28);cell1.setEncoding(short) 1);cell1.setCellType(1);cell2.setEncoding(short) 1);cell29.setEncoding(short) 1);cell29.setCellType(1);/ 定义表头的内容cell1.setCellValue(序号 );cell2.setCellValue(姓名);cell3.setCellValue(鉴定类型);cell29.setCellValue(报名时间);try Session session = HibernateSessionFactory.getSession();Tr
35、ansaction tx = session.beginTransaction();ArrayList l = (ArrayList) session.createCriteria(user_info.class).add(Restrictions.like(pay_the_fees, 已缴费).list();user_info user = null;for (int i = 0; i 0) int total = l.size();/ 总人数for (int i = 0; i 0) training_cost += u.getHas_training_cost();sum_training
36、_cost+;if (u.getHas_book_cost() 0) book_cost += u.getHas_book_cost();sum_book_cost+;sum = training_cost + book_cost + entry_fee;request.getSession().setAttribute(total1,缴鉴定费人数: + total + 人。);request.getSession().setAttribute(sum_training_cost,缴培训费人数: +sum_training_cost + 人。);request.getSession().set
37、Attribute(sum_book_cost,缴培训资料费人数: + sum_book_cost + 人。);/ 统计各大鉴定类型的报名人数(只统计缴费了的)Transaction tx1 = session.beginTransaction();ArrayList li = (ArrayList) session.createQuery(from position_type).list();ArrayList lis= (ArrayList) session.createCriteria(user_info.class).add(Restrictions.eq(pay_the_fees,
38、已缴费).list();/ 统计已缴费考生String type = ;String type1 = ;int summ = 0;/ 每一类报名人数String temp = ;/ 存字符串的for (int i = 0; i li.size(); i+) position_type t = (position_type) li.get(i);for (int j = 0; j lis.size(); j+) user_info info = (user_info) lis.get(j);type1 = info.getPosition_type();if (type.equals(type1
39、) summ+;temp += i + 1 + ) + . + type + 类: + summ + 人;summ = 0;/ 把temp字符串返回去request.setAttribute(type_sum, temp);mit();session.close();4.批量删除当一次考试结束后,管理员将对系统中的用户删除,以方便下次考生再次报名,该页面为:bath_del.jsp ,见图3-5:图3-5核心代码:regForm f = (regForm) form;String start_time = f.getStart_time();/ 开始时间String end_time = f.getEnd_time();/ 结束时间try Session session = HibernateSessionFactory.getSession();Transaction tx = session.beginTransaction();Query q = session.createQuery(from user_info where substring(time,1,10) between + start_tim