收藏 分销(赏)

AFC轨道交通收费数据模拟生成软件的设计和实现.doc

上传人:二*** 文档编号:4703238 上传时间:2024-10-10 格式:DOC 页数:88 大小:1.83MB 下载积分:5 金币
下载 相关 举报
AFC轨道交通收费数据模拟生成软件的设计和实现.doc_第1页
第1页 / 共88页
本文档共88页,全文阅读请下载到手机保存,查看更方便
资源描述
AFC轨道交通收费数据模拟生成软件的设计和实现(完整版) (文档可以直接使用,也可根据实际需要修改使用,可编辑 欢迎下载) AFC轨道交通收费数据模拟生成软件的设计和实现 题目 学  号 姓名 指导教师 顾问教师 起止日期 设计地点 关键词:,,,RAIL TRAFFIC CHARGE DATA SIMULATION GENERATION OF SOFTWARE DESIGN AND IMPLEMENTATION Abstract In recent years, with the rapid development of economy, urban traffic construction as an important component part of the rail traffic construction-has also been fast development. Urban rail transit is a safe and comfortable, rapid, on time and environmental protection of great power passenger traffic tools. Among them, the automatic fare collection AFC system is one of the most important part of the measure is to reflect and rail traffic information level of important symbol. In rail transit in the various software, design need rides rail traffic actual charges for original data for reference and verification, and the urban rail transit relevant original fee data confidential degree is high, it is urgent to need to be able to generate its own in various conditions simulated original fee data. This design can simulate generation in various conditions in and out of the subway station which charge of original data, and will save data backup. The system adopts the idea of modular design, has friendly interface, easy operation, interactive flexible characteristics, already has basic data to create and save function. This system mainly realized the following functions: ①parameters Settings, including: line site map, rides kinds Settings, ticket rate setting, data generation cycle, the total flow setting, stream distribution setting; ② the fare calculation is the main Dijkstra algorithm intelligent inquires according to the shortest path and nanjing local subway fares on the provisions of the charge standard; ③ charge data generation, according to each charge data, according to certain format output charge information, including time, start site, arrived at the site, passengers choose path, after site number, fares, etc.; ④ the generation of statistical reports, mainly based on the data generation cycle set, synchronous generation has stipulated good report format, will write and save all parameters. KEYWORDS: Dijkstra algorithm, automatic fare collection system afc charging documents, reports, C# application form 目 录 摘要 I Abstract II 第1章 绪论 5 1.1引言 5 1.2轨道交通系统发展现状 5 1.3自动售检票系统研究概况 6 1.4论文主要工作和内容 7 第2章 模拟收费数据系统需求分析及功能设计 9 2.1系统需求 9 求 9 务流程 9 格及其数据形成样式 10 2.2系统功能设计 11 2.3本章小结 11 第3章 模拟收费数据系统的实现 12 3.1系统体系结构选择 12 3.2软件开发工具的选择 13 3.3数据库开发工具的选择 15 3.4程序代码设计思想及原则 16 象编程思想 16 动程序设计思想 16 码设计原则 16 面设计原则 16 3.5模拟收费数据生成系统程序设计举例 17 块 17 参数设置模块 19 件输出模块 25 3.6难点 27 3.7本章小结 27 第4章 最短路径查询数学模型建立 28 4.1城市轨道交通的数学模型 28 4.2最短路径查询的几种算法和对应的数学模型 29 Dijkstra算法 29 A*算法 36 Bellman-Ford算法 37 Floyd-Warshall算法 38 法的比较和优缺点 38 4.3本章内容总结 39 第5章 软件功能测试与分析 40 5.1计费功能测试 40 基本的计费功能 40 择最短路径功能 40 5.2文件生成与存储功能测试 40 成功能测试 40 储与查询统计功能测试 41 5.3本章小结 41 第6章 总结与展望 42 6.1全文总结 42 6.2工作展望 42 参考文献: 43 致 谢 45 第一章 绪论“一卡通”是AFC系统的发展方向,IC卡技术的应用促使地铁收费系统与其他公共交通收费系统共用一张卡进行收费。为使AFC系统稳健发展,提出保证系统顺利实施和高效运作需要把握的关键和相应措施。在地铁大系统中,自动售检票系统 AFC系统 以其高度的智能化设计,扮演着售票员、检票员、会计、统计、审计等角色,以数据收集和控制系统实现了票务管理的高度自动化。随着电子技术的高速发展,自动收费系统理念和技术也发生了巨大变化,一卡通、电子钱包等便利手段的应用愈来愈普及。 发展现状改革开放以来,?我国城市规模和经济建设飞速发展,?城市化进程日益加快,?城市人口急剧增加,?100?万人口以上的大城市已有34?个,?其中300?万以上的有8?个。这些大城市一天的客运高峰期间,?旅客高度集中,?流向大致相同,?低运量的交通工具已远远不能满足民众出行的需要。而采取城市轨道交通系统,?发展多层次、立体化、智能化的交通体系,?是从根本上改善交通需求的重要战略措施之一。自动售检票系统是国际化大城市轨道交通运行中普遍应用的现代化联网收费系统,随着自动售检票系统的启用,乘客现在可以通过各入口处的自动售票机购买电子票。目前上海、北京、广州、天津、深圳、南京等大城市的轨道交通地铁站都广泛使用了AFC系统作为重要客运管理应用,更多的应用场合包括电影院,体育馆,歌剧院,火车站,机场等。研究概况论文主要工作和内容本论文的主要工作是,主要工作包括系统的需求分析、系统功能设计、体系结构设计和程序代码设计,同时对进行研究,在建立了其数学模型的基础上,运用求解,实例证明该方案切实可行。 组织如下: 第一章介绍了课题背景以及的国内外发展现状,然后说明了本论文的主要工作和内容。 第二章 着重介绍系统的总体设计方案,在需求分析的基础上给出了各模块的数据形成过程,完成了功能设计工作。 第三章 确定的体系结构,进行了开发工具的选择在软件编程思想指导下进行模块的界面设计和代码实现。 第四章。第五章。最后通过实例结果对比,说明算法的可行性和优异性。第六章 对论文所做的工作进行总结,并对下一步的工作进行了展望。需求分析及功能设计系统需求 具有参数设定功能 包括线路站点图、票卡种类设置、票率设置 系统内部 、数据生成周期设置、人流总量设置、人流量分布设置。 具有文件存储功能 能够存储起末站点、票卡种类、票价、所属线路等重要数据。 具有浏览功能 包括浏览各个站点及主要站点确定路径的正确性等内容。 具有生成报表功能 根据数据生成周期生成统计报表。 票价分析功能 根据始末站点以及对路径的统计,按照相关规定产生票价。 系统功能 提供友好的用户界面、时间显示、退出系统及确认等基本的系统功能以及较高级的数据备份功能和界面美化。 务流程流原始表格及其数据形成系统功能设计系统功能设计是系统开发过程中的一个重要阶段。功能设计工作应该自顶向下的进行,首先设计总体结构,然后逐层深入,直至进行每一个模块的设计。根据整个系统的需求分析,设计一个实用化系统下文将主要开发部分作详细介绍。 图2-2系统框架 2.3本章小结 完成了需求分析的任务系统的实现系统体系结构按照当前流行的程序设计方法,可以将数据库应用程序分为两类,一类是两层结构的数据库应用,另一类是多层结构的数据库应用。 两层结构的数据库应用程序有两种构造方式,这就是客户/服务器(C/S)结构与浏览器/服务器(B/S)结构,可形象地表示为图-1所示两层C/S体系结构如图所示: 图3-1两层数据库应用程序 图3-2两层C/S数据库体系结构相对于采用B/S的浏览器和服务器模式,采用C/S模式有如下优点。 应用系统C/S结构图 1 网络负荷较轻。B/S采用了逻辑上的三层结构,但在物理上的网络结构仍然是原来的以太网或环形网。这样,第一层与第二层结构之间的通信、第二层与第三层结构之间的通信都需占用同一条网络线路,网络通信量大。而C/S只有两层结构,网络通信量只包括Client与Server之间的通信量,网络通信量低。所以,C/S处理大量信息的能力是B/S无法比拟的。 2 速度较快。由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。 3 安全性高。由于C/S采用配对的点对点的结构模式,并采用适用于局域网、安全性比较好的网络协议 例如NT的NetBEUI协议 ,安全性可得到较好的保证。C/S一般面向相对固定的用户群,程序更加注重流程,它还可以对权限进行多层次校验,提供了更安全的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。而B/S采用点对多点、多点对多点这种开放的结构模式,并采用TCP/IP这一类运用于Intemet的开放性协议,其安全性只能靠数据服务器上管理密码的数据库来保证。 开发工具的选择.NET 的轨道交通收费信息管理系统。系统开发数据库采用SQL SERVER 2000。系统部署需满足的软件环境为WINDOWS SERVER 2000或2003、IIS6、.NET2.0。在另外一个设计系统中提出了一种基于B/S 模式采用ASP.NET 和Web 数据库技术的通用公路收费管理系统实现方案。 C#(C Sharp 是微软 Microsoft 为NET Framework量身订做的程序语言,微软公司在2000年6月发布的一种新的编程语言。C#拥有C/C++的强大功能以及Visual Basic简易使用的特性,是第一个组件导向 Component-oriented 的程序语言,和C++与Java一样亦为对象导向 object-oriented 程序语言。C sharp 音标 [∫a:p] 又被简称为"C#" 是微软公司在2000年6月发布的一种新的编程语言,并定于在微软职业开发者论坛(PDC 上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM 组件对象模型 是直接集成的,而且它是微软公司.NET windows网络框架的主角。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选――无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过INTERNET进行调用最重要的是,C#使得C++程序员可以高效的开发程序,而绝不损失C/C++原有的强大的功能。类:在C#中类的声明与Java很相似,这是合理的,因为经验告诉我们Java模型工作得很好。Java的关键字import已经被替换成using,它起到了同样的作用。C#是一个强类型的语言,它的数值类型有一些可以进行隐式转换,其他的必须显式转换,隐式转换的类型只能是长度短的类型转换成长的类型,例如int可以转换成long、float、double、decimal,反之必须显式的转换。程序直接编译成标准的二进制可执行形式一个C#的结构体与C++的结构体是相似的,因为它能够包含数据声明和方法.但是,不象C++,C#结构体与类是不同的而且不支持继承.但是,与Java相同的是,一个结构体可以实现接口(interface 。C#中存在预编译指令支持条件编译,警告,错误报告和编译行控制命名空间提供了一种方法来唯一标识一个类型以及进行类型的逻辑组织。命名空间可以嵌套使用并可以跨程序集使用。一个类型的完全限定名包括所有命名空间。在一个命名空间中,所有的类型必须有一个唯一的名称。基本类型库(Base Class Library)是.NET Framework的所有语言可下可用的命名空间集。命名空间是组织和重用代码的编译单元。命名空间和文件的结构关系不像Java,命名空间与文件的结构之间没有关系。using语句是用来在使用类型时不需要用全限定名的类型,全限定名也可以被使用。命名空间中的声明,C#与C++有所不同,是C#独有的特点。一些操作符能够被重载,而另一些则不能.特别的是,没有一个赋值运算符能够被重载它和Java的不同,而不是相似的地方.这一节(和这个系列第二部分的大部分地方)讲述了C#实现的和Java不同的地方或者Java根本没有的特点C# 4.0 新增 dynamic关键字,提供动态编程(dynamic programming)把既有的静态对象标记为动态对象,类似javascript,Python或 Ruby。微软在用户选择何时MSIL应该编译成机器码的时候是留了很大的余地.微软公司很小心的声称MSIL不是解释性的,而是被编译成了机器码.它也明白许多--如果不是大多数的话--程序员认为Java程序要不可避免的比C编写的任何东西都要慢.而这种实现方式决定了基于MSIL的程序(指的是用C#,Visual Basic,"Managed C++"--C++的一个符合CLS的版本--等语言编写的程序)将在性能上超过"解释性的"Java代码.当然,这一点还需要得到事实证明,因为C#和其他生成MSIL的编译器还没有发布.但是Java JIT编译器的普遍存在使得Java和C#在性能上相对相同.象"C#是编译语言而Java是解释性的,"之类的声明只是商业技巧.Java的中间代码和MSIL都是中间的汇编形式的语言,它们在运行时或其它的时候被编译成机器代码当你创建一个程序的时候,你在一个命名空间里创建了一个或多个类.同在这个命名空间里(在类的外面)你还有可能声明界面,枚举类型和结构体。必须使用using关键字来引用其他命名空间的内容。C#对Windows程序最大的卖点可能就是它与COM的无缝集成了,COM就是微软的Win32组件技术.实际上,最终有可能在任何.NET语言里编写COM客户和服务器端。C#编写的类可以子类化一个已存在的COM组件;生成的类也能被作为一个COM组件使用,然后又能使用,比方说,JScript语言子类化它从而得到第三个COM组件。这种现象的结果是导致了一个运行环境的产生,在这个环境里的组件是网络服务,可用任何.NET语言子类化一个索引与属性除了不使用属性名来引用类成员而是用一个方括号中的数字来匿名引用(就象用数组下标一样)以外是相似的。Microsoft Visual Studio 2021中的C#语言作为开发工具,使用其中的Windows窗体应用程序以及基本的控制台程序模块进行本系统的开发和设计。 3.3数据库开发工具的选择数据库是用来存放数据的一种服务器。应该只有大型小型之分。大型数据库有:oracl、SQL server小型数据库有:Access、MySQL、BD2等。AAccess 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。Access是一种关系型数据库管理系统,其主要特点如下:(1)存储方式单一 Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。 2 面向对象 Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。 (3)界面友好、易操作 Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。 (4)集成环境、处理多种数据信息 Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。 (5)Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成6>HTML文件,轻松构建Internet/Intranet的应用。程序代码设计思想及原则面向对象设计思想模拟自然界认识和处理事务的方法,将数据和对数据的处理方法放在一起,形成一个相对独立的整体――对象(Object),对同类对象抽象出共性,形成类(Class)。任何一个类中的数据都只能用本类自有的方法进行处理,并通过简单的接口和外部联系。对象之间通过消息进行通信。 在面向对象程序发展的早期,软件行业主要集中于研究面向对象的编程(OOP),但是对于大型软件的开发过程,编程只是其中一个很小的部分。面向对象的方法的根本和理性在于它符合客观世界的组成方式和大脑的思维方式,因此面向对象的思想方法应贯穿软件开发的全过程,这就是面向对象的软件工程。面向对象的软件工程遵循分层抽象、逐步细化的原则,软件开发过程包括面向对象分析(Object Oriented AnalysisOOA)、面向对象设计(Object Oriented DesignOOD)、面向对象编程(OOP)、面向对象测试(Object Oriented TestOOT)、面向对象维护(Object Oriented Soft Maintenance OOSM)5个阶段。经过这5个阶段的软件程序进入运行的维护期,即投入使用[]。 事件驱动程序设计思想软件代码设计原则由于MIS软件的最终目的是要用户使用,为此存在着许多衡量一个MIS软件好坏的标准。一般来说,这些程序设计的标准形成一些设计原则,通常从正确性、健壮性、可维护性、可用性、可重用性、效率和编制文档等方面定义。 软件界面设计原则用户界面又称人机界面,是使用者和计算机联系的中间媒介,也是应用程序中最重要、最关键的部分之一。用户界面的质量直接关系到软件系统的性能能否发挥,能否使用户高效率地工作。为了设计出友好的用户界面,必须遵循以下的界面设计原则[]: 1.可靠性 用户界面提供的环境首先应是高可靠、少出错及容错性好。用户界面对用户的每个输入都应做出适当的响应,并且能容忍用户操作上的失误。用户操作出错时,应以一致的方式与用户通信,提供易操作的改正错误的机制,以便用户可以立即恢复到正确状态下重新操作。用户界面应可以检测用户错误,屏蔽输入错误,防止错误在运行中蔓延。用户界面还应能容忍系统内部某些部分可能发生的错误。一旦出错,用户界面应能最大可能的支持连续一致的用户响应。 2.简单性 简单性是设计人机界面的基本原则之一,其主要目的是降低环境复杂度,防止人的信息超载,提高工作效率。用户界面简单性主要包括输入和输出简单性。输入的简单性是指用户输入的信息应尽量简单,设置缺省,减少击键的频度和难度,最大限度地减少用户短时记忆和操作的负担。输出简单性是指屏幕显示的输出信息应以简单和易理解的形式出现,例如:选择图形方式输出。 用户界面的简单性还体现在一致性方面,所有的命令语言有相同的结构,命令语言使用的相同关键词所代表的意义相同。整个系统采用统一风格与用户对话。 3.易学习和易使用性 用户界面应提供多种学习和使用方式,必须相当灵活以适用所有的用户。并且,用户界面应极大的方便用户,在所有用户需要的地方都可以提供帮助。帮助包括对系统功能提示、操作方法提示、运行状态提示和错误处理提示。易学习和易使用原则要求用户界面工作方式必须与人的理解、记忆、通信和解决问题方式兼容。 4.立即反馈性 一个友好的界面应对用户的所有输入都立即做出反馈。其中需要特别注意的是:不论系统给予用户的反馈信息多么简单,重要的是,要告诉用户要求他做的每项操作。当系统进行长时间处理时,用户界面应提供用户等待信息及系统运行状态信息,避免用户对系统运行状态不了解而引起在交互软件开发过程中,运用上述原则指导友好用户界面的开发,将有助于摆脱用户界面设计的盲目性,有利于用户界面及整个软件产品质量的提高。 系统程序设计举例由于系统模块较多,本文以功能为例,分别给出了这个模块的界面介绍以及部分代码实现片段。模块using System; using System.Collections.Generic; using SystemponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Sys; namespace station public partial class Form2 : Form public Form2 InitializeComponent ; private void Form2_Load object sender, EventArgs e private void button1_Click object sender, EventArgs e if textBox1.Text "" || textBox2.Text "" MessageBox.Show "请输入用户名密码!" ; return; if textBox1.Text ! "admin" && textBox2.Text ! "admin" MessageBox.Show "用户名或密码输入错误,请重新输入" ; textBox1.Text ""; textBox2.Text ""; return; else Form1 fm1 new Form1 ; fm1.Show ; this.Hide ; 参数设置模块1、界面介绍2、代码实现private void radioButton18_CheckedChanged object sender, EventArgs e if radioButton26.Checked label8.Text radioButton18.Text; else if radioButton27.Checked label7.Text radioButton18.Text; private void radioButton17_CheckedChanged object sender, EventArgs e if radioButton26.Checked label8.Text radioButton17.Text; else if radioButton27.Checked label7.Text radioButton17.Text; private void 成人储值票ToolStripMenuItem_Click object sender, EventArgs e label10.Text 成人储值票ToolStripMenuItem.Text; private void 学生票ToolStripMenuItem_Click object sender, EventArgs e label10.Text 学生票ToolStripMenuItem.Text; (2)费用计算功能 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace station class Dijksta ArrayList stations new ArrayList ; Station stationtemp; Station pretemp; ArrayList colored new ArrayList ; ArrayList uncoloed new ArrayList ; ArrayList mintmp new ArrayList ; int des -1; int removeid -1; int nextcolour -1; public string startname; public Dijksta public void setstartdes string mstartname,string desname for int i 0;i t;i++ if Station map.stations[i] .name! mstartname uncoloed.Add map.stations[i] ; else startname mstartname; Station map.stations[i] .distance 0; colored.Add Station map.stations[i] ; if Station map.stations[i] .name desname des i; public Station calpath while uncoloed.Count! 0 int min 10000; for int i 0; i uncoloed.Count; i++ for int j 0; j colored.Count; j++ //未着色点uncoloed[i] 通过所有已着色点 int temp Station colored[j] .distance + map.m_map[ Station colored[j] .id-1, Station uncoloed[i] .id-1]; if temp Station uncoloed[i] ptmp //此未着色点距原点的距离 Station uncoloed[i] ptmp temp; Station uncoloed[i] .pre Station colored[j] ; if Station uncoloed[i] ptmp min //dis取最小值的时候的点作为下一个着色点 Station uncoloed[nextcolour] min Station uncoloed[i] ptmp; nextcolour i; Station uncoloed[nextcolour] .distance Station uncoloed[nextcolour] ptmp; for int count2 0;count2 Station uncoloed[nextcolour] .t;count2++ Station uncoloed[nextcolour] .path.Add Station uncoloed[nextcolour] .pre.path[count2] ; Station uncoloed[nextcolour] .path.Add Station uncoloed[nextcolour] .name ; colored.Add Station unc
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 环境建筑 > 铁路地铁

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服