您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 公交车信息查询程序设计
沈阳航空航天大学课程设计报告课程设计名称:C语言课程设计课程设计题目:公交车信息查询程序设计院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:完成日期:沈阳航空航天大学课程设计报告-I-目录第1章概要设计..........................................................................................................11.1题目的内容与要求...............................................11.2需求分析.......................................................11.3总体结构.......................................................2第2章详细设计..........................................................................................................32.1数据结构设计...................................................32.2主模块.........................................................32.3录入模块.......................................................42.4增加模块.......................................................62.5修改模块.......................................................82.6显示模块.......................................................92.7查询模块......................................................10第3章调试分析........................................................................................................14第4章使用说明与执行结果....................................................................................15参考文献........................................................................................................................18附录(程序清单)..................................................................................................19沈阳航空航天大学课程设计报告第1章概要设计-1-第1章概要设计1.1题目的内容与要求内容:编写公交车信息查询程序,通过该程序实现对沈阳市内公交车信息的查询,要求完成的主要功能如下:(1)增加某路新公交车的信息,包括该路公交车的路经站点的站名及始发站发车的起止时间;(2)修改某路公交车的信息,包括该路公交车的路线及始发站发车的起止时间;(3)显示所有公交车的信息(公交车号,公交车站点名称,始发站发车的起止时间);(4)通过输入公交车站点名称查询经过该站的公交车信息;(5)通过输入公交车号查询公交车信息。要求:(1)查阅沈阳市公交车信息,做好前期准备工作;(2)使用C语言完成编码和调试,通过检查;(3)使程序在VC++6.0下运行;(4)涉及到的公交车不少于3路。1.2需求分析对于公交车信息查询系统,需要先查询与公交车系统相关的资料,于是我从网上查找到了关于公交车站点的资料。同时,还要解决储存信息的问题,所以应先建立一个结构体数组来储存公交车信息。由于公交车信息量很庞大,应该包含从文件中录入的功能,直接从文件中录入公交车信息,因为功能很多,所以应使用switchcase语句实现多个功能的选择实现,另外由于要查询站点,因此录入时站点应该有分开的标识符“-”,此外由于功能很多,每个功能后应该有返回主菜单的功能。沈阳航空航天大学课程设计报告第1章概要设计-2-1.3总体结构本程序主要分为六个模块:主模块,录入模块,增加模块,修改模块,显示模块,查询模块。主模块的功能是调用menu函数,实现各函数的运行。录入模块的功能是将公交车信息录入结构体中。增加模块的功能是增加公交车信息,将信息存储在结构体中。修改模块的功能是修改公交车信息,将修改后的信息放到结构体里存储。显示模块的功能是将所有公交车信息显示出来,包括公交车号,公交车途经站点及始发站发车的起止时间。查询模块的功能是通过输入公交车号或者输入公交车站点名称两种形式查询公交车信息。图1.1公交车信息查询系统功能模块图公交车信息查询系统增加公交车信息模块修改公交车信息模块显示公交车信息模块主模块查询公交车信息模块录入公交车信息模块沈阳航空航天大学课程设计报告第2章详细设计-3-第2章详细设计2.1数据结构设计structbus_information定义公交车信息结构体数组;{intnum;定义公交车号;charstaa[400];定义公交车站点数组;chartime[50];定义公交车始发站起始时间数组;}bus[15];申请15个存储公交车信息空间;使用文件录入公交车信息,使用结构体数组储存公交车信息,并且在查询时使用。2.2主模块控制整个程序的运行,控制菜单操作,通过主函数模块分别调用各个模块,实现各项功能,如下图2.1所示。沈阳航空航天大学课程设计报告第2章详细设计-4-图2.1主模块流程图注释:(1)先定义整型变量a;(2)用switchcase语句选择操作,调用函数;(3)a等于1,则调用luru函数;(4)a等于2,则调用add函数;(5)a等于3,则调用modification函数;(6)a等于4,则调用xianshi函数;(7)a等于5,则调用station_search函数;(8)a等于6,则调用num_search函数。2.3录入模块将公交车信息通过直接输入或者从文件读取两种方式录入结构体中,实现对公开始输入1-7选择操作结束调用luru调用add调用modification调用xianshi调用station_search调用num_searchaa=1a=2a=3a=4a=5a=6沈阳航空航天大学课程设计报告第2章详细设计-5-交车信息的查询,流程如图2.2所示。图2.2录入公交车信息模块流程图注释:开始a=1输入车辆信息Y读入公交车信息N在g:\\bus.txt中录入文件g:\\bus.txt为空pp++无法打开文件结束调用luru选择录入公交车信息的方式YN返回主菜单N没有读到存储的公交车末尾读入文件中的信息NY没有读到存储的公交车末尾Y沈阳航空航天大学课程设计报告第2章详细设计-6-(1)定义一个整型变量a。(2)输入1或2选择录入方式,判断a为哪个数值。(3)若a为1,则直接输入车辆信息,判断num是否等于0,若不等于0,则读入信息,循环操作,直到为0,跳出,输入1返回主菜单,判断a是否为1,若是,则返回主菜单,否则输出“错误”并结束操作;(4)若a不为1,则在文件bus中录入车辆信息,判断g:\\bus.txt文件是否为空,若是,则清屏并输出“无法打开文件”,否则读入文件中的信息存到结构体中,判断num是否等于0,若不等于0,则执行pp++并将文件中的信息读入结构体中,循环操作,直到num为0,跳出,输入1返回主菜单,判断a是否为1,若是,则返回主菜单,否则输出“错误”并结束操作。2.4增加模块输入要增加的公交车的车号,途经站点名称及始发站发车的起止时间,将新公交车信息存在结构体内,流程如图2.3所示。沈阳航空航天大学课程设计报告第2章详细设计-7-图2.3增加公交车信息模块流程图注释:(1)定义一个整型变量a。(2)当结构体中的公交车号num不等于0时,执行pp++操作,执行完后循环判断结构体中的公交车号num是否等于0,若没有读到结构体中存储的公交车的末尾,则执行pp++操作,直到不成立时输入新公交车信息。(3)输入完新公交车信息后,输出“录入成功,输入1返回主菜单”,读入所输的数字a。(4)判断a是否等于1,若是,则返回主菜单,否则,输出“错误”,并结束操作。inta开始Ypp++结束调用add没有读到存储的公交车末尾N输入公交车信息返回主菜单沈阳航空航天大学课程设计报告第2章详细设计-8-2.5修改模块修改结构体中存储的公交车信息,流程如图2.4所示。图2.4修改公交车信息模块流程图开始没有读到存储的公交车末尾输出公交车信息pp++Y调用modificationN输入要修改的车Yi=15i++pp++Y重新输入并读入公交车信息Na等于结构体中存储的车号结束Nm=1m=0未找到车辆Y返回主菜单N沈阳航空航天大学课程设计报告第2章详细设计-9-注释:(1)定义整型变量a,i,m均等于0。(2)当结构体中的公交车号num不等于0时,输出车辆信息并执行pp++操作,执行完后循环判断结构体中的公交车号num是否等于0,若没有读到存储的公交车末尾,则输出车辆信息并执行pp++操作,直到不成立时,输入要修改的公交车的号码。(3)判断i=15是否为真,若为假,则判断m是否等于0,若m等于0,则输出“未找到车辆,输入1返回主菜单”,判断a是否等于1,若是,则返回主菜单,否则,输出“错误”,并结束操作;若i=15为真,则判断a等于结构体中存储的车号是否为真,若为真,则输出“重新输入公交车信息”,并使m等于1,结束操作,若a等于结构体中存储的车号为假,则执行i++,pp++,判断i=15是否为真,如此循环操作。2.6显示模块显示出所有公交车的信息,包括公交车号,公交车站点,始发站发车的起止时间,流程如图2.5所示。沈阳航空航天大学课程设计报告第2章详细设计-10-图2.5显示公交车信息模块流程图注释:(1)定义一个整型变量a。(2)判断num是否为0,若不为0,则输出车辆信息并执行pp++操作,循环操作,直到读到存储的公交车末尾时,输出“输入1返回主菜单”。(3)判断a=1是否成立,若是,则返回主菜单,否则,输出“错误”,并结束操作。2.7查询模块通过输入公交车站点名称或者公交车号实现对公交车信息的查询,流程如图2.6和图2.7所示。开始没有读到存储的公交车末尾Y输出车辆信息pp++结束调用xianshiN返回主菜单沈阳航空航天大学课程设计报告第2章详细设计-11-2.6.1查询公交车信息模块流程图(通过公交车站点名查询)开始inta输出“请选择查询要求”结束调用station_search调用sta_search(1)调用sta_search(2)调用sta_search(3)a=2a=1a=3a沈阳航空航天大学课程设计报告第2章详细设计-12-图2.6.2查询公交车信息模块流程图(通过公交车站点名查询)注释:(1)定义一个整型变量a。(2)用switchcase语句选择操作,调用sta_search(a)函数。(3)定义公交车站名数组sta_name[50],用for循环将结构体中的公交车站点开始输入公交车站名,sta_nameN调用sta_search(a)Yi=15n=0i++,pp++t=0Y无此站点返回主菜单N结束沈阳航空航天大学课程设计报告第2章详细设计-13-名与输入的站点名
本文标题:公交车信息查询程序设计
链接地址:https://www.777doc.com/doc-3506548 .html