1、进入系统后,首先选择购票方式,输入汽车班次或发车时间后,即显示出售票情况。对“退票”功能:首先输入所退票的班次,在确认输入信息正确并且车未发出后则退票成功,并修改系统中的相关信息。对“显示当前售票情况”功能:将当前的售票情况按相应的格式输出。对“保存当天数据”功能:打开程序所在的文件,在文件中按相应格式输出对应的汽车班次情况,然后关闭文件。通过“Cur_tim”函数获取系统当前时间。2.2 部分模块流程图3.程序代码设计:Amenue函数:/*菜单项*/void menue(void) system(cls);/*清屏*/ printf(tt*售票系统*nt1.售票nt2.退票nt3.显示当前
2、售票情况nt4.保存当天数据nt5.退出n请选择:B售票函数:/*售票*/void Sell(struct Tickit tickit,int n) int select,flag=1,i,no,flag2=1,flag1=1,H,M;售票:按7退出n请选择购票方式:5-按班次购票;6-按发车时间购票;按7退出: scanf(%d,&select);/*等待用户选择购票方式*/ while(select!=7)/*非退出*/ switch(select) case 5:/*按班次售票*/ printf(请输入汽车班次: scanf(no); for(i=0;itickiti.Start_Tim
3、e0|(Hour=tickiti.Start_Time0&Mintickiti.Start_Time1)/*已发出的班次不能购票*/ printf(对不起,该车已发出。不能购票.n break; printf(%dn,tickiti.No);详细信息:n min=change(tickiti.Start_Time1);班次t发车时间t载客量t已售n%dt%d:%c%dtt%dt%dn,tickiti.No,tickiti.Start_Time0,min,tickiti.Start_Time1,tickiti.Pasenger_Total,tickiti.Sold_Ticklts);请输入购票数
4、量:scanf(count); if(tickiti.Sold_Ticklts+counttickiti.Start_Time1) break; min=change(tickiti.Start_Time1); if(tickiti.Sold_Ticklts+counttickitno.Start_Time0|(Hour=tickitno.Start_Time0&tickitno.Start_Time1)/*已发出的班次不能退*/ printf(不能退票.n else int count;请输入退票数额: scanf( /*更新*/ tickitno-1.Sold_Ticklts-=count
5、; tickitno-1.Back_count+=count;退票成功!按任意键继续. _getch();/*显示当前*/void Show_Curr(struct Tickit tickit,int n) int i;tt*售票系统*n当前票额信息: for(i=0;n; char min; min=change(tickiti.Start_Time1); 按任意键退出.D保存当日数据 save函数:/*保存当日数据*/void Save(struct Tickit tickit,int n) FILE * p; p=fopen(Tickit.txt,w/*文件指针。以“写”的方式打开文件“
6、Tickit.txt”,不存在则创建*/ /*开始写入数据*/ fprintf(p,售票情况:班次t发车时间t载客量t已售t曾退票数ni+)/*遍历结构体数组中的信息,写入文件*/ fprintf(p,%c%dtt%dt%dt%dn,tickiti.No,tickiti.Start_Time0,min,tickiti.Start_Time1,tickiti.Pasenger_Total,tickiti.Sold_Ticklts,tickiti.Back_count); /*写入结束*/保存成功! fclose(p);/*关闭已打开的文件*/E加载车票信息 load函数:/*加载车票信息*/vo
7、id Load(struct Tickit tickit) for(i=1;=5;i+)/*初始化结构体数组*/ tickiti-1.No=i; tickiti-1.Sold_Ticklts=0; tickiti-1.Back_count=0; /*开始加载*/ tickit0.Start_Time0=6; tickit0.Start_Time1=40; tickit1.Start_Time0=9; tickit1.Start_Time1=30; tickit2.Start_Time0=12; tickit2.Start_Time1=0; tickit3.Start_Time0=14; tic
8、kit3.Start_Time1=30; tickit4.Start_Time0=16; tickit4.Start_Time1=0; tickit0.Pasenger_Total=tickit4.Pasenger_Total=50; tickit1.Pasenger_Total=tickit2.Pasenger_Total=tickit3.Pasenger_Total=40; /*结束*/4.C程序设计总结:这一次的C程序设计让我的C语言驾驭能力有了很大的提高。从对老师给我们的课题目瞪口呆,到逐渐深入学习探索,再到不断修改调试程序,最后达到标准状态,整个过程中我学习了很多原来没有接触过的C语
9、言知识,比如如何清屏,如何调用系统时间,同时也对很多原来不是很熟悉的知识进行了更深入的学习,比如结构体知识。在编写程序的过程中,我也比较粗心,常常把字母,单词拼错,导致一些小的错误。这些小的错误在程序设计过程中是完全可以避免的。同时,在编程过程中,我深刻的意识到作为一名编程人员,耐心和细心是必不可少的优秀品质,通过本次设计,我的细心程度有所提高,也更加锻炼了做事耐心的优秀品质。我还从总学到了一种比较高效的学习方法,就是理论与实践相结合的学习方法。只有在理论的基础上加以实践,加以感受,才能更好的理解理论知识,才能更好的掌握需要学习的知识,从而更好的运用。参考文献1 谭浩强,C程序设计(第二版),
10、北京:清华大学出版社,2007.1 2 陈朔鹰,C语言程序设计习题集,北京:人民邮电出版社,2003.6附录:程序清单:#includestring.hstdlib.hconio.htime.h/*存储车票信息*/struct Tickit int No; /*车票编号*/ int Start_Time2; /*发车时间*/ int Pasenger_Total; /*最大票额*/ int Sold_Ticklts; /*已售票额*/ int Back_count; /*退票数额*/;void menue(void); /*菜单项*/void Sell(struct Tickit tickit
11、,int n);/*售票模块*/void Back(struct Tickit tickit);/*退票模块*/void Show_Curr(struct Tickit tickit,int n);/*显示当日信息*/void Save(struct Tickit tickit,int n);/*文件存盘.txt文件格式*/void Load(struct Tickit tickit);void Cur_Tim();/*获取系统当前时间*/char change(int n);/*转化输出*/#define N 5 /*定义车票种类数*/int Hour,Min; /*全局变量,保存系统当前的
12、时间*/void main(void) int select; struct Tickit tickitN; Load(tickit);/*加载车票*/ Cur_Tim();/*获取系统时间*/ menue();/*显示菜单*/*等待用户选择功能*/=5)/*选择为非退出*/ int flag=1; switch(select)/*根据用户选择进入相应模块*/ case 1:Sell(tickit,N); case 2:Back(tickit); case 3:Show_Curr(tickit,N); case 4:Save(tickit,N); default:您的输入有误,请重新输入: flag=0; if(flag)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1