车票管理系统的程序设计内容摘要:

min[3]。 char from[10]。 char to[10]。 float hours。 int max。 int now。 }CLASS。 int class_num=0。 CLASS records[N]。 void NewMessage()。 /*录入班次 */ void ShowTable1()。 /*打印表头 */ void ShowTable2(i)。 /*打印表尾 */ void Display()。 /*显示所有班次 */ void add()。 /*增加班次 */ void save()。 /*保存班次 */ void load()。 /*打开文件信息 */ void gotoxy()。 /*定位光标 */ void search()。 /*查询班次 */ void change()。 /*修改班次 */ void quit()。 /*退出 */ void Ticketorder()。 /*售票 */ void Ticketdelete()。 /*退票 */ int menu_select()。 /*菜单函数 */ int whether(int)。 /*判断系统时间与发车时间 */ void find(char s1[],char s2[])。 /*查找 函数 */ void deletemessage()。 /*删除函数 */ int findnum(char s1[])。 /*按班次查询 */ void get(int,int)。 /*修改或增加班次录入函数 */ char *menu[]={***************MENU***************,1. 录入班次 ,2. 显示所有班次 ,3. 查询班次 ,4. 增加班次 ,5. 售票 ,6. 退票 ,7. 修改班次 ,8. 删除班次 ,9. 退出 }。 第 7 页 共 26 页 ⑵ 主 函数 : void main() { system(cls)。 for(。 ) { switch(menu_select()) { case 1: NewMessage()。 break。 case 2: Display()。 break。 case 3: search()。 break。 case 4: add()。 break。 case 5: Ticketorder()。 break。 case 6: Ticketdelete()。 break。 case 7: change()。 break。 case 8: deletemessage()。 break。 case 9: quit()。 break。 } } } ⒉ 各模块主要代码 ⑴ 菜单函数: 用于打印主界面及供用户选择命令 int menu_select() { char s[5]。 int c,i。 system(cls)。 system(color 06)。 gotoxy(10,2)。 /*输出边 框 */ for(i=0。 i28。 i++) printf(%c ,04)。 for(i=3。 i16。 i++) { gotoxy(10,i)。 putchar(04)。 gotoxy(64,i)。 putchar(04)。 } gotoxy(10,16)。 for(i=0。 i28。 i++) printf(%c ,04)。 for(i=0。 i10。 i++) { gotoxy(20,i+3)。 printf(%s,menu[i])。 } i=0。 第 8 页 共 26 页 do { gotoxy(25,(i++)+17)。 printf(请选择 (19):)。 scanf(%s,s)。 c=atoi(s)。 }while(c0||c9)。 return c。 } ⑵录入函数: 用于录入班次信息,先判断是否已有班次信息,若有提示用户,防止误操作;然后在录入信息。 void NewMessage() { int i=0,j,h。 char s[5]。 FILE *fp。 system(cls)。 system(color 02)。 if((fp=fopen(车票管理系统 ,rb))!=NULL) /*判断是否班次信息存在 ,若存在询问是否覆盖原有信息 */ { gotoxy(8,6)。 printf(车票信息已存在 ,录入将覆盖已有信息 !)。 gotoxy(8,7)。 printf(是否继续 (Y/N))。 scanf(%s,s)。 if(s[0]!=39。 Y39。 amp。 amp。 s[0]!=39。 y39。 ) i=1。 } if(i= =0) /*当 i!= 0 时表示不录入 班次不执行此操作直接跳出此函数 */ { system(cls)。 gotoxy(8,6)。 printf(请输入要录入班次总数 :)。 scanf(%d,amp。 class_num)。 system(cls)。 for(i=0,j=5。 iclass_num。 i++) { system(cls)。 gotoxy(8,j++)。 /*用 j++代替具体数字可使屏幕显示规律(可见后面运行结果) */ printf(请输入第 %d 个班次信息 :,i+1)。 h=1。 for(。 h!=i。 ) /*判断该班次是否存在, h=1 使第一次循环顺利进行 */ { gotoxy(8,j++)。 printf(请输入班次 :)。 scanf(%s,records[i].num)。 for(h=0。 hi。 h++) if(strcmp(records[h].num,records[i].num)==0) { gotoxy(8,j++)。 printf(输入错误 !该班次已存在 !)。 break。 第 9 页 共 26 页 } } get(i,j)。 j=5。 } save()。 } } ⑶显示所有班次 : 先调用打印表头函数,在打印车票信息,用 whether 函数判断时间是否超过发车时间,若超过则在发车时间一栏打印“已发车”,然后在调用打印白哦为函数打印表尾。 void Display() { int i,j。 system(cls)。 system(color 07)。 load()。 ShowTable1()。 for(i=0,j=0。 iclass_num。 i++,j+=2) { gotoxy(4,j+5)。 printf(||||||||)。 gotoxy(4,j+6)。 if(whether(i) printf(|%10s|%5s:%4s|%10s|%10s|%|%8d|%8d|,records[i].num,records[i].hour,records[i].min,records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now)。 else printf(|%10s| 已发车 |%10s|%10s|%|%8d|%8d|,records[i].num, records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now)。 } ShowTable2(j)。 printf(\n 按任意键继续 ....)。 getch()。 } ⑷查找函数 : 用于查找所需班次,可按班次、终点站查询,先给 s s2 赋以固定值然后根据不同的方式给 s1 或s2 赋值,调用相同的函数,但是实 参不同。 void search() { int i。 char s1[10]={39。 \039。 },s2[10]={39。 \039。 }。 system(cls)。 system(color 03)。 gotoxy(10,4)。 第 10 页 共 26 页 printf(1. 按班次查询 )。 gotoxy(10,5)。 printf(2. 按终点站查询 )。 gotoxy(10,6)。 printf(3. 退出 )。 gotoxy(12,8)。 printf(请选择 (13):)。 scanf(%d,amp。 i)。 load()。 gotoxy(12,9)。 switch(i) /*根据输入不同选择按班次或终点站查询 */ { /*将 s s2 初始值当按不同方式查询时在给其赋值 */ case 1: printf(请输入要查询的班次 :)。 scanf(%s,s1)。 find(s1,s2)。 break。 case 2: printf(请输入要查询终点站 :)。 scanf(%s,s2)。 find(s1,s2)。 break。 case 3: break。 default : printf(输入错误 !)。 break。 } gotoxy(12,20)。 printf(按任意键继续 ....)。 getch()。 } ⑸ 增加班次函数: 用于增加班次,先判读输入班次是否已存在,若存在提示输入错误,输入正确时将值放置在records[class_num]中,继而再让 class_num 自加一次。 void add() { int i,j=5。 load()。 system(cls)。 gotoxy(8,4)。 printf(1. 增加班次 )。 gotoxy(8,5)。 printf(2. 返回 )。 gotoxy(10,8)。 printf(请选择 (12))。 scanf(%d,amp。 i)。 i。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。