基于三层结构自主招生报名系统的设计
数据结构课程设计:考生报名管理系统[精品文档]
课程设计报告课程设计名称:数据结构系:三系学生姓名:班级:学号:20100311222成绩:指导教师:开课时间:2011-2012 学年1 学期一.设计题目考生报名管理系统(线性表、查找、排序)考生报名管理系统的设计主要是实现对考生报考相应类别考试的管理和相关操作。
基本功能如下:(1)考试报考息录入、添加功能:包括考生的考号、姓名、性别、年龄、籍贯、考试类别等信息。
(2)报考信息查询:可以按考生的考号查询某个考生的报考信息。
(3)报考信息排序:按考生的考号排序或按考试类别排序。
(4)考生报考信息的修改或删除:按考生考号修改或删除某个考生的相关信息。
(5)统计功能:分别统计系统中共有多少人报名、每个考生的报考种类的数量、每种考试类别的考生数量等。
二.主要内容程序主要分为三部分:1.KSBM.h 头文件,2.KSBM.cpp 各种实现功能函数,3.KSBM_M.cpp 主函数。
程序的功能:1.数据的录入与添加 LinkList * InsetList(LinkList *&p) 2人数统计 int ListLength(LinkList *p) 3.信息查询 void FindElem(LinkList *p) 4.考生排序 void SortList(LinkList *&p)5.考生信息修改 LinkList * ReList(LinkList *&p)6.删除考生 LinkList * DelList(LinkList *&p)7.输出考生信息表 void DispList(LinkList *p)三.课题设计的基本思想,原理和算法描述录入采用链表的尾插法;人数统计即利用链表长度求出;信息查询即匹配关键字循环一次链表,匹配成功就输出;修改似于查询,对链表有改动,最后返回链表完成修改;删除考生对应节点的指针移动,并释放节点。
四.源程序及注释头文件主函数结束考生排序 录入与添加 信息查询 人数统计 信息修改删除考生 输出1.头文件KSBM.H头文件================================================================ typedef struct {char KH[12]; //考生考号char XM[12]; //考生姓名char XB[4]; //性别char NL[4]; //年龄char JG[20]; //籍贯char KSLB[10]; //考试类别}DataType;typedef struct LNode{DataType data;struct LNode * next;}LinkList;extern LinkList * InsetList(LinkList *&p) ; // 1extern int ListLength(LinkList *p); // 2extern void FindElem(LinkList *p); // 3extern void SortList(LinkList *&p); // 4extern LinkList * ReList(LinkList *&p); // 5extern LinkList * DelList(LinkList *&p); // 6extern void DispList(LinkList *p); // 7===============================================================================2. 函数实现文件KSBM.CPP函数实现文件========================================================== #include"KSBM.H"#include <iomanip>#include<malloc.h>#include<iostream>using namespace std;// 1.报名表信息添加函数//===========================================================LinkList * InsetList(LinkList *&p) {LinkList *L=p;while(L->next!=NULL)L=L->next;LinkList *q;q=(LinkList *)malloc(sizeof(LinkList));cout<<"考号:";cin>>q->data.KH;cout<<"姓名:";cin>>q->data.XM;cout<<"性别:";cin>>q->data.XB;cout<<"年龄:";cin>>q->data.NL;cout<<"籍贯:";cin>>q->data.JG;cout<<"考试类别:";cin>>q->data.KSLB; q->next=L->next;L->next=q;return p;}//===========================================================// 2.报名表人数统计//=========================================================int ListLength(LinkList *p){int n=0;LinkList *L=p;while(L->next!=NULL){n++;L=L->next;}return n;}//===========================================================// 3.考生信息的查询//===========================================================void FindElem(LinkList *p){LinkList *L=p;char y[12];cout<<"请输入需查询者的考号或姓名\n";cin>>y;while(L!=NULL&&(strcmp(L->data.KH,y)!=0||strcmp(L->data.XM,y)!=0)) { L=L->next;}if(L!=NULL){cout<<"------------------------------------------------------------------------------------------------------------------------\n";cout<<"考生号姓名性别年龄籍贯考试类别 \n";cout<<setiosflags(ios::left)<<setw(11)<<L->data.KH<<setiosflags(ios::left)<<setw(9)<<L->data.XM<<setiosflags(ios::left)<<setw(9)<<L->data.XB<<setiosflags(ios::left)<<setw(12)<<L->data.NL<<setiosflags(ios::left)<<setw(31)<<L->data.JG<<setiosflags(ios::left)<<setw(0)<<L->data.KSLB<<endl;cout<<"------------------------------------------------------------------------------------------------------------------------\n";}elsecout<<"查无此人\n";}//===========================================================// 4.报名表信息排序//===========================================================void SortList(LinkList *&p){LinkList *L=p->next,*q,*r;if(L!=NULL){r=L->next;L->next=NULL;L=r;while(L!=NULL){r=L->next;q=p;while(q->next!=NULL && strcmp(q->next->data.KH,L->data.KH)<0)q=q->next;L->next=q->next;q->next=L;L=r;}。
基于J2EE的高校自主招生管理系统的设计
基于J2EE的高校自主招生管理系统的设计【摘要】本文基于J2EE技术,设计了一套高校自主招生管理系统。
在系统架构设计方面,采用了分层架构和MVC设计模式,实现了系统的模块化和可扩展性。
数据库设计遵循规范化原则,确保数据的一致性和完整性。
用户权限管理功能包括角色分配和权限控制,保障系统的安全性。
录取结果查询功能方便学生和教师快速获取录取信息。
系统性能优化主要包括缓存机制和数据库索引的优化。
设计的可行性分析表明系统具有良好的实用性和可靠性,未来可进一步完善功能,提升用户体验。
总结了系统设计的重要性和实践意义。
【关键词】J2EE、高校、自主招生、管理系统、系统架构、数据库设计、用户权限管理、录取结果查询、系统性能优化、可行性分析、未来发展、总结。
1. 引言1.1 研究背景高校自主招生是高等教育改革的重要一环,旨在选拔具有特殊才能或特长的学生,为学校增加多样化的人才资源。
传统的高校招生管理方式存在许多问题,比如操作繁琐、信息不透明、效率低下等。
为了解决这些问题,开发一套高校自主招生管理系统是当务之急。
随着信息技术的不断发展,基于J2EE技术的高校自主招生管理系统得到了广泛应用。
J2EE是一种企业级应用开发平台,具有稳定性、安全性和可扩展性等优点,非常适合用于开发高校招生管理系统。
通过这种系统,可以实现招生信息的集中管理、方便快捷的审核流程、以及准确透明的录取结果查询功能。
本研究旨在基于J2EE技术设计一套高校自主招生管理系统,以提高招生工作的效率和质量。
通过对系统架构设计、数据库设计、用户权限管理、录取结果查询功能和系统性能优化等方面的研究,探讨如何利用现代信息技术手段优化高校自主招生管理工作,提高教育资源的配置效率,实现高校人才选拔和培养工作的现代化和智能化。
1.2 研究目的本文旨在设计一个基于J2EE的高校自主招生管理系统,通过对系统架构、数据库设计、用户权限管理、录取结果查询功能以及系统性能优化的详细分析和设计,实现高校自主招生流程的智能化、信息化管理。
网上报名系统开发案例实训报告
v1.0 可编辑可修改网上报名系统开发案例三层架构设计与实现分为:1.数据访问层2.业务逻辑层3.控制器三个模块(1).考生报名模块(2).考生登录模块(3).修改密码模块设计package ;import .*;import .*;public class DBAccess {private Connection conn = null;private Statement stmt = null;private ResultSet rs = null;private PreparedStatementprpSql=null;public DBAccess() {}/*** 返回一个数据库连接* @return Connection*/public ConnectiongetConn() {if (conn == null) {getConnection();}return conn;}/*** 加载MySQL驱动* 函数功能:获得连接对象,Statement对象*/public voiddatabaseDriver()v1.0 可编辑可修改{try{ ("");}catch(Exception e){}}public void getConnection() {databaseDriver();try {conn=("jdbc:","root"," 000000");stmt=(); ;import .*;public class examineeBll {/**添加考生数据的方法**/public int CreateExaminee(String examID,StringexamName,String sex,Stringcompany,Stringaddress,Stringphone,String email,Stringpassword,StringexamType,Stringmemo,String pic){examineeDalexamDal=new examineeDal();int result=0;if(()==12||()==18)&&()>0){booleanisLD=true;for(inti=0;i<();i++){charc=(i);if(!((c<='z'&&c>='a')||(c<='Z')&&(c>='A')||(c<='9')&&(c>='0'))){isLD=false;}}if(isLD==true&&(examID)!=null){returnresult=-2;}if(isLD==true){result=(examID, examName, sex, company, address, phone, email, password,examType, memo, pic);}}else{"身份证号或密码不符合要求!");"函数返回值:"+result);}return result;}/**考生登录方法***/public intexamineeLogin(StringexamID,String password){examineeDalexamDal=new examineeDal();int result=0;if(()==12||()==18)&&()>0){examineeexam=null;exam=(examID,password);if(exam!=null){result=1;}else{result=-1;}}return result;}/**储存照片文件名**/public intsetExamineePic(StringexamID,String picStr){examineeDalexamDal=new examineeDal();repareStatement(str);(1,examID);(2,password);ResultSetrst=(prpSql);if(rst!=null&&()){exam=new examinee(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11));}if(prpSql!=null){();prpSql=null;}}}catch(Exception ne){"examineedal:getexamineebyIDPwd发生错误");}finally{();}return exam;}/**函数功能修改用户密码*@return 成功返回1,否则返回*/public intsetExaminePwd(StringexamID,String newPassword){DBAccess dba=newDBAccess();int result=0;try{if()!=null){PreparedStatement prpSql;StringstrSql="Update examinee setpassword= where id=";prpSql=().prepareStatement(strSql);(1,newPassword);(2,examID);result=(prpSql);if(prpSql!=null){();prpSql=null;}}}catch(Exception ne){"exmaineedal:setPassword发生错误");result=-1;}finally{();}return result;} /**修改考生信息*@return影响行数,失败0 */public intupdateExamineeByID(StringexamID,StringexamName,String sex,Stringcompany,Stringaddress,Stringphone,String email,StringexamType,String memo){DBAccess dba=newDBAccess();int result=0;try{if()!=null){PreparedStatementprpSql;StringstrSql="update examinee setname=,sex=,company=,"+"address=,phone=,email=,examType=,memo=,where id=";prpSql=().prepareStatement(strSql);(1,examName);(2, sex);(3, company);(4, address);(5, phone);(6, email);(7, examType);(8, memo);(9, examID);if(prpSql!=null){();prpSql=null;}}}catch(Exception ne){();return-1;}finally{();}return result;}/**设置图片文件名*@param examID *@param picStr*@return 成功1,失败0*/public intsetExamineePic(StringexamID ,String picStr){DBAccess dba=newDBAccess();int result=0;try{if()!=null){StringstrSql="update examinee setpic='"+picStr+"' whereid='"+examID+"'";result=(strSql);}}catch(Exceptionne){"发生异常"+ne);();}finally{();}return result;}/**按身份证号删除考生*@param examID*@return 1成功,0失败,出现异常*/public intdeleteExmineeByID(StringexamID){DBAccess dba=newDBAccess();int result=0;try{if()!=null){ PreparedStatement prpSql;String strSql="delete from examineewhere id=";prpSql=().prepareStatement(strSql);(1, examID);result=(); if(prpSql!=null){(); prpSql=null;}}}catch(Exceptionne){();return -1;}finally{();}return result;}}package ;import .*;import .*;import .*;import class HandleLoginextends HttpServlet {public StringhandleString(String s){try{ bytebb[]=("iso-8859-1");s=newString(bb);}catch(Exceptionee){}return s;}public HandleLogin() {super();}/*** Destruction of theservlet. <br>*/public void destroy() {(); <br>** This method is calledwhen a form has its tag valuemethod equals to get.** @param request the request send by the client to theserver* @param response the response send by the server to theclient* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request,HttpServletResponseresponse)throwsServletException,IOException {("text/html");PrintWriter out =();("<!DOCTYPE HTMLPUBLIC \"-<br>** This method is calledwhen a form has its tag valuemethod equals to post.** @param request therequest send by the client totheserver* @param response theresponse send by the server totheclient* @throwsServletException if an erroroccurred* @throws IOExceptionif an error occurred*/public voiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException {loginBeanv1.0 可编辑可修改log=null;String backMessage="";HttpSession session=(true);try{log=(loginBean) ("login");if(log==null){log=new loginBean();("login", log);}}catch(Exception ee){log=new loginBean();("login", log);}String loginName=("loginName").trim(),password=("password").trim();loginName=handleString(loginName);boolean ok=();if(ok==true&&())){backMessage="已经登录";(backMessage);}else{examineeBllexambll=new examineeBll();intresult=(loginName,password);if(result==1){backMessage="登陆成功";(backMessage);(true);(loginName);}elseif(result==0){backMessage="您输入的身份证号或密码不符合要求!";v1.0 可编辑可修改(backMessage);(false);(loginName);(password);}else{backMessage="您输入的身份证号不存在或密码不正确!";(backMessage);(false);(loginName);(password);}}RequestDispatcherdispatcher=("");(request,response);}public voidinit(ServletConfig config)throwsServletException {();}}package ;import .*;import .*;import .*;import class HandleModifPwdextends HttpServlet {/*** Constructor of theobject.*/public HandleModifPwd(){super();}/*** Destruction of theservlet. <br>*/public void destroy() {(); <br>** This method is calledwhen a form has its tag valuemethod equals to get.** @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request,response);}/*** The doPost method ofthe servlet. <br>** This method is calledwhen a form has its tag valuemethod equals to post.** @param request therequest send by the client tothe server* @param response theresponse send by the server tothe client* @throwsServletException if an erroroccurred* @throws IOExceptionif an error occurred*/public voiddoPost(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException {HttpSessionsession=(true);loginBeanlog=(loginBean)("login");if(log==null){("");}else{modifyPassword(request,response);}}public void modifyPassword(HttpServletR equest request,HttpServletResponse response)throws ServletException,IOExceptio n {HttpSession session=(true);loginBeanlog=(loginBean)("login");StringloginName=();passwordBeanpwd=new passwordBean();("password", pwd);StringoldPassword=("oldPassword");StringnewPassword=("newPassword");examineeBllexambll=new examineeBll();intresult=(loginName,newPassword, oldPassword);if(result==0){("密码不符合要求,未更新!");}elseif(result==-1){("旧密码不正确,密码更新失败!");}else{("更新成功!");(newPassword);(oldPassword);}RequestDispatcherdispatcher=("");(request,response);}/*** Initialization of theservlet. <br>** @throwsServletException if an erroroccurs*/public voidinit(ServletConfig config)throws ServletException {(config);}}package ;import .*;import .*;import class HandleRegister extends HttpServlet{public void init(ServletConfigconfig)throws ServletException{(config);}public String handleString(String s){try{ byte bb[]=("UTF-8");s=new String(bb);}catch(Exceptionee){ return s;}public voiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{registerBeanreg=new registerBean();("register",reg);StringexamID=("examID").trim(),examName=("examName").trim(),sex=("sex").trim(),company=("company").trim(),address=("address").trim(),phone=("phone").trim(),email=("email").trim(),examType=("examType").trim(),memo=("memo").trim(),password=("password").trim(),pic="",backMessage="";int result=0;try{examineeBll exambll=new examineeBll();result=(examID, examName, sex, company, address, phone, email, password, examType, memo, pic);if (result==0){backMessage="身份证号或密码不符合要求!请重新报考!";(backMessage);}if(result==-1){backMessage="数据库访问发生错误!";(backMessage);}if(result==-2){backMessage="身份证号已存在!";(backMessage);}if(result==1){backMessage="报名成功!";(handleString(address));(backMessage);(handleString(company));(email);(handleString(examName));(examID);(handleString(examType));(handleString(memo));(password);(phone);(pic);(handleString(sex));}}catch(Exceptionex){backMessage="发生错误!"+();(backMessage);}RequestDispatcherdispatcher=("");(request,response);}public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOExceptio n{doPost(request,respons e);}}package ;public class loginBean {StringloginName,password,backMess age;boolean success=false;public String getLoginName() {return loginName;}public voidsetLoginName(StringloginName) {= loginName;}public StringgetPassword() {return password;}public voidsetPassword(String password){= password;}public StringgetBackMessage() {returnbackMessage;}public voidsetBackMessage(StringbackMessage) {= backMessage;}public booleanisSuccess() {return success;}public voidsetSuccess(boolean success){= success;}}package ;public classmodifyMessageBean {private String examID =null;"pageEncoding="ISO-8859-1"%><%String path = ();String basePath = ()+":<br> </body></html><%@ page language="java" import=".*"pageEncoding="GBK"%><!DOCTYPE HTML PUBLIC "-" pageEncoding="GBK"%><%String path = ();String basePath = ()+":" pageEncoding="GBK"%><%@ page import=".*" %><jsp:useBean id="login" type="" scope="session"/><!DOCTYPE HTML PUBLIC "-" pageEncoding="GBK"%><%@ page import="" %><jsp:useBean id="password"type="" scope="request"/><%String path = ();String basePath = ()+":"pageEncoding="utf-8"%><%@ page import=".*" %><jsp:useBean id="register"type="" scope="request"/><!DOCTYPE HTML PUBLIC "-"pageEncoding="gb2312"%><%@ page import="" %><%@ page import="" %><%@ page import="" %><%@ page import=".*" %><%@ page import=".*" %><%@ page import="" %><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTMLTransitional//EN"><html><head><title>My JSP '' startingpage</title></head><body>1234<%DBAccess dba=newDBAccess();examineeDalexamd=new examineeDal();ArrayList<examinee>list=newArrayList<examinee>();try{int rsult= ("589","高大上","男","河北农大","保定市领域四杰","3","","yang","高级","计算机类","框框");(rsult);();if()!=null){("已经获得DataSource!");("<br>");String str="select * from examinee";ResultSet rst=(str);//从一个已存在的表中读取数据("以下是从数据库中读取出来的数据:<br>");while()){("<br>");(1));}}("<br>系统时间:"+());examineeexambean=null;exambean=("56789");("<br><br>"+());list=();for(examinee e:list){("<br>这是通过ArrayList得到的值:"+());}}catch(Exception ne){("出现如下错误:<br>");(ne);}finally{();("<br>已经关闭DataSource!");}%></body></html>。
基于B_S_D三层架构的在线考试系统的设计与实现
//控制考试时间 {var dtmCurrentTime = new Date(); //控制时间显示
((dtmCurrtxtOddTime.value = intLimitTime entTime.getHours() - dtmStartTime.getHours()) * 60 + dtmCurr图 2 考试计划管理页面 dim rsPaper, strSqlPaper, rsNew, strSqlNew, intCourseID, int Count,arrTemp,intSSCount,arrSS,intMSCount,arrMS,intBCount,arrB,intCurType,I,J,intPos,blnPass G_CONN.execute "delete from prj_process where prjid=" & intPrjID & " and studentid=" & intStudentID set rsPaper = server.createobject("ADODB.Recordset") strSqlPaper = "select courseid, ss_count,ms_count, b_count from project where prjid=" & intPrjID rsPaper.open strSqlPaper,G_CONN,1,1 intCourseID = rsPaper("courseid") intSSCount = rsPaper("ss_count") intMSCount = rsPaper("ms_count") intBCount = rsPaper("b_unt") strSqlNew = "select * from prj_process" set rsNew = server.createobject("ADODB.Recordset") rsNew.open strSqlNew,G_CONN,1,3 for I = 1 to intCount rsPaper.move arrTemp(I),1 rsNew.addnew rsNew("prjid") = intPrjID rsNew("subid") = rsPaper("id") rsNew("studentid") = intStudentID rsNew.update next rsNew.close rsPaper.close%> 3.2 时间限制子系统及强制交卷模块 本系统的一大创新就是实现了计时答题。它预先定义了 考试时间, 学生进入考试页面之后计时器就开始启动, 当到规 定时间时给出 “考试时间已到, 强制进行交卷” 的提示, 页面自 动跳转到交卷页面, 避免学生延时交卷。当然, 考生也可提前 交卷,系统会给出考试用时并自动进行评分。下面是时间限 制功能实现的界面截图以及核心代码: 图 3 生成试卷考试页面 entTime.getMinutes() - dtmStartTime.getMinutes()); if(txtOddTime.value < 10) {txtOddTime.style.color = '#FF3300';} //在考试时间结束时 交卷 if(txtOddTime.value == 0) {alert('考试时间已到, 强制进行交卷!'); window.open('testfinish.asp? action=submitexam&prjid=< %=intPrjID%>&studentid=<%=intStudentID%>','_self');} window.setTimeout('ctrlTestTime();',1000);}%〉 4 结论与展望 该在线考试系统灵活易用, 安全性好, 对客户端的配置要 求不严格, 且考试不受地域局限, 实现了无纸化考试, 极具实 用性和经济性。由于采用了大型数据库系统,所以试题及答 案也具有较好的安全性。试卷分析方面,实现了对学生答题 结果的即时批卷, 学生不仅能知道自己的成绩, 而且对于出错 的题目以及正确答案都可得知,在信息反馈上比目前同类系 统有较大的改善。且该系统独立性强, 如对试题库进行更换, 便可实现其他课程的考试, 因而具有较好的推广价值。 参考文献: [1] 范云芝.基于 Web 数据库在线考试系统的设计与实现研 究[J].商丘师范学院学报,2006. [2] 刘亚妹,李金莱. ASP 网络编程技术与实践[M].北京: 清华 大学出版社,2008. [3] 萨师煊,王珊.数据库系统概论(第三版)[M].北京:高等教育 出版社,2000. [4] 尚俊杰.网络程序设计基础[M].北京:清华大学出版社, 北 方交通大学出版社,2003. [5] 伞晓辉,韩文峰,史晓雷,李媛媛.基于智能组卷策略的在线 考试系统的设计[J].吉林省教育学院学报,2009(7). [6] 唐俊武,南理勇,左强.在线考试系统开发中的几个问题及解 决方法[J].计算机与数字工程,2005,35(8). [7] 汪永明.基于 B/S 模式的在线考试系统[J].微机发展,2004,14(1). [8] 叶长青.审视在线考试系统[J].远程教育杂志,2005(1):47—49. [9] 张李义.基于 Internet 的在线考试系统设计与实现[J].教育 信息化,2006(4). [10] 赵振辉,杨文斌.基于校园网的在线考试系统的设计[J].计 算机工程应用技术,2009(6).
基于三层B/S/S结构的招生信息系统的设计
第 1 卷第 7 3 期 2 0 年 7月 07
水利科技 与经济
W ae o s r a c c e c d T c n l ya d E o o trC n e vn y S in e a e h oo c n my n g n
1 三 层 结 构 的 B S S模 式 //
随着 It tItnt n me nr e 的广泛应用 , We 技术 的 B S e / a 将 b /
结构与数据库 系统 三层 C S S体系结 构 相结合 , 得到 // 就 了 We b数据库系统 的浏 览器/ b服务器/ We 数据 库服务器 ( // : bb we We r  ̄D e e) B S S We r sr bSv o / e e BSr r=层体系结构。 v B SS / / 体系结构是数据库 系统为适应 It tl r e技术 n me n a t e / tn
B SS / / 体系结构是指在 1 P 口 的支持下 , H I ℃/ 以 TP为 传输协议 , 客户 通过浏 览器访 问 We 服 务器 以及与 之相 b 连 的后 台数据库的体系结构 , 由 We 浏 览器、 b服务 它 b We 器、 中问件和数据 库服务器组 成。在 B S S结构 中, // 各组 成部分之 问物理上通过 Itnt It e 相连 , n ae 或 n m t r e 软件上遵 守HI TP协议 , 览器 通过 发送 请求 和 服务 器端 建 立连 浏 接, 从而实 现 以整个 It e 为 背景 的数 据存 储 和访 问。 nmt e B SS结构 在 C S S结 构 的基 础上 将 客 户 机统 一 安 装 // // We 浏 览器, b 将其充当应用服务器 , 如图 1 所示 。
考试报名系统的设计与实现
哈金廡德强商务禽院管理信息系统课程实训论文题学考试报名系统的设计与实现号:2009512460姓名:丁志宇班级:09级(1)班专业:信息管理与信息系统指导教师:王知强2011年12月考试报名系统的设计与实现摘要网络技术的飞速发展正无时无刻影响着人们的工作、在教育体系中,网络的应用也成为现代教育发展的基础.网络教育逐渐发展起来,校园网建设逐步成熟,基于Web的也伴随着网络技术的发展应运而生.它即简化了传统的考试模式,节约人力物力,也可以有效利用校园网资源,辅助教学.该系统采用了口前流行的B/S模式,即浏览器、应用服务器、数据库服务器三层体系结构,indows Server 2003操作系统、后台数据库采用SQL Server 2005,客户端釆用IE浏览器和服务器连接,最终形成了基于B/S模式的在线考试系统.该系统具备了以下功能:学生信息管理、考试、平时测验、自动评分、成绩查询等功能.论文以基于B/S模式的在线考试系统为研究对象,按照软件工程的开发思想,用UML来构建在线考试系统模型,采用Dreamweaver-FASP来设计开发,后台釆用数据库相结合.际需求出发,结合《信息处理技术》课程,论述了开发在线考试系统的背景、U的及意义,讨论了开发系统的关键技术,并通过UML分析对系统设计及实现,最后总结系统的特点以及不足之处。
设计思路和方法采用瀑布模型开发,用统一建模语言UML进行描述,经历了文献检索,需求分析,分析模型设计,数据模型设计,构建级设计,系统部署,系统测试六个个环节。
系统以数据库为核心,使用B/S架构下流行的PHP脚本语言作为宿主语言对系统核心功能模块进行设计。
采用PowerDesigner软件作为UML语言的实现工具和数据库设讣的开发工具。
实现了用户登录、注册功能,出题组卷功能,考试评卷功能以及用户信息査询功能。
关键词:考试报名系统;; Microsoft SQL Server2005摘要 0第1章绪论 (2)第2章系统概述 (3)2.1开发环境 (3)2.2 程序功能介绍 (3)第3章系统规划 (4)3.1 整体规划思路 (4)3.2 选择开发架构 (4)3. 3 搭建开发环境一W i ndowsApacheMysq I PHP 平台 (4)3.4 选择开发方法 (5)第4章系统需求分析 (6)4.1整体性需求分析 (6)4.1.1 用例分析 (8)4.1.2 功能性分析 (9)4.2命题子系统的分析 (9)4. 3 考试子系统的分析................................................ 1 04. 4 阅卷子系统的分析............................................... 1 04.5 查询子系统的分析................................................ 1 1第5章数据库设计...................................................... 1 25. 1 概念模型设计.................................................... 1 25.2 数据模型设计.................................................... 1 25.3 数据表结构...................................................... 1 3第6章系统设计 .. (15)6.1 系统结构设计.................................................... 1 56.2用户模块设计................................................... 1 56. 2. 1 注册模块 (15)6. 2. 2 报名管理模块............................................................ 1 66. 2. 3 个人信息管理模块 (17)6.3 管理员模块...................................................... 1 7结论 ..................................................................... 1 8参考文献 .................................................................. 1 9第1章绪论随着计算机网络技术的发展,通过Internet进行的在线考试已逐渐普及。
一种多层架构计算机等级考试预报名系统设计
立的服务器架设管理员的后 台管理网站程序 , 对应 的管理终端层 , 主要 由管理员登录系统后台使用 的管理
员计算机组成。系统总体架构的示意 图如 图 1 所示 。原系统数据库 、 预报名系统数据库 、 系统网站前 台和
收稿 日期 : 01 2 3—0 4—2 2 ; 修 回 日期: 2 0 1 3—0 5一l 8
针对考试 中心下发考务管理系统的局限, 结合已公开的设计的优点与不足 , 综合分析已有的相关研究 技术 , 提 出 了一 种物 理 上多层 服 务器 架 构 _ 4 J 且基 于 B / S模式 的网上 在线 预报 名 系统 的设 计 , 并采 用 多层 设 计模式以 A S P结合 M S S Q L S e r v e r 2 0 0 8 数据库来进行设计 , 实现了在后 台管理界面开启某一批次的网上预
广 东石 油化 工学 院学 报
2 0 1 3年
系 统 网站管 理后 台 四者分别 放 置于不 同的服务 器 中 , 物理 上 彼此 独 立 , 既 增强 了系 统 数 据 的安 全 性 , 每 一
台服务 器负 责一项 主 要功 能 , 也 提高 了系统 的并 发应用 性 能 。
基金项 目: 广东省 自 然科学基金项 目( s 01 2 01 2 0 0 1 0 4 3 8 ) ; 湛江市科技攻 关计划项 目( 01 2 2 C 3 1 0 3 0 2 2 ) ; 湛江师范学 院 自然科 学研究 青年
项 目( Q L 1 2 1 0 )
作, 广 东湛 江人 , 硕士 , 实验师 , 研究方 向为智能系统与教育信息化研究 。
中 图分 类 号 : q / r 3 9 1 文献标识码 : A 文章编号 : 2 0 9 5 —2 5 6 2 ( 2 0 1 3 ) 0 4 —0 0 0 1 — 0 3
自主招生网上报名系统的设计和实现
学位论文作者签名: 签字日期:2010 年 10 月 日
导师签字: 签字日期:2010 年 10 月 日
1
山东师范大学硕士学位论文
目录
摘 要.............................................................................................................................I ABSTRACT.................................................................................................................. II 第一章 绪 论 .......................................................................................................... 1
对该网上报名系统的相关技术、系统需求、系统设计、系统实现和系统测 试等内容依次进行了介绍和分析。其中系统需求包括总体需求、业务需求、功 能需求和性能需求等;系统设计包括系统体系结构设计、数据库设计、系统建 模等;系统实现主要介绍了系统的各个功能模块,包括网上报名、用户管理、 报名管理、成绩管理、系统维护等;系统测试包括测试项目和测试结果及分析 等。
网上报名系统开发案例实训报告
网上报名系统开发案例三层架构设计与实现分为:1.数据访问层2.业务逻辑层3.控制器三个模块(1).考生报名模块(2).考生登录模块(3).修改密码模块设计package myclass.bol;import java.sql.*;import javax.naming.*;public class DBAccess {private Connection conn = null;private Statement stmt = null;private ResultSet rs = null;private PreparedStatement prpSql=null;public DBAccess() {}/*** 返回一个数据库连接* @return Connection*/public Connection getConn(){if (conn == null) {getConnection();}return conn;}/*** 加载MySQL驱动* 函数功能:获得连接对象,Statement对象*/public void databaseDriver(){}catch(Exception e){}}public void getConnection() {databaseDriver();try {erEncoding=GB2312","root","000000");stmt=conn.createStatement(); //创建Statement对象,用于执行SQL语句rs=stmt.executeQuery("select *from book");}catch (SQLExceptionex2) {ex2.printStackTrace();}}/**返回结果集*@param strSql 查询语句*@return 成功返回结果集,失败返回Null */public ResultSet query(String strSql){ResultSet rs = null;try{rs=stmt.executeQuery(strSq l);return rs;}catch (SQLException ex){ex.printStackTrace();return rs;}}/** 返回结果* @param prpSql 查询预处理* @return 成功返回结果集,失败返回null*/public ResultSet query(PreparedStatement prpSql){this.prpSql=prpSql;ResultSet rs=null;try{return rs;}catch (SQLException ex){ex.printStackTrace();return rs;}}/**插入多条数据*@paramsqls insert语句数组*@return 成功返回true,失败返回false*/public boolean insert(String[]sqls){boolean breturn =false;try{conn.setAutoCommit(false);for (int i=0;i<sqls.length;i++){if(sqls[i] !=null){stmt.addBatch(sqls[i]);}}stmt.executeBatch();mit();conn.setAutoCommit(true);}catch(SQLException ex){}return breturn;}/**返回影响行数* @param strSql查询语句*@return 成功返回影响行数,失败返回0 -1 数据库访问错误*/public int executeSql(StringstrSql){int result=0;try{stmt=conn.createStatement();result=stmt.executeUpdate(strSql);}catch (SQLException ex){ex.printStackTrace();result=-1;}return result;}/**返回影响行数*@paramStrSql 查询预处理*@return影响行数,失败返回0*/public intexecuteSql(PreparedStatement prpSql){int result=0;try{this.prpSql=prpSql;}catch(SQLException ex){result=-1;}return result;}/**返回结果true或false*@param sqls查询语句数组*@return 成功true,失败false*/public boolean executeSql(String[] sqls){boolean breturn =false;try{conn.setAutoCommit(false);stmt=conn.createStatement ();for(inti=0;i<sqls.length;i++){stmt.addBatch(sqls[i]);}stmt.executeBatch();mit();conn.setAutoCommit(true);breturn=true;}catch(SQLException ex){ex.printStackTrace();}return breturn;}/*** 关闭连接*/public void closeConnection(){try {if (rs != null) {rs.close();rs = null;}if (stmt != null) {stmt.close();stmt = null;}if (conn != null) {conn.close();conn = null;}if(prpSql!=null){prpSql.close();prpSql=null;}} catch (SQLExceptionex) {ex.printStackTrace();}}/*** 获取系统时间* 静态方法,直接用类名调用*/public static StringgetSysDate() {DBAccess dba = newDBAccess();String sql = "selectsysdate() sysdate;";try {dba.getConnection();ResultSet rs =dba.query(sql);String currentDate= null;if (rs.next()) {currentDate = rs.getString("sysdate");}return currentDate;} catch (SQLException ex) {ex.printStackTrace();return null;} finally {dba.closeConnection();}}}package myclass.bol;public class examinee {private String examID = null;// 身份证号private String examName = null;// 姓名private String sex = null;// 性别private String company = null;// 工作单位private String address =null;// 单位地址private String phone =null;// 联系电话private String email = null;//email地址private String password =null;// 密码private String pic = null;//照片文件名private String examType =null;// 考试类型private String memo =null;// 备注public examinee(){}public examinee(StringexamID,String examName,Stringsex,String company,Stringaddress,String phone, Stringemail,String password,StringexamType,String memo,Stringpic){this.examID=examID;this.examName=examName;this.sex=sex;pany=company;this.phone=phone;this.email=email;this.password=password;this.examType=examType;this.memo=memo;this.pic=pic;this.address=address;}public String getExamID() {return examID;}public void setExamID(StringexamID) {this.examID = examID;}public String getExamName() {return examName;}public void setExamName(StringexamName) {this.examName =examName;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getCompany() {return company;}public void setCompany(String company) {pany = company;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getEmail() {return email; }public void setEmail(String email){this.email = email;}public String getPassword() {return password;}public void setPassword(Stringpassword) {this.password = password;}public String getPic() {return pic;}public void setPic(String pic) {this.pic = pic;}public String getExamType() {return examType;}public void setExamType(StringexamType) {this.examType = examType;}public String getMemo() {return memo;}public void setMemo(Stringmemo) {this.memo = memo;}}package myclass.bol;import java.sql.*;import myclass.bol.*;public class examineeBll {/**添加考生数据的方法**/public intCreateExaminee(StringexamID,StringexamName,String sex,Stringcompany,String address,Stringphone,String email,Stringpassword,String examType,Stringmemo,String pic){examineeDalexamDal=new examineeDal();int result=0;if((examID.length()==12||examID.length()==18)&&password.length()>0){booleanisLD=true;for(inti=0;i<examID.length();i++){charc=examID.charAt(i);if(!((c<='z'&&c>='a')||(c<='Z ')&&(c>='A')||(c<='9')&&(c>='0'))){isLD=false;}}if(isLD==true && examDal.getExamineeByID(examID)!=null){return result=-2;}if(isLD==true){result=examDal.CreateExam inee(examID, examName, sex, company, address, phone, email, password,examType, memo, pic);}}else{求!");}return result;}/**考生登录方法***/public intexamineeLogin(StringexamID,String password){examineeDalexamDal=new examineeDal();int result=0;if((examID.length()==12||examID.length()==18)&&password.length()>0){examineeexam=null;exam=examDal.getExamineeByIdPwd(examID,password);if(exam!=null){result=1;}else{result=-1;}}return result;}/**储存照片文件名**/public intsetExamineePic(StringexamID,String picStr){examineeDalexamDal=new examineeDal();//int result;//if(){//业务逻辑//}returnexamDal.setExamineePic(examID,picStr);}/**返回examinee对象**/public examineegetExamineeByID(String examID){examinee exam =null;examineeDalexamdal=new examineeDal();exam=examdal.getExamineeByID(examID);return exam;}/**返回examinee对象集**/public ArrayList<examinee> getExamineeAll(){examineeDal examdal=new examineeDal();returnexamdal.getExamineeAll();}/**设置用户密码**/public int setExamineePwd(String examID,StringnewPassword,String oldPassword){int result=0;examineeDal examdal=new examineeDal();if(newPassword==""|| newPassword.equals(oldPassword)){return result;}if(examdal.getExamineeByI dPwd(examID,oldPassword)!=null){result=examdal.setExaminePwd(examID,newPassword);}else{result=-1;}return result;}/**更新考生信息***/public intupdateExaminByID(StringexamID,StringexamName,String sex,Stringcompany,String address,Stringphone,String email,StringexamType,String memo){examineeDalexamdal=new examineeDal();int result=0;if(examName.length()>0){result=examdal.updateExamineeByID(examID,examName, sex, company,address, phone, email, examType,memo);}else{return result=-1;}return result;}/**删除考生数据**/public intdeleteExamineeByID(StringexamID){examineeDalexamdal=new examineeDal();int result=0;if(examID==null){result=-2;}if(examID.length()>0){result=examdal.deleteExmineeByID(examID);}return result;}}package myclass.bol;public class examineeDal {/**在考生表中插入一条记录*@return 成功1,失败0*/public int CreateExaminee(String examID,String examName,Stringsex,String company,String address,Stringphone,String email,String password,String examType,Stringmemo,String pic){int result=0;String createSql="insert into examinee(id,name,sex,company,"+"address,phone,email,password,e xamType,memo,pic)"+"values('"+examID+"','"+examName+ "','"+sex+"','"+company+"','"+address+"','"+phone+"','"+email+"','"+pa ssword+"','"+examType+"','"+memo+"','"+pic+"')";DBAccess dba = new DBAccess();try{if(dba.getConn()!=null){result=dba.executeSql(createSql);}}catch(Exception ne){<br>");}finally{dba.closeConnection();}return result;}/**按考生身份证号获得一个考生对象(考生信息)*@return 成功返回examinee对象,失败返回null*@param examID*/public examineegetExamineeByID(String examID){DBAccess dba=newDBAccess();examinee exam=null;try{if(dba.getConn()!=null&&examID!=null){Stringstr="select * from examineewhereid='"+examID+"'";ResultSetrst=dba.query(str);if(rst!=null&&rst.next()){exam=newexaminee(rst.getString(1),rst.getString(2),rst.getString(3),rst.getString(4),rst.getString(5),rst.getString(6),rst.getString(7),rst.getString(8),rst.getString(10),rst.getString(9),rst.getString(11));}}}catch(Exception ne){("examineedal:getExamineeByID 发生错误");}finally{dba.closeConnection();}return exam;}/**返回examinee对象数组*@return成功examinee对象数组,否则null*/public ArrayList<examinee> getExamineeAll(){DBAccess dba=new DBAccess();ArrayList <examinee> examList = new ArrayList<examinee>();try{if(dba.getConn()!=null){Stringstr="select * from examinee";ResultSetrst=dba.query(str);while(rst!=null&&rst.next()){if(rst.getString("id") !=null){examinee exam=newexaminee(rst.getString(1),rst.getString(2),rst.getString(3),rst.getString(4),rst.getString(5),rst.getString(6),rst.getString(7),rst.getString(8),rst.getString(10),rst.getString(9),rst.getString(11));examList.add(exam);}}}}catch(Exception ne){生错误");}finally{dba.closeConnection();}return examList;}/**根据身份证和密码返回考生对象*@return 成功examinee对象,失败返回null*/public examineegetExamineeByIdPwd(StringexamID,Stringpassword){DBAccess dba=newDBAccess();examinee exam=null;try{if(dba.getConn() !=null&&examID!=null&&password!=null){立");Stringstr="select * from examineewhereid=? and password=?";PreparedStatement prpSql;prpSql=dba.getConn().prepareStatement(str);prpSql.setString(1, examID);prpSql.setString(2, password);ResultSet rst=dba.query(prpSql);if(rst!=null&&rst.next()){exam=newexaminee(rst.getString(1),rst.getString(2),rst.getString(3),rst.getString(4),rst.getString(5) ,rst.getString(6),rst.getString(7),rst.getString(8) ,rst.getString(9),rst.getString(10),rst.getString( 11));}if(prpSql!=null){ prpSql.close();prpSql=null;}}}catch(Exception ne){("examineedal:getexamineebyIDPwd发生错误");}finally{dba.closeConnection();}return exam;}/**函数功能修改用户密码*@return 成功返回1,否则返回*/public intsetExaminePwd(StringexamID,String newPassword){DBAccess dba=newDBAccess();int result=0;try{if(dba.getConn()!=null){PreparedStatement prpSql;StringstrSql="Update examinee setpassword=? where id=?";prpSql=dba.getConn().prepareStatement(strSql);prpSql.setString(1,newPassword);prpSql.setString(2, examID);result=dba.executeSql(prpSql);if(prpSql!=null){prpSql.close();prpSql=null;}}}catch(Exception ne){错误");result=-1;}finally{dba.closeConnection();}return result;}/**修改考生信息*@return 影响行数,失败0 */public int updateExamineeByID(String examID,StringexamName,String sex,String company,String address,Stringphone,String email,String examType,String memo){DBAccess dba=new DBAccess();int result=0;try{if(dba.getConn()!=null){PreparedStatement prpSql;StringstrSql="update examinee setname=?,sex=?,company=?,"+"add ress=?,phone=?,email=?,examTyp e=?,memo=?,where id=?";prpSql=dba.getConn().prep areStatement(strSql);prpSql.setString(1,examName);prpSql.setString(2, sex);prpSql.setString(3,company);prpSql.setString(4, address);prpSql.setString(5, phone);prpSql.setString(6, email);prpSql.setString(7,examType);prpSql.setString(8, memo);prpSql.setString(9, examID);if(prpSql!=null){prpSql.close();prpSql=null;}}}catch(Exception ne){ne.printStackTrace();return -1;}finally{dba.closeConnection();}return result;}/**设置图片文件名*@param examID *@parampicStr *@return 成功1,失败0*/public intsetExamineePic(StringexamID ,String picStr){DBAccess dba=newDBAccess();int result=0;try{if(dba.getConn()!=null){StringstrSql="update examinee setpic='"+picStr+"' whereid='"+examID+"'";result=dba.executeSql(strSql);}}catch(Exception ne){ ne.printStackTrace();}finally{dba.closeConnection();}return result;}/**按身份证号删除考生*@param examID*@return 1成功,0失败,出现异常*/public int deleteExmineeByID(String examID){DBAccess dba=new DBAccess();int result=0;try{if(dba.getConn()!=null){ PreparedStatement prpSql;String strSql="delete from examineewhere id=?";prpSql=dba.getConn().prepareStatement(strSql);prpSql.setString(1, examID);result=prpSql.executeUpdate();if(prpSql!=null){prpSql.close();prpSql=null;}}}catch(Exception ne){ne.printStackTrace();return -1;}finally{dba.closeConnection();}return result;}}package myclass.bol;import myclass.bol.*;import java.io.*;import javax.servlet.*;public class HandleLogin extendsHttpServlet {public StringhandleString(String s){try{ bytebb[]=s.getBytes("iso-8859-1");s=new String(bb);}catch(Exception ee){}return s;}public HandleLogin() {super();}/*** Destruction of theservlet. <br>*/public void destroy() {super.destroy(); //Just puts "destroy" string inlog// Put your code here}/*** The doGet method of the servlet. <br>** This method is called when a form has its tag valuemethod equals to get.** @param request the request send by the client to theserver* @param response the response send by the server to theclient* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out =response.getWriter();out.println("<!DOCTYPEHTML PUBLIC \"-//W3C//DTDHTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println("<HEAD><TITLE>AServlet</TITLE></HEAD>");out.println("<BODY>");out.print(" This is");out.print(this.getClass());out.println(", usingthe GET method");out.println("</BODY>");out.println("</HTML>");out.flush();out.close();}/*** The doPost method ofthe servlet. <br>** This method is calledwhen a form has its tag valuemethod equals to post.** @param request therequest send by the client to theserver* @param response theresponse send by the server totheclient* @throwsServletException if an erroroccurred* @throws IOException ifan error occurred*/public voiddoPost(HttpServletRequestrequest,HttpServletResponse response)throwsServletException, IOException {loginBean log=null;StringbackMessage="";HttpSessionsession=request.getSession(true);try{log=(loginBean)session.getA ttribute("login");if(log==null){log=new loginBean();session.setAttribute("login", log);}}catch(Exception ee){log=new loginBean();session.setAttribute("login", log);}StringloginName=request.getParameter ("loginName").trim(),password=request.getPara meter("password").trim();loginName=handleString(lo ginName);booleanok=log.isSuccess();if(ok==true&&loginName.equals(log.getLoginName())){backMessage="已经登录";log.setBackMessage(backMessage);}else{examineeBllexambll=new examineeBll();intresult=exambll.examineeLogin(loginName,password);if(result==1){backMessage="登陆成功";log.setBackMessage(backMessage);log.setSuccess(true);log.setLoginName(loginName);}elseif(result==0){backMessage="您输入的身份证号或密码不符合要求!";log.setBackMessage(backMessage);log.setSuccess(false);log.setLoginName(loginName);log.setPassword(password);}else{backMessage="您输入的身份证号不存在或密码不正确!";log.setBackMessage(backMessage);log.setSuccess(false);log.setLoginName(loginName);log.setPassword(password);}}RequestDispatcherdispatcher=request.getRequestDi spatcher("showLoginMess.jsp");dispatcher.forward(request, response);}public void init(ServletConfig config) throwsServletException {super.init();}}package myclass.bol;import myclass.bol.*;import java.io.*;import javax.servlet.*;public class HandleModifPwd extends HttpServlet {/*** Constructor of the object.*/public HandleModifPwd() {super();}/*** Destruction of theservlet. <br>*/public void destroy() {super.destroy(); //Just puts "destroy" string in log// Put your code here}/*** The doGet method ofthe servlet. <br>** This method is calledwhen a form has its tag valuemethod equals to get.** @param request therequest send by the client to theserver* @param response theresponse send by the server tothe client* @throwsServletException if an erroroccurred* @throws IOException ifan error occurred*/public voiddoGet(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException {doPost(request,response);}/*** The doPost method ofthe servlet. <br>** This method is calledwhen a form has its tag valuemethod equals to post.** @param request therequest send by the client to theserver* @param response theresponse send by the server tothe client* @throwsServletException if an erroroccurred* @throws IOException ifan error occurred*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {HttpSession session=request.getSession(true);loginBeanlog=(loginBean)session.getAttribu te("login");if(log==null){response.sendRedirect("logi n.jsp");}else{modifyPassword(request,re sponse);}}public void modifyPassword(HttpServletRequ est request,HttpServletResponse response)throws ServletException,IOException {HttpSession session=request.getSession(true);loginBeanlog=(loginBean)session.getAttribute("login");StringloginName=log.getLoginName();passwordBeanpwd=new passwordBean();request.setAttribute("password", pwd);StringoldPassword=request.getParameter("oldPassword");StringnewPassword=request.getParameter("newPassword");examineeBllexambll=new examineeBll();intresult=exambll.setExamineePwd(loginName, newPassword,oldPassword);if(result==0){pwd.setBackMessage("密码不符合要求,未更新!");}else if(result==-1){pwd.setBackMessage("旧密码不正确,密码更新失败!");}else{pwd.setBackMessage("更新成功!");pwd.setNewPassword(newPassword);pwd.setOldPassword(oldPassword);}RequestDispatcherdispatcher=request.getRequestDispatcher("showModifyPassword.jsp");dispatcher.forward(request,response);}/*** Initialization of theservlet. <br>** @throwsServletException if an erroroccurs*/public voidinit(ServletConfig config) throwsServletException {super.init(config);}}package myclass.bol;import java.io.*;import javax.servlet.*;public class HandleRegister extends HttpServlet{public void init(ServletConfig config)throws ServletException{super.init(config);}public String handleString(String s){try{ byte bb[]=s.getBytes("UTF-8");s=new String(bb);}return s;}public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{registerBean reg=new registerBean();request.setAttribute("register",reg);StringexamID=request.getParameter("examID").trim(),examName=request.getParameter("examName").trim(),sex=request.getParameter("sex").trim(),company=request.getParameter("company").trim(),address=request.getParameter("address").trim(),phone=request.getParameter("phone").trim(),email=request.getParameter("email").trim(),examType=request.getParameter("examType").trim(),memo=request.getParameter("memo").trim(),password=request.getParameter("password").trim(),pic="",backMessage="";int result=0;try{examineeBllexambll=new examineeBll();result=exambll.CreateExaminee(examID, examName, sex,company, address, phone, email,password, examType, memo, pic);if (result==0){backMessage="身份证号或密码不符合要求!请重新报考!";reg.setBackMessage(backMessage);}if(result==-1){backMessage="数据库访问发生错误!";reg.setBackMessage(backMessage);}if(result==-2){backMessage="身份证号已存在!";reg.setBackMessage(backM essage);}if(result==1){backMessage="报名成功!";reg.setAddress(handleStrin g(address));reg.setBackMessage(backM essage);reg.setCompany(handleStri ng(company));reg.setEmail(email);reg.setExamName(handleSt ring(examName));reg.setExamID(examID);reg.setExamType(handleStri ng(examType));reg.setMemo(handleString( memo));reg.setPassword(password);reg.setPhone(phone);reg.setPic(pic);reg.setSex(handleString(sex));}}catch(Exception ex){backMessage="发生错误!"+ex.toString();reg.setBackMessage(backMessage);}RequestDispatcherdispatcher=request.getRequestDispatcher("showRegisterMess.jsp");dispatcher.forward(request,response);}public voiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}}package myclass.bol;public class loginBean {StringloginName,password,backMessage;boolean success=false;public String getLoginName(){return loginName;}public voidsetLoginName(String loginName){this.loginName =loginName;}public String getPassword(){return password;}public voidsetPassword(String password) {this.password =password;}public StringgetBackMessage() {return backMessage;}public void setBackMessage(String backMessage) {this.backMessage = backMessage;}public boolean isSuccess() {return success;}public void setSuccess(boolean success) {this.success = success;}}package myclass.bol;public class modifyMessageBean {private String examID = null;// 身份证号private String examName = null;// 姓名private String sex = null;// 性别private String company = null;// 工作单位private String address = null;// 单位地址private String phone = null;// 联系电话private String email = null;//email地址private String examType =null;// 考试类型private String memo =null;// 备注public String getExamID() {return examID;}public voidsetExamID(String examID) {this.examID = examID;}public StringgetExamName() {return examName;}public voidsetExamName(String examName){this.examName =examName;}public String getSex() {return sex;}public void setSex(String sex){this.sex = sex;}public String getCompany(){return company;}public voidsetCompany(String company) {pany =company;}public String getAddress() {return address;}public voidsetAddress(String address) {this.address =address;}public String getPhone() {return phone;}public void setPhone(Stringphone) {this.phone = phone;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getExamType() {return examType;}public void setExamType(String examType) {this.examType = examType;}public String getMemo() {return memo;}public void setMemo(String memo) {this.memo = memo;}}package myclass.bol;public class passwordBean {String oldPassword,newPassword,backMessage="";public String getOldPassword() {return oldPassword;}public void setOldPassword(StringoldPassword) {this.oldPassword =oldPassword;}public String getNewPassword() {return newPassword;}public voidsetNewPassword(StringnewPassword) {this.newPassword =newPassword;}public String getBackMessage() {return backMessage;}public voidsetBackMessage(StringbackMessage) {this.backMessage =backMessage;}}package myclass.bol;public class registerBean {private String examID=null;private String examName=null;private String sex=null;private String company=null;private String address=null;private String phone=null;private String email=null;private String password=null;private String pic=null;private String examType=null;private String memo=null;private String backMessage;public String getExamID() {return examID;}public void setExamID(StringexamID) {this.examID = examID;}public String getExamName() {return examName;}。
高校自主招生考试网上报名系统的设计与实现_
软件杂志欢迎推荐投稿:/· 15 ·Software软件2012年第33卷 第6期国际IT 传媒品牌高校自主招生考试网上报名系统的设计与实现*易美超(江苏建筑职业技术学院教务处,江苏 徐州 221116)摘 要:高校自主招生考试网上报名系统是基于4.0的三层构架设计原理,以SQL Server2008 作为后台数据库平台,用Visual Studio 2010的C#语言作为设计工具设计B/S 应用程序,分别实现网上报名系统的表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)的设计,从而实现考生网上个人信息的注册、专业志愿的选报,考生报名信息的确认、打印、考试时间的查询、准考证的打印和考试成绩的查询功能。
关键词:自主招生;三层架构;数据库;表示层;业务逻辑层;数据访问层;中图分类号:TP311.52文献标识码:BDoI: 10.3969/j.issn.1003-6970.2012.06.005University Independent Recruitment Examination Online Registration SystemDesign and ImplementationYI Meichao(Registry , Xuzhou Institute of Architectural Technology , Xuzhou , Jiangsu 221116, China )【Abstract 】the university independent recruitment examination online registration system is based on the 4.0three layer architecture design principle, with SQL Server2008 as background database platform, with the Visual Studio 2010C# language as a design tool design B/S applications, respectively, to achieve online registration system ( UI ) presentation layer, business logic layer and data access ( BLL ) layer ( DaL ) design, thus realizing the candidates online personal information registration, professional volunteer choose, examinee registration information confirmation, printing, examination time query, ticket printing and examination achievement inquiry function.【Key words 】independent recruitment; three layer architecture; database; presentation layer; business logic layer; the data access layer 0 引 言随着我国高等教育改革的不断深入和发展,高等院校招生的生源对象和规模发生变化,招生的方式也随之发生变化,除普通高考招生途径外,高校自主单独招生考试将逐步成为高校招生的一个重要的途径。
高职院校自主招生网上报名系统的设计与实践
2 0 1 3年 3月
阜 阳职业 技术学 院学 报
J OU RNA L OF F UY ANG V OC AT I O NAL AN D T EC HNI C AL C OL L E GE
V o 1 . 2 4 N o . I
Ma r . 2 0 1 3
学院教师, 合 ̄ / e . z - 业大学工程硕 士, 研究方向: 计算机应用、 图像 处理 。
・
6 6・
系统 管 理员 表 A d mi n ( 用户 名 , 密码) , 存储 系 ( 3 ) 系统 管 理 , 如权 限 、 日志 、 配 置管 理 及 数 据 查 询 ;
库备 份等 。
引言
宏 观 了解 、 凋阅、 处理 各类 信息 , 科 学 地对 考 生信息 进行 维护 和管理 , 从 而提 高招 生考试 的管 理效 能 。
2 . 2 系统功 能描述
为提高高 等职业 教育 生 源质 量 , 逐 步实 施 高等
ห้องสมุดไป่ตู้
学 校 分类入学 考试 , 探 索形 成 符 合 职业 教育 特 点 和
结构构 建 , 并且 使用 了软 件工 程 的设计 思 想来 进行
编程。采用这种设计思路, 目的在于使管理员全面
收 稿 日期 : 2 0 1 2—1 2一 o 3
浏览 、 查询 、 录取数据 、 打印报表等;
作者简 介: 韦 建 国, 男, 阜 阳职 业 技 术 学 院教 师 , 安 微 大 学工 程 硕 士 , 研 究方向 : 计 算机 应 用 、 网络。宋丽萍 , 女, 阜 阳职 业技 术
S t u d i o 2 0 1 0, 基于 A S P 。 N E T技 术 , 数 据 库 使 用
单独招生网上报名系统的设计——以黑龙江职业学院为例
一
名 系统 , 提高学 院招 生管理水平 , 学院提供更方便 的服 对 为 务 , 时处理考生数据, 及 提供决策支持等有着重要意义 。 二、 求分析及功 能设计 需 系统 基 于 BS架 构 开 发 ,利 用 最 新 的 JE / 2 E架 构 ,
、
研 究背 ■
S u 2 +p n+ y l 据库 , t t . Sf gM s 数 rsO i q 服务器 软件采 用 Tm a . o ct0 6, 所有 管理 和维护工 作均 集 中在服务 器端 , 客户机 只需安装 有I E浏览器 即可 ,由于系 统需 要 I E打印功能 ,因此要求 I 览器版本 不低于 5 。 E浏 . 5 用户 的特点 :本软件 的最终使用 用户是学 校招生老师 及 教务 处管理人 员 和报 名学生 , 因此软件 设计 上在 页面简 单、 实用 方便 、 功能 突出方面进行着 重设计 。
性 和移植性 。
单招 的招生报 名和 录取工作 时间短 ,从 开始报名 到录 取 只 有两 个 月左 右 的 时 间 , 在这 么 短 的时 间 内 , 考生 准 有 确 填报报 名 信息 , 生部 门及 时 审核考 生 的报名信 息并 通 招
知 考 生进 行 考试 , 考证 的发 放 , 试后 成绩 查 询 和 录取 准 考
( ) 功 能 的 规 定 一 对
单 独招生是 为贯彻 落实 《 国务院关 于大力发展 职业 教 育 的决 定》 神 , 面 推进 素 质 教育 , 出高 职教 育 特色 , 精 全 突 积极 推进高 考招 生制 度改 革 , 综合 素质 高 和具有 创新 选拔 能力 、 实践 能 力 、 特殊 才 能 的优 秀高 中毕业 生 进入 高 职 院 校学习而推 出的重大政策 。另外, 教育部在推行单招模式 时 曾表示 , 职 院校单 招 的 目的是为逐 步实 施高 等学 校分 高 类 入学 考试 , 高等职业 教育生源 质量 。同时 , 促使高 提高 也 职 院校 探索 形 成符 合 职业 教 育 特点 和规 律 的 高职 招生 考
基于三层结构自主招生报名系统的设计
Based on Three-layer Structure Self-enrolling
System
作者: 王得燕[1]
作者机构: [1]无锡职业技术学院电子与信息技术学院,江苏无锡214121
出版物刊名: 无锡职业技术学院学报
页码: 47-50页
年卷期: 2011年 第1期
主题词: 三层结构;自主招生;客户端;服务器端
摘要:自主招生报名系统是学校对学生报名信息的自动化管理系统。
对于一个访问量庞大的WEB自主招生报名系统,不但自身要求有良好的稳定性、网络在大量负载的情况下正常运行,管理员也希望能方便升级和维护系统。
文章阐述了基于三层结构的自主招生报名系统设计,有效地解决上述问题。
网上报名系统开发案例实训报告
.网上报名系统开发案例三层架构设计与实现分为:1.数据访问层2.业务逻辑层3.控制器三个模块(1).考生报名模块(2).考生登录模块(3).修改密码模块设计package myclass.bol;import java.sql.*;import javax.sql.DataSource; import javax.naming.*;public class DBAccess {private Connection conn = null;private Statement stmt = null;private ResultSet rs = null;private PreparedStatement prpSql=null;public DBAccess() {}/*** 返回一个数据库连接* @return Connection*/public Connection getConn() {if (conn == null) {getConnection();}return conn;}/*** 加载MySQL驱动* 函数功能:获得连接对象,Statement对象*/public void databaseDriver(){try{ Class.forName("com.mysql.jdbc.Driver");}catch(Exception e){}}public void getConnection() {databaseDriver();try {conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/booklib?useUnicode=true&characterEncoding=GB2312","root","000000");stmt=conn.createStatement(); //创建Statement对象,用于执行SQL语句rs=stmt.executeQuery("select *from book");System.out.println("数据库连接建立(连接池)!");}catch (SQLExceptionex2) {System.out.println("请检查数据库是否启动!");ex2.printStackTrace();}}/**返回结果集*@paramstrSql 查询语句*@return 成功返回结果集,失败返回Null */public ResultSet query(StringstrSql){ResultSet rs = null;try{rs=stmt.executeQuery(strSql);return rs;}catch (SQLException ex){ex.printStackTrace();return rs;}}/** 返回结果* @paramprpSql 查询预处理* @return 成功返回结果集,失败返回null*/public ResultSetquery(PreparedStatementprpSql){this.prpSql=prpSql;ResultSet rs=null;try{.rs=this.prpSql.executeQuer y();return rs;}catch (SQLException ex){ex.printStackTrace();return rs;}}/**插入多条数据*@param sqls insert语句数组*@return 成功返回true,失败返回false*/public boolean insert(String[] sqls){boolean breturn =false;try{conn.setAutoCommit(false);for (int i=0;i< sqls.length;i++){if(sqls[i] !=null){stmt.addBatch(sqls[i]);}}stmt.executeBatch();mit();conn.setAutoCommit(true);}catch(SQLException ex){}return breturn;}/**返回影响行数* @param strSql查询语句*@return 成功返回影响行数,失败返回0 -1 数据库访问错误*/public int executeSql(String strSql){int result=0;try{stmt=conn.createStatement();result=stmt.executeUpdate(strSql);}catch (SQLException ex){System.out.println("产生异常,:atDBAccess.executeSql()");ex.printStackTrace();result=-1;}return result;}/**返回影响行数*@paramStrSql 查询预处理*@return影响行数,失败返回0*/public intexecuteSql(PreparedStatementprpSql){int result=0;try{this.prpSql=prpSql;result=this.prpSql.executeUpdate();}catch(SQLException ex){System.out.print("产生异常,:atDBAccess.executeSql()");result=-1;}return result;}/**返回结果true或false*@param sqls查询语句数组*@return 成功true,失败false*/public booleanexecuteSql(String[] sqls){boolean breturn =false;try{conn.setAutoCommit(false);stmt=conn.createStatement();for(inti=0;i<sqls.length;i++){stmt.addBatch(sqls[i]);}stmt.executeBatch();mit();conn.setAutoCommit(true);breturn=true;}catch(SQLException ex){System.out.println("产生异常:at DBAccess.executeSql()");ex.printStackTrace();}return breturn;}/*** 关闭连接*/public void closeConnection(){try {if (rs != null) {rs.close();rs = null;}if (stmt != null) {stmt.close();stmt = null;}if (conn != null) {conn.close();conn = null;}if(prpSql!=null){prpSql.close();prpSql=null;}System.out.println("数据库连接关闭!");} catch (SQLException ex) {System.out.println("产生异常:at DBAccess.closeConnection()");ex.printStackTrace();}}/*** 获取系统时间* 静态方法,直接用类名调用*/public static String getSysDate() {DBAccess dba = new DBAccess();String sql = "select sysdate() sysdate;";try {dba.getConnection();ResultSet rs = dba.query(sql);String currentDate = null;if (rs.next()) {currentDate = rs.getString("sysdate");}return currentDate;} catch (SQLException ex) {System.out.println("产生异常:at DBAccess.getSysDate()");ex.printStackTrace();return null;} finally {dba.closeConnection();}}}package myclass.bol;public class examinee {private String examID =null;// 身份证号private String examName =null;// 姓名private String sex = null;//性别private String company =null;// 工作单位private String address =null;// 单位地址private String phone =null;// 联系电话private String email = null;//email地址private String password =null;// 密码private String pic = null;//照片文件名private String examType =null;// 考试类型private String memo =null;// 备注public examinee(){}public examinee(StringexamID,String examName,Stringsex,String company,Stringaddress,String phone, Stringemail,String password,StringexamType,String memo,Stringpic){this.examID=examID;this.examName=examName;this.sex=sex;pany=company;this.phone=phone;this.email=email;this.password=password;this.examType=examType;this.memo=memo;this.pic=pic;this.address=address;}public String getExamID() {return examID;}public void setExamID(StringexamID) {this.examID = examID;}public String getExamName() {return examName;}public void setExamName(StringexamName) {this.examName =examName;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getCompany() {return company;}public void setCompany(Stringcompany) {pany = company;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password; }public String getPic() {return pic;}public void setPic(String pic) {this.pic = pic;}public String getExamType() {return examType;}public void setExamType(String examType) {this.examType = examType; }public String getMemo() {return memo;}public void setMemo(String memo) {this.memo = memo;}}package myclass.bol;import java.sql.*;import java.io.Serializable;import java.util.ArrayList;import myclass.bol.*;public class examineeBll {/**添加考生数据的方法**/public intCreateExaminee(StringexamID,StringexamName,String sex,Stringcompany,String address,Stringphone,String email,Stringpassword,String examType,Stringmemo,String pic){examineeDalexamDal=new examineeDal();int result=0;if((examID.length()==12||examID.length()==18)&&password.length()>0){booleanisLD=true;for(inti=0;i<examID.length();i++){charc=examID.charAt(i);if(!((c<='z'&&c>='a')||(c<='Z')&&(c>='A')||(c<='9')&&(c>='0'))){isLD=false;}}if(isLD==true &&examDal.getExamineeByID(examID)!=null){returnresult=-2;}if(isLD==true){result=examDal.CreateExaminee(examID, examName, sex,company, address, phone, email,password,examType, memo, pic);}}else{System.out.println("身份证号或密码不符合要求!");System.out.println("函数返回值:"+result);}return result;}/**考生登录方法***/public intexamineeLogin(StringexamID,String password){examineeDalexamDal=new examineeDal();int result=0;if((examID.length()==12||ex amID.length()==18)&&password.length()>0){examinee exam=null;exam=examDal.getExamine eByIdPwd(examID,password);if(exam!=null){result=1;}else{result=-1;}}return result;}/**储存照片文件名**/public int setExamineePic(String examID,String picStr){examineeDal examDal=new examineeDal();//int result;//if(){//业务逻辑//}returnexamDal.setExamineePic(examID, picStr);}/**返回examinee对象**/public examinee getExamineeByID(String examID){examinee exam =null;examineeDal examdal=new examineeDal();exam=examdal.getExamine eByID(examID);return exam;}/**返回examinee对象集**/public ArrayList<examinee>getExamineeAll(){examineeDalexamdal=new examineeDal();returnexamdal.getExamineeAll();}/**设置用户密码**/public intsetExamineePwd(StringexamID,StringnewPassword,StringoldPassword){int result=0;examineeDalexamdal=new examineeDal();if(newPassword==""||newPassword.equals(oldPassword)){return result;}if(examdal.getExamineeByIdPwd(examID,oldPassword)!=null){result=examdal.setExaminePwd(examID,newPassword);}else{result=-1;}return result;}/**更新考生信息***/public intupdateExaminByID(StringexamID,StringexamName,String sex,Stringcompany,String address,Stringphone,String email,StringexamType,String memo){examineeDalexamdal=new examineeDal();int result=0;if(examName.length()>0){result=examdal.updateExamineeByID(examID,examName, sex, company,address, phone, email, examType,memo);}else{return result=-1;}return result;}/**删除考生数据**/public intdeleteExamineeByID(StringexamID){examineeDalexamdal=new examineeDal();int result=0;if(examID==null){result=-2;}if(examID.length()>0){result=examdal.deleteExmineeByID(examID);}return result;}}package myclass.bol;import java.sql.ResultSet; importjava.sql.PreparedStatement; import java.util.ArrayList;import myclass.bol.DBAccess; import myclass.bol.examinee; public class examineeDal {/**在考生表中插入一条记录*@return 成功1,失败0*/ public int CreateExaminee(String examID,String examName,Stringsex,String company,String address,Stringphone,String email,String password,String examType,Stringmemo,String pic){int result=0;String createSql="insert into examinee(id,name,sex,company,"+"address,phone,email,password,e xamType,memo,pic)"+"values('"+examID+"','"+examName+ "','"+sex+"','"+company+"','"+address+"','"+phone+"','"+email+"','"+pa ssword+"','"+examType +"','"+memo+"','"+pic+"')";DBAccess dba = newDBAccess();try{if(dba.getConn()!=null){result=dba.executeSql(createSql);}}catch(Exception ne){System.out.println("examineedal出现如下错误:<br>");System.out.println(ne);}finally{dba.closeConnection();}return result;}/**按考生身份证号获得一个考生对象(考生信息)*@return 成功返回examinee对象,失败返回null*@param examID*/public examineegetExamineeByID(String examID){DBAccess dba=newDBAccess();examinee exam=null;try{if(dba.getConn()!=null&&examID!=null){Stringstr="select * from examineewhereid='"+examID+"'";ResultSetrst=dba.query(str);if(rst!=null&&rst.next()){exam=newexaminee(rst.getString(1),rst.getString(2),rst.getString(3),rst.getString(4),rst.getString(5),rst.getString(6),rst.getString(7),rst.getString(8),rst.getString(10),rst.getString(9),rst.getString(11));}}}catch(Exception ne){System.out.println("examineedal:getExamineeByID发生错误");}finally{dba.closeConnection();}return exam;}/**返回examinee对象数组*@return成功examinee对象数组,否则null*/public ArrayList<examinee> getExamineeAll(){DBAccess dba=new DBAccess();ArrayList <examinee> examList = new ArrayList<examinee>();try{if(dba.getConn()!=null){Stringstr="select * from examinee";ResultSetrst=dba.query(str);while(rst!=null&&rst.next()){if(rst.getString("id") !=null){examinee exam=newexaminee(rst.getString(1),rst.getS tring(2),rst.getString(3),rst.getString(4),rst.getString(5),rst .getString(6),rst.getString(7),rst.getString(8),rst .getString(10),rst.getString(9),rst.getString(11));examList.add(exam);}}}}catch(Exception ne){System.out.println("examineedal:getExamineeall发生错误");}finally{dba.closeConnection();}return examList;}/**根据身份证和密码返回考生对象*@return 成功examinee对象,失败返回null*/public examineegetExamineeByIdPwd(StringexamID,Stringpassword){DBAccess dba=newDBAccess();examinee exam=null;try{if(dba.getConn() !=null&&examID!=null&&password!=null){System.out.println("数据库连接已经建立");Stringstr="select * from examineewhereid=? and password=?";PreparedStatement prpSql;prpSql=dba.getConn().prepareStatement(str);prpSql.setString(1, examID);prpSql.setString(2, password);ResultSetrst=dba.query(prpSql);if(rst!=null&&rst.next()){exam=newexaminee(rst.getString(1),rst.getString(2),rst.getString(3),rst.getString(4),rst.getString(5),rst.getString(6),rst.getString(7),rst.getString(8),rst.getString.(9),rst.getString(10),rst.getString(11));}if(prpSql!=null){prpSql.close();prpSql=null;}}}catch(Exception ne){System.out.println("examineedal:getexamineebyIDP wd发生错误");}finally{dba.closeConnection();}return exam;}/**函数功能修改用户密码*@return 成功返回1,否则返回*/public int setExaminePwd(String examID,String newPassword){DBAccess dba=new DBAccess();int result=0;try{if(dba.getConn()!=null){PreparedStatement prpSql;String strSql="Update examinee setpassword=? where id=?"; prpSql=dba.getConn().prepareStatement(strSql);prpSql.setString(1,newPassword);prpSql.setString(2, examID);result=dba.executeSql(prpSql);if(prpSql!=null){prpSql.close();prpSql=null;}}}catch(Exception ne){System.out.println("exmaineedal:setPassword发生错误");result=-1;}finally{dba.closeConnection();}return result;}/**修改考生信息*@return影响行数,失败0 */public intupdateExamineeByID(StringexamID,StringexamName,String sex,Stringcompany,String address,Stringphone,String email,StringexamType,String memo){DBAccess dba=newDBAccess();int result=0;try{if(dba.getConn()!=null){PreparedStatement prpSql;StringstrSql="update examinee setname=?,sex=?,company=?,"+"address=?,phone=?,email=?,examType=?,memo=?,where id=?";prpSql=dba.getConn().prepareStatement(strSql);prpSql.setString(1,examName);prpSql.setString(2, sex);prpSql.setString(3,company);prpSql.setString(4, address);prpSql.setString(5, phone);prpSql.setString(6, email);prpSql.setString(7,examType);prpSql.setString(8, memo);prpSql.setString(9, examID);. if(prpSql!=null){prpSql.close();prpSql=null;}}}catch(Exception ne){ne.printStackTrace();System.out.println(ne.toStri ng());return -1;}finally{dba.closeConnection();}return result;}/**设置图片文件名*@param examID *@param picStr *@return 成功1,失败0*/public int setExamineePic(StringexamID ,String picStr){DBAccess dba=new DBAccess();int result=0;try{if(dba.getConn()!=null){String strSql="update examinee setpic='"+picStr+"' where id='"+examID+"'"; result=dba.executeSql(strSql);}}catch(Exception ne){System.out.println("发生异常"+ne);ne.printStackTrace();}finally{dba.closeConnection();}return result;}/**按身份证号删除考生*@param examID*@return 1成功,0失败,出现异常*/public intdeleteExmineeByID(StringexamID){DBAccess dba=newDBAccess();int result=0;try{if(dba.getConn()!=null){PreparedStatement prpSql;StringstrSql="delete from examineewhere id=?";prpSql=dba.getConn().prepareStatement(strSql);prpSql.setString(1, examID);result=prpSql.executeUpdate();if(prpSql!=null){prpSql.close();prpSql=null;}}}catch(Exception ne){ne.printStackTrace();System.out.println(ne.toString());return -1;}finally{dba.closeConnection();}return result;}}package myclass.bol;import java.io.IOException;import java.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;import myclass.bol.*;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HandleLogin extends.HttpServlet {public String handleString(String s){try{ byte bb[]=s.getBytes("iso-8859-1");s=new String(bb);}catch(Exception ee){}return s;}public HandleLogin() {super();}/*** Destruction of the servlet. <br>*/public void destroy() {super.destroy(); // Just puts "destroy" string inlog// Put your code here }/*** The doGet method of the servlet. <br>** This method is called when a form has its tag valuemethod equals to get.** @param request the request send by the client to theserver* @param response the response send by the server to theclient* @throwsServletException if an erroroccurred* @throws IOException ifan error occurred*/public voiddoGet(HttpServletRequestrequest,HttpServletResponse response)throwsServletException, IOException {response.setContentType("text/html");PrintWriter out =response.getWriter();out.println("<!DOCTYPEHTML PUBLIC \"-//W3C//DTDHTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println("<HEAD><TITLE>AServlet</TITLE></HEAD>");out.println("<BODY>");out.print(" This is");out.print(this.getClass());out.println(", usingthe GET method");out.println("</BODY>");out.println("</HTML>");out.flush();out.close();}/*** The doPost method ofthe servlet. <br>** This method is calledwhen a form has its tag valuemethod equals to post.** @param request therequest send by the client to theserver* @param response theresponse send by the server totheclient* @throwsServletException if an erroroccurred* @throws IOException ifan error occurred*/public voiddoPost(HttpServletRequestrequest,HttpServletResponse response)throwsServletException, IOException {loginBean log=null;StringbackMessage="";HttpSessionsession=request.getSession(true);try{log=(loginBean)session.getAttribute("login");if(log==null){log=new loginBean();session.setAttribute("login", log);}}catch(Exception ee){log=new loginBean();session.setAttribute("login", log);}StringloginName=request.getParameter("loginName").trim(),password=request.getPara meter("password").trim();loginName=handleString(lo ginName);booleanok=log.isSuccess();if(ok==true&&loginName.e quals(log.getLoginName())){backMessage="已经登录";log.setBackMessage(backM essage);}else{examineeBll exambll=new examineeBll();intresult=exambll.examineeLogin(lo ginName,password);if(result==1){backMessage="登陆成功";log.setBackMessage(backMessage);log.setSuccess(true);log.setLoginName(loginName);}elseif(result==0){backMessage="您输入的身份证号或密码不符合要求!";log.setBackMessage(backMessage);log.setSuccess(false);log.setLoginName(loginName);log.setPassword(password);}else{backMessage="您输入的身份证号不存在或密码不正确!";log.setBackMessage(backMessage);log.setSuccess(false);log.setLoginName(loginName);log.setPassword(password);}}RequestDispatcherdispatcher=request.getRequestDispatcher("showLoginMess.jsp");dispatcher.forward(request,response);}public voidinit(ServletConfig config) throwsServletException {super.init();}}package myclass.bol;import java.io.IOException;import java.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;import myclass.bol.*;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HandleModifPwdextends HttpServlet {/*** Constructor of theobject.*/public HandleModifPwd() {super();}/*** Destruction of the servlet. <br>*/public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here }/*** The doGet method of the servlet. <br>** This method is called when a form has its tag value method equals to get.** @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request,response);}/*** The doPost method ofthe servlet. <br>** This method is calledwhen a form has its tag valuemethod equals to post.** @param request therequest send by the client to theserver* @param response theresponse send by the server tothe client* @throwsServletException if an erroroccurred* @throws IOException ifan error occurred*/public voiddoPost(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException {HttpSessionsession=request.getSession(true);loginBeanlog=(loginBean)session.getAttribute("login");if(log==null){response.sendRedirect("login.jsp");}else{modifyPassword(request,response);}}public voidmodifyPassword(HttpServletRequest request,HttpServletResponseresponse)throwsServletException,IOException {HttpSessionsession=request.getSession(true);loginBeanlog=(loginBean)session.getAttribute("login");StringloginName=log.getLoginName();passwordBeanpwd=new passwordBean();request.setAttribute("password", pwd);StringoldPassword=request.getParameter("oldPassword");StringnewPassword=request.getParameter("newPassword");examineeBllexambll=new examineeBll();intresult=exambll.setExamineePwd(loginName, newPassword,oldPassword);if(result==0){pwd.setBackMessage("密码不符合要求,未更新!");}else if(result==-1){.pwd.setBackMessage("旧密码不正确,密码更新失败!");}else{pwd.setBackMessage("更新成功!");pwd.setNewPassword(newP assword);pwd.setOldPassword(oldPas sword);}RequestDispatcher dispatcher=request.getRequestDi spatcher("showModifyPassword.j sp");dispatcher.forward(request, response);}/*** Initialization of the servlet. <br>** @throws ServletException if an error occurs*/public void init(ServletConfig config) throws ServletException {super.init(config);}}package myclass.bol;import java.io.IOException; import java.io.PrintWriter; importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HandleRegisterextends HttpServlet{public voidinit(ServletConfig config)throwsServletException{super.init(config);}public StringhandleString(String s){try{ bytebb[]=s.getBytes("UTF-8");s=new String(bb);}catch(Exceptionee){System.out.println(ee.toString());}return s;}public voiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{registerBean reg=newregisterBean();request.setAttribute("register",reg);StringexamID=request.getParameter("examID").trim(),examName=request.getParameter("examName").trim(),sex=request.getParameter("sex").trim(),company=request.getParameter("company").trim(),address=request.getParameter("address").trim(),phone=request.getParameter("phone").trim(),email=request.getParameter("email").trim(),examType=request.getParameter("examType").trim(),memo=request.getParameter("memo").trim(),password=request.getParameter("password").trim(),pic="",backMessage="";int result=0;try{examineeBllexambll=new examineeBll();result=exambll.CreateExaminee(examID, examName, sex,company, address, phone, email,password, examType, memo, pic);if (result==0){backMessage="身份证号或密码不符合要求!请重新报考!";. reg.setBackMessage(backMessage);}if(result==-1){backMessage="数据库访问发生错误!";reg.setBackMessage(backM essage);}if(result==-2){backMessage="身份证号已存在!";reg.setBackMessage(backM essage);}if(result==1){backMessage="报名成功!";reg.setAddress(handleString (address));reg.setBackMessage(backM essage);reg.setCompany(handleStri ng(company));reg.setEmail(email);reg.setExamName(handleSt ring(examName));reg.setExamID(examID);reg.setExamType(handleStri ng(examType));reg.setMemo(handleString( memo));reg.setPassword(password);reg.setPhone(phone);reg.setPic(pic);reg.setSex(handleString(sex));}}catch(Exception ex){backMessage="发生错误!"+ex.toString();reg.setBackMessage(backMessage);}RequestDispatcherdispatcher=request.getRequestDispatcher("showRegisterMess.jsp");dispatcher.forward(request,response);}public voiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}}package myclass.bol;public class loginBean {StringloginName,password,backMessage;boolean success=false;public String getLoginName(){return loginName;}public voidsetLoginName(String loginName){this.loginName =loginName;}public String getPassword(){return password;}public voidsetPassword(String password) {this.password =password;}public StringgetBackMessage() {return backMessage;}public voidsetBackMessage(StringbackMessage) {this.backMessage =backMessage;}public boolean isSuccess() {return success;}public voidsetSuccess(boolean success) {this.success = success;}}package myclass.bol;public class modifyMessageBean {private String examID =null;// 身份证号private String examName =null;// 姓名private String sex = null;//性别private String company =null;// 工作单位。
基于J2EE架构的网上考试报名系统的设计与实现
2010.579基于J2EE 架构的网上考试 报名系统的设计与实现宁莹莹大连职业技术学院基础部 辽宁 116035摘要:本文采用J2EE 架构下的多层应用模式开发方法,给出网上考试报名系统的设计及开发方案。
实际应用表明,该系统实现了对考生信息采集的规范性和完整性,动态地管理各种考试信息,符合当前对考试报名工作高效、准确的要求。
关键词:网上考试报名系统;J2EE ;B/S0 前言随着计算机网络技术的迅猛发展,教育信息化的趋势逐步深入,基于网络的考试报名系统在各类考试中的应用也日趋广泛,成为人们研究的热点之一。
而当前随着我国教育事业飞速发展,各类考试规模不断壮大,报名系统访问量不断增大,对系统的开发提出了更高的要求。
因此,挖掘各类考试共性,开发一套扩充性好,易更新,通用性强的网上报名系统有着重要的应用价值。
1 系统的体系结构及其核心技术本系统采用基于J2EE 和MVC 设计模式的多层B/S 架构,如图1所示,它把每种不同的服务部署在一个独立的层。
各层结构解释如下:(1)客户层:运行在客户机上的是客户层组件,即Web 浏览器。
由Web 浏览器向表示层,即Web 服务器提出服务请求,通过验证以后从Web 服务器中下载Web 层中JSP 或Servlet 等程序动态生成的HTML 页面,并把它显示在Web浏览器上。
(2)表示层:将用户的输入发送给运行在业务层的EJB 来进行处理。
(3)业务层:主要用来处理业务逻辑,是整个应用的核心部分。
在业务逻辑层中的EJB 封装了与Hibernate 的交互关系。
根据客户请求,由Hibernate 实现通过JDBC 访问数据库进行计算,所有的计算复杂性都对客户层进行屏蔽。
(4)数据层:数据层分布于系统中的数据库服务器上,它存储着考试报名管理系统中的用户角色信息以及包括用户权限等控制信息,如考生信息、管理员信息、考点信息等。
图1 J2EE 的多层B/S 模式示意图2 网上考试报名管理系统的设计及实现 2.1 系统开发平台系统以辽宁省高校教师岗前培训考试网上报名的实际应用开发为例。
基于J2EE的高校自主招生管理系统的设计
基于J2EE的高校自主招生管理系统的设计【摘要】本文基于J2EE技术,设计了一套高校自主招生管理系统。
在介绍了研究背景、研究目的和研究意义。
正文部分包括系统架构设计、数据库设计、用户管理模块设计、招生信息管理模块设计和录取通知模块设计。
结论部分对系统实现效果进行评价,分析存在的问题,并展望未来发展。
该系统为高校提供了便捷的招生管理功能,提高了工作效率和信息管理水平,有望在未来得到更广泛的应用和推广。
【关键词】高校、自主招生、管理系统、J2EE、设计、架构、数据库、用户管理、招生信息、录取通知、实现效果、存在问题、未来展望1. 引言1.1 研究背景高校自主招生作为高等教育选拔方式的一种,旨在选拔具有特殊能力和潜质的优秀学生,为高校建设人才队伍提供支持。
随着我国高等教育的快速发展,高校自主招生逐渐成为高校选拔人才的重要途径之一。
传统的高校自主招生管理方式存在诸多问题,如信息不透明、流程繁琐、难以监管等,导致招生工作效率低下,质量无法保障。
为解决这些问题,基于J2EE技术的高校自主招生管理系统应运而生。
该系统以网络化、信息化的方式管理高校自主招生工作,通过统一的平台整合资源,使招生工作更加规范、高效和透明化。
系统还可以实现对招生信息的及时更新和监控,确保招生工作的公正和公平。
本研究旨在设计一套基于J2EE的高校自主招生管理系统,旨在解决传统管理方式存在的种种问题,提升高校自主招生工作的质量和效率,为高校选拔优秀学生提供更好的支持。
1.2 研究目的研究目的是为了解决当前高校自主招生管理中存在的诸多问题,如信息管理不规范、招生流程繁琐等,从而提高招生工作的效率和质量。
通过研究开发基于J2EE的高校自主招生管理系统,旨在实现信息管理的自动化和规范化,优化招生流程,提升招生工作的效率和准确性。
系统还将支持多用户角色管理,保证信息安全和权限管理。
通过本研究,我们也希望为高校自主招生管理提供一个可靠、高效的解决方案,为提高高校招生工作水平和服务质量贡献力量。
基于UML和ASP.NET的全国计算机等级考试报名系统的设计与实现
基于UML和的全国计算机等级考试报名系统的设
计与实现
刘升贵
【期刊名称】《电脑知识与技术》
【年(卷),期】2010(006)026
【摘要】针对全国计算机等级考试报名考务系统的现状,系统设计总体上以B/S的三层结构模型,选择Visual Studio 2005的开发环境,使用 2.0的开发技术,首先采用UML统一建模语言,根据系统需求进行总体设计,得到该系统需要实现报名信息管理、上报数据统计、财务管理、信息查询等功能,然后使用C#语言编写业务代码,SQL Server 2005开发系统数据库,实现全国计算机等级考试报名管理系统.
【总页数】3页(P7335-7337)
【作者】刘升贵
【作者单位】淮安信息职业技术学院,江苏,淮安,223003
【正文语种】中文
【中图分类】TP311
【相关文献】
1.浅UML在计算机等级考试网上报名系统开发中的应用 [J], 周善国;徐崇
2.全国计算机等级考试网上报名系统的设计与实现 [J], 胡越;王东山;熊华东
3.利用UML实现计算机等级考试网上报名系统的分析与设计 [J], 杨云春
4.全国计算机等级考试网上报名系统的设计与实现 [J], 郭道江
5.基于ASP的全国计算机等级考试报名系统的设计与实现 [J], 孙庆博
因版权原因,仅展示原文概要,查看原文内容请购买。
基于三层网络架构的网络考试系统开发研究的开题报告
基于三层网络架构的网络考试系统开发研究的开题报告一、研究背景随着互联网的普及和发展,网络考试系统在教育教学中越来越被广泛应用。
传统的考试方式不仅成本高,而且效率低下,而网络考试系统可以节省时间和人力成本,使教育资源更加平等地分布在各个地区。
同时,网络考试系统可以更好地保障考试的公平性和安全性,提高考试的质量和效益,具有非常广泛的应用前景。
当前,网络考试系统的设计和开发已经成为了一个相对成熟的技术领域,但是依然存在许多问题需要解决。
其中之一就是如何保证网络考试系统的稳定性和可靠性。
网络的不稳定性和不可靠性可能影响考试成绩的准确性,造成用户流失,对于网络考试系统来说是一个致命的问题。
因此,如何有效地解决网络的不稳定性和不可靠性,是构建高质量网络考试系统的重要研究方向。
二、研究目的和意义本研究旨在提供一种基于三层网络架构的网络考试系统设计和实现方案,以解决网络考试系统的稳定性和可靠性问题,提高网络考试系统的性能和用户体验度。
具体来说,研究的目标如下:1.通过对网络考试系统相关知识和实际应用场景的研究和分析,探索适合当前网络环境下的网络考试系统架构和技术方案;2.采用三层网络架构,通过对网络服务器的部署和配置,建立稳定可靠的网络基础设施,实现网络考试系统的高效运行;3.借助虚拟化技术,提高系统的扩展性和可管理性,解决网络系统的可靠性问题,并改善用户的使用体验;4.通过对网络考试系统性能测试和用户调查,评估网络考试系统的性能和用户体验度,为未来网络考试系统的开发提供经验和参考。
本研究的意义在于:一方面,研究结果将有助于提高网络考试系统的可靠性和性能,满足用户需求和应对日益增长的网络用户流量;另一方面,研究方法和实践过程也可以为其他网络服务系统的设计和优化提供借鉴和参考。
三、研究方法和技术路线1.研究方法(1)文献调研法:通过对现有网络考试系统的设计原理、架构模式等相关技术资料进行收集、整理和分析,了解目前网络考试系统的发展现状和存在的问题,为设定研究方向和开发策略提供参考;(2)案例研究法:选择一些现有的网络考试系统作为样本,研究其采用的架构特点、技术实现、运维管理等方面的情况,通过对数据分析、用户评价等方法,寻找解决网络考试系统稳定性和可靠性的有效办法;(3)实验研究法:设计和实现基于三层网络架构的网络考试系统,利用负载测试、压力测试等方法对其运行效率和性能进行测试,通过对交互数据流量、系统响应时间、错误率等指标的记录和分析,评估系统的性能。
网上报名系统的设计与实现
目录摘要 (VII)ABSTRACT (VIII)第1章绪论 (1)1.1课题背景 (1)1.2国内外现状 (2)1.3课题目的与意义 (3)1.4解决的主要问题 (4)1.5主要研究内容 (5)1.6论文主要章节 (5)1.7本章小结 (6)第2章系统需求分析 (7)2.1系统用户需求 (7)2.2系统功能需求 (8)2.2.1 考生界面 (8)2.2.2管理员界面 (8)2.3非功能性需求 (9)2.3.1功能性要求 (9)2.3.2可用性要求 (9)2.3.3可靠性要求 (9)2.3.4性能要求 (9)2.3.5安全性要求 (9)第3章系统构架与设计 (10)3.1系统设计原则 (10)3.2系统建模过程概述 (11)3.3过程分析 (11)3.3.1系统范围和系统边界 (12)3.3.2定义参与者 (12)3.3.3定义用例 (12)I3.3.4绘制用例图 (15)3.3.5建立域模型 (16)3.4静态结构建模 (17)3.4.1定义子系统 (17)3.4.2发现对象和类 (17)3.4.3定义类之间的联系 (18)3.4.4建立模型 (18)3.4.5为逻辑的数据库模式建模 (19)3.5动态系统建模 (19)3.5.1建立顺序图 (19)3.5.2建立状态图 (20)3.6系统部署 (20)第4章系统的实现 (22)4.1系统开发环境与工具 (22)4.2系统功能模块划分 (23)4.3系统功能结构 (26)4.4系统功能模块实现过程 (28)4.5数据库设计 (29)4.6系统主要模块实现 (32)4.6.1用户登录界面 (32)4.6.2查看用户信息模块 (35)4.6.3删除用户模块 (37)4.6.4用户密码修改 (37)4.7系统的关键技术 (40)4.7.1数据审核技术 (40)4.7.2数据检验技术 (40)4.7.3数据统计技术 (42)4.7.4数据安全技术 (42)4.7.5系统的维护 (44)第5章系统的测试 (45)5.1测试的定义及目的 (45)II5.2衡量标准 (45)5.3软件测试方法 (45)5.4测试果及评价 (48)第6章总结与展望 (49)6.1全文总结 (49)6.2展望 (49)致谢.................................................. 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关键 词 :三层 结 构 ;自主招 生 ;客 户端 ; 务 器端 服
中 图分 类 号 :N 3 9 文献标 识 码 : A 文章 编号 :6 17 8 ( 0 ห้องสมุดไป่ตู้ 0 —0 70 1 7— 8 0 2 1 ) 10 4 — 3
Ba ed o r e- y r c u e Sel-n oln s e s n Th e -a erStu t r fe r g Sy t m l - l i
学 校 , 中有 很 多 不 方 便 。2 1 其 0 0年 江 苏 省 考 试 中
心要 求所 有 招 生 单 位 实 现 网 上 报 名 , 便 考 生 报 方 名, 尤其是 一 个 学 校有 多 个 学 生 报 名 时 , 可 以在 就 当地 填写 好报 名 信 息 , 印 后 派 代 表 到 学 校 交 表 , 打
W A N G e D yan
( c o lo e to i n n o m ain Te h oo y S h o fElcr nca d I f r to c n lg ,W u iI siu eo c n lg x n t t fTe h oo y,W u i 2 4 2 t x 1 1 1,Chn ) ia
21 0 0年 以前 的无 锡 职业 技 术 学 院 自主招 生 考 生报 名都 是到 学校 来领 取表 格 , 后 填写 后 再 交到 然
学 院报 考 学 生 使 用 此 系 统 的 效 果 来 看 , 系 统 方 该
便、 易操 作 , 而且 因 为使用 了 三层结 构 开 发技 术 , 使
Ab tac :The s l— nr ln y t m s t e s ho nr lme t o t e s o u o a e a ge e t i o — sr t e fe oli g s s e i h c ole o l n f s ud nt f a t m t d m na m n nf r
办理 相关 手 续 。所 以 , 0 9年底 无 锡 职业 技 术 学 20
院组 织老 师开 发 了学 院 WE 自主招 生 报 名 系 统 。 B 该 自主招 生报 名系 统 主要完 成 的是 报 考学 生 注 册 、 报 考学 生登 录 、 考 学 生 登 录后 填 写 基 本 信 息 、 报 修
ma i n s s e , ra v stt h u e a u t f E s l— n o l n y t m ,wh c o n y r q ieg o t y t m Fo ii o t e h g mo n o o W B ef e r lme ts s e ih n to l e u r o d sa i t t b l y,t e n t r o d i a eo a g u i h e wo k l a c s f l r e n mb ro o ma p r t n d n s r t r lo h p o f cl n a e fn r l e a i ,a mi i t a o sa s o e t a i o o — i t h p r d n n i t n n e o y t ms Ar il e c i e h h e —a e t u t r a e n s l- t e t e u g a i g a d ma n e a c f s s e . a tce d s rb s t e t r e l y r s r c u e b s d o e f
得系 统容 易维 护 、 全 性 高 , 而 达 到 了学 院招 生 安 从 报 名 的需 要 , 高 了管理 人员 的工作 效 率 。 提
以往应 用 系 统 开 发 过 程 中 , l n / ev r c C i tS re ( / e S 体 系结 构得 到 了广 泛 的应 用 。其特 点 是 : 用 程 ) 应
序 逻辑 通 常分 布在 客户 和服务 器 两端 , 客户 端发 出 数 据资 源访 问 请 求 , 务 器 端 将 结 果 返 回客 户 端 。 服
王 得 燕
( 锡 职业技 术学 院 电子与 信息技 术 学 院 , 苏 无 江 无 锡 2 4 2 ) 1 1 1
摘 要 :自主招 生报 名 系统 是 学校 对 学 生报 名 信 息 的 自动 化 管 理 系统 。对 于 一 个 访 问量 庞 大 的
WE 自主 招 生报 名 系统 , B 不但 自身要 求有 良好 的稳 定性 、 网络在 大量 负载 的情 况 下正 常运行 , 管理 员也 希望 能方便 升 级和 维护 系统 。文章 阐述 了基 于三层 结 构 的 自主 招 生报 名 系统 设计 , 效 地 解 有
第 1 O卷 第 1 期
Vo . 0 No 1 11 .
无 锡 职 业 技 术 学 院 学 报
J OuRNAL OF W UXII TI NS TUTE OF TE CHNOLOGY
21 0 1年 2月
Fe .2 1 b 01
基 于 三层 结 构 自主 招 生 报 名 系 统 的设 计
e r l e y t m e i n olm nts s e d sgn,e f c i e s l i o t s o e . fe tv o uton t he e pr bl ms
K y wo d e r s:t r e l y rs r c u e e fe r l e t s s e ;c i n ;s r e h e — a e t u t r ;s l n o l n y t m - m l t ev r e