1、河北农业大学现代科技学院 本科毕业论文(设计) 题 目: 驾校管理系统的设计与实现 摘 要 如今人们生活水平有了极大的提高,快节奏、高效率成为现代生活的需要。与此同时,汽车成为生活出行不可或缺的交通工具,购买私家车的家庭也越来越多,考驾照的人员也急剧增加。但是传统的驾校管理模式给驾校管理者带来巨大的工作量。信息化的发展以及网络技术的普及,对网络驾校的实现提供了很大的有利条件。我对当前驾校管理模式做了解,对驾校需求做了调研,并通过需求分析、项目策划、项目设计、项目测试、上线等,做出了一套驾校管理系统,该系统使用Visual Studio 2010作为开发环境,SQL Server2012作为数据
2、储存,实现了学员报名,学员信息管理,学员查找,学员考试预约,自动接收考试成绩,成绩查询,等功能,同时提供了良好的系统扩展性,使用低廉的成本就可以进行二次开发。该系统实现了驾校信息化管理,自动化管理。减轻驾校管理人员的任务,提高工作效率,保证数据正确,提供多维度数据分析,并且减少雇佣人员费用。关键字:驾校管理、ERP、C#、WinForm、SQL Server2012AbstractToday, peoples living standard has been greatly improved, fast-paced, high-efficiency needs of modern life.
3、Meanwhile, the car became an indispensable means of transport traveling life, buy a family car more and more, driving test personnel has increased dramatically. However, the traditional management model driving school Driving managers to bring huge workload. Development of information technology and
4、 the popularization of network technology, the network provides a great driving school to achieve favorable conditions.I do understand the current management model driving school, driving school needs to do research on, and through needs analysis, project planning, project design, project testing, o
5、n-line, etc., made a driving school management system, which as a developer using Visual Studio 2010 environment, SQL Server2012 as data storage, to achieve a student enrollment, student information management, students find, student exams appointment automatically receive test scores, query results
6、, and other functions, while providing a good system scalability, low cost, you can use for secondary development. The system implements Driving information management, automated management. Ease the task of driving school management, improve work efficiency, and ensure data is correct, providing mu
7、lti-dimensional data analysis, and reduce hiring personnel costs.Keywords: Driving management, ERP, C#, WinForm, SQL Server2012目录1.绪论11.1课题研究的背景及意义11.2现行驾校管理系统概况11.3 论文组织22.系统的理论基础32.1C#技术特点32.2SQL Server2012 技术特点32.3开发工具Visual Studio2012介绍53.系统分析63.1 设计思想63.2 系统可行性分析63.2.1技术可行性63.2.2经济可行性63.2.3操作可行
8、性63.3需求分析73.3.1 基本功能需求73.3.2 预约名单的打印需求74.系统设计84.1 业务流程需求分析84.2系统架构需求分析84.3数据库设计95.系统的实现145.1部分源码说明145.1.1程序架构145.1.2数据库操作核心SqlHelp类145.1.3完美的登陆窗口185.1.4学员信息处理185.1.5科目一信息处理195.1.6科目二信息处理195.1.7科目三信息处理205.1.8数据的绑定215.1.9学员成绩查询215.1.10系统管理215.1.11引入外部dll215.1.12数据绑定的那些事225.1.13报表打印数据来源所使用的存储过程225.2系统的
9、功能展示245.2.1学员报名245.2.2学员管理255.2.3学员考试预约265.2.4预约成功学员信息打印275.2.5学员考试成绩查询286.总结与展望296.1 全文总结296.2 展望297.致谢308.参考文献311.绪论1.1课题研究的背景及意义随着社会节奏的不断加速以及人们生活水平的不断提高,汽车已经成为人们生活当中不可缺少的代步工具,相应参加汽车驾校进行培训的人员也越来越多。然而,层出不穷的驾校却也同时制造了相当多的驾驶事故;更有一些所谓速成的驾校培养了相当多的“马路杀手”,这是对生命的一种漠视,带来了无穷的交通安全隐患。由此,加强驾校管理的行动迫在眉睫。而当下飞速发展的网
10、络技术为开发驾校管理系统提供了相当丰富的技术。虽然当下许多驾校的培训管理已经在向系统化、规范化、自动化转变,其中却还是存在着相当多的问题,例如管理模块分散、操作复杂等等。我们该做的,就是利用更先进的技术手段来解决当下存在的这些系统缺陷,是驾校系统进一步的完善。1.2现行驾校管理系统概况伴随着社会的发展和人们生活水平的提高,快节奏、高效率成为现代生活的需要。与此同时,汽车成为生活出行不可或缺的交通工具,购买私家车的家庭也越来越多,考驾照的人员也急剧增加。传统的驾校管理模式给驾校管理者带来巨大的工作量。信息化的发展以及网络技术的普及,对网络驾校的实现提供了很大的有利条件1。目前,大部分的驾校还是传
11、统的模式,管理模式落后存在很多问题:1.管理人员使用简单的办公软件甚至简单的纸笔管理学员信息。2.录入效率低,准确性查,检索混乱。3.驾校管理人员的工作量大,带来了不必要劳动力开销。4.管理部门内部人员在实际管理过程中存在人情管理,不进行培训、考试直接发证。5.从业驾驶员培训机构不能严格执行管理部门的大纲及学时规定,减少培训课时。6.在考试过程中出现代考、代答现象。7.学员的纸质档案管理,查询难、易丢失。目前市场上也存在一部分驾校管理系统,但是仅仅是对驾校人员信息和成绩的简单储存,还需要驾校工作人员手工录入大量信息,储存的数据少且没有参考价值,没有对学员的精准营销和对学员成绩的分析,更没有对教
12、练教学成绩的分析。同时学员成绩是手工录入的,造成大量错误和数据延迟。现在系统的主要功能一般都有以下几点:培训管理:包括报名登记、缴退费管理、IC卡发放/指纹采集、教学管理考试管理:包括题库维护、模板维护、考试编排、学员考试、试卷考核、考试统计档案管理:包括申请档案、培训档案、考试档案、资格证档案随着现代信息化的发展,人们不再满足于传统的低效的办公方式,迫切需要一种高效的方式代替传统的方式,以适应社会的发展。为了解决这些问题,我主要提出以下观点:1.学员通过刷身份证的方式自动录入学员信息。2.成功报名学员部分信息的更改和部分信息不可再更改,保证数据正确。3.学员信息的多维度检索,比如学员姓名和学
13、员身份证。4.自动化接收车管所接口开放的学员成绩数据。5.自动化通过成绩判断学员的考试状态。6.自动化的学员预约管理,对学员科目进度和考试状态的判断,保证学员正确预约。7.良好的可扩展性,对在线报名在线预约和数据分析等二期开发的新功能提供支持。1.3 论文组织论文全文共分为六章:第一章 绪论:主要介绍了论文选题的引言、对课题研究的背景及意义进行了分析,同时也现行系统状况及发展趋势进行了介绍。第二章 开发环境和开发技术:介绍了系统、系统的开发模式、开发环境等基础知识。第三章 需求分析:主要介绍了系统设计思想、可行性分析、功能和性能需求。第四章 系统设计:主要介绍了系统的总体结构设计和系统的数据库
14、设计,其中数据库的设计包括了概念设计、逻辑设计和物理设计。第五章 系统实现:介绍了系统的所有模块和它的功能。第六章 总结展望:总结了现有系统的功能和以后待完善的功能。2.系统的理论基础2.1C#技术特点C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。C#旨在设计成为一种“简
15、单、现代、通用”,以及面向对象的程序设计语言,此种语言的实现,应提供对于以下软件工程要素的支持:强类型检查、数组维度检查、未初始化的变量引用检测、自动垃圾收集(Garbage Collection,指一种自动内存释放技术)。软件必须做到强大、持久,并具有较强的编程生产力。此种语言为在分布式环境中的开发提供适用的组件开发应用。新兴的网络经济迫使商务企业必须更加迅速的应对竞争的威胁。开发者必须不断缩短开发周期,不断推出应用程序的新版本,而不仅仅是开发一个“标志性”的版本。C#在设计时就考虑了这些问题。它使开发者用更少的代码做更多的事,同时也不易出错。新的应用程序开发模型意味着越来越多地解决方案依赖
16、于新出现的网络标准,例如HTML,XML,SOAP等。现存的开发工具往往都是早于Internet出现的,或者是在我们所熟知的网络还处于孕育期时出现的。所以,它们一般无法很好地支持最新的网络技术2。C#程序员可以在Microsoft .NET平台上事半功倍的构建应用程序的扩展框架。C#包含了内置的特性,使任何组件可以轻松转化为XML网络服务,通过Internet被任何操作系统上运行的任何程序调用。更突出的是,XML网络服务框架可以使现有的XML网络服务对程序员来说就和C#对象一样。这样,程序员就可以方便地使用他们已有的面向对象的编程技巧来开发利用现有的XML网络服务。还有一些精细的特性,使得C#
17、成为一流的网络编程工具。例如,XML正逐渐成为在网络上传输结构化数据的标准。这种数据集合往往非常小。为提高性能,C#允许把XML数据直接映射到struct数据类型,而不是class。这样对处理少量的数据非常有效。为使程序员容易迁移到这种语言,源代码的可移植性十分重要,尤其是对于那些已熟悉C和C+的程序员而言。对国际化的支持非常重要。C#适合为独立和嵌入式的系统编写程序,从使用复杂操作系统的大型系统到特定应用的小型系统均适用3。2.2SQL Server2012 技术特点SQL(Structured Query Language)是结构化查询语言的缩写。SQL语言的主要功能就是同各种数据库建立联
18、系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。绝大多数流行的关系型数据库管理系统都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。在SQL中,关系模式(模式)称为“基本表”(base table);存储模式(内模
19、式)称为“存储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column) 4。SQL Server 2012 是Microsoft 公司推出的SQL Server数据库管理系统,它和以往的数据库不同,主要有以下强大的新功能使我们系统更强大:1. AlwaysOn Availability Groups这项功能将数据库镜像故障转移提升到全新的高度,利用AlwaysOn,用户可以将多个组进行故障转移,而不是以往的只是针对单独的数据库。此外,副本是可读的,并可用于数据库备份。更大的优势是SQL Server 2012简化HA和
20、DR的需求。2. Windows Server Core Support在Windows Server产品中你可以向Ubuntu Server一样只安装核心(意味着你的系统不具备GUI)。这么做所带来的优势是减少硬件的性能开销(至少50%的内存和硬盘使用率)。同时安全性也得到提升(比安装图形版更少的漏洞)。从SQL Server 2012开始将对只安装核心的Windows Server系统提供支持。3. Columnstore Indexes这是一个相当酷的功能,是SQL Server之前版本都不具备的。 特殊类型的只读索引专为数据仓库查询设计。数据进行分组并存储在平面的压缩的列索引。 在大规
21、模的查询情况下可极大的减少I/O和内存利用率。4. User-Defined Server RolesDBA已经具备了创建自定义数据库角色的能力,但在服务器中却不能。例如DBA想在共享服务器上为开发团队创建每个数据库的读写权限访问,传统的途径手动配置或使用没有经过认证的程序。显然这不是良好的解决方案。而在SQL Server 2012中,DBA可以创建在服务器上具备所有数据库读写权限以及任何自定义范围角色的能力。5. Enhanced Auditing Features现今所有的SQL Server版本都具备审计功能,用户还可以自定义审计策略,以及向审计日志中写入自定义事件。而在SQL Ser
22、ver 2012中提供过滤功能,同时大幅提高灵活性。6BI Semantic ModelBI Semantic Model代替了ASUDM(Analysis Services Unified Dimensional Model )。BI Semantic Model这种混合的模式允许数据模型支持所有SQL Server BI实践,此外还可允许一些整洁的文本信息图图表。7. Sequence Objects对于使用Oracle的人说,这是他们长期希望拥有的功能。序列仅仅是计数器的对象,一个好的方案是在基于触发器表使用增量值。SQL一直具有类似功能,但现在显然与以往不同。8. Enhanced P
23、owerShell SupportWindows和SQL Server管理员现在就要开始提高他们PowerShell的脚本技能了。Microsoft为了推动其服务器产品上PowerShell的发展做出了很大的努力。在SQL Server 2008中DBA以及有所体会,在SQL Server 2012中增加了更多的cmdlet。9. SQL Azure Enhancements虽然这与Microsoft释放出的SQL Server 2012并无直接联系,但Microsoft正在SQL Azure做关键的改进。Azure现已具备Reporting Services以及备份Azure数据存储的能力,
24、这是个不小的进步。Azure现在允许最大150GB的数据库。同时Azure数据同步可更好适应混合模型和云中部署的解决方案5。2.3开发工具Visual Studio2012介绍Visual Studio是微软公司推出的开发环境。是最流行的Windows平台应用程序开发环境。 最新版本为Visual Studio 2012,Visual Studio 2012是我们到目前为止最卓越的版本。 它的目的就是帮助您在贵在创意、重在速度的市场中发展壮大。全新的外观和感受:一打开IDE,您就会看到不同之处。 整个界面经过了重新设计,简化了工作流程,并且提供了访问常用工具的捷径。 工具栏经过了简化,减少了选
25、项卡的混乱性,您可以使用全新快速的方式找到代码。 所有这些改变都可以让您更轻松地导航应用程序,以您喜爱的方式工作。Web 开发升级:对于 Web 开发,Visual Studio 2012 也为您提供了新的模板、更优秀的发布工具和对新标准(如 HTML5 和 CSS3)的全面支持,以及 ASP .NET 中的最新优势。 此外,您还可以利用 Page Inspector 在 IDE 中与正在编码的页面进行交互,从而更轻松地进行调试。 那么对于移动设备又如何呢? 有了 ASP .NET,您现在便可以使用优化的控件针对手机、平板电脑以及其他小屏幕来创建应用程序6。云功能:以前,每个人都需要维护一台服
26、务器。 光是扩展容量便占用了基础架构投资的一大半。 而现在,您可以利用云环境中动态增加存储空间和计算能力的功能快速访问模板和发布选项),并且支无数虚拟服务器。 Visual Studio 提供了新的工具来让您将应用程序发布到 Windows Azure(包括新持分布式缓存,维护时间更少。灵活敏捷的流程,可靠的应用生命周期管理:到目前为止,我们主要在关注开发方面。 但是随着应用程序变得越来越复杂,您还需要能帮助您的团队更快更智能工作的工具。 这就是我们要加入一种灵活的敏捷方法的原因。 利用 Visual Studio 和 Team Foundation Server,您可以根据自己的步调采用效率
27、更高的方法,同时还不会影响现有工作流程。 我们还提供了让您的整个组织来参与整个开发测试过程,通过新的方法让利益相关方、客户和业务团队成员跟踪项目进度并提出新的需求和反馈。3.系统分析3.1 设计思想系统采用面向对象的思想开发。第一步,确定用户的功能需求、业务流程、业务的参与者。第二步,根据第一步的结果对系统的设计进行可行性分析。第三步,根据第一步所确定的系统参与对象建立相应的数据模型。第四步是根据确定的数据模型规划建立数据库,根据业务流程规划功能设计。第五步,确定应用类型(WEB应用/桌面应用)并设计界面。第六步,编码实现阶段。第七步,测试完善。3.2 系统可行性分析可行性研究是通过对项目的主
28、要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。可行性研究应具有预见性、公正性、可靠性、科学性的特点。3.2.1技术可行性为避免出现系统与原有网络平台不兼容的情况出现,在安装此系统之前得首先改造驾校管理流程,本系统的运行环境要求windows操作平台+.Net4.5环境。系统运行环境对驾校是有一定要求的,必须在运行安装环境达到相关要求
29、之后才能使用本驾校管理系统。绝大部分驾校配有内部网络平台,主要是针对员工调度指挥的,现接入驾校管理系统,不需要对物理设备进行大的改造,只要在网络平台上进行设置后就能满足系统运行环境。3.2.2经济可行性当下社会随着汽车代步现象的普遍性,各地区驾校也是大量涌现,但却是良莠不齐,主要就是管理方面的问题,保证学员信息正确,录入快速,保证学员正确预约,提高驾校管理人员效率。应当有一定的市场前景。3.2.3操作可行性系统建成平稳运行之后,驾校管理人员可以通过该系统刷身份证给学员报名,通过系统可查询那些学员可以进行科目预约,操作简单,点击鼠标就可以完成大部分工作。3.3需求分析所谓“需求分析”,是指对要解
30、决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。简单的说就是分析用户的要求。需求分析是系统设计的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。在和驾校的相关负责人员进行沟通和了解后,最终确定了以下功能需求,这些功能和需求将作为系统建模和流程设计的依据。3.3.1 基本功能需求主要有六大模块:登录模块驾校系统管理员输入正确的用户名和密码可以登录系统,配置链接的数据库服务器。2.学员报名 主要实现新学员的姓名、身份证号、家庭住址、手机号等信息的录入,可以通过刷身份证实现3.学员管理
31、主要对报名学员信息的查询和修改功能。4.预约模块学员对科目一、科目二、科目三的预约、取消预约、补考预约等功能5.成绩查询学员可以通过搜索姓名和身份证号来查询自己考试进度、考试成绩、考试时间、是否通过等信息。6.系统设置添加管理员和添加考试时间。3.3.2 预约名单的打印需求学员预约后,驾校管理人员需要向车管所提供一份打印的名单,用于学员考试前点名和信息记录等。格式需要按车管所提供的统一格式,所以需要设计几套报表模板进行打印操作。4.系统设计4.1 业务流程需求分析业务流程图(transaction flow diagram,简称TFD),就是用一些规定的符号及连线来表示某个具体业务处理过程。一
32、种描述系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表,利用它可以帮助分析人员找出业务流程中的不合理流向。 图4-1 业务流程图4.2系统架构需求分析本系统在开发时选择了采用了C/S结构模式,主要是本系统是针对驾校管理人员使用的,无需通过web访问。同时C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。具体表现在以下两点:(1)应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服
33、务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。(2)数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,并且通常把那些不同的(不管是已知还是未知的)前台应用所不能违反的规则,在服务器程序中集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最
34、终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理7。4.3数据库设计本系统采用SQL server 2012 作为数据库存放数据的,数据库名称:driver,共设计了十张表,分别是:学员表(student),科目一(subjectone),科目二(subjecttwo),科目三(subjectthree),进度表(subject),车型(carmodel),教练(coach),状态(status)
35、,考试时间(examtime),管理员(admin),总体设计原则体现出将表分成事实表和维度表表两类,事实表由外键管理维度表主键,这样的设计方便以后系统扩展8。图4-2 数据库关系图学员(姓名,姓名,身份证号,住址,车型,电话,注册时间,邮箱,考试进度),其中姓名,姓名,身份证号,住址可以直接读取身份证得到,注册时间自动生成,管理人员只需录入车型,电话,邮箱,其中邮箱为系统扩展而设计。序号列名数据类型长度小数位标识主键允许空默认值说明1idint40Yesyes否2namenvarchar500否3sexnvarchar100否4idcardnvarchar500否5addressnvarch
36、ar500否6carmodelint40否7phonenvarchar150是8signtimesmalldatetime40否9emailnvarchar500是10subjectint40是0表4-1 学员表进度(id,进度),为方便查找学员进行到哪项考试而设计,单独拿出来为方便以后系统扩展。序号列名数据类型长度小数位标识主键允许空默认值说明1idint40yes否2subjectnvarchar500否表4-2 进度表考试时间(id,考试时间,科目),管理员可以从车管所得到通知添加多个考试时间。序号列名数据类型长度小数位标识主键允许空默认值说明1idsint40yes否2examtime
37、ssmalldatetime40否3subjectint40否表4-3 考试时间表教练(id,姓名),由于目前功能有限教练先只记录名字,单独拿出教练方便以后系统扩展。序号列名数据类型长度小数位标识主键允许空默认值说明1idint40yes否2namenvarchar500是表4-4 教练表车型(车型,描述),对车型进行描述,方便以后扩展。序号列名数据类型长度小数位标识主键允许空默认值说明1idint40yes否2modelnvarchar100否3descriptionnvarchar1000是表4-5 车型表状态(状态id,状态名称),0未预约,1首次预约,2通过,3未通过,4补考预约,方便
38、增加学员状态。序号列名数据类型长度小数位标识主键允许空默认值说明1statusidint40yes否2statusnamenvarchar500否表4-6 学员状态表科目一(身份证,预约时间,上次考试时间,分数,状态,考试时间),当学员预约后会增加一条记录,记录科目一这些信息,当学员补考预约会更新这条记录,这样设计主要是为了减小数据库体积。序号列名数据类型长度小数位标识主键允许空默认值说明1idint40yes否2idcardnvarchar500否唯一3reservationTimesmalldatetime40是4lastextimesmalldatetime40是5scoreint40是
39、6statusint40否7examtimeint40是表4-7 科目一科目二(身份证,预约时间,上次考试时间,分数,状态,考试时间,教练),科目二比科目一多了个教练字段,因为从实际出发,科目二时才给分配教练,当学员预约后会增加一条记录,记录科目二这些信息,当学员补考预约会更新这条记录。序号列名数据类型长度小数位标识主键允许空默认值说明1idint40yes否2idcardnvarchar500否3carmodelnvarchar500是4ReservationTimesmalldatetime40是5lastextimesmalldatetime40是6coachint40是7scorein
40、t40是8statusint40否9examtimeint40是表4-8 科目二科目三(身份证,预约时间,上次考试时间,分数,状态,考试时间,教练),当学员预约后会增加一条记录,记录科目三这些信息,当学员补考预约会更新这条记录。序号列名数据类型长度小数位标识主键允许空默认值说明1idint40Yesyes否2idcardnvarchar500否3carmodelnvarchar500是4ReservationTimesmalldatetime40是5lastextimesmalldatetime40是6coachint40是7scoreint40是8statusint40否9examtimei
41、nt40否表4-9 科目三表管理员(用户名,密码),用于验证管理员身份。序号列名数据类型长度小数位标识主键允许空默认值说明1idint40Yesyes否2usernamenvarchar500否3passwordnvarchar500否表4-10 管理员表5.系统的实现5.1部分源码说明5.1.1程序架构本程序使用三层架构,包含文件如下(图5-1 系统文件)Login.cs:登陆页面Manger.cs:驾校管理系统主页面SqlHelp.cs:操作数据库方法的封装StudentService.cs:对学员信息的增删改查SubjectoneService.cs:科目一数据的处理Subjecttwo
42、Service.cs:科目二数据的处理SubjectthreeService.cs:科目三数据的处理ScoreService.cs:学员成绩信息的处理SysConfig.cs:系统管理页面的处理OtherService.cs:得到学员状态、进度、考试时间等方法App.config:软件配置文件包括连接字符串5.1.2数据库操作核心SqlHelp类C#面向对象三大特性封装、抽象和继承,本系统需要大量对数据进行怎删改查,所以使用SqlHelp类对原有数据库操作方法进行封装。封装就是将数据或函数等集合在一个个的单元中,使用这个单元的人不需要知道内部怎么实现,只要调用这个封装的单元提供的接口就行.封装
43、提供了一个有效的途径来保护数据不被意外的破坏,其意义也就在此.封装的体现:1.属性对字段的封装2.把方法的多个参数封装为一个对象3.将一堆具有某个特定功能的代码放到一个方法中、4.将一些常用的类型或方法封装到一个程序集中。使用好封装有如下好处:1.调用者不必关心内部具体的实现,通过对外公布的接口即可以简单地实现调用(同时也可以隐藏技术细节)。2.用好封装可以减少耦合3.只要对外接口不改变,可以任意修改内部实现,这个可以很好的应对变化4.类具有了简洁清晰的对外接口,降低了使用者的学习过程5.可以实现代码重用。把经常用的功能写到一个方法里面9。 我的SqlHelp共包含四个方法SqlDataReader ExecuteReader(string sql)该方法对数据库进行查询操作返回一个SqlDataReaderSqlDataReader ExecuteRea