您好,欢迎访问三七文档
C语言课程设计交通处罚单管理系统中国地质大学(武汉)工程学院052097班182011-8-22要求:交通处罚单涉及到车辆,驾驶员和开单交警的信息,还有交通处罚单号码,处罚时间等信息。功能:(1)要求可以输入,删除,浏览交通处罚单信息。(2)可以按车辆,驾驶员和开单交警查询。(3)统计某时间段某个驾驶员的交通处罚单数目及交通处罚单号码。提示:(1)需求分析:交通处罚单信息用文件存储,提供文件的输入输出操作;要求可以输入,删除,浏览交通处罚单信息,因而要提供信息的输入,删除和显示操作;要实现按车辆,驾驶员和开单交警查询,则要提供查找操作;另外提供统计操作和键盘式选择菜单以实现功能选择。(2)总体设计:整个管理系统被设计为信息输入模板,信息删除模板,信息浏览模板,信息查询模板和信息统计模板等。源代码:#includestdio.h#includestring.h#includestdlib.h#defineN100structPlist//处罚单{charvno[20];//车牌号chardname[20];//驾驶员姓名charpname[20];//交警姓名charpno[20];//交警编号charno[20];//处罚单编号chardate[20];//处罚日期}list[N];//处罚单数组voidinput();//输入模块voiddele();//删除模块voidbrowse();//浏览模块voidsearch();//查询模块voidcount();//统计模块voidmenu();//主菜单voidvno_search();//按车牌号查询voiddna_search();//按驾驶员姓名查询voidpna_search();//按开单交警姓名查询voidmain(){menu();getchar();}voidmenu(){intn;intr;do{system(cls);printf(\n\t\t\t\t交通处罚单管理系统\n);printf(········································);printf(菜单:1-信息录入2-信息删除3-信息浏览4-信息查询5-信息统计6-退出系统\n);printf(········································);printf(请从输入数字选择相应的功能:);scanf(%d,&n);if(n1||n6){r=1;getchar();}elser=0;}while(r==1);switch(n){case1:input();break;case2:dele();break;case3:browse();break;case4:search();break;case5:count();break;case6:exit(0);}}voidinput(){FILE*fp;intnum;inti,j;if((fp=fopen(list.txt,r+))==NULL){if((fp=fopen(list.txt,w))==NULL){printf(文件打开或创建失败!\n);printf(\npressentertoreturnmenu\n);getchar();menu();}printf(\n请输入处罚单数量:);scanf(%d,&i);printf(\n\n);for(j=0;ji;j++){printf(输入第%d张处罚单的:\n,j+1);printf(\n车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如)\n);printf(\n注意:中间用空格隔开!\n);scanf(%s%s%s%s%s%s,&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);}for(j=0;ji;j++){fprintf(fp,\n%s\t%s\t%s\t%s\t%s\t%s,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);}fclose(fp);printf(\n保存成功!);printf(\npressentertoreturnmenu\n);getchar();getchar();menu();}printf(\n请输入处罚单数量:);scanf(%d,&i);for(j=0;!feof(fp);j++)//读取文件{fscanf(fp,%s%s%s%s%s%s,&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);}num=j+i;if(numN){printf(\n结构体数组数的N太小,请先修改N的值\n);printf(\npressentertoreturnmenu\n);getchar();getchar();menu();}printf(\n);for(j=0;ji;j++){printf(输入第%d张处罚单的:\n,j+1);printf(\n车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如)\n);printf(\n注意:中间用空格隔开!\n);scanf(%s%s%s%s%s%s,&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);}for(j=0;ji;j++){fprintf(fp,\n%s\t%s\t%s\t%s\t%s\t%s,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);}fclose(fp);printf(\n保存成功!);printf(\npressentertoreturnmenu\n);getchar();getchar();menu();}voiddele(){intj;intnum;intf=-1;FILE*fp1,*fp2;chars1[20];if((fp1=fopen(list.txt,r))==NULL){printf(cannotopenfile\n);printf(\npressentertoreturnmenu\n);getchar();getchar();menu();}for(j=0;!feof(fp1);j++)//读取文件{fscanf(fp1,%s%s%s%s%s%s,&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);}num=j;fclose(fp1);printf(请输入要删除的处罚单的编号\n);scanf(%s,s1);for(j=0;jnum;j++){if(strcmp(s1,list[j].no)==0){f=j;if(fnum-1){for(j=f;jnum-1;j++){strcpy(list[j].vno,list[j+1].vno);strcpy(list[j].dname,list[j+1].dname);strcpy(list[j].pname,list[j+1].pname);strcpy(list[j].pno,list[j+1].pno);strcpy(list[j].no,list[j+1].no);strcpy(list[j].date,list[j].date);}}if((fp2=fopen(list.txt,w))==NULL){printf(文件打不开!\n);printf(\npressentertoreturnmenu\n);getchar();menu();}for(j=0;jnum-1;j++)//保存文件{fprintf(fp2,\n%s\t%s\t%s\t%s\t%s\t%s,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);}fclose(fp2);printf(\n删除成功!\n);printf(\npressentertoreturnmenu\n);getchar();getchar();menu();}}if(f0){printf(\n没有找到该学号的记录:\n);printf(\npressentertoreturnmenu\n);getchar();getchar();menu();}}voidbrowse(){intj;intnum;FILE*fp;if((fp=fopen(list.txt,r))==NULL){printf(cannotopenfile\n);printf(\npressentertoreturnmenu\n);getchar();getchar();menu();}for(j=0;!feof(fp);j++)//读取文件{fscanf(fp,%s%s%s%s%s%s,&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);}fclose(fp);num=j;printf(\n已添加%d条记录\n\n,num);printf(车牌号驾驶员姓名交警姓名交警编号处罚单编号处罚日期\n);for(j=0;jnum;j++)//输出{printf(\n%s\t%s\t%s\t%s\t%s\t%s,list[j].vno,list[j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date);}printf(\npressentertoreturnmenu\n);getchar();getchar();menu();}voidsearch(){intn;intr;do{system(cls);printf(\n请选择查询类型:\n\t1-按车牌号2-按驾驶员姓名:按开单交警姓名4-返回主菜单\n);printf(\n请输入数字选择:);scanf(%d,&n);if(n1||n4){r=1;getchar();}elser=0;}while(r==1);switch(n){case1:vno_search();break;case2:dna_search();break;case3:pna_search();break;case4:menu();}}voidvno_search(){intf=-1;intnum;intj;charno[20];FILE*fp;if((fp=fopen(list.txt,r))==NULL){printf(文件打不开!\n);printf(\npressentertoreturnmenu\n);getchar();menu();}for(j=0;!feof(fp);j++)//读取文件{fscanf(fp,%s%s%s%s%s%s,&list[j].vno,&list[j].dname,&list[j].pname,&list[j].pno,&list[j].no,&list[j].date);}num=j;fclose(fp);printf(\n请输入车牌号:);scanf(%s,no);printf(\n罚单的信息为:\n\n);printf(车牌号驾驶员姓名交警姓名交警编号处罚单编号处罚日期\n);for(j=0;jnum;j++){if(strcmp(no,list[j].vno)==0){f=j;printf(\n%s\t%s\t%s
本文标题:交通处罚单管理系统
链接地址:https://www.777doc.com/doc-222410 .html