1、1欢迎下载即本程序首先运行【用户系统】菜单界面,菜单界面上为用户提供信息输入,信息删除,信息查询,信息浏览,信息统计,退出菜单共六种操作选择。此功能用 switch 语句来实现。其次,根据目标程序运行的次序与界面,确定设计顺序,设计界面(包括各部分菜单与用户提示信息)。再次,按照程序运行的各界面下的菜单功能编写各功能模块,并调试程序各功能模块, 使各模块能够稳定高效准确地完成对应功能。第四部分:程序功能模块划分、图示及流程图系统的结构图:信息输入查找浏览删除统计.【信息输入模块】该模块的功能是为用户提供信息输入界面,用户可以根据信息提示进行信息输入,用户输入的信息将被保存在文件当中。【流程图】
2、2欢迎下载请输入车牌号码:请输入驾驶员姓名:请输入开单日期:请输入罚单号:显示已有罚单数目【程序】:3欢迎下载void shuru()FILE *fp;int i=0;if(fp=fopen(data.txt,wb)=NULL)printf(Can not open the filen);exit(0);/ 调用此函数时必须包含 请输入车牌号码: nscanf(%d,&danNUM .chepai); 请输入驾驶员姓名:%s,danNUM .name); 请输交警 ID:ndanNUM .id); 请输入开单日期 ( 以年 / 月/ 日形式输入 ) :%d/%d/%ddani.date.yea
3、r,&dani.date.month,&dani.date.day); 请输入处罚单号:danNUM .num);for (i=0;i=NUM;i+)4欢迎下载if(fwrite(&dani,sizeof(struct cfd),1,fp)!=1)file write errorn / 此处 for 循环的作用是:在每次调用输入函数时都能够把结构体数组中已有的数据和本次输入的数据都记录在文件 data.txt 中 已经有 %d个罚单 n,i);NUM+;/NUM用来记录罚单总数,每调用一次输入函数 NUM就加一fclose(fp);【删除罚单模块】:按操作者的指令在结构体数组中找到删除的信息,
4、把结构体数组中的信息抄到文件中去忽略要删除的信息达到要删除的目的。【 流 程 图 】 :5欢迎下载输入要删除的罚单号通过 for 循环在结构体数组找到与之对应的信息for 循环,i= =c?若 i= =c 抄入文件 若 i!=c 不抄入文件void shanchu()int i;int c;/ 待删除罚单号码int w;/ 删除处罚单号 请输入要删除的处罚单号 :w);6欢迎下载fp=fopen(rbfor(i=0;NUM;if(w=dani.num) / 查找要删除的罚单号码c=i; / 待删除罚单号码if(i!=c)fwrite(&dani,sizeof(struct cfd),1,fp)
5、; / 如果罚单号与待删除罚单号不同,就写入文件从文件中把待删除的信息删除NUM-;/ 全局变量更新 删除成功 n 罚单号是 %dn,danc.num );【信息浏览模块】:把储存在文件中信息全部输出。7欢迎下载void liulan() 已有 %d个罚单 ,NUM);if(fread(&dani,sizeof(struct cfd),1,fp) 第%d罚单信息 n,i+1);prntf(i);else break;【信息查询模块】:用户根据界面的提示选择查询方式,并根据进一步的提示进行相关输入,程序根据用户输入的信息通过 for 循环找到与之相对应的信息,并输出相关信息。【流程图】 :8欢迎
6、下载根据提示输入查询方式按车牌号查询按司机姓名查询按警察 ID 查询通过循环找到与之对应的信息,并将之输出void chaxun()int i,w,x,flag;char v8; / 驾驶员名字 请输入你想查询的信息:1 - 按车牌号查询 n2 - 按司机姓名查询 n3 - 按警察 ID 查询 nx);flag=0;/ 查找成功的标志,查找成功 FLAG=19欢迎下载if(x=3) 请输入要查询的警察 ID:=1) break;if(dani.id=w)flag=1;break;if(flag=0) 找不到此处罚单信息 !else if(x=2) 请输入要查询的司机姓名:10欢迎下载,v);i
7、f(strcmp(dani.name,v)=0) / 使用此函数时必须包含string.helse if(x=1) 请输入要查询的车牌号:11欢迎下载if(dani.num=w)else printf( 输入错误!信息统计模块:用户根据提示输入驾驶员姓名和一个时间段,程序将对储存在文件中的信息逐个进行检验看其是否与输入的信息相对应,若相对应,就会将其输出,并使统计变量加一,最终输出此驾驶员在此时间段内总共有多少罚单。【流程图】:12欢迎下载输入驾驶员姓名输入要统计的时间段通过循环将文件中的每一个信息与输入条件对比,判断是否满足。输出满足条件的罚单号, 并每输出一个罚单号使统计变量加一。输出驾驶员此段时间罚单总数void tongji() int a1,b1,c1;/ 分别用来表示起始时间的年、月、日int a2,b2,c
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1