基于NET的驾校理论考试模拟系统设计与实现Word文件下载.docx
《基于NET的驾校理论考试模拟系统设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于NET的驾校理论考试模拟系统设计与实现Word文件下载.docx(36页珍藏版)》请在冰点文库上搜索。
金盾驾校理论模拟考试系统采用B/S模式进行设计,金盾驾校的学员可以使用该系统进行模拟考试,从而了解自己对驾驶员理论知识的掌握情况。
2系统概述
2.1开发目的
此系统采用B/S模式进行设计,开发目的:
一方面是为了提高理论考试的过关率以及掌握理论知识的效率;
同时把驾驶的理论所有试题保存到数据库中,通过互联网方便地进行模拟考试,还能让学员对交通法规和法律知识有更多的了解。
2.2开发环境
此系统是在windows7操作系统下,使用MicrosoftVisualStudio2010作为开发工具进行开发的。
数据库使用的是MicrosoftSQLServer2008。
3系统调研及可行性分析
3.1系统调研
经过长期调研及亲自参与金盾驾校的工作流程,结合本人的专业知识,得出以下调研结果。
1).该驾校还未对学员的科目一理论部分的知识掌握情况做出系统的管理;
2).该驾校的信息发布主要是采用:
学校发送给教练,再由教练通知学员。
这样延缓了信息的传输速度;
3).该驾校的知名度还不够高,本系统可以直接提高该驾校的宣传力度,所以,在设计新系统时,要把这些因素考虑在内。
3.2可行性分析
3.2.1经济可行性
由于开发此系统所需的硬件(计算机及相关硬件)和软件环境(ASP.NET2010+SQL2008),市场上都容易购买到或从相关网站下载,系统成本主要集中在本管理系统的开发与维护上,对学员不造成过重的经济负担。
而一旦此系统投入使用,不仅可以减少该驾校的工作强度,提高工作效率,而且方便了学员,打破了传统的驾驶员模拟考试模式,极大限度的方便了学员,也为系统的进一步推广创造了条件,而且,目标系统不是很复杂,开发的周期较短,人员经济支出不大,所节省的大量人力、财力产生的效益将远远大于本管理系统的开发成本,所以从经济方面讲开发此系统是可行的。
3.2.2技术可行性
本系统的开发基于B/S模式,主要包括前端应用程序的开发以及后台数据库的建立和维护两个方面。
对于前者要求应具备功能完备、易于使用等特点,而对于后者则要求能建立数据一致性和完整性强、数据安全性好的库。
本系统拟采用ASP.NET和SQLsever2008分别作为前台和后台的开发工具。
ASP.NET是建立在通用语言运行时(CLR)上的应用程序框架。
他用来在服务器端构建功能强大的web应用程序。
ASP.NET提供了世界级水平的开发工具支持。
在VisualStudio2010的集成开发环境(IDE)中,ASP.NET框架由丰富的工具箱和设计器组成。
所见即所得的(WYSIWYG)编辑方式、拖放服务器控件、以及自动部署,仅仅是这一强大工具所提供的一少部分功能。
ASP.Net强大而富有弹性。
由于ASP.NET是基于(CLR)的,因此整个.Net平台的强大和富有弹性,同样可以应用于web应用程序开发者。
.NET框架的类库、消息以及数据访问解决方案,都可以无缝集成到web。
ASP.NET也是语言中立的,因此你可以选择你最熟悉的语言,或者通过几种语言来共同完成一个应用。
SQLsever2008作为微软在Windows系列平台上开发的数据库,一经推出就以其易用性得到了很多用户的青睐,相信大多数将自己的业务建立在Windows平台上的用户都会对它有相当的亲切感。
区别于FoxPro、Sql2000小型数据库,SQLsever2008是一个功能完备的数据库管理系统。
它包括支持开发的引擎、标准的SQL语言、扩展的特性(如复制、OLAP、分析)等功能。
而像存储过程、触发器等特性,也是大型数据库才拥有的。
3.2.3操作可行性
开发语言:
ASP.NET(C#)、HTML
开发平台:
Visualstudio2010
数据库:
SQLServer2008
本系统基于ASP.NET采用C#编程语言进行编写,ASP.NET是Microsoft公司推出的新一代建立Web应用程序开发平台,可以把程序开发人员的工作效率提升到与其他技术无法比拟的程度,与Java、PHP、ASP3.0、Perl等相比,ASP.NET具有方便性、灵活性、性能优、生产效率高、安全性高、完整性高、及面向对象等特性。
操作简单,入门比较低,对于数据库的连接以及实现也相对的比较容易操作,在建立Web网页时,可以使用ASP.NET服务器控件来建立常用的UI(用户界面)元素,并对它们进行编程来完成一般的任务。
即该平台的开发会不会在社会上引起侵权或其它责任问题。
因为该平台是作为毕业设计与商业无关,又因为是自主开发设计,因此不会构成侵权,在法律上是可行的。
综上所述,金盾驾校模拟考试的开发是必需的,是可行的。
4系统总体设计
4.1系统功能设计
根据金盾驾校理论考试模拟系统的逻辑划分,此系统一共七有个模块,分别是新闻发布模块,留言板模块,学员管理模块,试题管理模块,模拟考试模块,软件下载模块及站内其他信息管理模块。
(基本功能结构图如图1、前台系统功能结构图2所示、后台系统功能结构图3所示)
图1 基本功能结构
1)新闻发布模块
学员浏览新闻、评论新闻。
管理员发布新闻,修改新闻,删除新闻;
新闻评论的删除;
新闻类型的添加,修改,删除。
2)留言板模块
学员发布留言,查看留言。
管理员审核留言,回复留言,删除留言。
3)学员管理模块
学员登录查看个人信息,修改密码。
管理员添加学员,修改学员信息,删除学员。
4)试题管理模块
试题的添加,修改,删除。
5)模拟考试模块
模拟考试,章节练习,顺序练习,随机练习,错题练习等功能
6)软件下载模块
考试软件的下载和最新题库下载。
7)站内其他信息管理模块
对金盾驾校的详细进行管理,如教练的信息管理。
图2 系统功能结构图(前台)
图3 系统功能结构图(后台)
4.2系统功能模块划分
系统整体设计如图4所示,此系统可以划分为业务逻辑层、数据访问层和数据库。
图4 系统设计图
数据库、数据访问层和业务逻辑层的具体描述如下:
1)数据库位于系统最底层,它存储系统的所有数据。
2)数据访问层建立在数据库之上,应用程序通过该层访问数据库。
数据访问层一般封装数据库的选择、添加、更新、删除等操作。
同时还为业务逻辑层提供访问数据库的接口或函数等。
该层直接与数据库相关联,同时又为业务逻辑层服务,所以数据库访问层设计的好坏关系到整个系统的成败。
下面以新闻操作类(newss类)为例,介绍数据访问层的实现方法。
newss类实现访问数据库的方法如下:
publicDataSetSelectNewNews()从新闻表tb_news中选择最新十条新闻。
publicboolupdate_news(Newsn,intid,inthit)更新新闻编号为id的新闻的访问量及其他信息。
publicboolInsert_news(Newsn)公有方法,向新闻表中添加一条新闻。
publicDataSetSelectHotNews()从新闻表tb_news中选择最热门的十条新闻。
publicbooldel_news(intid)从新闻表tb_news中删除新闻编号为id的新闻。
publicDataSetSelect_no(intid)从新闻表tb_news中查询新闻编号为id的新闻。
publicDataSetSelectAll()从新闻表tb_news中查询出所有记录。
3)业务逻辑层包括模拟考试、学员管理、学员登录等业务逻辑,它一般由Web页面实现,如系统登录页面login.aspx、走进金盾页面jindun_going.aspx、新闻中心页面jindun_news.aspx等。
5数据库设计
5.1总体设计
此系统所有SQLServer2008作为应用程序的数据库,此系统的实际需求,系统至少需要实现模拟考试,用户管理和新闻发布等功能,因此此系统数据库所用到的一些用户表(tb_user、tb_admin),试题表(question1),错题表(tb_cuoti),成绩表(tb_chengji),新闻表(tb_news),新闻类型表(tb_news_type),新闻评价表(Tb_news_re),留言表(tb_Lyan),回复留言表(tb_reLyan)等。
5.2数据库概念结构设计
从功能模块细化分析中,设计出各种实体,以及它们之间的关系,为后面的数据库表设计打下基础。
这些实体包含了各种属性,通过相互之间的作用形成数据的流动。
设计规划出的实体:
学员实体、新闻实体、留言实体、试题实体、成绩实体、错题实体、新闻类型实体、教练实体等。
1)实体之间关系的E—R图,如图5所示:
图5 实体关系E—R图
2)学员信息实体E—R图,如图6所示:
图6 学员实体E—R图
3)试题实体的E—R图,如图7所示:
图7 试题实体E—R图
4)错题实体的E—R图,如图8所示:
图8 错题实体E—R图
5)学员成绩的E—R图,如图9所示:
图9 成绩实体E—R图
6)新闻实体的E—R图,如图10所示:
图10 新闻实体E—R图
7)新闻类型的E—R图,如图11所示:
图11 新闻类型实体E—R图
8)新闻评论的E—R图,如图12所示:
图12 新闻评论实体E—R图
9)留言实体的E—R图,如图13所示:
图13 留言实体E—R图
10)留言回复的E—R图,如图14所示:
图14 留言回复实体E—R图
11)教练实体的E—R图,如图15所示:
图15 教练实体E—R图
5.3数据库表设计
1)学员表
学员表用于存储系统的用户信息,学员表的字段说明如表1所示。
表1 tb_user表字段说明
编号
字段名
字段类型
字段说明
1
id
int
主键
2
idcard
varchar(18)
身份证号
3
password
varchar(6)
学员密码
4
name
varchar(10)
学员姓名
5
phone
varchar(11)
学员电话号码
6
sex
varchar
(2)
性别
7
address
varchar(100)
地址
8
time
datetime
报名时间
9
img
学员头像
2)试题表
试题表用于存储考试试题,试题表的字段说明如表2所示。
表2 question1表字段说明
st1_no
st1_zhang
章
st1_jie
节
st1_tihao
试题题号
st1_tigan
varchar(300)
试题题干
anwer1
试题选项1
anwer2
试题选项2
anwer3
试题选项3
anwer4
试题选项4
10
st1_answer
试题正确答案
11
st1_image
试题图片
12
st1_type
试题类型(选、判)
13
del
删除标记
3)错题表
错题表用于存储学员回答错了的试题,错题表的字段说明如表3所示。
表3 tb_cuoti表字段说明
username
学员身份证
试题号
4)成绩表
成绩表用于存储学员考试成绩,成绩表的字段说明如表4所示。
表4 tb_chengji表字段说明
chengji
考试成绩
5)新闻表
新闻表用于存储金盾驾校管理员发布的新闻,新闻表的字段说明如表5所示。
表5 tb_news表字段说明
type
新闻类型
title
varchar(50)
新闻标题
content
varchar(MAX)
新闻内容
发布时间
hits
单击次数
6)新闻类型表表
新闻表用于存储新闻的类型,新闻类型表的字段说明如表6所示。
表6 tb_news_type表字段说明
type_id
新闻类型编号
type_name
新闻类型名称
7)新闻评论表
新闻评论表用于存储新闻的评论,新闻评论表的字段说明如表7所示。
表7 Tb_news_re表字段说明
newsid
新闻编号
recontent
回复内容
回复人
回复时间
8)留言表
留言表用于存储学员的留言,留言表的字段说明如表8所示。
表8 tb_Lyan表字段说明
contents
留言内容
留言人
留言时间
9)留言回复表
言回复表用于存储金盾对学员留言的回复,言回复表的字段说明如表9所示。
表9 tb_reLyan表字段说明
lyan_id
留言编号
re_contents
5.4表关系设计
数据库中各个表之间的关系设计如图16所示。
图16 数据库关系图
数据库中各个表之间的关系可以分为四部分:
1)图17:
学员表中的idcard字段和成绩表中的username字段建立1:
n的关系。
2)图18:
学员表中的idcard字段和错题表中的username字段建立1:
n的关系;
试题表中的st1_no字段和错题表中的st1_no字段建立1:
3)图19:
学员表中的idcard字段和新闻回复表中的username字段建立1:
新闻表中的id字段和新闻回复表中的newsid字段建立1:
新闻类型表中的type_id字段和新闻表中的type字段建立1:
4)图20:
学员表中的idcard字段和留言表中的username字段建立1:
留言表中的id字段和回复留言表中的lyan_id字段建立1:
图17 学员表与成绩表数据库关系图
图18 错题表与试题表和学员表数据库关系图
图19 新闻(类型、评论)表与学员表数据库关系图
图20 留言(回复)与学员表数据库关系图
6系统详细设计
6.1系统通用类设计
在应用系统开发过程中多处使用类,如数据库通用类、应用数据库通用类。
6.1.1数据库通用类设计
系统访问数据库专门定义了一个公共类。
该类定义了函数GetRecord(stringXSqlString)返回是否查询到记录以及其析构函数(当对象脱离其作用域时,系统自动执析构函)。
6.1.2应用数据库通用类设计
应用程序使用试题类,继承了数据库通用类设计。
试题类临时存储大量数据。
代码:
///<
summary>
///取出当前所有选择题
/summary>
returns>
返回dataset数据集<
/returns>
publicDataSetSelectAll()
{stringsql="
select*from[question1]where[st1_type]=2"
;
returnbb.GetDataSet(sql);
}
6.2登录界面设计
6.2.1前台学员登录界面设计
学员登录由login.aspx页面实现,它的代码隐藏在login.aspx.cs文件中。
用户登录时应用程序的主要入口。
学员登录是一个验证过程,应用程序首先从数据库获取该学员的信息,如学员身份证和学员密码正确,保存学员身份证和学员密码,然后再进入下一个操作页面,学员登录界面(图21)。
图21 学员登录界面
6.2.2后台管理员登录界面设计
管理员登录由adminlogin.aspx页面实现,它的代码隐藏在adminlogin.aspx.cs文件中。
用户登录时应用程序的主要入口,管理员登录界面(图22)。
图22 管理员登录界面
6.3首页界面设计
6.3.1前台的首页界面设计
前台的首页是由index.aspx页面实现,它的代码隐藏在index.aspx.cs文件中,首页界面(图23)。
6.3.2后台首页界面设计
后台的首页是由adminindex.aspx页面实现,它的代码隐藏在adminindex.aspx.cs文件中,后台的首页界面(图24)。
图23 首页
图24 后台的首页界面
6.4模拟考试
模拟考试模块由章节练习、随机类型、顺序练习、模拟考试、错题练习5部分组成。
学员可随意选着练习模式,进行理论知识学习。
6.4.1章节练习
章节练习由jindun_jiqiaotest.aspx页面实现,它的代码隐藏在jindun_jiqiaotest.aspx.cs文件中,根据你选择的不同章节进行强化训练,章节练习界面(图25)。
图25 章节练习
章节练习的部分代码:
protectedvoidBT_up_Click(objectsender,EventArgse)
{this.LB_answer.Text="
"
//上一题
i--;
this.LB_total.Text=i+1+"
/"
+dataset.Tables[0].Rows.Count;
s_img(i);
//有无图片
s_test(i);
//判断是判断题还是选择题
if(i<
dataset.Tables[0].Rows.Count-1)//不是最后一题
this.BT_down.Enabled=true;
if(i==0)//第一题
this.BT_up.Enabled=false