题库管理系统课程设计报告_第1页
题库管理系统课程设计报告_第2页
题库管理系统课程设计报告_第3页
题库管理系统课程设计报告_第4页
题库管理系统课程设计报告_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

东北石油大学本科生课程设计PAGE东北石油大学课程设计课程课程数据库课程设计题目题库管理系统院系专业班级学生姓名学生学号指导教师东北石油大学课程设计成绩评价表课程名称数据库课程设计题目名称题库管理系统学生姓名学号指导教师姓名职称序号评价项目指标(优秀)满分评分1选题难度选题难度较高,或者对原题目进行了相当程度的改进。102工作量、工作态度和出勤率工作量饱满,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。103课程设计质量按期圆满的完成了规定的任务,方案设计合理,思考问题全面,系统功能完善。404报告质量问题论述思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。305回答问题在进行课程设计程序系统检查时,能正确回答指导教师所提出的问题。106创新(加分项)工作中有创新意识,对前人工作有改进或有应用价值。在进行系统检查时能对创新性进行说明,并在报告中有相应的论述。+5总分评语:指导教师:年月日东北石油大学课程设计任务书课程数据库课程设计题目题库管理系统专业计算机科学与技术姓名学号一、主要内容:开发一个题库管理系统。设计并实现这样的一个系统主要是锻炼学生采用面向对象方法、设计思路等开发软件的能力。二、基本要求:系统主要有以下功能:登录、个人密码修改、添加科目、试题管理、试卷生成、退出系统。登录:包含用户登录信息、用户权限选择;添加科目:添加新增的课程;试题管理:可以添加四中类型的试题信息、查询试题信息、删除修改试题;试卷生成:根据试卷编号、所选科目和所选各类试题数量随机生成一套试卷保存到数据库中;系统用户根据操作权限的差异可分为3类,即管理员、教师和学生。除了实现上述功能以外,题库管理系统还具有友好、简洁的界面,安全性要高,稳定性要强。三、主要参考资料:[1]程不功,龙跃进,卓琳.ASP.NET动态网站开发.北京清华大学出版社,2006[2]飞思科技产品研发中心.《SQLServer2000数据处理技术》.电子工业出社,2004[3]高守传.《精通SQL--结构化查询语言详解》.人民邮电出版社,人民电出版社,2003完成期限19-20周指导教师专业负责人2012年6月24日东北石油大学本科生课程设计PAGEI目录TOC\o"1-2"\h\z\u第1章系统分析 11.1开发背景 11.2需求分析 11.3开发环境 2第2章系统设计 32.1系统总体示意图 32.2系统数据流图 32.3数据库设计 62.4功能模块图 11第3章系统实现 123.1系统登录界面 123.2系统注册界面 133.3教师主界面 143.4试题管理界面 143.5试卷生成界面 183.6科目添加界面 193.7个人密码修改界面 203.8用户信息管理界面 21第4章系统测试 244.1软件测试基础理论 244.2系统测试 244.3系统评价 254.4系统存在的问题 25第5章结束语 26参考文献 27东北石油大学本科生课程设计PAGE6第1章系统分析1.1开发背景考试是教学的关键部分,不管什么学校,都有各种各样的考试。考试出题、判卷给老师们带来了繁重的工作量,同时也耗费了大量的纸类资源。传统的考试方式,判卷出成绩,不再适合当今社会的要求。随着计算机的出现,计算机的快捷方便很快被人们接受。为了减轻教师的工作负担、提高工作效率、提高考试的质量,也为广大学子及老师提供一个方便的场所,运用数据库和相关访问技术完成一个题库管理系统的设计与开发,这套系统简洁方便,可靠性好,而且代替了纸质答题人工判卷,更加方便老师的管理[1]。这套系统可以记录每年的试卷,各种类型的考题,解除了以往老师们要翻阅各种书籍来出题的麻烦。同时也解决了用纸来记录学生成绩的麻烦,更方便老师和同学们查阅成绩,查看考试安排。1.2需求分析首先,因为考试是面向特定的某些对象的,所以考试者进入系统应该进行身份验证。考试者进入考试系统后,应该能根据自己的需要进行个人信息的修改,考试系统的进入,以及考分的查看。在线考试与一般的单机考试是不同的。鉴于考试环境一般为机房,考试者之间的距离很近,为了在线考试做到规范,对于每个应试者来说,试卷的试题和题量都应是相同的,但试题并不相同。在线考试基于网络环境,试卷应该从服务器的数据库随机抽取试题后动态生成的。另外,系统还应该对考试时间进行控制,时间到了会要求考试者交卷。考试者选择答案提交后,应该由计算机自动判卷,得到成绩后显示出来。考试完毕后,可以返回登录界面或继续考试。此外,用户还应能进行远程注册。主要功能: 一、用户注册:用户可以进行注册,注册时,已注册过的用户名不能被重复注册。注册成功后根据不同的用户类型进行登录。用户类型分为:管理员、教师和学生三类。用户登录时根据不同的用户类型进入不同的操作界面。 二、用户信息的修改:用户可以在根据需要修改密码,修改密码前要输入旧密码,旧密码输入正确才可修改密码,密码修改成功后要返回登录界面从新登录。同时也可以查看自己的注册信息。 三、用户信息的管理:管理员可以增加、删除、修改用户。同时修改用户类型,赋予用户不同的权限。 四、试题库管理:教师可以对选择、判断、填空、问答题四种题型试题库进行管理,功能包括增加试题、删除试题、修改试题。同时还可以增加科目。 五、试卷生成:教师可以指定试卷的所属科目、试卷编号和试卷包含的各题型的数量,从试题库里随机或按指定方式抽取试题生成一份原始试卷。1.3开发环境开发所用机器是台式机;所配置的系统为windowsXP系统;开发所用的数据库为:MicrosoftSQLserver2000数据库;开发工具为MicrosoftVisualStudio2005开发工具;本软件为C/S模式。所用的开发语言为VisualBasic语言。C/S结构设计本软件的优势:(1)应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序[2]。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器[3]。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则做出应答,送回结果,应用服务器运行数据负荷较轻[4]。(2)数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则[5]。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作[6]。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。

第2章系统设计2.1系统总体示意图题库管理系统管理员操作界面题库管理系统管理员操作界面教师操作界面学生操作界面个人密码修改用户信息修改退出退出个人密码修改试题管理科目添加试题生成个人密码修改退出图2-1系统总体示意图2.2系统数据流图要画出系统数据流图,就要先进行数据分析,然后根据数据分析画出数据流图,分析出数据字典。2.2.1数据分析用户登录题库管理系统前首先要进行注册,注册信息会保存到用户表里面。注册成功后根据相应的用户类型登录系统。进入不同的用户操作界面。管理员可以对个人密码进行修改,也可以对所有用户的信息进行修改、增加、删除操作,最后退出系统。教师可以对个人密码进行修改,有添加科目的权限,添加的科目将保存在科目信息表中。同时对题库有管理权限,可以对试题进行增加、修改、删除,试题信息将根据题型分别保存在选择题、填空题、判断题、问答题四个不同的表中。在考试到来的时候教师可以生成试卷,生成试卷时教师选择试卷科目,试卷编号,各题型的数量,系统会根据这些信息自动生成一份试卷保存到试卷表中。最后退出系统。学生进入系统后可以进行考试,考试结束后可以查看个人成绩,考试成绩存入考试成绩表中。学生可以进行个人密码修改,最后退出系统。2.2.2数据流图根据上述的数据分析,找出数据流动方向和存储过程。系统包括三个外部实体包括:管理员、教师、学生。系统包括8个主要处理:用户注、登录系统、个人密码修改、添加科目、试题生成、试题添加修改删除、考试、修改用户信息。系统包括六个主要的信息表:用户信息表、试卷信息表、选择题、填空题、判断题、问答题。数据流图如图2-2所示:图2-2题库管理系统数据流图2.2.3数据字典数据字典是系统分析阶段的重要文档,它清楚地定义与详细地解释了数据流程图上未能详细表达的内容,同时它能够帮助分析员组织数据,是同用户交谈的极好工具[3]。此外,数据字典记载着每个数据项的关键条目,从中可以检查了各数据元素的详细内容或漏掉的数据元素[3]。根据数据分析和数据流图写出相应的数据字典。(1)基本数据项:名称:题型简述:试题的类型,分为四种,选择题、填空题、判断题、问答题。名称:题型简述:试题的类型,分为四种,选择题、填空题、判断题、问答题。类型:C长度:10个字符名称:科目简述:课程的名称类型:C长度:20个字符名称:创建时间名称:创建时间简述:每一个试题被写进数据库的时间。类型:C长度:10个字符名称:题号简述:每种类型的试题在相应的表中存储的编号。类型:C长度:10个字符(2)数据流:名称:试题添加删除修改名称:试题添加删除修改简述:修改题库中的试题内容。来源:题库中试题/从新输入的试题。去向:相应类型的题库。组成:题号+题型+内容+创建时间名称:注册简述:用户进入系统前要进行注册。来源:用户。去向:用户信息表。组成:用户名+密码+学号+所在院系 (3)数据存储:名称:试卷名称:试卷简述:他是考试功能的基础,是从试题库抽出一些各类型的题目,组成一张合适的试卷,供学生考试使用。流出的数据流/去向:各类试题题库/学生考试。组成:题号+类型+内容+创建时间+科目(4)处理逻辑:名称:生成试卷名称:生成试卷简述:根据老师的需要,从题库中随即抽取相应科目相应数量的试题,组成一张试卷。输入:试题类型,数量,科目。来源:试题中的题库。逻辑处理:查出要选择科目相应试题类型的数量,用试题数量除以试卷题量,向上取整,为每一组试题的数量,然后用随即函数从每一组中取出一道题来组成试卷。试题组数=试题数量每组试题数=相应类型试题数量/试题数量在每组中用随机数取出一道题。输出:一张试卷。去向:试卷表。2.3数据库设计数据库设计是系统设计中的重要组成部分,模块的功能实现都离不开数据库的支持,在明确功能模块与数据流程之后,下一步要进行的就是数据库的设计。数据库技术是信息资源管理最有效的手段[4]。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。在本系统中,所有的任务均是以数据库为中心而实现的,从信息录入、信息查询、信息修改、信息维护、密码修改等操作都涉及到数据库。一个成功的数据库设计不但能够极大的提高系统的整体性能,提高开发效率和开发质量,而且方便了日后系统的进一步升级和扩展。所以要在初步设计的基础上,通过对数据库进行优化,使其达到以下目标;数据库能准确的表示业务数据;数据库容易使用和维护;数据库对最终用户的响应时间合理;便于数据库结构的改进;便于数据检索和修改;有效的安全机制确保数据安全;冗余数据最少;便于数据备份和恢复;数据库结构对最终用户透明。题库管理系统E_R图如图2-3所示:图2-3题库管理系统E_R图用户实体E_R图如图2-4所示:图2-4用户实体E_R图科目实体E_R图如图2-5所示:图2-5科目实体E_R图判断题实体E_R图如图2-6所示:图2-6判断题实体E_R图填空题实体E_R图如图2-7所示:图2-7填空题实体E_R图问答题实体E_R图如图2-8所示:图2-8问答题实体E_R图选择题实体E_R图如图2-9所示:图2-9选择题实体E_R图试卷实体E_R图如图2-10所示:图2-10试卷实体E_R图根据E_R给题库管理系统建立数据库exammessage。并在数据库的基础上建立userform、examselect、examjudge、examquestion、examfill、cs、sj等7个基本表。(1)userform表。此表包括:用户名、密码、用户类型、姓名、性别、系别和学号七个字段。如表2-1所示:表2-1用户信息表(userform)列名数据类型长度允许空说明userid(主键)char20否用户名passwordchar20否密码usertypechar20否用户类型namechar20否姓名sexchar10否性别sdeptchar50否系别snochar20否学号(2)sj表。此表包括:试卷编号、课程名、题号、题目、答案和题型六个字段。如表2-2所示:表2-2试卷表(sj)列名数据类型长度允许空说明bno(主键)char20否试卷编号cname(外键)char20否课程名sjnochar10是题号sjnamechar100是题目sjanswerchar50是答案sjtypechar20是题型(3)examjudge表。此表包括:题号、课程名、题目、答案、题型五个个字段。如表2-3所示:表2-3判断题表(examjudge)列名数据类型长度允许空说明jno(主键)char10否题号cname(外键)char20否课程名jnamechar50是题目janswerchar5是答案jtimechar10是创建时间jtypechar20是题型(4)examfill表。此表包括:题号、课程名、题目、答案、题型五个字段。表2-4填空题表(examfill)列名数据类型长度允许空说明jno(主键)char10否题号cname(外键)char20否课程名jnamechar50是题目janswerchar50是答案JtimeChar10是创建时间jtypechar20是题型(5)examquestion表。此表包括:题号、课程名、题目、答案、题型五个字段。如表2-5所示:表2-5问答题(examquestion)列名数据类型长度允许空说明jno(主键)char10否题号cname(外键)char20否课程名jnamechar200是题目janswerchar50是答案jtypechar20是题型(6)examselect表。此表包括:题号、课程名、题目、答案、题型、A选项、B选项、C选型、D选项九个个字段。如表2-6所示:表2-6选择题(examselect)列名数据类型长度允许空说明jno(主键)char10否题号cname(外键)char20否课程名jnamechar50是题目janswerchar10是答案aselectionchar50是A选项bselectionchar50是B选项cselectionchar50是C选项dselectionChar20是D选项jtypeChar20是题型(7)cs表。此表包括:课程号、课程名两个字段。如表2-7所示:表2-7科目表(cs)列名数据类型长度允许空说明cno(主键)int4否课程号cname(主键)char20否课程名

2.4功能模块图根据系统总体结构,功能分析,可以将系统的功能模块划分为三个大模块。主要是管理员模块、教师模块和学生模块。在这些模块中教师模块为主要模块。题库管理系统管理员模块教师模块学生模块个人密码修改模块用户信息管理模块退出模块退出模块个人密码修改模块试题管理模块科目添加模块试题生成模块个人密码修改模块退出模块题库管理系统管理员模块教师模块学生模块个人密码修改模块用户信息管理模块退出模块退出模块个人密码修改模块试题管理模块科目添加模块试题生成模块个人密码修改模块退出模块用户信息添加模块用户信息修改模块用户信息删除模块试题添加模块试题修改模块试题删除模块试题查询模块图2-11系统功能模块图

第3章系统实现3.1系统登录界面用户进入系统的首界面,用户在用户名后面的textbox中输入用户名,在密码后边的textbook中输入密码,输入密码是密码显示“*”保证了密码的安全性,系统会根据用户输入的密码和用户名还有用户类型到数据库查找,如果有错误,系统会提示用户从新输入,用户输入正确系统会根据用户类型自动跳转到相应的页面并将用户名传递过去。当用户点击注册时,系统会跳转到注册界面。如图3-1所示:图3-1系统登录界面主要代码实现如下:DimcmdAsNewOleDbCommand(sql,conn)DimdrAsOleDbDataReader=cmd.ExecuteReader()Ifdr.Read()ThenIfusertypeIs"管理员"Thenfm=Newadmin()fm.parentg=Mefm.uid=userid1fm.Visible=TrueElseIfusertypeIs"教师"Thenfm1=Newteacher()fm1.uid=userid1fm1.parentt=Mefm1.Visible=TrueElseIfusertypeIs"学生"Thenfm2=Newstudent()fm2.parentw=Mefm2.uid=userid1fm2.Visible=TrueEndIfMessageBox.Show("登录失败,用户名或密码错误!请从新登陆!","登陆失败",MessageBoxButtons.OK)EndIf3.2系统注册界面没有账号的用户进入系统之前要先到注册界面进行注册,注册成功后才能进入系统。用户必须按照要求正确填写注册信息。注册时用户名不能重复,如果用户名已被注册系统会提示用户“此用户名已被注册”。用户输入用户名时必须为3到6个字母或数字。密码必须在6-16位之间,如果密码少于6位或者多于16位,系统会提时用户“您输入的密长度不符合要求,请从新输入”。且用户输入确认密码的时候必须要于上面的密码一致,如果不一致的话系统会提示用户“两次输入的密码不一致,请重新输入”。下面的信息也请正确填写,方便以后管理员管理。当用户信息输入正确时,注册成功,系统会提示用户“注册成功,请登录系统”。重置按钮可以重置输入的信息从新输入。方便用户从新注册。点击返回登录界面按钮,系统将返回到系统登录首届面。注册界面如图3-2所示:图3-2系统注册界面系统注册界面的主要代码如下:Ifpassword.Length>=6Andpassword.Length<=16ThenIfpassword=password1ThenIfdr.Read()Or(userid.Length<3Oruserid.Length>6)ThenMessageBox.Show("用户名已被注册或用户名不符合要求,请输入新的用户名!","用户名错误",MessageBoxButtons.OK)Elsecmd.ExecuteNonQuery()MessageBox.Show("注册成功","注册信息",MessageBoxButtons.OK)EndIfElseMessageBox.Show("两次密码输入不一致!","密码错误",MessageBoxButtons.OK)EndIfElseMessageBox.Show("密码长度不够6位或者超过16位","密码错误",MessageBoxButtons.OK)EndIf3.3教师主界面教师主界面,此界面主要实现界面跳转功能,通过单击不同功能的按钮,跳转到相应功能的界面如图3-3所示:图3-3教师管理界面3.4试题管理界面试题管理界面,是方便老师管理试题的界面,是系统的主要界面之一,界面展示的是查询的界面。如图3-4所示:图3-4试题管理界面下面一段代码是试题管理中查询功能的部分代码:sql1="select*fromexamselectwherecname='"+cname+"'andextime='"+adtime+"'"Dimcmd2AsNewOleDbCommand(sql1,conn)DimdrAsOleDbDataReader=cmd2.ExecuteReader()Ifdr.Read()ThenDimcmdAsNewOleDbCommand(sql1,conn)DimadpAsNewOleDbDataAdapter(cmd)DimdsAsNewDataSet()adp.Fill(ds,"link")DataGridView1.DataSource=ds.Tables("link").DefaultViewDataGridView1.Columns(0).HeaderText="试题编号"DataGridView1.Columns(0).DisplayIndex=0DataGridView1.Columns(7).Visible=FalseElseMessageBox.Show("查询有错误,请输入正确的查询条件!","查询错误",MessageBoxButtons.OK)EndIf拼接sql语句,用来从数据库查询相应的数据信息。查询后如果数据库中不存在此类信息怎提示“查询错误请输入正确的查询条件”。如果有信息,则存入ds中,然后与datagridview绑定,绑定后修改表头的名字和表头的索引。将不需要显示的信息隐藏。当查寻出试题以后点击删除按钮删除想要删除的试题,然后系统自动再次查询信息,然后与datagridview绑定,实现数据自动刷新。试题管理界面中的试题添加功能的代码如下:IfComboBox1.SelectedItem="选择题"ThenDimfmAsselectafm=Newselecta()fm.parentww=Mefm.Visible=TrueMe.Visible=FalseEndIf此段代码是根据用户选择的题型进入相应题型的试题添加界面,以选择题为例选择题添加的界面如图3-5所示:图3-5选择题添加此选择题添加界面的主要代码如下:IfRadioButton1.CheckedThenanswer1=RadioButton1.Text.Trim().ToString()ElseIfRadioButton2.CheckedThenanswer1=RadioButton2.Text.Trim().ToString()ElseIfRadioButton3.CheckedThenanswer1=RadioButton3.Text.Trim().ToString()ElseIfRadioButton4.CheckedThenanswer1=RadioButton4.Text.Trim().ToString()EndIfDimsql1AsString="select*fromexamselectwhereexno='"+exno+"'"Dimsql2AsString="insertintoexamselect(exno,cname,question,aselection,bselection,cselection,dselection,answer,extime)values('"+exno+"','"+cname+"','"+question+"','"+aselection+"','"+bselection+"','"+cselection+"','"+dselection+"','"+answer1+"','"+extime+"')"Dimcmd1AsNewOleDbCommand(sql1,conn)Dimcmd2AsNewOleDbCommand(sql2,conn)DimdrAsOleDbDataReader=cmd1.ExecuteReader()Ifdr.Read()ThenMessageBox.Show("试题编号重复,添加失败!","试题添加",MessageBoxButtons.OK)Elsecmd2.ExecuteNonQuery()MessageBox.Show("试题添加成功!","试题添加",MessageBoxButtons.OK)EndIf此段代码从试题库中查询本题是否存在,如果存在提示用户试题编号重复请重新添加。试题添加成功后会有“试题添加成功的提示”。当一个radiobutton被选中的时候,试题的答案也就被选中。在试题管理界面中,点击修改按钮的时候,系统会自动进入试题修改界面,修改界面和试题添加界面时一样的,代码也只是多了一段查询代码,把查出来的信息显示在界面上。界面显示如图3-6所示:图3-6试题修改界面代码如下:Label11.Text=thenoComboBox1.Text=thenameTextBox2.Text=thetimeTextBox3.Text=thequestionTextBox4.Text=theaTextBox5.Text=thebTextBox6.Text=thecTextBox7.Text=thedtheanswer=theanswer.Trim()Iftheanswer="A"ThenRadioButton1.Checked=TrueElseIftheanswer="B"ThenRadioButton2.Checked=TrueElseIftheanswer="C"ThenRadioButton3.Checked=TrueElseIftheanswer="D"ThenRadioButton4.Checked=TrueEndIf上段代码中的thename,thetime,thequestion等字段,都是通过设置全局变量,从试题管理界面传递过来的。3.5试卷生成界面试卷生成界面如图3-7所示:图3-7试卷生成界面此界面主要用到一个算法思想,用来随机生成试卷,用户输入科目、试卷编号、各类型试题的数量之后。系统先检查题库中是否已经有此事卷如果有则显示试卷内容,并提示“次试卷已经存在。”如果试卷不存在,则根据算法随机生成试题存到数据库中。以随机生成C++科目试卷的选择题为例解释,随机选择选择题的部分代码如下:sql1="select*fromexamselectwherecname='"+cname+"'"Dimcmd1AsNewOleDbCommand(sql1,conn)Dimdr1AsOleDbDataReader=cmd1.ExecuteReader()Whiledr1.Read()num1=num1+1EndWhileFori=0Toselectsum-1Randomize()DimcnumAsInteger=Int((num1/selectsum)*Rnd())+Int((num1/selectsum)*i)Dimtquestion,ta,tb,tc,td,tanswerAsStringtquestion=ds.Tables("1").Rows(cnum)(2).trim().ToString()ta=ds.Tables("1").Rows(cnum)(3).ToString().Trim()tb=ds.Tables("1").Rows(cnum)(4).ToString().Trim()tc=ds.Tables("1").Rows(cnum)(5).ToString().Trim()td=ds.Tables("1").Rows(cnum)(6).ToString().Trim()tanswer=ds.Tables("1").Rows(cnum)(7).ToString().Trim()DimioiAsInteger=i+1DimstrAsString=tquestion+"A."+ta+"B."+tb+"C."+tc+"D."+td+""DimsqlqAsString="insertintosjvalues('"+bno+"','"+cname+"','"&ioi&"','"+str+"','"+tanswer+"','选择题')"DimcmdAsNewOleDbCommand(sqlq,conn)cmd.ExecuteNonQuery()Next在上述代码中“Int((num1/selectsum)*Rnd())+Int((num1/selectsum)*i)”此表达式是核心算法。代码中变量selectsum代表输入的试卷中选择题的数量,变量num1为查处的题库中C++科目的选择题的数量,Randomize()函数时确保每一次随机产生的数时不同的。算法思想是把题库中的题目分成selectsum组,循环selectsum次每次随机数的范围位num1/selectsum。根据for循环,每次产生的随机数加上循环次数*随机数范围,得到的结果就是随机的题目在ds表中的位置,然后从ds表中把数据取出来添加到数据库中3.6科目添加界面在科目添加界面中,主要是对科目的添加,如果题库中已经存在此科目,则提示“科目已存在”,如果科目不存在添加科目后提示科目添加成功。界面如图3-8所示:图3-8科目添加界面主要代码如下:DimconnAsNewOleDbConnection("Provider=SQLOLEDB.1;Password=sa;PersistSecurityInfo=True;UserID=sa;InitialCatalog=exammessage;DataSource=.")DimcnameAsString=TextBox1.Text.Trim().ToString()DimsqlAsString="select*fromcswherecname='"+cname+"'"DimsqllAsString="insertintocs(cname)values('"+cname+"')"DimcmdAsNewOleDbCommand(sql,conn)Dimcmd1AsNewOleDbCommand(sqll,conn)conn.Open()DimdrAsOleDbDataReader=cmd.ExecuteReader()Ifdr.Read()ThenMessageBox.Show("此科目已经存在,请重新添加!","添加信息",MessageBoxButtons.OK)Elsecmd1.ExecuteNonQuery()MessageBox.Show("添加成功!","添加信息",MessageBoxButtons.OK)EndIf3.7个人密码修改界面个人密码修改界面,主要实现修改密码的功能,同时也可查看个人信息。本界面的代码如下:Ifpss=psThenDimsqlAsString="updateuserformsetpassword='"+password1+"'whereuserid='"+uid+"'"DimcmdAsNewOleDbCommand(sql,conn)Ifpassword1.Length>=6Andpassword1.Length<=16ThenIfpassword1=password2Thenconn.Open()cmd.ExecuteNonQuery()ret=MessageBox.Show("修改成功,请从新登陆","修改信息",MessageBoxButtons.OK)Ifret=Windows.Forms.DialogResult.OKThenparentt.Visible=TrueMe.Close()EndIfElseMessageBox.Show("两次密码输入不一致!","密码错误",MessageBoxButtons.OK)EndIfElseMessageBox.Show("密码长度不够6位或者超过16位","密码错误",MessageBoxButtons.OK)EndIfconn.Close()Else当输入旧密码正确的时候,才能修改密码,如果输入的密码错误,则提示输入正确的密码。密码修改完成以后,系统会提示“请退出系统从新登陆”。点击确定以后,系统自动退出到登陆界面。个人密码修改界面如图3-9所示:图3-9个人密码修改界面3.8用户信息管理界面用户信息管理界面是管理员界面的一个重要的功能模块,主要实现对用户信息的增删改查。在这里管理员可以看到所有用户的信息,方便管理员对用户的管理。用户信息管理界面如图3-10所示:图3-10用户信息管理界面当管理员要增加用户时,按要求填好下面的textbox然后点击增加按钮就可以添加新的用户信息了,如果用户信息存在或者用户的密码不满足要求则系统会提示出错要求从新输入用户信息。此功能的代码如下:DimconnAsNewOleDbConnection("Provider=SQLOLEDB.1;Password=sa;PersistSecurityInfo=True;UserID=sa;InitialCatalog=exammessage;DataSource=.")DimsqlAsString="insertintouserformvalues('"+userid+"','"+password+"','"+usertype+"','"+name+"','"+sex+"','"+sdept+"','"+sno+"')"DimcmdAsNewOleDbCommand(sql,conn)conn.Open()DimsqllAsString="select*fromuserformwhereuserid='"+userid+"'"Dimcmd1AsNewOleDbCommand(sqll,conn)DimdrAsOleDbDataReader=cmd1.ExecuteReader()Ifpassword.Length>=6Andpassword.Length<=16ThenIfpassword=password1ThenIfdr.Read()Or(userid.Length<3Oruserid.Length>6)Thenret=MessageBox.Show("用户名已被注册或用户名不符合要求,请输入新的用户名!","用户名错误",MessageBoxButtons.OK)Ifret=Windows.Forms.DialogResult.OKThenEndIfElsecmd.ExecuteNonQuery()MessageBox.Show("用户添加成功成功","注册信息",MessageBoxButtons.OK)DimadpAsNewOleDbDataAdapter("select*fromuserform",conn)DimdsAsNewDataSet()adp.Fill(ds,"1")DataGridView1.DataSource=ds.Tables("1").DefaultViewEndIfElseret=MessageBox.Show("两次密码输入不一致!","密码错误",MessageBoxButtons.OK)Ifret=Windows.Forms.DialogResult.OKThenclrr()EndIfEndIfElseret=MessageBox.Show("密码长度不够位或者超过位","密码错误",MessageBoxButtons.OK)Ifret=Windows.Forms.DialogResult.OKThenclrr()EndIfEndIf管理员选中一行后,修改列值,改完以后点击修改按钮就能实现对用户信息的修改。此功能代码如下:DimconnAsNewOleDbConnection("Provider=SQLOLEDB.1;Password=sa;PersistSecurityInfo=True;UserID=sa;InitialCatalog=exammessage;DataSource=.")DimsqlAsString="updateuserformsetpassword='"+password+"',usertype='"+usertype+"',name='"+name+"',sex='"+sex+"',sdept='"+sdept+"',sno='"+sno+"'whereuserid='"+userid+"'"DimcmdAsNewOleDbCommand(sql,conn)cmd.ExecuteNonQuery()DimadpAsNewOleDbDataAdapter("select*fromuserform",conn)DimdsAsNewDataSet()adp.Fill(ds,"1")DataGridView1.DataSource=ds.Tables("1").DefaultView当管理员要删除一个用户的信息的时候只要选中用户信息所在的行,然后点击删除按钮,就可以删除用户的信息。此部分功能代码如下:DimconnAsNewOleDbConnection("Provider=SQLOLEDB.1;Password=sa;PersistSecurityInfo=True;UserID=sa;InitialCatalog=exammessage;DataSource=.")DimuseridAsString=DataGridView1.SelectedRows(0).Cells(0).Value.ToString()DimsqlAsString="deletefromuserformwhereuserid='"+userid+"'"DimcmdAsNewOleDbCommand(sql,conn)cmd.ExecuteNonQuery()DataGridView1.Rows.Remove(DataGridView1.CurrentRow)conn.Close()

第4章系统测试4.1软件测试基础理论软件测试是在软件基本设计完成后,根据软件的要求对软件进行的一系列系统的测试,从各方面来测试系统的健壮性,容错性和正确性。在软件测试阶段,我们希望尽量多的找出软件的错误,进而对软件进行优化改进,是软件变得更加适合用户使用。尽量满足用户的需求。软件测试是软件开发到最后的重要阶段,好的测试方法能够尽量多的测出软件的错误,找出软件的不足。要设计出好的测试方案,我们就要了解软件的具体功能,就要认真分析需求分析、逻辑方案、系统总体设计和详细设计。从而设计出优秀合理的测试软件。在测试技术中包括白盒测试、黑盒测试和灰盒测试三种主要的测试技术。黑盒测试技术是把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适合的接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。黑河测试又称功能测试。4.2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论