目录
摘 要..............................................4
Abstract...........................................5
第一章 绪论.....................................6
1.1课题背景........................................6
1.2中国铁路客票发售和预订系统的特殊性 ..............6
1.3系统的目标.........................................7
第二章 相关工具介绍.............................8
2.1 NET Framework概述..................................8
2.2 ASP.NET、ADO.NET和C#语言简介.......................9
第三章 系统的设计..............................10
3.1系统需求分析......................................13
3.2系统概要设计......................................14
3.2.1 系统结构设计....................................14
3.2.2 数据库设计......................................16
3.3 系统的程序流程图..................................22
第四章 系统的详细设计..........................23
4.1 系统界面设计......................................23
4.2 系统核心代码......................................39
第五章 系统测试................................48
5.1测试项目.........................................48
5.2测试方法.........................................50
结束语............................................50
致谢..............................................51
参考文献..........................................51
摘 要
随着科学的不断进步,计算机应用已经遍布整个社会的每个角落。目前社会正处于健保发展方兴未艾的时代,各火车站莫不兢兢业业地改善本身的体制或管理方式,以适应健保越来越严格的规范;在此背景下,本文论述了小型火车订票管理系统的设计与实现。通过对各种数据库管理系统(DBMS)的模型分析,结合火车站售票查询的实际需求,同时本文还说明了火车订票管理系统的开发过程及各种技术细节。本系统是适应时代发展的需要,提高管理的效率而开发设计的。
中国拥有总里程超过五万公里的铁路线,是世界上最大的铁路运输网之一。而铁路客运服务在其中又占有非常重要的地位。其中有5000多个车站承办客运业务,日开列车2000多列。为了在日益加剧的客户运输服务竞争中确保优势,改善铁路客户的服务质量,铁道部门一直在努力寻找提高竞争力、改善服务的新途径。
结合所要开发的系统的特点,软件设计采用ASP.NET面向对象设计开发工具,后台数据库采用SQL。整个系统力求做到操作简便、界面友好、灵活、实用和安全。
范文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。
关键词: 数据库管理系统 ASP.NET SQL 票务查询
ABSTRACT
With scientific constant progress, the computer uses each corner already spreading over whole society. The society is in strong in protecting and developing the era in the ascendanting at present, every medical institute all improve one's own system or management style in a conscientious and down-to-earth manner, in order to meet strong in protecting stricter and stricter norming; Under this background, the design and realizing that this text has described the administrative system of small-scale hospital (the intestines therapentic instrument software kit of supernatural anus in a more cost-effective manner). Through analysing to various kinds of models of data base management system (DBMS) , accords with the actual demand of treating the system (D600 type) of intestines operation of anus, this system has adopted the mode of the unit , at the same time this text also stated the development course of the administrative system of small-scale hospital and various kinds of technological details. This system met the need of development of era, improved the efficiency of management and developed.
Combining the characteristics of the systems developed, software design adopts ASP.NET to face the target and design the developing instrument, backstage supporter's database adopts SQL Server 200
0, what the database is adopted is ODBC (Open Database Connectivity) way. The whole system makes every effort to accomplish easily and simply to handle, the interface is friendly , flexible , practical and safe.
The thesis has introduced the development background of this subject, the course of the function and development finished mainly. Focal point , design philosophy , difficult point technology and solution that the system of explanation of the focal point was designed.
Keywords :DBMS ASP.NET SQL
绪论
1.1课题背景
信息时代已经来临,信息处理的利器——计算机应用于火车站售票的日常管理为火车站售票的现代化带来了从未有过的动力和机遇,为火车站票务管理领域的飞速发展提供了无限潜力。采用计算机管理信息系统已成为火车站票务管理科学化和现代化的重要标志,给火车站票务带来了明显的经济效益和社会效益。在此背景下,本文论述了火车订票管理系统(的设计实现。通过对各种数据库管理系统的模型分析,结合火车站票务销售查询过程的实际需求,同时本文还说明了火车订票管理系统的开发过程及各种技术细节。本系统是适应时代发展的需要,提高管理的效率而开发设计的。
火车售票是铁路运输业务管理的一项最基本业务。表面上看,它只是铁路运输业务的一个简单部分,但是它涉及的业务量大、客户多,还涉及资金管理与客户服务等多方面,因此这项业务关不像看上去那么简单。过去传统的售票方式已不能满足现代铁路运输业务流量剧增的客观要求,本系统便是利用目前最先进、最新型的开发工具ASP.NET开发一个火车售票管理系统。它能方便快捷地运用在火车业务的营运之中。
1.2中国铁路客票发售和预订系统的特殊性
综观国外许多已成功运用多年的客票系统,有其成熟的经验可以借鉴,而当今计算机和网络技术的飞速发展则为我们提供了很好的条件。但中国铁路客票系统有着自己的特殊性,主要表现在以下几点:
规模庞大:如前所述,中国铁路有 5000 多个车站承办客运业务,日开行旅客列车 2000 多列,系统建成后将有几万个窗口机需要联网,每年客运量大于 10 亿人次,最高日发售客票高达 400 万张之多,可以说没有任何一个国家的铁路客票系统具有如此庞大的规模。
实时性强:中国铁路客票发售量不但大,而且热线车票和售票时间较为集中,在售票高峰时,将会同时产生 4000 - 5000个座席申请,其中有相当数量是对同一时间、同一车次、相同座席的请求。为保证响应速度,对网络时延的要求非常高,计算机处理一张票的总时间一般应小于 7 秒,其中网络通信时延要在 2 秒以内,虽然我国的通信条件已得到飞跃发展,但要满足这样的要求也具有一定的难度。
票务管理复杂:中国是一个发展中国家,人口众多,铁路旅客运输是主要的交通运输方式。从整体上讲,客票的发售和预订在数量上是供不应求,因此,每一张客票均要精确地确定座席,并且是当日当次有效。加上票种繁多、票价复杂、票额预分、座席复用和规章众多等等,给数据组织和数据库管理增加很多约束条件和困难。而国外发达国家由于铁路运输能力是供远大于求,其主要客流集中在市郊和地铁,客运管理简单,对系统功能要求不高,除部分国家在预约客票中考虑了座席外,大量的售票业务都不必处理座席信息,其系统开发的难度则比中国小得多。
多级网络结构:由于国外系统起步较早,且通信发达,大多数采用集中处理的主机/终端方式,而我国幅员辽阔,通信条件差别较大,根据实际情况,将采用近代发展的集中与分布相结合的客户机/服务器体系结构,这对大规模信息系统的应用也是探索和创新。
管理体制改革:中国铁路部门在长期的手工作业过程中,为解决运量与运能的矛盾,建立了一整套严格的行之有效的客票发售组织与管理制度,但在很大程度上并不适应现代技术和新系统的运用,这在系统建设过程中将要有所打破、有所创新、有所改革,也增加了系统开发的难度。
上述种种特殊性说明,中国铁路客票系统的复杂程度远远高于国外的售票系统。
1.3系统最终目标
中国铁路客票发售和预订系统的最终目标是建立一个覆盖全国铁路的计算机售票网络,实现客票管理和发售工作现代化,从而方便旅客购票和旅行,提高铁路客运经营水平和服务质量,达到国际先进水平,成为世界上规模最大的铁路客票发售和预订系统。未来目标如下: 实现全路快车营业站计算机联网售票,以机器代替人工作业,以软票替代常备客票。在任一售票窗口可发售任意方向和任意车次的客票,最大限度地为旅客提供方便。
系统可预订、预售和发售当日客票,具有售返程、联程等异地购票功能。
系统预售期为 3 天。
实现票额、座席、制票、计费、结算、统计等工作的计算机管理。逐步形成统一的客票信息源,实现信息共享。
加强客票信息管理与分析,提高座席利用率,为铁路客运组织与管理工作提供辅助决策支持。
总体结构
客票发售和预订系统的总体结构,取决于业务处理、数据流程、系统功能及网络传输能力等相关因素。关键是座席数据库的规划与配置。
集中式方案:全路各车次的座席信息全部集中,仅设立一个中央座席数据库,为取得有关座席信息,各车站系统直接访问中央座席数据库。该方案具有结构简单,数据库维护方便,有利于保持数据的一致性和完整性,便于异地票、联程票和座席复用处理等优点;但是系统建设必须自上而下进行,见效慢,且不易分步实施,系统的运行将依赖于高性能高可靠的主机和广域网络。
分布式方案:在各个车站建立各自的座席数据库,存储本地售票所需的全部座席数据,不设上一级和中央座席数据库。该方案的优点是,便于实施,网络上数据传输量小,对本地购票的响应速度快;其缺点是,座席数据库过于分散,不便进行票额的管理与调配,不利于联程票和座席复用等业务处理,保持系统数据的一致性较为困难。
集中与分布相结合方案:设立一个中央数据库和若干个地区数据库,在地区数据库中存储本地区始发列车的座席数据。该方案综合了集中式和分布式两种方案的优点,避免了两者的缺点。既便于异地购票、座席复用、信息共享,又相对减少了网络的开销;设备投资合理,升级更新容易;兼顾了技术先进和现实可能;既可适应体制改革,又能适应现状,具有较大的弹性和适应能力。
第二章 相关工具介绍
本系统的设计采用了B/S架构,开发环境采用了Visual Studio.NET 2005,开发语言采用目前比较流行的C#,由于实际中本系统所涉及的数据量并不庞大,故数据
库采用了微软的关系数据库SQL Server.
2.1 NET Framework概述
.NET Framework 是用于 .NET 平台的编程模型,其关键组件是公共语言运行库(CLR,Common Language Runtime)和 .NET Framework 类库(包括 ADO.NET、ASP.NET 和 Windows 窗体),它提供了托管执行环境、简化的开发和部署以及与各种编程语言的集成,是支持生成和运行下一代应用程序和 XML Web services 的内部 Windows 组件。
.NET Framework 旨在实现下列目标:
◆ 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在 Internet 上分布,或者是在远程执行的;
◆ 提供一个将软件部署和版本控制冲突最小化的代码执行环境;
◆ 提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境;
◆ 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境;
◆ 使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致;
◆ 按照工业标准生成所有通信,以确保基于 .NET Framework 的代码可与任何其他代码集成。
公共语言运行库是 .NET Framework 的基础,可以将运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。
.NET Framework 类库是一个综合性的面向对象的可重用类型集合,可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序,也包括基于 ASP.NET 所提供的最新创建的应用程序(如 Web 窗体和 XML Web Services)。
2.2 ASP.NET、ADO.NET和C#语言简介
ASP.NET结构是一个三层系统:UI层、业务逻辑层和数据层,结构模型如图3所示:
图3 ASP.NET的结构模型 ● UI层负责与用户交互,接收用户的输入并将服务器端传来的数据呈现给客户; ● 业务逻辑层负责接收浏览器传来的请求并将请求传给数据层,同时将请求处理结果发给浏览器。它由Web表单、XML Web Services和组件服务组成,其中Web表单是ASP.NET应用程序的核心所在,它是向客户呈现数据和信息的基础,也是响应和处理客户与显示的Web表单交互生成的信息和数据的基础; ● 数据层是通过ADO.NET操纵数据为事务逻辑层提供数据服务,如存储数据操作结果、返回数据检索结果等。
ADO.NET提供对Microsoft SQL Server、OLEDB和XML公开的数据源的一致性访问,数据共享用户应用程序可以使用ADO.NET来连接到这些数据源,并检索、操作和更新数据。
ADO.NET 有两个核心组件:DataSet 和 .NET Framework 数据提供程序,后者是一组包括 Connection、Command、DataReader 和 DataAdapter 4个对象在内的组件,其组件结构如图4所示:
图4 ADO.NET的组件结构图示
DataSet对象是 ADO.NET 的断开式结构的核心组件,实现独立于任何数据源的数据访问。Connection 对象提供与数据源的连接,是操作数据库的基础,表示应用程序和数据源之间的惟一会话。Command 对象能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令,实现对数据源的操作,如查询、插入、修改和删除等。DataReader 对象从数据源中读取只进且只读的数据流。DataAdapter 对象是DataSet 对象和数据源之间关联的桥梁,用数据源填充DataSet并解析更新。设计 ADO.NET 组件的目的是为了从“数据操作”中分解出“数据访问”。
C#语言是.NET中一种崭新的语言,C#是由C和C++派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言,C#意在综合Visual Basic的高效率和C++的强大功能。
第三章 系统的设计
软件系统的总体设计大约要经历可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试以及维护等七个阶段。可行性分析和项目开发计划在前面已经叙述,下面所要做的是进行软件需求分析,概要设计和详细设计。编码过程将在下一章论述,而测试和维护过程不在本文叙及。
研究思路和工作计划:
在如研究任何其他软件项目一样,我做的文档设计也经历了从选题,调研,熟悉开发环境,实验关键技术,查找类似的相关系统的资料;系统概要设计,数据库结构设计,功能模块开发,功能模块测试,系统调试和系统试运行和修改。下面的流程图反映我们的基本思路和过程。
在各阶段的时间安排上,选题和调研用了2周左右的时间;熟悉开发环境,实验关键技术,查找类似的相关系统得资料用了2周时间;系统概要设计用了1周的时间;数据库结构设计用了1周时间;功能模块开发和测试用了4周时间;系统调试和试运行、修改约三周时间。完成全部工作大约3个月时间。
在计算机软件技术中,人机界面已经发展为一个重要的分支。人机界面设计一般遵循以下基本原则:
以通讯功能作为界面设计的核心
人机界面设计的关键是使人与计算机之间能够准确地交流信息。一方面,人向计算机输入信息时应当尽量采取自然的方式;另一方面,计算机向人传递的信息必须准确,不致引起误解或混乱。另外,不要把内部的处理、加工与人机界面混在一起(人机界面程序只是通讯),以免互相干扰,影响速度。
设计系统时,针对每个功能,都要按照模块化思想,使输入、处理与输出“泾渭分明”,充分体现人机界面的通讯功能。这样设计出来的程序不易出错,而且易于维护。
报表打印是系统必备的功能之一,而且打印之前常常需要计算。计算与打印分开设计,虽然消耗时间,但易于整个系统系统的维护。
界面必须始终一致
统一的人机界面不致于会增加用户的负担,让用户始终用同一种方式思考与操作。最忌讳的是每一个屏幕用户就要换一套操作指令与操作方法。
例如在整个系统可以以问号图标表示帮助,以磁盘图标表示存盘,以打印机图标表示打印机等。
界面必须使用用户随时掌握任务的进展情况
人机界面应该能够告诉用户软件运行的进度。特别是在需要长时间的等待时,必须让用户了解工作进展情况,如可以设计已经完成百分之几的任务进度条凳。目前,Windows下的应用软件无论大小,其安装程序几乎均做到了这一点。开发系统软件时,这一点很值得借鉴。
界面友好,使用方便
多数应用系统软件的数据输入量较大。对于一些相对固定的数据,不应让用户频频输入(特别是汉字),而应让用户用鼠标轻松选择。例如,人事管理系统中的“文化程度”是相对固定的数据,其值一般取“小学”,“高中”,“大专”,“大本”,“硕研”,“博研”等,录入数据之前,应用系统软件应在相应的位置弹出一个列表框,待用户以鼠标点击,而不应该让用户每次都输入这些汉字。
总之,所开发的应用系统在使用过程中,应使用户的数据输入量降至最低限度减少用户的干预量。实践证明,用户干预愈少,应用系统系统的满意度愈高。
系统设计
系统设计又称系统物理设计。系统设计要根据系统分析报告中的系统逻辑模型综合考虑各种约束,利用一切可利用的技术手段和方法进行各种具体设计,确定新系统的实施方案,解决“怎么做”的问题。
结构化系统设计是指利用一组标准的图表工具和准则,确定系统由哪些模块,用什么方法连接,如何构成良好的系统结构,并进行系统输入、输出、数据处理、数据存储等环节的详细设计。这一阶段的重点是设计好系统的总体结构,选择最经济合理的技术手段。系统设计阶段的文件是系统设计报告(又称系统物理设计说明书)。
2、系统实施与转换
系统实施阶段的主要工作包括:系统硬件的购置与安装、程序的编写与调试、系统操作人员的培训,系统有关数据的准备和录入、系统调试和转换。
在系统实施阶段要成立系统实施工作小组,组织各专业小组组长和有关部门领导共同编制新系统实施计划。可以应用各种项目管理的软件和方法进行管理,实行项目经理负责制,保证系统实施工作的顺利进行和成功。
硬件的购置和安装包括计算机硬件、外设、网络、电源、机房、环境等有关设备的购买、验收、安装与调试工作,这些工作主要由专业技术人员完成。
数据准备与录入工作主要由手工操作转入计算机处理所需的各种数据的整理、录入及计算机系统中为新系统所用数据的转换工作。数据准备与录入工作要注意数据的准确性,在整理、录入、校验等各个环节把好关,为系统的顺利转换打好基础。
在进行以上各个环节的同时展开人员培训工作,包括管理信息系统知识的普及教育、新制度的学习、计算机操作培训等。使所有人员了解新系统的基本功能、新系统对使用人员的要求、建立管理信息系统的目的、管理信息系统的建设可以为组织和个人带来的帮助和便利、个人在新系统中应该承担的工作等,是用户关心、支持新系统的实现。
3、系统维护和评价
管理信息系统是一个复杂的人机系统。系统外部环境与内部因素的变化 ,不断影响系统的运行,这时就需要不断完善系统,以提高系统运行的效率与服务水平,这就需要从始至终的进行系统维护工作。系统评价主要指系统建成后,经过一段时间的运行后,要对系统目标和功能的实现情况进行检查,并与系统开发中设立的系统预期目标进行比较,及时写出系统评估报告。
系统维护与评价阶段是系统生命周期中的最后一个阶段,也是时间最长的一个重要阶段
3.1系统需求分析
在经过前一阶段的分析之后,我确定了我的开发课题为小型医院管理系统。现在所要做的是要准确定义系统必须做什么以及系统必须具备的功能。
本系统采用结构化分析方法(Structured Analysis,简称SA)完成。SA是面向数据流进行需求分析的方法,像所有的软件分析方法(如面向对象分析方法、IDEF方法等等)一样,SA也是一种建模活动,它使用简单易读的符号,根据软件内部数据传递、变换的关系,自顶向下逐层分解,描绘满足功能要求的软件模型。在系统中我采用数据流图(DFD)这种半形式化的描述方式表达需求。
数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也很容易理解,所以是极好的通信工具。此外,设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它是软件设计的很好的出发点。
它有四种基本图形符号:
→:箭头,表示数据流;
〇:圆或椭圆,表示加工;
═:双杠,表示数据存储;
□:方框,表示数据的源点或终点。
本系统的部分数据流图如下:
顶层数据流图
3.2系统概要设计
在软件需求分析阶段,搞清楚了软件“做什么”的问题,形成了目标系统的逻辑模型。现在我们所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求。首先,我们需要描述的是系统的总的体系结构。
3.2.1 系统结构设计
系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
在系统的概要设计中我采用结构化设计(Structure Design,简称SD),SD以需求分析阶段产生的数据流图DFD为基础,按一定的步骤映射成软件结构。我首先将整个系统化分为几个小问题,小模块,在系统中,我设计了系统的登录和退出、系统设置、系统管理、用户管理和帮助共5个模块。然后,进一步细分模块,添加细节。比如,系统管理分为新建病历、病历管理、数据维护等。
以下就是系统的结构图:(在这里为了表达方便我将结构图分开来表达)
系统功能模块结构图
(1)列车基本信息设置
此功能是对列车的基本信息进行设置,包括列车的班次,列车的起始站和终点站以及一些列车的其它备注信息。
添加列车信息:
添加一个新的列车信息,按照数据库设计出的表结构依次填入必填项,确认后向数据表中插入数据,同时给出提示,已经添加成功。
删除列车信息:
删除一个存在的列车信息,删除的时候给出提示以免误删除操作,确认无误后将数据信息删除,并给出提示已经删除成功。
查询列车信息:
查询列车信息时,用户可根据自己的需要输入单个或者多个条件,以进行单条件或联合查询, 并使查询结果更加明确。
④ 修改列车信息:
从数据库中调出列车信息的内容,并对某一项进行修改,但是对于数据库中的主键是不能修改的。
(2)列车时刻表设置
此功能是为不同班次的列车设置时刻表的。
添加列车时刻表信息:
为列车添加始发时间和达到终点站时间等基本信息
② 删除列车时刻表信息:
删除相应列车时刻表的人事信息。
③ 修改列车时刻表信息:
浏览所有列车时刻表的信息,然后对相应的数据项进行修改。
④ 查询列车时刻表信息:
(3)票务信息设置:
这部分主要完成,对某班次列车的票务信息进行设置,管理员可以输入某个区间段起始和终止的两个车站,并设置这段区间内的车票价格。
添加票务信息:
管理员指定某班次列车在某个区间段内的起始地点和终止地点,并为这个区间段设置票价(比如广州到北京的列车,管理员可以设置其中一个区间段,比如武汉到郑州的价格为多少)
② 删除票务信息:
根据实际情况(列车不再停靠某些站点,某些站点取消等情况),完成对这些站点的票务信息的删除。
修改票务信息:
由于春运和节假日的到来,车票会有一定的涨幅,以及其它一些情况需要对票务信息进行修改。
查询票务信息:
可以查询某班次列车在某区段的未销售的票数以及票的种类(硬座,硬卧等)
(3)旅客订票:
旅客在登陆系统后,首先需要注册一个用户名和密码,注册并登陆系统成功后,进入订票系统,在这了,旅客可以分类查询,列车的详细情况(包括列车班次,列车开车时间,列车到达目的地时间,各个区段内的票价,还剩的票数等基本情况),旅客可以预定自己需要的票(可预定多张)。
(4)管理员审核
对于旅客预定的车票,必须通过某种权限的管理员审核后,该票才会邮寄到旅客注册信息里提供的地址,如果没有通过管理员审核,表明该旅客的订票是失败的。
3.2.2 数据库设计
在信息世界中,信息从客观事物出发流经数据库,通过决策机构最后又回到客观世界,信息的这一循环经历了三个领域:信息世界,数据世界,现实世界。现实世界的事物反映到人的头脑中,人的大脑对它有个认识过程,经过分析(选择、命名、分类等)进入信息世界。这些信息再进一步加工、编码,然后进数据世界,而软件系统的开发工作需要考虑这两个方面的问题,也就是要考虑系统开发所需要的数据,以及如何对这些数据进行操作。这两个问题贯穿了整个软件系统的开发过程,这也就是数据库的设计问题,软件设计的一个核心。
3.2.2.1 ER图设计
在系统设计的开始,我首先考虑的是如何用数据模型来数据库的结构与语义,以对现实世界进行抽象。目前广泛使用的数据模型可分为两种类型,一种是独立于计算机系统的“概念数据模型”,如“实体联系模型”;另一种是直接面向数据库逻辑结构的“结构数据模型”。在本系统中我采用“实体联系模型”(ER模型)来描述数据库的结构与语义,以对现实世界进行第一次抽象。ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表示数据模型。它有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。但ER模型只能说明实体间语义的联系,不能进一步说明详细的数据结构,它只是数据库设计的第一步。
ER图是直观表示概念模型的工具,它有四个基本成分:
矩形框,表示实体类型(考虑问题的对象)。
菱形框,表示联系类型(实体间的联系)。
椭圆形框,表示实体类型和联系类型的属性。对于关键码的属性,在属性名下划一横线。
直线,联系类型与其涉及的实体类型之间以直线连接。
本系统的简化ER图如下:
系统的简化ER图
3.2.2.2 数据库表格设计
在完成系统的ER图之后,需要将ER模型转化为关系模型,也就是说,要设计出数据库所需要的表格。在这里,我选用的是关系数据库。因为关系数据库中的二维表格可以很清楚地描述数据之间的联系。
在这里不得不提到一个概念——范式。其实在上一节的ER图设计中,已经运用了范式的思想,不仅如此,在数据库的表格设计中更离不开范式的思想,它是数据库设计的基础,如果不注意这个问题将会导致一系列问题的出现。
我在系统中定义的表格都严格地按照范式的思想和要求去完成,数据库中的所有表格都达到了三范式的要求。根据系统ER图,针对本系统的特点,在对所搜集的数据进行规范化之后,定义了如下四张表格,分别是用户表,车次数据表,站点数据表,退票信息表。通过对这几张表格的操作可以较好地完成系统设计的各项功能,这几张表格之间有着不同程度的联系。
(1)用户信息表主要用于记录所有的用户信息和密码。它是在用户登陆时用来确定用户和密码的正确性,以防止非法用户登陆,并且根据权限限定用户可以使用的功能,普通用户只能进行票务管理操作,超级用户还可进行车票信息的添加删除修改等操作。用户信息如下表所示。
1,traininfo表
记录列车的基本信息
TNO表示火车的班次。
S_station表示火车的起始站
E_station 表示火车的终点站
Tinfo表示备注信息
2.Schedue表
记录列车的发车和到达终点站的时刻信息
由于列车的起始站和终点站,相对固定,但是列车列车的始发时间和到达终点站的时间经常会改变,因此用两个不同的表来存储这些信息。
FNO表示发车编号
TNO表示车次
S_time 表示始发时间
E_time 表示到达终点站时间
Finfo表示备注信息
3,charge表
用来设置票价信息
ticketNO 某种票价的唯一编码,自动生成(比如武汉到北京的硬座是一种票价,同班次的武汉到北京的软卧又是一种票价)
TNO 班次号
Start_s 某个区间段的起始地点
End_s 某个区间段的终止地点
Charge 该区间段的车票价格
Cinfo 备注信息
Tnum 该种类型车票还剩的张数
Kind 该种类型的车票种类(硬座,硬卧,软卧等)
4,orderTicket表
用来保存和记录旅客的订票信息
Ordered 订票的唯一编号,旅客每定一次票都会生成不同的orderTicket编号(一次订票一个编号)
User_name 旅客登陆系统的用户名
User_password旅客登陆系统的密码
Name 旅客的真实姓名
Sex 性别
ID 身份证号
Address 邮寄地址
Mail 邮寄地址的邮政编码
Tel 联系电话
Email 联系邮件地址
Info 备注信息
Tickernum 预定票数
TNO和ticketNO 是外码
State 状态(审核中,还是审核通过)
3.3 系统的程序流程图
以下为管理员登陆系统流程:
以下为旅客登陆系统流程:
第四章 系统的详细设计
4.1 系统界面设计
以下通过截图的形式,对本系统的功能进行详细说明:
一,主界面
二,进入“订票旅客请进”
如果
旅客之前已经注册过,这可通过输入用户