交通罚单管理系统Word文档格式.docx
《交通罚单管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《交通罚单管理系统Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
一.系统开发的背景
为了方便单位对交通处罚的经一步解交通处罚单信息用文件存储,提供文件的输入输出操作;
要求可以输入、删除、浏览交通处罚单信息,因而要提供信息的输入、删除和显示操作;
要实现按车辆、驾驶员和开单交警查询,则要提供查找操作;
另外提供统计操作和键盘式选择菜单以实现功能选择。
二.系统分析与设计
(一)系统功能要求
可以录入交通罚单的信息,交通处罚单信息用文件存储,因而要提供文件的输入输出操作。
1.要求可以输入、删除、浏览交通处罚单信息,因而要提供信息的输入、删除和显示操作;
2.要实现按车辆、驾驶员和开单交警查询,则要提供查找操作;
3.另外提供统计操作和键盘式选择菜单以实现功能选择。
4.罚单信息(包括车牌号、驾驶员姓名、交警姓名、交警编号、罚单编号)
(二)系统模块结构设计通过对系统功能的分析,交通罚单管理系统功能如图所示
图1交通管理系统功能图
通过上图的功能分析,把整个系统划分为5个模块:
1、交通罚单信息录入,该模块主要实现:
车牌号、驾驶员姓名、交警姓名、交警编号、罚单编号的输入,用input函数实现。
2、信息删除模块,该模块主要实现信息的删除,用delet
函数实现。
3、信息查询模块,该模块主要实现信息的查询:
有车牌号查询、驾驶员查询、交警查询,共用四个函数进行查询,分别是find,
4、信息统计模块,主要实现的是罚单数量的统计,用sum
三.系统的设计与实现
(1)罚单基本信息录入:
input()
分析:
先输出表头,然后进行罚单的信息输入,单独看各个数据信息,开单日期以及驾驶员姓名为字符型,可以采用字符型数组;
处罚单号
码、车牌号码以及交警ID为整型,可以采用整型数组。
一条记录对
应一张交通处罚单,方便交通部门管理。
流程图如图2所示。
开始
1
y-
能否打开文件
输入用户要输入处罚单纪录的条数。
依次输入处罚单信息,并保存到文件中。
j
T
输入、关成完闭件
N
退出
输入函数流程图
***************************
程序代码:
voidinput()
{
FILE*fp;
intnum;
inti,j;
if((fp=fopen("
plist.txt"
"
r+"
))==NULL)
〃r+为读和写而打开文本文件
if((fp=fopen("
w"
读而打开文本文件
printf(”文件打开或创建失败!
\n"
);
printf("
\npressentertoreturnmenu\n"
getchar();
menu();
}
输入模块
************************
〃w
printf("
\n请输入处罚单数量:
"
scanf("
%d"
&
i);
\n\n"
for(j=0;
j<
i;
j++)//控制罚单一次一次的输入
printf(”输入第%d张处罚单的:
j+1);
\n车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20101112)\n"
printf("
\n注意:
中间用空格隔开!
%s%s%s%s%s%s"
plist[j].chepai,&
plist[j].dname,&
plist[j].pname,&
plist[j].tbianhao,&
list[j].fbianhao,&
plist[j].date);
j++)//对罚单一次次的保存
fprintf(fp,"
\n%s\t%s\t%s\t%s\t%s\t%s"
plist[j].chepai,plist[j].dname,plist[j].pname,plist[j].tbianhao,plist[j].fbianhao,plist[j].date);
fclose(fp);
\n保存成功!
"
\npressentertoreturnmenu\n"
getchar();
menu();
\n请输入处罚单数量:
!
feof(fp);
j++)//读取文件
fscanf(fp,"
plist[j].tbianhao,&
plist[j].fbianhao,&
num=j+i;
if(num>
N)
{printf("
\n结构体数组数的N太小,请先修改N的值\n"
j++)
输入第%d张处罚单的:
\n车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20101112)\n"
{fprintf(fp,"
(二)信息删除:
delete()分析:
该模块的功能需要删除交通处罚单信息,要根据处罚单号、车辆号码、驾驶员姓名、开单时间以及交警ID查找处罚记录并删除。
流程图如图3所示。
结束
图3
程序代码
voiddelet()
intj;
intf=-1;
FILE*fp1,*fp2;
//
chars1[20];
if((fp1=fopen("
r"
))==NU
删除函数流程图
^删除模^块***************************
文件的运用
cannotopenfile\n"
feof(fp1);
fscanf(fp1,"
plist[j].tbianhao,&
num=j;
fclose(fp1);
请输入要删除的处罚单的编号\n"
%s"
s1);
num;
if(strcmp(s1,plist[j].fbianhao)==0)
f=j;
if(f<
num-1)
for(j=f;
num-1;
strcpy(plist[j].chepai,plist[j+1].chepai);
strcpy(plist[j].dname,plist[j+1].dname);
strcpy(plist[j].pname,plist[j+1].pname);
strcpy(plist[j].tbianhao,plist[j+1].tbianhao);
strcpy(plist[j].fbianhao,plist[j+1].fbianhao);
strcpy(plist[j].date,plist[j].date);
if((fp2=fopen("
文件打不开!
\n"
j++)//保存文件
fprintf(fp2,"
plist[j].pname,&
plist[j].tbianhao,&
fclose(fp2);
\n删除成功!
\npressentertoreturnmenu\n”);
0)
{printf("
\n没有找到该学号的记录:
menu();
(三)find函数
该模块的功能是根据输入的处罚单号、车辆号码、驾驶员姓名、
开单时间以及交警ID查找相应的记录,方便驾驶员了解自己的处罚
情况。
流程图如图4所示
图4find函数流程图
********************************
voidfind()
intn;
intr;
do
查询模块
**************************************
system("
cls"
)