考试排座系统设计与开发.docx
《考试排座系统设计与开发.docx》由会员分享,可在线阅读,更多相关《考试排座系统设计与开发.docx(16页珍藏版)》请在冰豆网上搜索。
考试排座系统设计与开发
题目:
考试排座系统设计与开发
指导老师:
学生姓名:
专业:
计算机
班级:
08-5班
完成日期:
2012-5-20
声明
毕业论文(设计)任务书
论文(设计)题目:
考试排座系统的设计与实现
专题:
要求完成的内容:
1.查阅相关的资料,掌握一种开发工具;
2.在考试系统中,实现学生信息管理、考场信息
管理、考试科目信息管理等基本的管理模块,
实现数据库的设计;
3.根据软件工程开发流程,画出相关的模块设计
及系统用例图,详细书写设计文档;
4.查阅相关的外文资料,字数不少于3000字,
并将其翻译成中文。
发题日期:
2012年1月10日完成日期:
2012年5月10日
实习实训单位:
计算机学院地点:
创新实验室
论文页数:
页;图纸张数:
指导教师:
教研室主任:
院长:
摘要
在日常工作生活中,我们经常会要举办各级各类的会议、讲座及考试。
这样就涉及到会议人员及考生的座次排列问题。
但是,传统的随机座号机制是通过会议前或考试前人工排序或在考场内随机抽号的方式进行的,这就耗费了大量的人力和时间,造成效率低下,而且任务繁琐,容易出错。
为此,用java编写一个智能排座系统,实现了人员座次的随机排序、显示和打印等功能,将符合正态分布的随机数理论引入java的程序设计中,与传统的手工排序和随机抽号方式相比较,该系统在方便性、效率和可维护性上具有明显的优势。
关键字:
会议;考试;排座;随机排序
Abstract
Indailywork,weoftenwantinlifeheldvariousandofallkindsofmeeting,lectureandexamination.Thisinvolvesmeetingpersonnelandtheexamineetheseatingarrangementproblems.However,thetraditionalrandomseatnumberbeforeorthroughtheconferencemechanismisbeforetheexaminationinorderorintheexaminationroomofartificialmeansofrandomsamplingnumber,ittookalotofmanpowerandtime,causeinefficient,andtasktrival,error-prone.Therefore,writteninc#anintelligentrowseatsystem,realizedthepersonnelofrandomsort,showtheseatingandprinting,etcfunction,willmeetnormaldistributionofrandomnumbertheoryintothejavaprogramming,eliminatethejavasystemproducedpseudorandomeffectsof,andachievedgoodeffect,andthetraditionalmanualsortingandtakingrandomnumbercompared,thissystemwayinconvenienceandefficiencyandmaintainabilityhasadistinctadvantage.
Keywords:
meeting;exam;rowseat;randomsort
1前言
1.1选题背景
随着国内高等教育信息化的推进,办公自动化等现代信息技术的广泛应用,不但促进了社会的高速发展,也改变着人们的工作、学习、生活和娱乐的方式以及思想观念,在日常工作生活中,我们经常会要举办各级各类的考试。
这样就涉及到考生的座次排列问题。
但是,传统的随机座号机制是通过考试前人工排序或在考场内随机抽号的方式进行的,这就耗费了大量的人力和时间,造成效率低下,而且任务繁琐,容易出错。
大部分的院系在考试过程中为了做到严格纪律,都纷纷采用了随机排座机制来保障考试的顺利进行。
为此,编写一个考试排座软件可以解决这一问题。
1.2设计内容
本文所述的是根据考场随机排座的要求,整个系统由以下的模块组成:
数据导入、排序处理、打印输出。
除此之外,还要求系统具有良好的人机界面。
数据导入工作的对象是欲排序的名单,由于大部分的学生信息采用EXCEL格式或者WORD文档格式进行存储,所以,首要的工作是要将这些格式文档读入排座系统。
对于排座系统中各个记录的随机排序,应为每条记录分配一个真正的符合数学规律的随机值。
数据的输出部分包括模拟显示和打印两部分,将对随机排序后的结果进行输出,生成考场座次表,和试卷一起密封,方便监考人员在考试之前进行宣读。
软件系统主要采用java编写。
2需求分析与设计
2.1需求分析
2.1.1功能模块
考试科目信息管理模块:
1.科目排座(根据科目(语文、数学等)进行排座)
考场信息管理
1.考场排座(根据考场的大小(行和列)自动排座,并自动生成座位名称)
2.查询考场信息(根据考场号查询)
学生信息管理模块:
1.查询学生信息(可根据学生姓名或学号进行查询)
2.删除信息(可根据学生姓名或学号进行查询后选择删除单个或全部的学生信息)
3.导入excel表格(可导入学生信息)
人数统计模块:
1.人数统计(可分别统计每个班的学生人数)
2.2可行性研究
开发任何一个基于计算机的系统,都会受到时间和资源上的限制,以及是否有普遍使用价值。
2.2.1经济可行性
可配置的权限管理系统主要用于毕业设计,不涉及到经济问题。
因此盈亏暂时不作为考虑的因素。
2.2.2技术可行性
经过在学校的长时间学习,技术已经基本可以完成系统的主要功能。
因此技术具有可行性。
2.2.3时间设备可行性
系统设计与开发大概3到4个月,时间比较充足。
并且有电脑可用,设备具有可行性。
2.3软件总体概述
考试排座系统实现了人员座次的随机排序、显示和打印等功能。
与传统的手工排序和随机抽号方式相比较,该系统在方便性、效率和可维护性上具有明显的优势。
2.4随机数的产生
本系统采用了对产生的随机数序列进行筛选的方法,使得产生的随机数序列符合一维正态分布的概率密度函数规律,其原理为:
若一个数列服从一维正态分布,那么它的概率密度函数为(其中,为常数,分别代表数学期望和方差[3]),根据一维正态分布的概率密度理论为随机数序列的均值,代表着随机数在该处的概率最大,为方差,代表产生的随机数偏离均值的程度,其概率密度函数曲线如图1所示,利用rand()函数线性变换后产生的平均随机数,带入该函数模型进行验证,若随机数的函数值在曲线范围内,即认为该随机数符合条件,进行保留,反之,舍弃;基于该方法产生的10000个随机数序列的统计如图2所示,从图2可以看出随机数序列符合一维正态分布的规律,达到系统所需的随机数要求。
2.5系统环境
在开发产品管理系统时,使用了下面的软件环境:
操作系统:
MicrosoftWindowsXPProfessional
Java开发包:
JDK1.6
数据库:
MySql5.0
Web服务器:
Tomcat5.5
分辨率:
最佳效果为1024×768像素
开发工具:
MyEclipse+SQLServer+PowerDisgner
数据库运行环境如下:
硬件平台:
内存:
512M以上
硬盘空间:
80GB
软件平台:
操作系统:
Windows
数据库:
MySql5.0
2.6系统基本流程图
主要功能选择
主界面
用户
图2-1系统流程图
3系统架构及技术
3.1系统应用架构
本系统采用基于B/S模式的MVC模式三层架构,将系统分为模型层(Model),视图层(View),控制层(Controller),实现了功能模块和显示模块的分离,提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。
处理流程如下图所示:
图3-1MVC处理流程图
控制器(Controller)接受从浏览器传来的HTTP请求,根据业务逻辑更新模型(Model),处理用户请求,然后发送HTTP响应,渲染视图(View),将处理结果反应给用户。
3.2系统技术平台选择
3.2.1开发语言
开发语言使用Java。
Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。
用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:
跨平台、动态的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。
另一方面,Java技术也不断更新。
Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。
Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java应用编程接口已经从1.1x版发展到1.2版。
目前常用的Java平台基于Java1.4,最近版本为Java1.7。
[1]
Java分为三个体系JavaSE(Java2PlatformStandardEdition,java平台标准版),JavaEE(Java2Platform,EnterpriseEdition,java平台企业版),JavaME(Java2PlatformMicroEdition,java平台微型版)。
2009年04月20日,oracle(甲骨文)收购sun,java因此并归甲骨文公司。
3.2.2开发工具
Eclipse是著名的跨平台的自由集成开发环境(IDE)。
最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。
Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。
许多软件开发商以Eclipse为框架开发自己的IDE。
Eclipse最初是由IBM公司开发的替代商业软件VisualAgeforJava的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(EclipseFoundation)管理。
3.2.3数据库
数据库采用MySQL5.0。
MySQL是由MySQLAB公司开发、发布并支持的全世界最流行的开源SQL数据库管理系统,目前最新版本为MySQL5.0,MySQL5.0较以前的版本有了很大的改进,对存储过程、触发器和视图有了很好的支持,成为开源数据库之首选[3]。
MySQL是一种功能非常强大的关系型客户服务器数据库系统。
它的安全性和稳定性能已足以满足许多应用程序的要求,而且有着非常高的性价比(这不仅是因为MuSQL本身是免费的,还因为它对硬件性能的要求不那么苛刻)。
这些优点使MySQL成为因特网数据库领域里事实上的标准之一[3]。
SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。
例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。
MySQL主要目标是快速、健壮和易用。
最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。
自1996年以来,我们一直都在使用MySQL,其环境有超过40个数据库,包含10,000个表,其中500多个表超过7百万行,这大约有100个吉字节(GB)的关键应用数据。
图3-5mysql的命令行管理界面
4系统总体设计
4.1UML用例图
4.2用户登陆用例图
如图4-2所示:
4.3数据库设计
4.3.1数据规划
按照数据管理的整合性,根据数据管理规划,整个应用系统构建一个数据库,
根据应用系统对数据库的要求,即设计的数据是为应用系统服务的,当然,数据库也将反作用于应用系统。
对于可派生的数据库的其他应用不作描述。
在数据表与字段的定义上,均以汉字的首个拼音字母组合来表达期含义数据采用mysql数据库系统来处理本管理系统的数据。
对于系统的安全应用设计,采用数据系统默认的规则进行处理。
对表的定义中,主要突出表的名称与含义、字段名称、所表示的中文意思(中文含义)、字段类型、字段长度(长度)、数值型字段中小数点以后的位数(小数)、是否允许为空值(允许空值)、缺省值、是否作为表的主关键字段(主键)和是否作为外部关键字段(外键)等字段信息作为描述,相关联表与必要注释等内容说明,在表格中无值的单元格表明当前项目不具备该属性。
4.3.2数据库表设计
表2-5classroom
字段名
类型
长度
主键
外键
是否为空
标识id
int
是
否
否
名字name
varchar
20
否
否
否
地址address
varchar
80
否
否
是
座位行row
int
否
是
否
座位列column
int
否
是
否
表2-6simplestu
字段名
类型
长度
主键
外键
是否为空
标识id
number
是
否
否
编号num
int
否
是
是
名字name
varchar
20
否
否
否
座位seat
varchar
20
否
否
是
电话tel
varchar
20
否
否
否
学生所在学院xueyuan
varchar
20
否
否
否
座位行row
int
否
是
否
座位列column
int
否
是
否
表2-7college
字段名
类型
长度
主键
外键
是否为空
标识id
int
是
否
否
学校名字name
varchar
20
否
否
否
地址address
varchar
80
否
否
是
5系统详细设计
5.1主界面.
5.2排座界面
5.3排座结果
5.4考场信息界面.
5.5编码实现
4.5.1排座关键代码
importjava.util.Random;
publicclassselect{//建一个类命名为selcet.java
publicstaticvoidmain(String[]args)
{
System.out.println("随机的九个数是:
");
inta[]=newint[60];//总的有60个座位!
Randomrandom=newRandom();
for(inti=0;i{
intz=random.nextInt(60);//随机抽取60个座位
a[i]=Math.round(z);
if(i>=1)
{
intj=i;
while(j>=0)
{
if(a[i]==a[j])
{
intk=random.nextInt(60);//随机抽取60个座位
a[i]=Math.round(k);
}
j--;
}
}
System.out.print(a[i]+1+"");
}
}
}
5.5.2学生管理关键代码
5.5.3数据库操作关键代码
6考试排座系统的测试
6.1考试排座系统的测试用例
表4-1测试用例表
测试用例编号
TC_PZ_01
测试需求项
排座管理
设计者
李慧娟
测试需求标识
PZ_01
设计日期
2012.1.10
测试目标状态和测试数据状态
系统能否正常的排座。
学生的管理能否正常操作。
序号
测试项
输入说明(操作)
输出说明(预期结果)
1
排座
点击“排座”按钮
正常弹出填写信息的界面
2
填写“科目选择”、“教室信息”及其他信息,然后点击“开始排座”按钮
系统正常显示排座结果
3
学生管理
点击“学生管理”按钮
正常弹出学生管理界面
4
输入学生姓名电话或学校等进行查询学生信息
能正常查询学生信息
5
选择某一学生或几个学生,点击删除按钮
学生信息被删除
6
点击“导入excel”按钮
能正常导入excel表格
7
人数统计
点击“人数统计”按钮
能分别显示每个班学生数
8
9
7考试排座系统演示
7.1考试排座系统登陆界面
图6-1考试排座系统登陆界面
7.2考试排座系统排座界面
图6-2考试排座系统排座界面
7.3考试排座系统学生管理界面
图6-3考试排座系统学生管理界面
7.4考试排座系统排座成功界面
图6-4考试排座系统排座成功界面
总结与展望
本系统是根据高校考试的需求,结合高校学生信息管理的特点开发的,整个系统具有良好的实用性和可扩充性,已经应用于院系的考试中,能满足院系环境下的考试管理需求,使用该系统一方面可以减少相关教务和教学管理人员的工作量和劳动强度,增加工作效率,另一方面也提高了考试管理信息化的水平,使得考试管理工作上了一个新的台阶,具有非常好的通用性和推广价值。
时光飞逝,转眼间我们就要毕业离校了,回想这几个月的时光,我过的很充实,最主要是自己真正的从头到尾完成了这个项目,发现如果真正认真做一件事,就一定能做好。
从做毕业设计中,我学到了很多,这不只是一个毕业设计,而是一次对意志的磨砺,在这之中我又再次成长,为以后的工作学习提供了很好的跳板。
相信在以后的工作中我一定更加努力,最终走向成功。
参考文献
[1]唐勇,深入浅出Hibernate。
电子工业出版社。
2005-6-1。
[2]全程软件测试,电子工业出版社,出版时间:
2007年09月,作者:
朱少民。
[3]朱如龙.SQLServer数据库应用系统开发技术[M].机械工业出版社.2004
[4]张有生.软件体系结构[M].北京:
清华大学出版社,2006,1
[5]杨文龙.姚淑珍.吴云.软件工程.电子工业出版社,1997
[6]王海鹏译.Java与UML面向对象程序设计[M].北京:
人民邮电出版社,2005
[7]itlabchinaMyEclipse6.0[EB/OL].2008-12-12.
[8]西红柿炒鸭蛋.面试题:
接口和抽象类的区别[DB/OL].
[9]suffersky.Tomcat5.0[EB/OL].2008-11-27
[10]朱福喜,余振坤.J2EE经典实例详解[M].人民邮电出版社,2006.
[11]ding_317708174.sqlserver[EB/OL].2009-05-07
[12]郑莉.王行言.马素霞.《Java语言程序设计》.清华大学出版社2006
[13]RogersCadenhead.《Java编程入门经典》.人民邮电出版社,2007
[14]拉姆博等著.面向对象建模与设计[M],北京:
中国电力出版社,2005.
附录
1、系统配置环境:
本系统操作对远程客户端的要求低:
只要求客户能上网。
软件环境:
(1)MicrosoftWindowsXP
(2)Mysql5.0
(3)jdk-1_5_0_09-windows-i586-p
(4)ApacheTomcat6.0
硬件环境:
处理器:
IntelPentium166MX或更高。
内存:
516MB或更高。
硬盘空间:
20GB或更高。
光驱:
CD-ROM 52MX。
显卡:
SVGA显适配器