




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、东莞理工学院课程设计说明书年级 及 专业: 03软件工程(2)班题 目: 机动车驾驶员考试系统本人负责部分: 管理登陆及成绩查询学 号 : 20034144229姓 名 : 卢炽光小 组 成 员 : 郑德康、陈柱坤、周文辉、翟傍根指 导 教 师 : 彭 华2006年6月26日目录索引一、计划时期31.问题定义32.可行性研究3二、开发时期41.需求分析41.1. 引言41.2. 系统任务概述41.3需求规定51.4运行环境规定52.软件设计63.编码124.测试19三、设计小结20一、计划时期1.问题定义系统目标和范围设计说明书2006年6月11日1、项目:机动车驾驶员考试系统2、问题:过去机
2、动车驾驶员考试采用的是有纸考试,消耗大量纸张,需要大量人员监考,批卷等,手续繁琐,难管理,且易出错。3、项目目标:建立一个高效、无差错、易管理的微机无纸考试系统。4、项目范围:利用学习的计算机,和所学知识,开发时间两周5、初步想法:采用c/s模式,服务端存贮考生信息,考试题目各管理员信息 客户端分两部分:考试和管理,其中考试包括登陆与考试,管理包括报名考试、添加试题各查看考生信息与成绩。6、可行性研究:课程设计期间有三科考试,并且已经有类似系统实现,建议进行1天可行性研究。 2.可行性研究可行性论证报告2006年6月11日1、 系统概术:本系统是为了解决过去驾驶员有纸考试存在的问题,建立一个
3、高效、无差错、易管理的微机无纸考试系统,本系统采用c/s模式,一个服务器,客户端两个子系统:管理系统和考试系统。以下是系统概况图:2、可行性分析:由于这是课程设计,是学习研究,规定时间为两周,不存在经济可行性和法律可行性问题,而公安机已经实现了无纸考试系统,所以在技术可行性和运行可行性上是可行的,但有时间限制,并只用学习用的计算机,所以可能不能实现公安机关无纸考试系统的所有功能,但一部分或大部分是可以实现的。3、结论意见:本项目系统可行,是模仿公安机关无纸考试系统实行的,立即实行,并在验收时间前完成。 二、开发时期1.需求分析需求分析报告1.1. 引言1.1 编写目的 编写这份说明书主要是为了
4、使小组成员充分认识本系统的情况,确定本系统的后继工作,方便以后更好的开展工作,本说明书主要提交给用户和小组成员参考,以达到最终实现用户的要求,给用户一份满意的答卷。1.2 项目背景 a系统名称:机动车驾驶员考试系统b项目的提出者:软件工程课程设计项目的开发者:郑德康、陈柱坤、周文辉、卢炽光、翟傍根项目的用户:所有参加驾驶员考试的人员1.3 定义术语名词术语的定义题库这里专指存放试题组合的一个表,即现实生活中的试卷,应该与单单存放试题的数据库区分开来。准驾车型驾驶证批准驾驶的机动车型号,例如:c1为手动档小汽车字符本文档所使用的“字符”默认为英文字符,一个中文字符等于两位英文字符1.4 参考资料
5、 面向对象程序与设计、数据库概论、软件工程、jbuilder8.0程序员指南、软件设计师考试指南、java程序设计基础、机动车驾使员学习教材1.2. 系统任务概述2.1目标本系统要求实现“c/s结构” 数据库应用系统,其中客户端包括两个子系统:管理子系统和考试子系统 管理子系统由三个相对独立的子模块组成:添加试题、查看成绩和报名考试。添加试题:用于考题的录入和题库的生成查看成绩:用于查看考生成绩记录报名考试:用与考生资料的录入和修改 考试系统的主要工作过程为:考生通过身份证登陆,确定资料后,连接数据库随机取得一套试题,要求在45分钟里完成答题,然后考试系统计算考生本次考试得成绩和显示是否通过考
6、试,并将成绩存进数据库。下面给出系统的初步概图,方便用户和读者充分认识本系统的最初实现情况,并对系统有个初步的了解,也方便开发人员把握开发方向,最终实现本系统.2.2用户的特点本系统用户的特点:本软件的最终用户可分为管理人员、考生。 管理人员:使用管理子系统的用户,根据不同权限不同,可对不同得模块进行管理操作,一般要求对计算机操作熟悉,能独立完成资料输入等操作。 考生:使用考试子系统的用户,是面向社会所以符合考试条件的人,只要求有一定的计算机操作知识。 1.3需求规定3.1对功能的规定管理系统在添加试题时主要输入试题类型、试题内容、试题选项、试题答案等信息,然后系统自动为试题分配一个唯一性编号
7、。管理系统在报名考试时主要输入考生姓名、考生性别、考生出生日期、考生身份证号、考生地址、考生学习车型、考生学习种类、受理日期等信息,然后系统自动为考生分配一个唯一性编号,并作一个未考试标记。管理系统在查看成绩时主要输入要查询的考生姓名或考试日期范围,系统根据条件搜索数据库,把搜索结果显示出来。考试系统在进行考试时,由考生输入身份证号码,系统根据身份证号搜索数据库,如果搜不到符合条件的考生资料,就返回要求从新输入;如果搜到符合条件的考生资料,就把考生资料读出显示。考生检查资料无误后按确定进行考试,这时系统随机读取十套试题中的一套题,并进入考试界面开始考试计时。45分钟后若考生未提交答案,系统则强
8、制结束考试,并计算成绩,显示是否通过考试,并将成绩存进数据库。3.2对性能的规定 对系统中输入的数据要按照数据字典的规定严格输入,尽量避免数溢出处和数据的不合法性。1.4运行环境规定使用windows nt以上操作系统,具有java运行环境。2.软件设计2.1 设计概述:管理系统在添加试题时主要输入试题类型、试题内容、试题选项、试题答案等信息,然后系统自动为试题分配一个唯一性编号。管理系统在报名考试时主要输入考生姓名、考生性别、考生出生日期、考生身份证号、考生地址、考生学习车型、考生学习种类、受理日期等信息,然后系统自动为考生分配一个唯一性编号,并作一个未考试标记。管理系统在查看成绩时主要输入
9、要查询的考生姓名或考试日期范围,系统根据条件搜索数据库,把搜索结果显示出来。考试系统在进行考试时,由考生输入身份证号码,系统根据身份证号搜索数据库,如果搜不到符合条件的考生资料,就返回要求从新输入;如果搜到符合条件的考生资料,就把考生资料读出显示。考生检查资料无误后按确定进行考试,这时系统随机读取十套试题中的一套题,并进入考试界面开始考试计时。45分钟后若考生未提交答案,系统则强制结束考试,并计算成绩,显示是否通过考试,并将成绩存进数据库。2.2 总体用例图:2.3 分开设计部分2.3.1 本人完成部分的用例图:2.3.2 本人完成部份的状态图:2.3.3 本人完成的事件轨迹图:2.4 类图:
10、2.4.1 类关系:(类的属性和行为下面给出)2.4.2主类:login2.4.3 用户界面及处理逻辑类:lookup(主要列出类的方法和属性,由于类的继承关系由系统生成,故全图不另外详列出)2.4.4 events事件类:2.4.5 数据库类:database 2.5 界面设计:1.用户登陆界面:2.用户查看成绩界面: 3.编码只列出主要逻辑部分的代码。1. login部分代码:(登陆类) void jbutton1_actionperformed(actionevent e) /读出输入框的数据 string name = jtfname.gettext().trim(); string
11、pw = jpfpassword.gettext().trim(); /调用事件events类的jblogin事件函数 ev.jblogin(name, pw, this); 2. lookup部分代码:(查看成绩类) /类的实例化 events ev = new events(); int i; string title = 报考名, 身份证, 考试日期, 考试成绩; string data = new string04; private jtable jtable = null; private jscrollpane jscrollpane = null; defaulttablemod
12、el showone = new defaulttablemodel(data, title);defaultlistselectionmodel showtable2 = new defaultlistselectionmodel(); private jbutton getjblookup() if (jblookup = null) jblookup = new jbutton(); jblookup.setbounds(6, 105, 80, 30); jblookup.settext(查询); jblookup.setfont(new java.awt.font(dialog, ja
13、va.awt.font.truetype_font, 14); jblookup.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent e) / system.out.println(actionperformed(); / todo auto-generated event stub actionperformed() /判断要用哪个查询条件进行查询 if (jcheckbox.isselected() i = 0; else i
14、f (jcheckbox1.isselected() i = 1; else i = -1; / lookup(); ); return jblookup; public void lookup() /调用事件events类的jblogin事件函数 switch (i) case 0: if (!jtftime.gettext().trim().equals() /读出输入框的数据 string tm = jtftime.gettext().trim(); data = ev.jblookuptime(tm); int u = 0; while (datau0 != null) showone
15、.addrow(datau); u+; if (showone.getrowcount() = 0) joptionpane.showmessagedialog(null, 对不起,找不到你的考试记录,请确认你的输入条件是否正确,谢谢_); else joptionpane.showmessagedialog(null, 请你填写查询条件); break; case 1: if (!jtfuseridentity.gettext().trim().equals() /读出输入框的数据 string id = jtfuseridentity.gettext().trim(); data = ev
16、.jblookupid(id); int uu = 0; while (datauu0 != null) showone.addrow(datauu); uu+; if (showone.getrowcount() = 0) joptionpane.showmessagedialog(null, 对不起,找不到你的考试记录,请确认你的输入条件是否正确,谢谢_); else joptionpane.showmessagedialog(null, 请你填写查询条件); break; case -1: joptionpane.showmessagedialog(null, 请你为查询条件打勾); /
17、清空事件 jbutton.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent e) system.out.println(actionperformed(); / todo auto-generated event stub actionperformed() jtfuseridentity.settext(); jtftime.settext(); jcheckbox.setselected(false); jcheckbox1
18、.setselected(false); int le = showone.getrowcount(); /system.out.println(le); while (le 0) le-; showone.removerow(le); ); 3. events部分代码:(事件调用类)public class events resultset rs = null; database db = new database(); /登录的方法 public void jblogin(string jtfname, string jpfpassword, login login) /变量声明(主要是用
19、来存取输入框输入的内容) string name = jtfname.trim(); string pw = jpfpassword.trim(); string r = new string203; /当前登录用户名和密码输出检测 /system.out.println(当前输入的用户名是: + name); /system.out.println(当前输入的密码是: + pw); try db.getconn(); /system.out.println(connection successful!); /system.out.println(); /读入数据库admin表的管理员的信息,
20、主要是有用户名、密码、权限 rs = db.getrs(select adminname,apassword,purview from admin;); /system.out.println(数据库当前管理员信息表如下:); int i = 0; while (rs.next() ri0 = rs.getstring(adminname).trim(); ri1 = rs.getstring(apassword).trim(); ri2 = rs.getstring(purview).trim(); /system.out.println(ri0 + + ri1 + + ri2); i+;
21、system.out.println(); /判断输入信息是否符合数据库管理员信息,通过验证,区分各个管理员的权限,进入相应的界面 int k = 0; /system.out.println(验证情况如下(权限):); /查找对应的记录 while (k screensize.height) framesize.height = screensize.height; if (framesize.width screensize.width) framesize.width = screensize.width; f.setlocation( (screensize.width - frame
22、size.width) / 2, (screensize.height - framesize.height) / 2); f.setvisible(true); break; case b: /调用查看成绩的面板 /system.out.println(b); login.dispose(); lookup lu = new lookup(); lu.setvisible(true); break; case c: /调用报名的面板 /system.out.println(c); login.dispose(); datainput datainput1 = new datainput();
23、 /center the window dimension screensize2 = toolkit.getdefaulttoolkit().getscreensize(); dimension framesize2 = datainput1.getsize(); if (framesize2.height screensize2.height) framesize2.height = screensize2.height; if (framesize2.width screensize2.width) framesize2.width = screensize2.width; datain
24、put1.setlocation( (screensize2.width - framesize2.width) / 2, (screensize2.height - framesize2.height) / 2); datainput1.setvisible(true); break; default: system.out.println(不存在的权限); joptionpane.showmessagedialog(null, 你好,你输入的用户没有任何权限); /询问是否重新输入(没有写) else joptionpane.showmessagedialog(null, 请你输入正确的用
25、户名密码); /关闭与数据库的连接 db.closers(); db.closedb(); catch (sqlexception e) e.printstacktrace(); /查询条件为考试时间的方法 public string jblookuptime(string tm) string time = tm.trim(); string d = new string2004; /当前查询条件检测 /system.out.println(当前输入的考试时间是: + tm); try db.getconn(); /system.out.println(connection successf
26、ul!); /system.out.println(); /读入数据库admin表的管理员的信息,主要是有用户名、密码、权限 rs = db.getrs(select username,useridentity,userresultdate,userresult from driver where userresultdate = + tm + ;); system.out.println(数据库当前报名人员信息表如下:); int i = 0; while (rs.next() di0 = rs.getstring(username).trim(); di1 = rs.getstring(u
27、seridentity).trim(); di2 = rs.getstring(userresultdate).trim(); di3 = rs.getstring(userresult).trim(); /system.out.println(di0 + + di1 + + di2 + + di3); i+; /system.out.println(); /关闭与数据库的连接 db.closers(); db.closedb(); catch (sqlexception e2) e2.printstacktrace(); return d; /查询条件为考试时间的方法 public stri
28、ng jblookupid(string id) string did = id.trim(); string d = new string2004; /当前查询条件检测 /system.out.println(当前输入的身份证号码是: + id); try db.getconn(); /system.out.println(connection successful!); /system.out.println(); /读入数据库admin表的管理员的信息,主要是有用户名、密码、权限 rs = db.getrs(select username,useridentity,userresultd
29、ate,userresult from driver where useridentity = + id + ;); /system.out.println(数据库当前报名人员信息表如下:); int i = 0; while (rs.next() di0 = rs.getstring(username).trim(); di1 = rs.getstring(useridentity).trim(); di2 = rs.getstring(userresultdate).trim(); di3 = rs.getstring(userresult).trim(); /system.out.pri
30、ntln(di0 + + di1 + + di2 + + di3); i+; /system.out.println(); /关闭与数据库的连接 db.closers(); db.closedb(); catch (sqlexception e2) e2.printstacktrace(); return d; 4.测试41测试策略:由于文本框和复选框输入的限制,而主要测试输入的信息与数据的记录的正确性,主要采用黑盒测试,完成功能的正确性和提示行。42功能测试:表4.1 登陆问题决策表123c1用户名管理员表【用户名】?yync2密码管理员表【密码】?ny规则条数统计002a1登陆ya2请输入正确的管理员信息xx表4.2 登陆测试用例用户名密码预期输出值预期输出类型1shining001登陆登陆2shining002请输入正确的管理员信息请输入正确的管理员信息3jeyy001请输入正确的管理员信息请输入正确的管理员信息4ken006请输入正确的管理员信息请输入正确的管理员信息表4.3 查看成绩决策表12345b1考试时间考员表【考试时间】?yynb2查询条件为考试时间ynb3身份证考员表【身份证】?ynb4查询条件为身份证yyn规则条数统计04848d1查询xd2请为查询条件打勾xxd3请输入查询条件xx表4.2 查看成绩测试用例b1b2b3b4预期输出值预
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西来宾宾信投资集团有限公司招聘拟聘人员模拟试卷及答案详解1套
- 2025年西藏自治区烟草专卖局(公司)招聘(29人)考前自测高频考点模拟试题参考答案详解
- 2025湖南省药品检验检测研究院招聘编外人员8人考前自测高频考点模拟试题及一套参考答案详解
- 2025国航股份西南分公司乘务员岗位高校毕业生校园招聘(四川)考前自测高频考点模拟试题完整参考答案详解
- 2025贵州医科大学第三附属医院第十三届贵州人才博览会引才模拟试卷及一套参考答案详解
- 2025广东深圳大学材料学院彭孝军院士团队专职研究员招聘1名考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025安徽雨山区秀山文苑托育园招聘劳务派遣制工作人员12人模拟试卷及答案详解(考点梳理)
- 2025广东惠州市博罗县招聘编制教师143人考前自测高频考点模拟试题及完整答案详解一套
- 2025河南许昌市建安区人力资源和社会保障局招聘公益性岗位人员13人考前自测高频考点模拟试题附答案详解
- 2025年龙岩市政建设集团有限公司公开招聘考前自测高频考点模拟试题及一套完整答案详解
- 部编版二年级语文上册全册教案(全册教学设计)
- DL∕T 502.26-2006 火力发电厂水汽分析方法 第26部分:亚铁的测定啉菲啰啉分光光度法
- TD/T 1065-2021 国土空间规划城市设计指南(正式版)
- 信息组织与信息构建课件
- CIM登峰系列方冰制冰机技术服务手册
- 应急管理学院成立可行性方案
- 视频监控调取记录表
- 质量控制计划QCP
- 七田真1000图记忆
- 运营管理指导手册(运营)
- GB/T 4456-2008包装用聚乙烯吹塑薄膜
评论
0/150
提交评论