语言程序设计之交通处罚单管理系统
【删除模块流程图】
打开文件 能否打开文件 依次从文件中读取处罚单信息 回到主函数 关闭文件 输入要删除的处罚单的处罚单号s1 s1==list[j].no 没找到该学号 把要求删除的罚单后面的处罚单信息依次覆盖前一个信息 文件能否打开 文件打不开 将新生成的结构体数组保存在源文关闭文件
【删除模块程序】
void dele() {
int j; int num; int f=-1;
FILE*fp1,*fp2; char s1[20];
if((fp1=fopen(\ {
- 6 -
语言程序设计之交通处罚单管理系统
printf(\
printf(\ getchar(); getchar(); menu(); }
for(j=0;!feof(fp1);j++) //读取文件 {
fscanf(fp1,\name,&list[j].pno,&list[j].no,&list[j].date); }
num=j;
fclose(fp1);
printf(\请输入要删除的处罚单的编号\\n\ scanf(\ for(j=0;j if(strcmp(s1,list[j].no)==0) { f=j; if(f for(j=f;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(\ { printf(\文件打不开!\\n\ printf(\ getchar(); menu(); } for(j=0;j fprintf(fp2,\j].dname,list[j].pname,list[j].pno,list[j].no,list[j].date); - 7 - 语言程序设计之交通处罚单管理系统 } fclose(fp2); printf(\删除成功!\\n\ printf(\ getchar(); getchar(); menu(); } } if(f<0) { printf(\没有找到该学号的记录:\\n\ printf(\ getchar(); getchar(); menu(); } } 3、信息浏览模块: 【功能说明】 先输入命令3,系统将打开已存在的文件(如果不存在则提示无法打开),并将已经录入的处罚单信息依次从文件中读出来,显示在屏幕上。 【信息浏览模块流程图】 打开文件 逐条显示文件中的处罚单信息 关闭文件 返回主函数 - 8 - 语言程序设计之交通处罚单管理系统 【删除模块程序】 void browse() { int j; int num; FILE*fp; if((fp=fopen(\ { printf(\ printf(\ getchar(); getchar(); menu(); } for(j=0;!feof(fp);j++) //读取文件 { fscanf(fp,\ame,&list[j].pno,&list[j].no,&list[j].date); } fclose(fp); num=j; printf(\已添加%d条记录\\n\\n\ printf(\车牌号 驾驶员姓名 交警姓名 交警编号 处罚单编号 处罚日期\\n\ for(j=0;j printf(\[j].pname,list[j].pno,list[j].no,list[j].date); } printf(\ getchar(); getchar(); menu(); } 4、信息查询模块: 【功能说明】 先输入命令4,系统将刷新界面进入到一个查询专用界面。用户可以分别根据车牌号、驾驶员姓名和开单交警姓名进行查询。用户选择数字进行相应的操作。 - 9 - 语言程序设计之交通处罚单管理系统 【信息查询模块流程图】 打开文件 输入用户要查询的信息x 用户选择 输入查询的车牌号n 输入查询的驾驶员姓名name 输入查询的开单警察name 输入错误 strcmp(listlist[j].vstrcmp(list[j]. [j].pname)=no==no dname,name)==0 =name)==0 显示显示显示 显示 找到找到“没 “没 的此的此有找 有找 罚单罚单到该 到该 信息 信息 班号班号 的记 的记 录” 录” 关闭文件 返回主菜单 - 10 -