c语言车票管理系统实验报告

合集下载

车票管理系统课程设计报告

车票管理系统课程设计报告

车票管理系统课程设计报告车票管理系统课程设计报告车票管理系统一目的通过课程设计,加深对《C语言程序设计》和《数据结构》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用等;复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等),熟练掌握和巩固三种基本的数据结构(线性结构、树形结构、图形结构)的逻辑结构、存储结构以及相关运算和应用。

学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力二需求分析1、首先本演示程序要实现录入班次信息的功能,并且要用文件来保存这些信息,还可以不定时的增加班次数据。

2、需要浏览班次信息是可以一次性输出当前的班次状况,并且要从实际考虑,若当前系统时间已经超过了某班次的发车时间,则要显示“此班已发出”的提示信息。

3、此程序既为车票管理系统,就要实现查询路线、售票、退票等功能。

当使用查询路线功能时,要分两种情况:按班次号查询和按终点站查询。

若使用售票功能,则只有在查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,并且要自动跟新已售票人数。

退票要输入退票的班次,当本班车尚未出发时才能退票,也要自动更新已售票人次。

4、演示程序以用户和计算机的对话方式执行,即在计算机的屏幕上显示“提示信息”下,用户根据自己的意愿自行操作,每次测试完毕,新增加的班次信息要保存在data.txt文件中。

三概要设计1、本程序各个模块的功能及调用关系:(1)主程序模块main()函数:车票管理系统课程设计报告此主程序的主要目的是用来调用读取文件函数、功能菜单函数以及保存文件信息函数。

(2)文件读入与保存函数read()、save()以及功能菜单MainMenu()函数:这三个函数的主要目的是为了读取文件,保存文件和为用户创造一个功能菜单以便于用户的操作。

车票管理系统实验报告(电子)

车票管理系统实验报告(电子)

二○一三~二○一四学年第二学期车票管理系统实验报告物理与电子工程学院课程名称:数据结构班级:学号:姓名:二○一四年六月(1)题目:车票管理系统(2)系统功能模块结构图(3)各模块的功能1.信息输入模块即录入班次信息:完成班次信息的输入功能,输入信息包括班次、发车时间、起点站、终点站、行车时间、额定载量、已定票人数等;2.信息浏览模块即浏览班次信息:完成已录入信息的显示;3.信息查询模块即查询班次信息:完成班次信息的查询,查询时对应有按班次查询和按终点站查询两种方式;4.售票和退票模块:完成车票的购买和退订的功能;5.菜单选择模块即主菜单:完成用户命令的接收,此模块也是车票管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能。

(4)数据结构设计及用法说明头文件,一个名TICKET的结构体进行定义:typedef struct ticket //用typedef定义结构体为TICKET{int num; //班次char starttime[10]; //发车时间char begin[21]; //起始站char end[21]; //终点站float lasttime; //行车时间int CarryNumber; //额定载量int SellNumber; //已定票人数struct ticket *next; //结点的指针域}TICKET,*Ticket; //结构体类型指针然后对各调用函数进行定义:void InsertTicket() //录入班次void FileRead() //班次信息文件读入void Keep() //保存数据void ScanTicket() //浏览信息void ScanTicket() //浏览信息void SearchbyNum() //按班次查询班次void SearchbyEnd() //按终点站查询班次void Buyticket() //预定车票void ReturnTicket() //退订车票int GetHour(char *s) //获取班次小时int GetMinute(char *s) //获取班次分钟void exit() //退出该系统最后定义main()函数,利用函数调用,实现程序的各种功能。

车票管理系统实习报告

车票管理系统实习报告

一、实习背景随着社会经济的快速发展,人们的出行需求日益增加,车票管理系统作为现代化交通工具的重要组成部分,其重要性不言而喻。

为了提高车票管理效率,减少人工操作带来的不便,我国各大交通部门纷纷研发和实施车票管理系统。

本人在实习期间,有幸参与了某汽车站车票管理系统的设计与开发,以下为实习报告。

二、实习目的1. 熟悉车票管理系统的基本概念、设计原则和开发流程。

2. 掌握C语言编程技术,提高编程能力。

3. 了解数据库技术,提高数据库应用能力。

4. 培养团队协作和沟通能力。

三、实习内容1. 系统需求分析在实习初期,我首先对车票管理系统进行了需求分析。

通过对汽车站售票业务的了解,我发现车票管理系统应具备以下功能:(1)车次信息管理:录入、修改、删除车次信息,包括车次号、发车时间、起点站、终点站、行车时间、额定载客量等。

(2)票务信息管理:录入、修改、删除票务信息,包括车票号、票价、座位号、乘客姓名、联系方式等。

(3)售票查询:根据车次、时间、站点等信息查询车票信息。

(4)售票操作:进行售票、退票、改签等操作。

(5)统计报表:生成售票统计报表,包括车次售票情况、票价统计、售票员业绩等。

2. 系统设计在需求分析的基础上,我进行了系统设计。

系统采用模块化设计,主要包括以下模块:(1)数据模块:负责数据的存储、检索和更新。

(2)功能模块:实现售票、查询、统计等功能。

(3)界面模块:提供用户界面,方便用户进行操作。

3. 系统实现在系统实现阶段,我主要使用C语言进行编程,并结合数据库技术实现系统功能。

具体如下:(1)数据模块:采用关系型数据库MySQL存储数据,设计数据库表结构,实现数据的增删改查。

(2)功能模块:编写售票、查询、统计等功能模块的代码,实现系统功能。

(3)界面模块:使用C语言中的图形界面库,如GTK+等,设计用户界面。

4. 系统测试与优化在系统开发完成后,我对系统进行了测试和优化。

主要测试内容包括:(1)功能测试:验证系统功能是否满足需求。

火车票管理系统——C语言程序设计实训报告

火车票管理系统——C语言程序设计实训报告

题 目: 学生成绩管理系统院 系: 信息科技学院专 业: 计算机科学与技术姓 名: 何荣荣学 号: 1751200204指导教师: 王小琼日 期: 2018年6月28日桂林电子科技大学信息科技学院前 言课程设计环节是应用型本科院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。

通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学得专业理论知识,而且能够培养学生工程意识、创新能力、团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。

C语言由于其强大的功能,丰富的表达能力,高效的代码,良好的移植性和灵活性,自1972年问世以来,经久不衰,即使现在出现了面向对象的程序设计方法和开发工具,但它仍然是人们学习程序设计的首选语言,用它训练和提高编程技术,以及开发应用程序等。

我们通过《C语言程序设计》这门课程的学习,已经能编写解决小问题的程序,对程序的开发也有了初步的认识,还掌握了C 语言的基本语法,这一过程确确实实令我们感到欣喜,有点计算机可以完成自我任务的成就感。

但是,对于程序设计而言,学习C 的步伐不应该停留于此。

我们最终的目的应该是掌握开发大型综合程序的方法,即遵循软件工程的开发步骤和结构化程序设计思想,用C 语言开发出解决复杂问题的大型综合程序。

可是对于多数学生来说,学习了C语言后,除了应付各种考试之外,别无它用,对Turbo C语言丰富的函数知之甚少,加上DOS环境所限,因而对C语言兴趣不大,也感到C语言比较难以掌握。

本实训就是为了让学生在学完C语言后进一步了解C语言的知识,掌握C语言在软件开发方面的使用方法,希望通过此次实训,不仅能提高学生学习C语言的兴趣,更为今后学习其它专业知识及开发程序打下坚实的基础。

本指导书中有些内容借鉴了互联网上相关程序的设计思想,在此对相关者表示衷心的感谢。

由于时间、经验及水平的原因,不当、不足之处,请大家提出宝贵意见。

课程设计报告_车票管理系统

课程设计报告_车票管理系统

湖南工业大学课程设计(实训)资料学院计算机学院2018-2019 学年第 1 学期课程名称面向过程程序设计(C语言)课程设计指导教师xxx 学生姓名xxx 专业班级计算机类xxx 学号xxx题目车票管理系统起止日期2019 年12 月23 日~2019 年 1 月 2 日目录清单课程设计(实训)任务书学院:计算机学院学生姓名:xxx 专业班级:xxx课程名称:面向过程程序设计(C语言)课程设计设计题目:车票管理系统完成期限:自2018 年12 月23 日至2019 年 1 月 2 日共1周指导教师(签字):年月日系(教研室)主任(签字):年月日课程设计(实训)报告课程名称:面向过程程序设计(C语言)课程设计题目:车票管理系统起止日期:2018 年12 月23 日至2019 年1 月2 日学院计算机学院学生姓名xxx班级计算机类xxx学号xxx成绩指导教师(签字)2019 年1 月目录1 课题简介 (5)1.1系统简介 (5)1.2开发环境及开发工具 (5)2 问题分析 (6)2.1需求分析 (6)2.2问题分析 (7)2.3系统中涉及到的相关算法 (8)3 系统设计 (10)3.1系统功能设计 (10)3.2系统的功能分析 (12)4 系统的实现 (13)4.1系统主函数设计 (13)4.2录入和增加班次模块 (14)4.3查询和浏览模块 (18)4.4售退票模块 (23)5 系统测试 (27)5.1软件测试 (27)5.2系统有效性 (27)6 设计总结 (27)参考文献 (28)1 课题简介1.1系统简介通过这次系统开发的经历,通过查询各种书籍以及网上视频去学会怎样灵活地去运用C语言设计编写一些小功能函数,并且结合课上所学的的知识,将呆板的文字知识变成实际的动手能力,通过编写课程设计,去体会逻辑思维和设计算法能力的重要性,并且要知道编写代码应该思路清晰,格式整齐,简单易懂为主。

我也需要去发现所学知识中的漏洞,并且及时翻找资料完善不足以提高自身水平、完善自身。

车票管理系统C语言课程设计报告实验报告

车票管理系统C语言课程设计报告实验报告

.东华理工大学C语言课程设计题目名称车票管理系统程序设计姓名刘韬学号201520150133班级1521501指导教师徐猛华编写日期2016年1月目录第一章、设计任务需求分析 (2)1、目标;2、要求;3、学生成绩管理系统;第二章、总体设计 (2)1、采用的基本思想及完成过程;2、遇到的问题和解决的方法;3、程序设的流程图;第三章、所负责部分详细设计 (4)1、程序所需函数;2、明确分工各组员所负责的模块;3,函数功能及参数的意义;4、模块功能说明;第四章、程序运行结果测试 (7)1、录入班车信息;2、浏览班车信息;3、按班次查询;4、按终点站查询;5、订票;6、退票;7、退出系统;第五章、结论与心得 (10)第六章、致谢 (10)第七章、附录 (11)正文第一章、设计任务需求分析1、目标:(1)掌握和利用C语言进行程序设计的能力。

(2)理解和运用结构化程序设计的思想和方法。

(3)学会调试一个较长程序的基本方法。

(4)掌握书写程序设计开发文档的能力(书写课程设计报告)。

2、要求:该系统需实现的功能有(1)录入班次信息(信息用文件保存),可不定时地增加班次数据。

(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。

(3)查询路线:可按班次号查询,可按终点站查询(4)售票和退票功能:A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。

B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。

3、学生成绩管理系统:程序执行出一个有好的人机界面,供人合理的操作,完成浏览查询、退订票以及自动更新的功能。

第二章、总体设计1、采用的基本思路:改程序设计采用的思路是利用结构体存放车辆信息,车辆的信息有操作人员录入,录入完成后,通过菜单的提示进行相应的操作,不同的模块采用不同的算法进行管理,主要采用的头文件有:#include<stdio.h>,#include<stdlib.h>,#include<string.h>,# define size 4。

c语言车票系统报告

c语言车票系统报告
int FixedNumber; /*已定票数*/
struct information *next;
}INFORMATION,*PINF;
void main() /*主函数*/
{
switch(i){ case 1:{
Insert(); printf("\n按任意键回主菜单......\n");getchar();getchar();}break;/*录入*/
case 2:{Scan();printf("\n按任意键回主菜单......\n");getchar();getchar();}break;/*浏览*/
case 3:SearchMenu();break;/*查询*/
case 4:Buyticket();break;/*订票*/
case 5:TicketDelete();break;/*退票*/
p=p->next;
}
fclose(fp);
}
void Scan()
{
PINF p=head->next;
printf("\n各班次信息如下:\n");
printf("\n班次号\t出发时间\t起点\t终点\t行车时间额定载客量已订票人数\n");
printf("____________________________________________________________________________\n");
void Save_In(); //把数据重新保存到文件中
void exit(); //退出该系统
input();
int i=0;
while(i!=6)

车票管理系统实习报告

车票管理系统实习报告

实习报告一、实习背景及目的近期,我参加了一次车票管理系统的实习,该系统采用C语言进行编程,旨在提高我对计算机编程能力的掌握,以及对于实际项目开发的认知。

本次实习的主要目的是熟悉C语言编程,了解软件开发流程,掌握项目管理工具,提高团队协作能力。

二、实习内容在本次实习中,我主要负责以下几个方面的工作:1. 录入班次信息:根据实际情况,录入发车班次的相关信息,包括班次号、发车时间、起点站、终点站、行车时间、额定载客量等,并将信息保存至文件。

2. 浏览班次信息:显示出所有班次的当前状态,如果当前系统时间超过了某班次的发车时间,则显示此班已发出”的提示信息。

3. 查询路线:可按班次号查询,也可按终点站查询。

4. 编写相关文档:包括需求分析、设计报告等。

三、实习过程及收获1. 实习过程:(1)首先,我们对车票管理系统进行了需求分析,明确了系统的功能要求,包括录入班次信息、浏览班次信息、查询路线等。

(2)然后,我们进行了系统设计,确定了采用文本菜单界面,以及C语言进行编程。

(3)接着,我们进行了编码实现,分别实现了录入班次信息、浏览班次信息、查询路线等功能。

(4)最后,我们对代码进行了调试和优化,确保系统的稳定性和性能。

2. 实习收获:(1)通过本次实习,我深入了解了C语言编程,掌握了C语言的基本语法和编程技巧。

(2)我学会了如何使用项目管理工具,如版本控制系统、代码调试工具等。

(3)我提高了团队协作能力,学会了如何与团队成员进行有效沟通,分工合作,共同完成项目。

(4)我了解了软件开发流程,包括需求分析、设计、编码、测试等环节,为今后从事软件开发工作奠定了基础。

四、实习总结通过本次实习,我对C语言编程有了更深入的了解,掌握了项目管理工具的使用,提高了团队协作能力。

同时,我也认识到了自己在编程能力和团队协作方面的不足,今后将继续努力,提高自己的综合素质,为更好地投身于软件开发工作做好准备。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《车票管理系统》程序设计实验报告物理与电子工程学院专业:电子信息科学与技术班级:电子132学号:1319200055姓名:黎杰华一、题目题目:车票管理系统二、系统功能模块结构图三、各模块功能1.录入班次信息2.显示班次信息3.查询班次:①按班次查询;②按终点查询;4.售票(1)售票成功(当车票有剩余,且车未发出时)(2)班次不存在(3)票已售完(当座位数小于等于已定票人数)(4)车已发出5.退票退票成功(输入的班次号存在且当前时间比发车时间早)退票失败(班次不存在或当前时间比发车时间晚)6.保存班次信息7.系统退出四、数据结构设计及用法说明使用数组五、画出各函数流程图六、实验结果主菜单车次信息录入显示班次信息查询班次信息售票退票文件保存七、体会这次实验让我们收获良多,这让我们得到了很多经验,又认识了很多的不足,在c语言这方面我们还需要很多的历练!我想通过这次的练习,我们都有所进展,我们现在需要的就是实践。

完成了任务我们还是很有成就感的,也增添了我们对c语言的热情!经过这几周,我们也比较满意自己的表现。

在此过程中我们翻阅很多的书籍,学到了很多课堂上没有的东西。

有好多知识是之前不知道的,现在了解了差不多了。

但是对于时间函数和文件保存,我还是不太清楚。

在文件读取上有不足。

这几周编程的过程实在是繁琐,但是在编出程序之后,是相当有成就感的,在今后我们知道,凡事都要有自己的见解,我们可以借鉴别人,但别人是不可复制的,我们要明白只有理解才是自己的,只有通过自己实践我们才能深刻的认识到这一点!八、参考文献[1] 谭浩强.C程序设计(第四版) 清华大学出版社[2] 严蔚敏数据结构人民邮电出版社九、附录#include<stdio.h>#include<time.h>#include<string.h>#include<dos.h>#include<stdlib.h>#include<ctype.h>#define Max 100//最大贮赌量#define null 0static int H=0;struct Times{//定义时钟int hour;int min;int sec;};struct Buses{//定义汽车int number;struct Times time;char start[30];char end[30];float time_cost;int carry_number;int prices;int booK_number;};struct Buses bus[Max];time_t now = time(0);tm *tnow =localtime(&now);void load();//载入车次信息void lu(void);//声明录入函数void chaxun(struct Buses bus[]);//声明查询路线函数void save(struct Buses bus[]);//声明保存函数int caidan();//声明菜单录数void liulan(struct Buses bus[]);//声明浏览函数void tuipiao(struct Buses bus[]);//退票void shoupiao(struct Buses bus[]);//声明售票函数void xitongtuichu();//声明退出函数//工具函数struct Buses copy(struct Buses b1,struct Buses b2);//赋值int compare_time(struct Times t1,struct Times t2);//时间比较函数int compare_systime(struct Buses bus,tm *T);//比较发车时间与当前系统时间的函数void print(struct Buses bus);//声明输入出函数int number_search(struct Buses bus[],int num);//声明按班次查询函数int end_search(struct Buses bus,char ends[]);//声明按终点查询函数int compare_systime(struct Buses bus,tm *T){//与系统时间的比较函数if(bus.time.hour>=T->tm_hour){return 1;if(bus.time.min>=T->tm_min){return 1;if(bus.time.sec>T->tm_sec)return 1;else return 0;}return 0;}return 0;}struct Buses copy(struct Buses b1,struct Buses b2){b1.booK_number=b2.booK_number;b1.carry_number=b2.carry_number;strcpy(b1.end,b2.end);b1.number=b2.number;strcpy(b1.start,b2.start);b1.time.hour=b2.time.hour;b1.time.min=b2.time.min;b1.time.sec=b2.time.sec;b1.time_cost=b2.time_cost;return b1;}//浏览车次函数//void liulan(struct Buses bus[]){getchar();int i;printf("\n\t\t\t\t车辆时刻表\n");printf("\t\t\t===========================\n");printf("\t班次发车时间起点站终点站行车时间额定载量票价已定票人数");printf("\n\t--------------------------------------------------------------\n");for(i=0;i<H;i++){print(bus[i]);}printf("\t--------------------------------------------------------------\n");printf("\t\t\t\t%d条记录!\n",H);printf("\t按任意键返回主菜单...");getchar();}//比较时间大小函数//int compare_time(struct Times t1,struct Times t2){if(t1.hour>t2.hour){return 1;if(t1.min>=t2.min){return 1;if(t1.sec>=t2.sec)return 1;else return 0;}return 0;}return 0;}//按班次查询//int number_search(struct Buses bus[],int n){int i;for(i=0;i<H;i++){if(bus[i].number==n)return i;}return -1;}//按终点站查询//int end_search(struct Buses bus,char ends[]){if(strcmp(bus.end,ends)==0)return 1;elsereturn -1;}//输出函数//void print(struct Buses bus){if(!compare_systime(bus,tnow))printf("\t%-6d%-2d:%-2d:%-2d%6s%8s%8.1f%4d%10d%10d(已发出)\n",bus.number,bus.time.hour,bus.time.min,bus.time.sec,bus.start,bus.end,bus.time_cost,bus.carry_number,bus.price s,bus.booK_number);elseprintf("\t%-6d%-2d:%-2d:%-2d%6s%8s%8.1f%4d%10d%10d\n",bus.number,bus.tim e.hour,bus.time.min,bus.time.sec,bus.start,bus.end,bus.time_cost,bus.carry_number,bus.price s,bus.booK_number);}int caidan(){int a;//以下是输出的菜单图案//printf("\n\n");printf("\t\t 车票管理系统\n");printf("\t\t ***************** (%d年%d月%d日)\n",1900+tnow->tm_year,tnow->tm_mon+1,tnow->tm_mday);printf("\t\t||==================================||\n");printf("\t\t|| 菜单||\n");printf("\t\t|| (1) 录入班次信息||\n");printf("\t\t|| (2) 显示班次信息||\n");printf("\t\t|| (3) 查询班次信息||\n");printf("\t\t|| (4) 售票||\n");printf("\t\t|| (5) 退票||\n");printf("\t\t|| (6) 保存车次信息||\n");printf("\t\t|| (0) 退出系统||\n");printf("\n\t\t请选择(0-6):");scanf("%d",&a);return(a);}//保存函数//void save(struct Buses bus[]){getchar();FILE *fp;int i;if((fp=fopen("Bus_system","wb"))==null){printf("不能打开文件\n");return;}for(i=0;i<H;i++)if(fwrite(&bus[i],sizeof(struct Buses),1,fp)!=1)printf("文件保存出错!\n");fclose(fp);printf("文件保存成功!");getchar();}//录入函数//void lu(){int i=H,f=1;char flag='Y';while(toupper(flag)=='Y'){printf("\n\t\t车次信息录入\n请输入车的班次:");scanf("%d",&bus[i].number);getchar();while(number_search(bus,bus[i].number)>=0){printf("你输入的班次已存在请重新输入!:");scanf("%d",&bus[i].number);getchar();}printf("请输入时间如:(20:30:00) :");scanf("%d:%d:%d",&bus[i].time.hour,&bus[i].time.min,&bus[i].time.sec); getchar();printf("请输入车的起点站:");scanf("%s",bus[i].start);getchar();printf("请输入车的终点站:");scanf("%s",bus[i].end);getchar();printf("请输入行车时间:");scanf("%f",&bus[i].time_cost);getchar();printf("请输入车的额定载量:");scanf("%d",&bus[i].carry_number);printf("请输入票价:");scanf("%d",&bus[i].prices);getchar();bus[i].booK_number=0;H++;i++;printf("信息录入成功!\n");printf("继续录入请按(Y),返回主菜单按任意键...");flag=getchar();}}//查询路线函数//void chaxun(struct Buses bus[]){int a,i=0;int m=0;char flag='Y';while(toupper(flag)=='Y'){char end[30];printf("\n按班次查询请按1\n终点站查询请按2\n请选择(1-2):");scanf("%d",&a);while(a!=1&&a!=2){printf("注意只能选择1或2!\n请重新输入:");scanf("%d",&a);getchar();}switch(a){case 1:{printf("请输入车次号:");scanf("%d",&m);getchar();i=number_search(bus,m);if(i>=0){printf("\n\t\t\t\t车辆时刻表\n");printf("\t\t\t**************************\n");printf("\t班次发车时间起点站终点站行车时间额定载量票价已定票人数");printf("\n\t--------------------------------------------------------------\n");print(bus[i]);printf("\t--------------------------------------------------------------\n");}elseprintf("\n\t\t\t没有你要查找的记录!\n");}break;case 2:{printf("请输入车的终点站:");scanf("%s",end);getchar();while(i<H){if((m=end_search(bus[i],end))==1){printf("\n\t\t\t\t车辆时刻表\n");printf("\t\t\t**************************\n");printf("\t班次发车时间起点站终点站行车时间额定载量票价已定票人数");printf("\n\t--------------------------------------------------------------\n");print(bus[i]);i++;}break;}for(i;i<H;i++){if(end_search(bus[i],end)==1)print(bus[i]);}if(m==1)printf("\t--------------------------------------------------------------\n");}for(i=0;i<H;i++){if(end_search(bus[i],end)!=1)printf("\n\t\t\t没有到该站的车!\n");break;}}printf("\t\t继续查找请按(Y),返回主菜单按任意键...");flag=getchar();}}//售票函数//void shoupiao(struct Buses bus[]){int i,n;char flag='Y';while(toupper(flag)=='Y'){printf("\n\t\t\t\t车辆时刻表\n");printf("\t\t\t************************** 当前时间(%d:%d:%d)\n",tnow->tm_hour,tnow->tm_min,tnow->tm_sec);printf("\t班次发车时间起点站终点站行车时间额定载量票价已定票人数");printf("\n\t--------------------------------------------------------------\n");for(int j=0;j<H;j++){print(bus[j]);}printf("\t--------------------------------------------------------------\n");printf("\t请输入车的班次:");scanf("%d",&i);n=number_search(bus,i);getchar();if(n>=0&&bus[n].carry_number>bus[n].booK_number&&compare_systime(bus[n],t now)){printf("\n\t\t\t售票成功!\n");bus[n].booK_number++;printf("\t班次发车时间起点站终点站行车时间额定载量票价已定票人数");printf("\n\t--------------------------------------------------------------\n");print(bus[n]);printf("\n\t--------------------------------------------------------------\n");}if(bus[n].carry_number<=bus[n].booK_number)printf("\n\t\t\t该次车的票已售完!\n");else if(n<0)printf("\n\t\t\t该次车不存在!\n");else if(!compare_systime(bus[n],tnow))printf("\n\t\t\t该次已发出!\n");printf("\t\t继续售票请按(Y),返回主菜单按任意键...");flag=getchar();}}//退票函数//void tuipiao(struct Buses bus[]){int n,i;char flag='Y';while(toupper(flag)=='Y'){printf("\n\n请输入车次:");scanf("%d",&n);getchar();i=number_search(bus,n);if(i>=0&&compare_systime(bus[i],tnow)){bus[i].booK_number--;printf("\n\t\t\t退票成功!\n");}else if(i<0)printf("\n\t\t\t该车次不存在!\n");else if(!compare_systime(bus[n],tnow))printf("\n\t\t\t车已发出不能退票!\n");printf("\t继续退票请按(Y),返回主菜单按任意键...");flag=getchar();}}//载入车次信息函数//void load(){ FILE *fp;int i=0;while((fp=fopen("Bus_system","rb"))==NULL) //以rb形式打开文件return;for(i;!feof(fp);i++,H++){if(fread(&bus[H],sizeof(struct Buses),1,fp)!=1){}if(feof(fp)){fclose(fp);return;}}fclose(fp);}//退出函数//void xitongtuichu(){getchar();char flag=null;printf("\n\n\t\t你确定要退出并保存信息吗?(Y/N)");flag=getchar();if(toupper(flag)=='Y'){save(bus);exit(0);}else if(toupper(flag)=='N')exit(0);elsereturn;}//主函数//void main(){while(1){switch(caidan()){case 1: lu(); break;case 2: liulan(bus); break;case 3: chaxun(bus); break;case 4: shoupiao(bus); break;case 5: tuipiao(bus); break;case 6: save(bus); break;case 0: xitongtuichu(); break;}}}。

相关文档
最新文档