车票管理系统C语言课程设计报告.doc
《车票管理系统C语言课程设计报告.doc》由会员分享,可在线阅读,更多相关《车票管理系统C语言课程设计报告.doc(52页珍藏版)》请在三一文库上搜索。
1、 车票管理系统HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言程序设计课程设计报告课设题目: 车票管理系统 专 业: 自动化(汽车工业电气自动化) 班 级: T1123-6 姓 名: 张科 成 绩: 完成日期: 2012年6月18日2012年6月22日 指导教师: 胡宁亚 苗暹 目 录1.课程设计目的22.需求分析22.1要求22.2任务描述22.3运行环境32.4开发工具33.总体设计33.1系统流设计33.2系统模块设计44.详细设计54.1数据结构设计54.2模块接口设计64.3 以下是几个主要模块的流程图:75.运行结果105.1主菜单界面:10
2、5.2信息录入界面:105.3信息浏览界面:115.4 信息查询界面:115.5信息修改界面:126.程序调试与测试126.1程序调试126.2程序测试127.问题与不足128.建议129.编程体会1210.程序源代码:1211.参考文献1312.用户使用手册131.课程设计目的1) 通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。2) 通过课程设计,进一步掌握C语言中重要的数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。3) 通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。4) 通过课程设计,培养C语言知识运用和自
3、学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。5) 通过课程设计,加强了自己的程序分析能力。2.需求分析2.1要求1) 遵循软件开发过程的基本规范;能灵活应用,初步具备运用C程序解决实际问题的能力。2) 运用结构化程序设计方法,按照课程设计题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写代码、调试和测试C程序等过程。3) 学会利用数组、结构体、链表进行相关信息表示。4) 功能模块划分清晰,系统结构图符合功能操作要求,且有详尽的功能描述5) 各主要功能模块有详尽的流程图及描述,用函数的形式实现,且调用入口、功能、出口等关系正
4、确。6) 所设计的C程序较好的可读性和可靠性;程序书写风格规范,注释清晰。7) 界面友好(良好的人机互交),凡需要输入信息时,都有较详尽的提示信息,并对输入信息有较完善的值域分析。8) 程序经上机调试通过,不应出现语法型、功能型错误,并获得满意的结果。9) 学会通过各功能性测试用例测试程序的能力,尽可能避免原则性错误的出现。10) 掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。11) C语言课程设计报告的内容反应实际设计过程,且符合格式要求,无抄袭现象。2.2任务描述车票管理系统题目描述一车站每天有n个发车班次,每个班次都有一班次号(1、2、3n),固定的发车时间
5、固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数 票价1 8:00 十堰 丹江 3 45 30 362 6:30 十堰 郧县 1 40 40 483 7:00 十堰 郧西 4 40 20 474 10:00 十堰 竹山 3 40 2 27 试设计车票管理系统,使之能提供以下功能:(1) 录入班次信息(信息用文件保存),可不定时地增加班次数据(2) 浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。(3) 查询路线:可按班次号查询 ,可按终点站查询(4
6、 售票和退票功能A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数;B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数;(5) 所有数据符合实际应用要求题目要求(1) 按分析、设计、编码、调试和测试的软件开发过程完成这个应用程序。(2) 班次信息应该包括:班次、发车时间、起点站、终点站、行车时间、额定载量、已定票人数等。(3) 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。(4) 每个功能操作中,不应有原则性的错误出现;(5) 对输入值用测试用例测试,不应有错误出现;(6)
7、界面应友好,操作应流畅。输入要求应用程序运行后,在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后,一般应有相应的子菜单,或有相应的提示信息,根据提示信息的要求,从键盘或文件输入相应的信息。输出要求(1) 应用程序运行后,要在屏幕上显示一个菜单。(2) 要求用户输入数据时,要给出清晰、明确的的提示信息,包括输入的数据内容、格式及结束方式等。提示设计一个结构体类型和一维数组类型,用来存放班次信息。扩展功能将所有班次信息存储在一个文件中,并实现文件读写的操作。2.3运行环境1) WindowsXP/7系统2) VC+6.0编译环境2.4开发工具C语言3.总体设计3.1系统流
8、设计本系统的功能模块如图1所示,主要有以下模块按车次查询按终点站查询增加班次信息浏览班次信息题 目 信 息保 存退出系统录入班次信息程序欢迎界面主菜单界面售票退票查询班次信息返回主菜单3.2.系统模块设计1) 课程名称界面:主函数int main(),实现课程设计名称以欢迎界面。2) 主菜单界面:构造函数void mainmenu(),实现系统主菜单的显示。3) 系统时间显示:构造系统时间函数int system_time()。实现系统时间的显示以及和车开的时间比较式否以开车。4) 主菜单的选择:构造主菜单选择函数 void chose(),实现主菜单的选择。5) 班次信息的读入:构造主菜单读
9、入函数void load(void),实现文件信息的读入。6) 增加班次函数:构造增加班次函数void add(),实现班次的增加。7) 班次信息的浏览:构造主菜单浏览函数 void show(),实现车票信息浏览界面的显示。8) 班次的查询:构造主菜单查询函数void searsh(),实现车次的查询界面的显示,并通过对班次查询函数void searsh1(),终点站浏览查询函数void searsh2()的调用,实现相应的查询。9) 按班次查询:构造按车次查询函数void searsh1(),实现按车次的查询界面。10) 按终点站查询:构造按终点站查询函数void searsh2(),实现
10、按终点站的查询界面。11) 售票:构造主菜单售票函数void buy_system(),实现买票的界面。12) 退票:构造主菜单退票函数void back_ticket(),实现退票的界面13) 时间比较:构造时间比较函数int canpan(),实现时间比较功能,判断车是否开出。14) 储存当前班次信息:构造储存函数void save(),实现自动更新班次信息功能。4.详细设计4.1数据结构设计根据系统要求,系统中需要保存的数据信息,其结构如下:数据项名称数据项系统表示数据类型数据长度备注车次Numberint2发车时间小时hourint2发车时间分钟minuteint2起始站点origin
11、station20char20终点站last_station20char20持续时间last_timefloat4车次最大人数max_numberint22已售车票sold_ticketint2车票价格Piaojiaint2为了能实现程序的操作性和修改性,采用链表的结构保存车次信息,在车次的基本信息时,创建一个车票的节点,将其插入到链表中,示意图如下。 车次信息1车次信息2通讯录信息1221车次信息3车次信息4为此,先声明一个类型为struct ticket的结构体,其成员为车次的基本信息。然后通过对指针、链表、文件等数据结构的操作,实现对车次基本信息的录入,浏览,存盘,等一系列操作。其中,
12、结构体定义如下:struct ticket /定义记录车票信息的结构体 int number; /定义车次 int hour; /记录发车时间包含小时 int minute; /分钟 char origin_station20; /起始站名称数组char last_station20; /终点站名称数组float last_time; /持续时间int max_number; /车次最大运载量int sold_ticket; /已售车票 int piaojia ; /车票的价格struct ticket *next; 4.2模块接口设计1) 所有函数模块声明如下:/*函数声明*/ int sy
13、stem_time(); /系统时间函数void mainmenu(); /主菜单函数void chose(); /主菜单选择函数void load(void); /主菜单读入函数void add(); /增加班次函数void show(); /主菜单浏览函数void searsh(); /主菜单查询函数void searsh1(); /按车次查询函数void searsh2(); /查询函数void buy_system(); /主菜单售票函数void back_ticket(); /主菜单退票函数int canpan(); /时间比较函数void save(); /储存函数void tim
14、u(); /题目函数2) 并定义九个全局变量:int s;int flag = 1; int syshour; int sysminute; char filename50;struct ticket *head=NULL,*p1,*p2,*p33) 主要模块的实现系统以主函数int main()为入,进入系统欢迎界面。然后调用void mainmenu()函数,进入主菜单界面。系统接收用户输入的选择,调用相应的函数,进入到下一级菜单进行相关工作。:1如果用户选择选择1,则调用录入班次函数void load(void)录入班次信息。2如果用户选择选择2,则调用增加班次函数void add()增
15、加班次信息。3如果用户选择选择3,则调用浏览班次函数void show()浏览班次信息。4如果用户选择4,则条用查询函数void searsh()进入查询界面菜单。系统接收用户输入的选择,调用相应的函数,进入到下一级菜单进行相关工作。:1如果用户选择1,则调用按班次查询函数void searsh1()进行班次查询。 2如果用户选择2,则调用按终点站查询函数void searsh2()进行班次查询。3如果用户选择3,则返回主菜单界面。5如果用户选择5,则调用售票void buy_system()进行买票功能。6如果用户选择6,则调用退票void back_ticket()函数进行退票功能。7如果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 车票 管理 系统 语言 课程设计 报告
