交通处罚单管理系统Word文件下载.docx
《交通处罚单管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《交通处罚单管理系统Word文件下载.docx(42页珍藏版)》请在冰豆网上搜索。
1欢迎下载
即本程序首先运行【用户系统】菜单界面,菜单界面上为用户提供信
息输入,信息删除,信息查询,信息浏览,信息统计,退出菜单共六
种操作选择。
此功能用switch语句来实现。
其次,根据目标程序运
行的次序与界面,确定设计顺序,设计界面(包括各部分菜单与用户
提示信息)。
再次,按照程序运行的各界面下的菜单功能编写各功能
模块,并调试程序各功能模块,使各模块能够稳定高效准确地完成对
应功能。
第四部分:
程序功能模块划分、图示及流程图
系统的结构图:
信息
输入
查找
浏览
删除
统计
.
【信息输入模块】
该模块的功能是为用户提供信息输入界面,用户可以根据信息提示进行信息输入,用户输入的信息将被保存在文件当中。
【流程图】
2欢迎下载
请输入车牌号码:
请输入驾驶员姓名:
请输入开单日期:
请输入罚单号:
显示已有罚单数目
【程序】:
3欢迎下载
voidshuru()
{
FILE*fp;
inti=0;
if((fp=fopen("
data.txt"
"
wb"
))==NULL)
printf("
Cannotopenthefile\n"
);
exit(0);
//调用此函数时必须包含<
stdlib.h>
}
请输入车牌号码:
\n"
scanf("
%d"
&
dan[NUM].chepai);
请输入驾驶员姓名:
%s"
dan[NUM].name);
请输交警ID:
\n"
dan[NUM].id);
请输入开单日期(以年/月/日形式输入):
%d/%d/%d"
dan[i].date.year,&
dan[i].date.month,&
dan[
i].date.day);
请输入处罚单号:
dan[NUM].num);
for(i=0;
i<
=NUM;
i++)
4欢迎下载
if(fwrite(&
dan[i],sizeof(structcfd),1,fp)!
=1)
filewriteerror\n"
}//此处for循环的作用是:
在每次调用输入函
数时都能够把结构体数组中已有的数据和本次输入的数据都记录在
文件data.txt中
已经有%d个罚单\n"
i);
NUM++;
//NUM用来记录罚单总数,每调用一次输入函数NUM就加
一
fclose(fp);
【删除罚单模块】:
按操作者的指令在结构体数组中找到删除的信息,把结构体数组
中的信息抄到文件中去忽略要删除的信息达到要删除的目的。
【流程图】:
5欢迎下载
输入要删除的罚单号
通过for循环在结构体数组找到与之对应
的信息
for循环,i==c?
若i==c抄入文件若i!
=c不抄入文件
voidshanchu()
inti;
intc;
//待删除罚单号码
intw;
//删除处罚单号
请输入要删除的处罚单号:
"
w);
6欢迎下载
fp=fopen("
rb"
for(i=0;
NUM;
if(w==dan[i].num)//查找要删除的罚单号码
c=i;
//待删除罚单号码
if(i!
=c)
fwrite(&
dan[i],sizeof(structcfd),1,fp);
//如果罚单号与待
删除罚单号不同,就写入文件
从文件中把待删除的信息删除
NUM--;
//全局变量更新
删除成功\n罚单号是%d\n"
dan[c].num);
【信息浏览模块】:
把储存在文件中信息全部输出。
7欢迎下载
voidliulan()
已有%d个罚单"
NUM);
if(fread(&
dan[i],sizeof(structcfd),1,fp))
第%d罚单信息\n"
i+1);
prntf(i);
elsebreak;
【信息查询模块】:
用户根据界面的提示选择查询方式,并根据进一步的提示进行相关
输入,程序根据用户输入的信息通过for循环找到与之相对应的信息,
并输出相关信息。
【流程图】:
8欢迎下载
根据提示输入查询方式
按车牌号查询
按司机姓名查询
按警察ID查询
通过循环找到与之对应的信息,并将之输出
voidchaxun()
inti,w,x,flag;
charv[8];
//驾驶员名字
请输入你想查询的信息:
1-按车牌号查询\n"
2-按司机姓名查询\n"
3-按警察ID查询\n"
x);
flag=0;
//查找成功的标志,查找成功FLAG=1
9欢迎下载
if(x==3)
请输入要查询的警察ID:
=1)break;
if(dan[i].id==w)
flag=1;
break;
if(flag==0)
找不到此处罚单信息!
elseif(x==2)
请输入要查询的司机姓名:
10欢迎下载
v);
if(strcmp(dan[i].name,v)==0)//使用此函数时必须包含
string.h
elseif(x==1)
请输入要查询的车牌号:
11欢迎下载
if(dan[i].num==w)
elseprintf("
输入错误!
信息统计模块:
用户根据提示输入驾驶员姓名和一个时间段,程序将对储存在文件
中的信息逐个进行检验看其是否与输入的信息相对应,若相对应,就会
将其输出,并使统计变量加一,最终输出此驾驶员在此时间段内总共有
多少罚单。
【流程图】:
12欢迎下载
输入驾驶员姓名
输入要统计的时间段
通过循环将文件中的每一个信息
与输入条件对比,判断是否满足。
输出满足条件的罚单号,并每输出
一个罚单号使统计变量加一。
输出驾驶员此段时间罚单总数
voidtongji()
{inta1,b1,c1;
//分别用来表示起始时间的年、月、日
inta2,b2,c