驾校管理系统
以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
建立用例模型
需求分析阶段的主要工作是建立待开发系统的模型,使用用例是建立这种模型的合适方法,即建立用例模型[4]。用例提供了一种系统而直观的方法来捕获功能性需求,并特别强调要为每个用户或外部系统增值。
用例模型可以由用例视图来表示。按照抽象层次,用例视图可以划分为系统层(最高层)、子系统层和对象类层(最低层),系统层用例视图描述系统提供的全部服务,子系统层用例视图描述了子系统提供的服务,它的交互者可以是其他的子系统或高一层的活动者,对象层的用例视图描述对象类提供的功能片或操作,它的交互者可以是其他对象类或高一层活动者[5]。
用例视图(Use Case View)是被称为参与者的外部用户所能观察到的系统功能的模型图。用例是系统中的一个功能单元,可以被描述为参与者与系统之间的一次交互作用。用例模型的用途是列出系统中的用例和参与者,并显示哪个参与者参与了哪个用例的执行[6]。
2.3.1 确定用例角色
主角表示跟软件系统交互的外部对象,它既可以是用户,也可能是外部的其他软件系统。识别系统的主角是实现用例模型中的关键步骤之一。经过对驾校管理系统的分析讨论,确定本系统的角色主要有:学员、教练和管理员。
2.3.2 建立角色用例关系图
用例表示主角使用系统完成一个进程时发生的一组事件。用例通常是较大的进程,而不是单个步骤或事务。识别、详述用例是用例建模过程中最重要的活动。顺着主角出发,通过考察主角和系统的交互,可以识别出主要用例。根 据业务流程,驾校管理系统可以分为6个子用例,分别是报名管理用例,迷你考试用例,上车分车用例,意见反馈用例,信息发布用例和系统/数据库维护用例。
系统详细设计
驾校管理系统需求分析和总体设计的结果作为系统详细设计的基本输入,在详细设计过程中,以用例为驱动,以构架作为中心,针对不同用例和子系统(层)的功能和规格展开系统的详细设计[10]。而系统的详细设计结果又将作为下一阶段――编程实现的基本输入。
3.3.1 系统的顺序图
顺序图是一种动态行为交互图,顺序图的重点是完成某个行为的对象类和这些对象类之间所传递的消息的时间顺序[15]。顺序图描述的是用例实例,一个用例是多个用例实例的抽象,所以一个用例描述多种事件流;正常的事件流,可选的事件流,异常的事件流。对于一个用例,要画多个顺序图来描述每一种用例实现。系统在用例描述的基础上,对每一个用例的具体事件流通过系统的顺序图进行描述,完成系统的行为建模。系统数据库的连接
有实验对.NET框架中的三种数据访问技术及其效率进行了比较,其结论是使用SQL Server 7.0及以后的版本时,无论时数据库连接、数据读取还是数据更新方面,ADO.NET都是最快速的。所以本系统采用ASP.NET和ADO。NET的结合来开发。ADO.NET数据库连接的具体实现可以概括为以下几个步骤: copyright think58
1. 引用ADO.NET数据访问的命名空间。
2. 建立与数据库的连接。为了方便维护系统和增强系统的可移植性,我们在web.config文件中新增了一个记录数据库访问字段的项。
然后在与有数据库操作的各页里引用Syetem.Configuration命名空间以读取web.config文件中存储的数据库访问字段。
3. 在建立连接数据表的时候,采用了两个方法:
1) 对数据表做简单的调用,不需要对表进行修改的页面一般才用.NET自带的数控连接控件。
2) 对表做复杂的调用,并需要对表进行数据的修改时,使用ConnectionString对象建立连接。
4. 在此两种数据连接方式基础上,执行SQL语句,返回所需的数据集。
4.2 系统各功能模块的实现
4.2.1 前台页面
前台页面默认显示驾校安排的考试实际和相关新闻,要求显示发布时间。直接使用GridView控件和SqlDataSource控件进行调用。
1. 前台页面-线上报名模块
线上报名模块比较简单,主要完成学员在线报名功能。他把学员的报名资料输入到数据库中。它要求学员如实填写资料,包括姓名,性别,年龄,身份证号码,家庭住址,联系电话和E-mail。其中除了E-mail都是必须填写的内容,而且都要符合标准格式,如身份证号码要满18位且有效。有些项还要有特殊限制,如年龄,《中华人民共和国道路交通法》规定申请驾驶执照人必须年满18周岁且70周岁以下。这些填写的合法性由RequiredFieldValidator控件和RegularExpressionValidator控件完成判断。 think58好,好think58 [资料来源:www.THINK58.com]
填写完毕后,点击提交,会转到提示页面。提示内容为“报名成功,请在即日起7日内到学校教务处缴纳学费!否则7日后,管理员将删除报名资料。”
此外在提交的同时,系统将自动在学生资料数据表中添加一些驾校管理方面数据的默认值,如字段money表示学员是否交费,此字段的默认值为0,当交费后,由管理员将其改为1。应用SQL语句“INSERT INTO”进行插入操作,把填写的信息与默认值存入数据库中。
2. 前台页面-模拟题库模块
模拟题库模块是本系统难度最大的地方,它的主要功能就是实现模拟理论考试的功能。要求用户进去该页面的时候系统自动从数据表exambase中随即抽取100道试题,并以每页一题的形式显示在页面上。用户可是通过RadioButton按键来选择答案,通过“上一题”和“下一题”实行翻页功能。在做答完毕后点击提交,系统将统计出分数,显示给用户。
在页面方面选用控件DetailsView来显示调用的数据,此控件比较常用的GridView控件有更好的自定义性,而且显示的格式符合该模块的需求——以纵向的形式显示每条数据。
随即抽取题方面,调用Random类,Random rdm = new Random(),在题库的中产生随机数,对随即数加以判断,不能超过最大的题号。然后将生成的随机数存储在ArrayList [al]中。
计算最后结果方面,系统首先判断使用者是否完全做答完所有的题目。如果没有做完,则提示“请做完所有题目”。如果做完了,则应用ArrayList将用户所选的答案写入列。然后与正确答案进行匹配,如果匹配成功则加1;否则加0。最后显示结果。
3. 前台页面-课程安排模块
课程安排模块主要是供学员查看驾校给自己的课程安排,报考上课时间,上课的教练和教练的一些基本资料。进入该模块后,学员先通过身份证号码进行查询。查询的结果会显示在下方。
此模块较为简单,数据库的调用应用GridView控件,数据库的连接应用SqlDataSource控件。只是在时间的显示上添加了部分代码。首先查询学生资料表student_info中的ampm字段,如果该字段为空的话,显示“尚未安排课程”;如果该字段为0的话,显示“上午”;如果该字段为1的话,显示“下午”。
4. 前台页面-教练课表模块
教练课表模块分为两个部分:教练登陆模块和教练查看课表模块。
教练登陆模块直接使用.NET自带的Login控件。为了解决安全性问题,使用Session来验证身份。此外为方便后面的查询,使用Session传值。
教练查看课表模块痛快前面Session["teacherID"]的传值,调用GridView控件和SqlDataSource控件显示查询结果。
4.2.2 后台页面
后台页面是专为管理员制造的模块,它主要的功能是为管理员提供管理、维护系统和数据库的服务。就需要在使用该模块的前进行登陆。由于权限的设定在制订数据库的时候没有建立管理员的表单,所以管理员的登陆信息完全写在代码中。
其中应用Session["level"] = "admin"是为解决该模块的安全性问题,进行的权限限制,是非管理员不能进去该模块得其他页面。
以后的页面在进入前都将进行Session的判断,看是否由权限访问。Session["level"].ToString() != "admin",如果判断语句为真则可以继续做下面的操作;否之,返回登陆界面。
1. 后台页面-报名管理模块
报名管理模块是针对前台页面中在线报名所设定的。它的主要功能是显示报名学员的资料,并且对其进行认证。
如果报名学员在限期内交费,点击该学员信息后面的“确定交费”按键。系统将在表student_info中查询该学员数据,并应用SQL语句UPDATE将字段money的值由默认的0改为1。
如果报名学员在限期内未交费,点击该学员信息后面的“删除”按键。系统将应该SQL语句DELETE在表student_info中删除该学员的信息。
2. 后台页面-课程管理模块
课程管理模块主要为未安排课程的学员安排课程和教练(分车)。进入该模块的页面,系统根据查询表student_info中字段teacherID是否为空来显示数据。如果为空则显示出来。 think58 [资料来源:http://THINK58.com]
该页面共分为两个表:未安排课程学生和通过桩考但未安排路面学习(项目三)的学生。根据查询字段classend的值来判断分在哪个表中。如果classend的值为0则显示在第一个表中即未安排课程学生;如果classend的值为1则显示在第二各表中即通过桩考但未安排路面学习(项目三)的学生。
点击学员信息后面的“安排课程”按键进入为该学员安排课程的页面。依旧根据classend值显示教练的名单。选择教练和上课时间后点击确定。系统会将表student_info中的字段teacherID值该为选择教练的teacherID;将字段classend值加1;将字段ampm值该为相应的值(上午为0,下午为1)。
3. 后台页面-教练管理模块
教练管理模块主要完成教练注册功能。在该模块的功能页面上,管理员需要填写注册教练的姓名(登陆教练课表时的用户名),密码(登陆教练课表时的密码),年龄,教授科目(桩考或路考)和简介。其中,密码的填写没有设置保密措施,因为该页面只有管理员才能进去,为了减轻代码量和系统的操作,故把注册时的保密措施去除掉。应用SQL语句“INSERT INTO”进行存储数据。同时,把教练信息数据表teacher中字段workor赋值为0(默认值),表示没有教授的学员。
4. 后台页面-考题管理模块
考题管理模块主要完成向模拟考题数据表exambase中输入和存储理论模拟考题。输入题目,A、B、C三个选项和正确选项。题号由数据自动给出。该模块比较简单,与前一个模块基本相同,这里就不做多介绍。 think58.com [资料来源:www.THINK58.com]
5. 后台页面-信息发布模块
信息发布模块主要是完成系统发布信息的功能,包括考试信息和相关驾校的新闻。该模块与前两个的结构和开发方法一致。所要说明的是,该模块会对没条信息数据自动生产一个时间数据,并存储在字段NewsTime中,格式为“yyyy-MM-dd HH:mm:ss”。
6. 后台页面-要求管理模块
要求管理模块主要完成接收学员提出的各项要求和意见,直接使用GridView控件和SqlDataSource控件显示数据表askto中的各条数据。
4.3 本章小结
整个系统的设计和实现难度不是很大,大部分简单的功能的实现都是使用开发工具Microsoft Visual Studio 2005自带的控件。包括常用的数据库显示界面控件GridView控件和数据库连接控件SqlDataSource控件。这些控件的熟练应用给编码实现阶段带来很大的便利。
与此同时应该大量的SQL语句,比如,插入语句INSERT INTO,更新语句UPDATE,删除语句DELETE。这些语句的应用使得系统完成了对数据库的操作。
至于算法的创新,只用在模拟考试题库模块中有体现。由自己独自构思,设计和完成随机选择过程的算法,是此次设计的一个小亮点。也提高这个系统的难度。
需求分析阶段的主要工作是建立待开发系统的模型,使用用例是建立这种模型的合适方法,即建立用例模型[4]。用例提供了一种系统而直观的方法来捕获功能性需求,并特别强调要为每个用户或外部系统增值。
用例模型可以由用例视图来表示。按照抽象层次,用例视图可以划分为系统层(最高层)、子系统层和对象类层(最低层),系统层用例视图描述系统提供的全部服务,子系统层用例视图描述了子系统提供的服务,它的交互者可以是其他的子系统或高一层的活动者,对象层的用例视图描述对象类提供的功能片或操作,它的交互者可以是其他对象类或高一层活动者[5]。
用例视图(Use Case View)是被称为参与者的外部用户所能观察到的系统功能的模型图。用例是系统中的一个功能单元,可以被描述为参与者与系统之间的一次交互作用。用例模型的用途是列出系统中的用例和参与者,并显示哪个参与者参与了哪个用例的执行[6]。
2.3.1 确定用例角色
主角表示跟软件系统交互的外部对象,它既可以是用户,也可能是外部的其他软件系统。识别系统的主角是实现用例模型中的关键步骤之一。经过对驾校管理系统的分析讨论,确定本系统的角色主要有:学员、教练和管理员。
2.3.2 建立角色用例关系图
think58.com
[资料来源:THINK58.com]
用例表示主角使用系统完成一个进程时发生的一组事件。用例通常是较大的进程,而不是单个步骤或事务。识别、详述用例是用例建模过程中最重要的活动。顺着主角出发,通过考察主角和系统的交互,可以识别出主要用例。根 据业务流程,驾校管理系统可以分为6个子用例,分别是报名管理用例,迷你考试用例,上车分车用例,意见反馈用例,信息发布用例和系统/数据库维护用例。
系统详细设计
驾校管理系统需求分析和总体设计的结果作为系统详细设计的基本输入,在详细设计过程中,以用例为驱动,以构架作为中心,针对不同用例和子系统(层)的功能和规格展开系统的详细设计[10]。而系统的详细设计结果又将作为下一阶段――编程实现的基本输入。
3.3.1 系统的顺序图
顺序图是一种动态行为交互图,顺序图的重点是完成某个行为的对象类和这些对象类之间所传递的消息的时间顺序[15]。顺序图描述的是用例实例,一个用例是多个用例实例的抽象,所以一个用例描述多种事件流;正常的事件流,可选的事件流,异常的事件流。对于一个用例,要画多个顺序图来描述每一种用例实现。系统在用例描述的基础上,对每一个用例的具体事件流通过系统的顺序图进行描述,完成系统的行为建模。系统数据库的连接
有实验对.NET框架中的三种数据访问技术及其效率进行了比较,其结论是使用SQL Server 7.0及以后的版本时,无论时数据库连接、数据读取还是数据更新方面,ADO.NET都是最快速的。所以本系统采用ASP.NET和ADO。NET的结合来开发。ADO.NET数据库连接的具体实现可以概括为以下几个步骤: copyright think58
[资料来源:http://THINK58.com]
1. 引用ADO.NET数据访问的命名空间。
2. 建立与数据库的连接。为了方便维护系统和增强系统的可移植性,我们在web.config文件中新增了一个记录数据库访问字段的项。
然后在与有数据库操作的各页里引用Syetem.Configuration命名空间以读取web.config文件中存储的数据库访问字段。
3. 在建立连接数据表的时候,采用了两个方法:
1) 对数据表做简单的调用,不需要对表进行修改的页面一般才用.NET自带的数控连接控件。
2) 对表做复杂的调用,并需要对表进行数据的修改时,使用ConnectionString对象建立连接。
4. 在此两种数据连接方式基础上,执行SQL语句,返回所需的数据集。
4.2 系统各功能模块的实现
4.2.1 前台页面
前台页面默认显示驾校安排的考试实际和相关新闻,要求显示发布时间。直接使用GridView控件和SqlDataSource控件进行调用。
1. 前台页面-线上报名模块
线上报名模块比较简单,主要完成学员在线报名功能。他把学员的报名资料输入到数据库中。它要求学员如实填写资料,包括姓名,性别,年龄,身份证号码,家庭住址,联系电话和E-mail。其中除了E-mail都是必须填写的内容,而且都要符合标准格式,如身份证号码要满18位且有效。有些项还要有特殊限制,如年龄,《中华人民共和国道路交通法》规定申请驾驶执照人必须年满18周岁且70周岁以下。这些填写的合法性由RequiredFieldValidator控件和RegularExpressionValidator控件完成判断。 think58好,好think58 [资料来源:www.THINK58.com]
填写完毕后,点击提交,会转到提示页面。提示内容为“报名成功,请在即日起7日内到学校教务处缴纳学费!否则7日后,管理员将删除报名资料。”
此外在提交的同时,系统将自动在学生资料数据表中添加一些驾校管理方面数据的默认值,如字段money表示学员是否交费,此字段的默认值为0,当交费后,由管理员将其改为1。应用SQL语句“INSERT INTO”进行插入操作,把填写的信息与默认值存入数据库中。
2. 前台页面-模拟题库模块
模拟题库模块是本系统难度最大的地方,它的主要功能就是实现模拟理论考试的功能。要求用户进去该页面的时候系统自动从数据表exambase中随即抽取100道试题,并以每页一题的形式显示在页面上。用户可是通过RadioButton按键来选择答案,通过“上一题”和“下一题”实行翻页功能。在做答完毕后点击提交,系统将统计出分数,显示给用户。
在页面方面选用控件DetailsView来显示调用的数据,此控件比较常用的GridView控件有更好的自定义性,而且显示的格式符合该模块的需求——以纵向的形式显示每条数据。
随即抽取题方面,调用Random类,Random rdm = new Random(),在题库的中产生随机数,对随即数加以判断,不能超过最大的题号。然后将生成的随机数存储在ArrayList [al]中。
think58 [资料来源:http://www.THINK58.com]
计算最后结果方面,系统首先判断使用者是否完全做答完所有的题目。如果没有做完,则提示“请做完所有题目”。如果做完了,则应用ArrayList将用户所选的答案写入列。然后与正确答案进行匹配,如果匹配成功则加1;否则加0。最后显示结果。
3. 前台页面-课程安排模块
课程安排模块主要是供学员查看驾校给自己的课程安排,报考上课时间,上课的教练和教练的一些基本资料。进入该模块后,学员先通过身份证号码进行查询。查询的结果会显示在下方。
此模块较为简单,数据库的调用应用GridView控件,数据库的连接应用SqlDataSource控件。只是在时间的显示上添加了部分代码。首先查询学生资料表student_info中的ampm字段,如果该字段为空的话,显示“尚未安排课程”;如果该字段为0的话,显示“上午”;如果该字段为1的话,显示“下午”。
4. 前台页面-教练课表模块
教练课表模块分为两个部分:教练登陆模块和教练查看课表模块。
教练登陆模块直接使用.NET自带的Login控件。为了解决安全性问题,使用Session来验证身份。此外为方便后面的查询,使用Session传值。
教练查看课表模块痛快前面Session["teacherID"]的传值,调用GridView控件和SqlDataSource控件显示查询结果。
4.2.2 后台页面
think58.com [来源:http://think58.com]
后台页面是专为管理员制造的模块,它主要的功能是为管理员提供管理、维护系统和数据库的服务。就需要在使用该模块的前进行登陆。由于权限的设定在制订数据库的时候没有建立管理员的表单,所以管理员的登陆信息完全写在代码中。
其中应用Session["level"] = "admin"是为解决该模块的安全性问题,进行的权限限制,是非管理员不能进去该模块得其他页面。
以后的页面在进入前都将进行Session的判断,看是否由权限访问。Session["level"].ToString() != "admin",如果判断语句为真则可以继续做下面的操作;否之,返回登陆界面。
1. 后台页面-报名管理模块
报名管理模块是针对前台页面中在线报名所设定的。它的主要功能是显示报名学员的资料,并且对其进行认证。
如果报名学员在限期内交费,点击该学员信息后面的“确定交费”按键。系统将在表student_info中查询该学员数据,并应用SQL语句UPDATE将字段money的值由默认的0改为1。
如果报名学员在限期内未交费,点击该学员信息后面的“删除”按键。系统将应该SQL语句DELETE在表student_info中删除该学员的信息。
2. 后台页面-课程管理模块
课程管理模块主要为未安排课程的学员安排课程和教练(分车)。进入该模块的页面,系统根据查询表student_info中字段teacherID是否为空来显示数据。如果为空则显示出来。 think58 [资料来源:http://THINK58.com]
该页面共分为两个表:未安排课程学生和通过桩考但未安排路面学习(项目三)的学生。根据查询字段classend的值来判断分在哪个表中。如果classend的值为0则显示在第一个表中即未安排课程学生;如果classend的值为1则显示在第二各表中即通过桩考但未安排路面学习(项目三)的学生。
点击学员信息后面的“安排课程”按键进入为该学员安排课程的页面。依旧根据classend值显示教练的名单。选择教练和上课时间后点击确定。系统会将表student_info中的字段teacherID值该为选择教练的teacherID;将字段classend值加1;将字段ampm值该为相应的值(上午为0,下午为1)。
3. 后台页面-教练管理模块
教练管理模块主要完成教练注册功能。在该模块的功能页面上,管理员需要填写注册教练的姓名(登陆教练课表时的用户名),密码(登陆教练课表时的密码),年龄,教授科目(桩考或路考)和简介。其中,密码的填写没有设置保密措施,因为该页面只有管理员才能进去,为了减轻代码量和系统的操作,故把注册时的保密措施去除掉。应用SQL语句“INSERT INTO”进行存储数据。同时,把教练信息数据表teacher中字段workor赋值为0(默认值),表示没有教授的学员。
4. 后台页面-考题管理模块
考题管理模块主要完成向模拟考题数据表exambase中输入和存储理论模拟考题。输入题目,A、B、C三个选项和正确选项。题号由数据自动给出。该模块比较简单,与前一个模块基本相同,这里就不做多介绍。 think58.com [资料来源:www.THINK58.com]
5. 后台页面-信息发布模块
信息发布模块主要是完成系统发布信息的功能,包括考试信息和相关驾校的新闻。该模块与前两个的结构和开发方法一致。所要说明的是,该模块会对没条信息数据自动生产一个时间数据,并存储在字段NewsTime中,格式为“yyyy-MM-dd HH:mm:ss”。
6. 后台页面-要求管理模块
要求管理模块主要完成接收学员提出的各项要求和意见,直接使用GridView控件和SqlDataSource控件显示数据表askto中的各条数据。
4.3 本章小结
整个系统的设计和实现难度不是很大,大部分简单的功能的实现都是使用开发工具Microsoft Visual Studio 2005自带的控件。包括常用的数据库显示界面控件GridView控件和数据库连接控件SqlDataSource控件。这些控件的熟练应用给编码实现阶段带来很大的便利。
与此同时应该大量的SQL语句,比如,插入语句INSERT INTO,更新语句UPDATE,删除语句DELETE。这些语句的应用使得系统完成了对数据库的操作。
至于算法的创新,只用在模拟考试题库模块中有体现。由自己独自构思,设计和完成随机选择过程的算法,是此次设计的一个小亮点。也提高这个系统的难度。
上一篇:饭店节庆活动策划研究
下一篇:网页有害信息过滤系统-毕业设计