火车票订票系统.doc
《火车票订票系统.doc》由会员分享,可在线阅读,更多相关《火车票订票系统.doc(39页珍藏版)》请在三一办公上搜索。
1、目 录1 课程设计介绍.31.1 课程设计内容31.2 课程设计要求32 概要介绍32.1系统总体设计32.2各子模块设计42.2.1主函数模块:42.2.2火车信息录入模块:42.2.3火车订票模块:52.2.4火车票退票模块:52.2.5火车车次查询模块:62.2.6显示火车信息模块:73 详细设计73.1主函数模块所涉及的函数分析73.2录入火车信息模块所涉及的函数分析113.3火车票订票模块所涉及的函数分析123.4退订火车票模块所涉及的函数分析143.5查询成员模块所涉及的函数分析153.6显示成员模块所涉及的函数分析194 软件测试204.1主程序运行界面204.2功能测试214.
2、2.1火车信息录入功能模块运行结果截图214.2.2火车票订票功能模块运行结果截图214.2.3退票功能模块运行结果截图224.2.4查询功能模块运行结果截图234.2.5显示功能模块运行结果截图255 总结255.1设计中出现的问题以及解决的办法汇总(调试过程记录)255.2课程设计心得体会27所有源代码:28参考文献37 软件技术基础课程设计说明书题目: 火车订票系统的设计 学生姓名: 学 号: 院 (系): 电气与信息工程学院 专 业: 电子信息科学与技术指导教师: 杨帆 2015 年 06月26日课程设计报告1 课程设计介绍 1.1 课程设计内容 软件技术基础课程是非计算机本科专业学习
3、计算机软件基础知识的综合性基础课程。学习本课程,要求学生对软件技术的各个组成部分的基础知识、发展趋势有全面、系统的了解;掌握基本数据结构,达到能熟练运用解决实际问题的程度;掌握操作系统基本原理和类型,了解系统各种管理功能。通过自学了解软件工程的基本概念,软件设计开发的过程和相关技术。 实践环节具体任务:设计、开发一种火车订票系统。通过此系统可以实现如下功能:火车车次信息录入、车次信息查询、火车票订票、火车票退票等。1.2 课程设计要求 系统应该至少提供以下模块: 火车车次信息录入: 可以录入车次情况(包含车次编号、出发时间、出发站、到达站、到达时间、途经主要大站(需要考虑如何保存这些信息)等信
4、息) 车次信息查询: 可以查询某个车次的情况(如,输入车次号,查询出站、到站时间,票价,票价折扣,确定车次是否满员);可以输入出发站点、到达站点城市,查询火车车次情况; 火车票订票: 可以订票,如果该车次已经无票,可以提供相关可选择车次(同样到达点、途经出发站的其他火车)订票时需要提供时间、车次、车厢号、座位号、票价、订票人姓名、订票人联系方式、证件号码、订票数量、订单号等,只能比这个多,不能少于这些信息; 火车票退票: 可退票,退票后修改相关数据;客户资料有姓名,证件号,订票数量及车次情况,订单要有编号。 要求: 根据以上功能说明,设计火车票订票系统订票环节涉及的信息,订票信息的存储结构,设
5、计程序完成功能。2 概要介绍 2.1系统总体设计 首先考虑好选用链表结构存储通讯录。经过对程序设计题目的分析可知,整个程序的设计实现大致分为六个模块,每一个模块对应一个函数。这些函数分别为:火车信息录入函数,火车车次查询函数,火车票订票函数,火车票退票函数,显示火车信息函数,主函数(包括菜单控制程序函数)。 2.2各子模块设计2.2.1主函数模块: 实现程序最初运行时的菜单界面,以及对其他模块的调用。同时建立火车信息单链表。其中采用switch函数实现对菜单目录的每个模块的运行。 结构框图:2.2.2火车信息录入模块: 主要实现程序最初运行时火车信息的录入。用头插入法建立带有头结点的单链表。结
6、构框图:运行录入函数依次输入编号、出发时间、到达时间,出发站、终点站、途径大站、票价、剩余票数。并将其分别保存在所建立的链表中返回主菜单2.2.3火车订票模块: 实现的功能是查询到火车信息后,客户购买火车票,输入客户的姓名、手机号、身份证号等基本信息并依次保存到客户链表位置。 结构框图:运行订票函数调用查询函数,查询所需求的列车信息购买火车票,输入客户的姓名、手机号、身份证号自动生成车厢号、座位号及订单号返回主菜单界面2.2.4火车票退票模块: 实现的是查询已订票的客户,然后退票并输出订单号。结构框图:运行退票函数查询已订票的客户信息并输出退订查询的客户火车票,输出订单号返回到主菜单2.2.5
7、火车车次查询模块: 实现的是查询目前链表里火车的信息。该模块又细分为3个小模块,分别是按编号查询、按出发站查询、按终点站查询,用if选择语句实现对这三个小模块的运行选择。查询功能用strcmp比较函数实现,Strcmp函数比较原理:例如:strcmp(str1,str2); 比较的结果由函数值带回。如果字符串1=字符串2,则函数值为0.如果字符串1字符串2,则函数值为一个正整数.如果字符串1字符串2,则函数值为一个负整数.流程图:2.2.6显示火车信息模块: 实现功能为显示链表中所有的火车信息。原理是遍历链表,并输出所有信息。结构框图:运行显示函数遍历链表,输出所有火车信息返回主菜单界面3 详
8、细设计 3.1主函数模块所涉及的函数分析源代码:#include#include#include/使用getch()#includestruct train char num10; /火车编号 char ltime10; /出发时间 char atime10;/到达时间 char leave10;/出发站 char arrive10; /到达站 char through10;/途径大站 char price10;/票价 char shengpiao10;/剩余票数 struct train *next;/火车信息单链表struct manchar name10; /姓名 char phone1
9、1; /手机号 char number18;/身份证号struct man *next;/客户信息单链表void main()/主函数,菜单程序 train *head=(train*)malloc(sizeof(train); man *h=(man*)malloc(sizeof(man); head-next=NULL; h-next=NULL; char choice; printf(n-n);printf(-n);printf(- -n);printf(- 欢迎进入火车票管理系统 -n);printf(- -n);printf(-n);printf(-nn);printf( n - 请
10、输入选项 -n);printf( 1.火车信息录入n);printf( 2.火车信息查询n);printf( 3.购票n); printf( 4.退票n); printf( 5.显示火车信息n); printf( 6.退出管理系统n); printf( 请按键选择n); while(true) printf(请按键选择操作:n); fflush(stdin); /清除缓冲区 choice=getch(); switch(choice) case 1: printf(*n); printf(* 火 车 信 息 的 录 入 *n); printf(*n); insert(head);/调用录入函数
11、 break; case 2: printf(*n); printf(* 查 询 火 车 信 息 *n); printf(*n); find(head);/调用查询函数 break; case 3: printf(*n); printf(* 购 买 火 车 票 *n); printf(*n);printf(*请查询火车信息*n);find(head);/调用查询函数 buy(h);/调用买票函数 break; case 4: printf(*n); printf(* 退 票 *n); printf(*n); nam(h);/调用查询客户函数 tui(h);/调用退票函数 break; case
12、 5: printf(*n); printf(* 显 示 火 车 信 息 *n); printf(*n); show(head); break; case 6: exit(0); default: printf(输入错误n); 流程图:3.2录入火车信息模块所涉及的函数分析源代码:void insert(train* head)/录入火车信息 train *p=head;/申请头结点 train *newrecord=(train*)malloc(sizeof(train);/申请存空间 printf(输入火车信息n); printf(编号:); scanf(%s,newrecord-num)
13、; printf(出发时间:); scanf(%s,newrecord-ltime); printf(到达时间:); scanf(%s,newrecord-atime); printf(出发站:); scanf(%s,newrecord-leave); printf(到达站:); scanf(%s,newrecord-arrive); printf(途径大站:); scanf(%s,newrecord-through); printf(票价:); scanf(%s,newrecord-price); printf(剩余票数:); scanf(%s,newrecord-shengpiao); w
14、hile(p-next!=NULL) if(strcmp(p-num,newrecord-num)=0) printf(此编号的列车已存在!n); return; p=p-next; p-next=newrecord; newrecord-next=NULL; printf(添加成功n);流程图:3.3火车票订票模块所涉及的函数分析源代码:void buy(man* h)/订票函数int i,j,k,a,b,c;a=1;b=1;c=1001;printf(是否订票(1/0):);scanf(%d,&i);if(i=1)printf(请输入订票数量n);scanf(%d,&j);for(k=0;
15、kname); printf(手机号:); scanf(%sn,newrecord-phone); printf(身份证号:); scanf(%sn,newrecord-number); printf(=n); printf(购票成功n); printf(车厢号:%dn,&a); printf(座位号:%dn,&b); printf(订单号:%dn,&c); printf(=n); while(p-next!=NULL) p=p-next; b=b+1; c=c+1; p-next=newrecord; newrecord-next=NULL; 流程图:3.4退订火车票模块所涉及的函数分析源代
16、码:void tui(man* h)/退票函数 int n,m; m=1000; printf(是否退票(1/0):); scanf(%d,&n); if(n=1) printf(退票成功n); printf(订单号为:%d,&m); m=m+1; void nam(man* h)/查询客户信息函数 man *p=h-next; char name10; printf(请输入要查询的名字: n); p=h-next; scanf(%s,name); while(p!=NULL) if(strcmp(p-name,name)=0) printf(客户信息:n); printf(姓名:%sn,p-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 火车票 订票 系统

链接地址:https://www.31ppt.com/p-1642399.html