⒊各模块分函数:
⑴打印表头:
void ShowTable1() {
int i=2;
system(\gotoxy(4,i++);
printf(\ gotoxy(4,i++);
printf(\ gotoxy(4,i++);
printf(\ 班次 | 发车时间 | 起点站 | 终点站 |行车时间|额定载量| 已售票 |\}
⑵打印表尾:
形参I为0时表示无查询结果。 void ShowTable2(int i) {
gotoxy(4,i+5);
printf(\}
⑶查询函数:
此函数是search函数所用,其形参是s1[],s2[]只有一个为用户输入值,s1[]中放置的是班次,s2[]中放置的是终点站。当strcmp(s1,records[i].num)==0||strcmp(s2,records[i].to)==0表示找到了所查找的班次,m=0表示是按班次查询,因班次均不一样因此找到后即可跳出循环,当m==1时表示按终点站查询,因为有可能通往一地的不止一班车故应执行完循环,当h==0时表示cmp(s1,records[i].num)==0||strcmp(s2,records[i].to)==0均不满足,即无查找班次,ShowTable2表格与ShowTable1构成表格。 void find(char s1[],char s2[]) {
int i,h=0,m; ShowTable1();
if(s2[0]=='\\0') m=1; else m=0;
for(i=0;i printf(\cords[i].min,records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now); 第 15 页 共 26 页 } h+=2; if(m==1) break; } ShowTable2(h); if(h==0) printf(\要查找的班次不存在!\ ⑷按班次查询函数: 此函数是为修改、删除函数所用,若找到所需班次返回该班次在结构体的位置,否则为class_num。 int findnum(char s1[]) { int i,h=0; ShowTable1(); for(i=0;i printf(\cords[i].min,records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now); h+=2; break; } ShowTable2(h); return i; } ⑸保存函数: void save() { FILE *fp1,*fp2; if((fp1=fopen(\车票管理系统.dat\ { printf(\文件打开错误!\ exit(0); } if((fp2=fopen(\车票管理系统0.dat\ { printf(\文件打开错误!\ exit(0); } fwrite(&class_num,sizeof(int),1,fp2); fwrite(records,sizeof(CLASS),class_num,fp1); fclose(fp1);fclose(fp2); } 第 16 页 共 26 页 ⑹打开文件函数 void load() { FILE *fp1,*fp2; if((fp1=fopen(\车票管理系统.dat\ { system(\ gotoxy(12,8); printf(\文件打开错误!\ getch(); exit(0); } if((fp2=fopen(\车票管理系统0.dat\ { system(\ gotoxy(12,8); printf(\文件打开错误!\ getch(); exit(0); } fread(&class_num,sizeof(int),1,fp2); fread(records,sizeof(CLASS),class_num,fp1); fclose(fp1);fclose(fp2); } ⑺判断时间是否超出函数: tm 为包含在 struct tm *local; time_t t; t=time(NULL); local=localtime(&t); if(local->tm_hour ⑻定位函数: void gotoxy(int i,int j) { HANDLE hConsole = GetStdHandle ( STD_OUTPUT_HANDLE ); 第 17 页 共 26 页 if ( INVALID_HANDLE_VALUE != hConsole ) { COORD pos = {i, j}; SetConsoleCursorPosition ( hConsole, pos ); } } ⑼修改及增加录入: 用于单个录入班次信息,不能判断是否与其他班次重复。 void get(int i,int j) { for(;;) { gotoxy(8,j++); printf(\请输入发车时间(xx xx)\ if((atoi(records[i].hour)<24&&atoi(records[i].hour)>=0)&&(atoi(records[i].min)<60&&atoi(records[i].min)>=0)) break; else { gotoxy(8,j++); printf(\输入错误\ getch(); } } gotoxy(8,j++); printf(\请输入起点站:\scanf(\ gotoxy(8,j++); printf(\请输入终点站:\scanf(\ gotoxy(8,j++); printf(\请输入行车时间:\scanf(\ gotoxy(8,j++); printf(\请输入额定载量:\scanf(\ for(;;) { gotoxy(8,j++); printf(\请输入已售票数:\ if(records[i].now<=records[i].max) break; else { gotoxy(8,j++); printf(\输入错误!\ getch(); } } } 第 18 页 共 26 页
相关推荐: