1、调用 int Input(Traffic trafList,int n)输入“2” void Display(Traffic trafList,int n)输入“3” int Delete_a_record(Traffic trafList,int n)int Delete(Traffic trafList,int n,char *name)输入“4” void Sort_by_Name(Traffic trafList,int n)输入“5” int Insert_a_record(Traffic trafList,int n) int Insert(Traffic trafList,int
2、 n,Traffic s)输入“6” void Query_a_record(Traffic trafList,int n) int Query(Traffic trafList,int n,char *name) 输入“7” int AddfromText(Traffic trafList,int n,char *filename)输入“8” void WritetoText(Traffic trafList,int n,char *filename)(各函数的功能见程序中注释。)五、待测试数据:ZhuangQi 88 DongGua 000003 2013 2 24DaPangzi 37
3、XiaoHua 000004 2013 2 14AiQiyi 98 XiaoMin 000005 2013 4 13六、程序要使用的data.txt:2WangXiao 95 DingFei 000001 2013 1 23LiuLin 87 CaiMing 000002 2013 1 23七、部分较复杂函数流程图删除信息插入信息源码#includestring.hstdlib.hctype.h#define NUM 10typedef struct char driver10; /*司机姓名*/ int car; /*驾驶的车牌号*/ char police10; /*开罚单的交警姓名*/
4、int num; /*罚单编号*/ int year; /*开罚单的年*/ int month; /*开罚单的月*/ int date; /*开罚单的日*/Traffic;int menu_select();int Input(Traffic trafList,int n);void Display(Traffic trafList,int n);int Delete_a_record(Traffic trafList,int n);void Sort_by_Name(Traffic trafList,int n);int Insert_a_record(Traffic trafList,in
5、t n);void Query_a_record(Traffic trafList,int n);int AddfromText(Traffic trafList,int n,char *filename);void WritetoText(Traffic trafList,int n,char *filename);void main() Traffic trafListNUM; int n=0; FILE *fp;int i; fp=fopen(records.txt,r); if(fp=NULL) printf(打开文件失败!请重试!n exit(1); fprintf(fp,%d,n)
6、; printf( for(i=0;i1;i+) fprintf(fp,%stt,trafListi.driver);%dt,trafListi.car);%s,trafListi.police);,trafListi.num);,trafListi.year);,trafListi.month);%dn,trafListi.date); for(; switch(menu_select() case 1: n=Input(trafList,n); system(pause break; case 2: Display(trafList,n); case 3: n=Delete_a_recor
7、d(trafList,n); case 4: Sort_by_Name(trafList,n); case 5: n=Insert_a_record(trafList,n); case 6: Query_a_record(trafList,n); case 7: n=AddfromText(trafList,n,data.txt case 8: WritetoText(trafList,n, case 0: printf(Goodbyen exit(0); int menu_select() char c; do system(cls1.Input recordsn2.Display all
8、recordsn3.Delete a recordn4.Sortn5.Insert a recordn6.Queryn7.Add records from a Text Filen8.Write to a Text Filen0.QuitnGive your choice(0-8): c=getchar(); while (c8 return c-int Input(Traffic trafList,int n) char ch;继续吗?y:yes,n:non getchar(); ch=getchar(); while(ch=y|ch=Y请输入司机姓名: scanf(,trafListn.d
9、river);请输入车牌号:,&trafListn.car);请输入警察:,trafListn.police);请输入罚单编号:trafListn.num);请输入开罚单年份:trafListn.year);请输入开罚单月份:trafListn.month);请输入开罚单的日:trafListn.date);go on? getchar(); ch=getchar(); n+; return n;void Display(Traffic trafList,int n) int i;n;司机姓名:%st车牌号:%dt警察:%st罚单编号:%dt开罚单年份:%dt开罚单月份:%dt开罚单的日:,t
10、rafListi.driver,trafListi.car,trafListi.police,trafListi.num,trafListi.year,trafListi.month,trafListi.date); /if(i%10=0)system( int i,j; if(strcmp(trafListi.driver,name)=0) for(j=i;jj+) trafListj=trafListj+1; n-;int Delete_a_record(Traffic trafList,int n) char s10; char zq;printf(请输入待删者姓名: scanf(,s)
11、;您真要删除姓名为%s的记录吗?Y/Nnzq); /zq=getchar(); if(zq=|zq= n=Delete(trafList,n,s);您已成功删除姓名为%s的记录n/(4)void Sort_by_Name(Traffic trafList,int n) int i,j,p; Traffic zq; /printf(N=%dn p=i; for(j=i+1; if(strcmp(trafListj.driver,trafListp.driver)0) p=j; if(p!=i) zq=trafListp;trafListp=trafListi;trafListi=zq; /5 /
12、printf( if(strcmp(s.driver,trafListi.driver)0;j-) trafListj=trafListj-1; trafListi=s; if(i=n) trafListn=s; n+;int Insert_a_record(Traffic trafList,int n)请输入待插入司机姓名:,zq.driver);zq.car);请输入警察姓名:,zq.police);zq.num);zq.year);zq.month);请输入开罚单日:zq.date); n=Insert(trafList,n,zq);该记录已经插入成功!:/6int Query(Traf
13、fic trafList,int n,char *name) return i; if(i=n) return -1;void Query_a_record(Traffic trafList,int n) int a; char zq10;请输入待查找者的姓名:,zq); a=Query(trafList,n,zq); if(a!=-1)查找成功!该司机罚单信息如下:%stt车牌号:%dt年份:%dt月份:%dt日:,trafLista.driver,trafLista.car,trafLista.police,trafLista.num,trafLista.year,trafLista.mo
14、nth,trafLista.date); else printf(查找失败!可能无此人记录!int AddfromText(Traffic trafList,int n,char *filename)Traffic zqNUM;int z,i; if(fp=fopen(filename,)=NULL) fscanf(fp,z);z=%dn,z);z; fscanf(fp,zqi.driver);zqi.car);,zqi.police);zqi.num);zqi.year);zqi.month);zqi.date); /*for(i=0;,zqi.driver,zqi.car,zqi.police,zqi.num,zqi.year,zqi.month,zqi.date); */i+,n+) / trafListn=zqi; Insert(trafList,n,zqi);void WritetoText(Traffic trafList,int n,char *filename)w%s fclose(fp);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1