交通罚单管理系统方案.docx

上传人:b****6 文档编号:4583836 上传时间:2022-12-07 格式:DOCX 页数:34 大小:187.76KB
下载 相关 举报
交通罚单管理系统方案.docx_第1页
第1页 / 共34页
交通罚单管理系统方案.docx_第2页
第2页 / 共34页
交通罚单管理系统方案.docx_第3页
第3页 / 共34页
交通罚单管理系统方案.docx_第4页
第4页 / 共34页
交通罚单管理系统方案.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

交通罚单管理系统方案.docx

《交通罚单管理系统方案.docx》由会员分享,可在线阅读,更多相关《交通罚单管理系统方案.docx(34页珍藏版)》请在冰豆网上搜索。

交通罚单管理系统方案.docx

交通罚单管理系统方案

一.系统开发的背景.2

二.系统分析与设计.2

(一)系统功能要求.2

(二)系统模块结构设计.2

三.系统的设计与实现3

(一)罚单基本信息录入:

input().3

(二)信息删除:

delete()6

(三)find函数9

(四)show函数13

(五)sum函数14

四.系统测试16

(一)测试input函数16

(二)测试delet函数17

(三)测试find函数18

(四)测试show函数18

(五)测试sum函数19

五、总结20

六、附件(代码、部分图表)21

交通罚单管理系统

一.系统开发的背景

为了方便单位对交通处罚的经一步解交通处罚单信息用文件存储,提供文件的输入输出操作;要求可以输入、删除、浏览交通处罚单信息,因而要提供信息的输入、删除和显示操作;要实现按车辆、驾驶员和开单交警查询,则要提供查找操作;另外提供统计操作和键盘式选择菜单以实现功能选择。

二.系统分析与设计

(一)系统功能要求

可以录入交通罚单的信息,交通处罚单信息用文件存储,因而要提供文件的输入输出操作。

1.要求可以输入、删除、浏览交通处罚单信息,因而要提供信息的输入、删除和显示操作;

2.要实现按车辆、驾驶员和开单交警查询,则要提供查找操作;

3.另外提供统计操作和键盘式选择菜单以实现功能选择。

4.罚单信息(包括车牌号、驾驶员、交警、交警编号、罚单编号)

(二)系统模块结构设计

通过对系统功能的分析,交通罚单管理系统功能如图所示

交通罚单管理系统

图1交通管理系统功能图

通过上图的功能分析,把整个系统划分为5个模块:

1、交通罚单信息录入,该模块主要实现:

车牌号、驾驶员、交警、交警编号、罚单编号的输入,用input函数实现。

2、信息删除模块,该模块主要实现信息的删除,用delet

函数实现。

3、信息查询模块,该模块主要实现信息的查询:

有车牌号查询、驾驶员查询、交警查询,共用四个函数进行查询,分别是find,

4、信息统计模块,主要实现的是罚单数量的统计,用sum

函数实现。

三.系统的设计与实现

(一)罚单基本信息录入:

input()

分析:

先输出表头,然后进行罚单的信息输入,单独看各个数据信息,

开单日期以及驾驶员为字符型,可以采用字符型数组;处罚单、车牌

以及交警ID为整型,可以采用整型数组。

一条记录对应一交通处罚

单,方便交通部门管理。

流程图如图2所示

开始

输入用户要输入处罚单纪录的条数。

退出

依次输入处罚单信息,并保存到文件中

输入、关成完闭件

图2输入函数流程图

***************************

程序代码:

voidinput()

{

FILE*fp;

intnum;

inti,j;

if((fp=fopen("plist.txt","r+"))==NULL)

〃r+为读和写而打开文本文件

{

if((fp=fopen("plist.txt","w"))==NULL)

读而打开文本文件

{

printf(”文件打开或创建失败!

\n");

printf("\npressentertoreturnmenu\n");getchar();

menu();

}

printf("\n请输入处罚单数量:

");

scanf("%d",&i);

输入模块

************************

〃w

 

printf("\n\n");

for(j=0;j

{

printf(”输入第%4处罚单的:

\n",j+1);

printf("\n车牌号、驾驶员、交警、交警号、处罚单号、日期(如20101112)\n");printf("\n注意:

中间用空格隔开!

\n");

scanf("%s%s%s%s%s%s",&plist[j].chepai,&plist[j].dname,&plist[j].pname,&plist[j].tbianhao,&list[j].fbianhao,&plist[j].date);

}

for(j=0;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);

printf("\n保存成功!

");

printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

printf("\n请输入处罚单数量:

");

scanf("%d",&i);

printf("\n\n");

for(j=0;!

feof(fp);j++)//读取文件

{

fscanf(fp,"%s%s%s%s%s%s",&plist[j].chepai,&plist[j].dname,&plist[j].pname,&plist[j].tbianhao,&plist[j].fbianhao,&plist[j].date);

}

num=j+i;

if(num>N)

{printf("\n结构体数组数的N太小,请先修改N的值\n");

printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

printf("\n");

for(j=0;j

{printf("输入第%4处罚单的:

\n",j+1);

printf("\n车牌号、驾驶员、交警、交警号、处罚单号、日期(如20101112)\n");printf("\n注意:

中间用空格隔开!

\n");

scanf("%s%s%s%s%s%s",&plist[j].chepai,&plist[j].dname,&plist[j].pname,&plist[j].tbianhao,&plist[j].fbianhao,&plist[j].date);

}

for(j=0;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);

printf("\n保存成功!

");

printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

(二)信息删除:

delete()分析:

该模块的功能需要删除交通处罚单信息,要根据处罚单号、车辆、驾驶员、开单时间以及交警ID查找处罚记录并删除。

流程图如图3所示。

结束

图3

************************

程序代码

voiddelet()

{

intj;

intnum;

intf=-1;

FILE*fp1,*fp2;//

chars1[20];

if((fp1=fopen("plist.txt","r"))==NU

{

删除函数流程图

^删除模^块***************************

文件的运用

 

printf("cannotopenfile\n");printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

for(j=0;!

feof(fp1);j++)//读取文件

{

fscanf(fp1,"%s%s%s%s%s%s",&plist[j].chepai,&plist[j].dname,&plist[j].pname,&plist[j].tbianhao,&plist[j].fbianhao,&plist[j].date);

}

num=j;

fclose(fp1);

printf("请输入要删除的处罚单的编号\n");

scanf("%s",s1);

for(j=0;j

{

if(strcmp(s1,plist[j].fbianhao)==0)

{

f=j;

if(f

{

for(j=f;j

{

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("plist.txt","w"))==NULL)

{

printf("文件打不开!

\n");printf("\npressentertoreturnmenu\n");getchar();

menu();

}

for(j=0;j

{

fprintf(fp2,"\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(fp2);

printf("\n删除成功!

\n");

printf("\npressentertoreturnmenu\n”);

getchar();

getchar();

menu();

}

}

if(f<0)

{printf("\n没有找到该学号的记录:

\n");

printf("\npressentertoreturnmenu\n”);getchar();

getchar();menu();

}

}

(三)find函数

分析:

该模块的功能是根据输入的处罚单号、车辆、驾驶员、开单时间以及交警ID查找相应的记录,方便驾驶员了解自己的处罚情况

流程图如图4所示

图4find函数流程图

********************************

**************************************

程序代码

voidfind()

{

intn;

intr;

do

{system("cls");//清屏

printf("\n请选择查询类型:

\n\t1-按车牌号2-按驾驶员3-按开单交警4-返回主菜单\n");

printf("\n请输入数字选择:

");

scanf("%d",&n);

if(n<1||n>4)

{

r=1;

getchar();

}

elser=0;}while(r==1);

switch(n)

{

case1:

chepaif();break;

case2:

dnamef();break;

case3:

pnamef();break;

case4:

menu();

}

}

voidchepaif()

{

intf=-1;

intnum;

intj;

chara[20];

FILE*fp;

if((fp=fopen("plist.txt","r"))==NULL)

{

printf("文件打不开!

\n");printf("\npressentertoreturnmenu\n");

getchar();

menu();

}

fscanf(fp,"%s%s%s%s%s%s",&plist[j].chepai,&plist[j].dname,&plist[j].pname,&plist[j].tbianhao,&plist[j].fbianhao,&plist[j].date);

}

num=j;

fclose(fp);

printf("\n请输入车牌号:

");

scanf("%s",a);

printf("\n罚单的信息为:

\n\n");

printf("车牌号驾驶员交警交警编号处罚单编号处罚日期\n");for(j=0;j

{

if(strcmp(a,plist[j].chepai)==0)

{

f=j;

printf("\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);

}

}

if(f<0)

printf("\n没有找到该班号的记录!

\n");printf("\npressentertoreturnsubmenu\n");getchar();

getchar();

find();

}

voiddnamef()

{

intf=-1;

intnum;

intj;

charname[20];

FILE*fp;if((fp=fopen("plist.txt","r"))==NULL)

{

printf("文件打不开!

\n");

printf("\npressentertoreturnmenu\n");

getchar();

menu();

}

fscanf(fp,"%s%s%s%s%s%s",&plist[j].chepai,&plist[j].dname,&plist[j].pname,&plist[j].tbianhao,&plist[j].fbianhao,&plist[j].date);

}

num=j;

fclose(fp);

printf("\n请输入驾驶员的:

");

scanf("%s",name);

printf("\n罚单的信息为:

\n\n");

printf("车牌号驾驶员交警交警编号处罚单编号处罚日期\n");for(j=0;j

{

if(strcmp(name,plist[j].dname)==0)

{

f=j;

printf("\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);

}

}

if(f<0)

printf("\n没有找到该班号的记录!

\n");printf("\npressentertoreturnsubmenu\n");getchar();

getchar();

find();

}

voidpnamef()

{

intf=-1;

intnum;

intj;

charname[20];

FILE*fp;

if((fp=fopen("plist.txt","r"))==NULL)

{

printf("文件打不开!

\n");printf("\npressentertoreturnmenu\n");

getchar();

menu();

}

for(j=0;!

feof(fp);j++)//读取文件

{

fscanf(fp,"%s%s%s%s%s%s",&plist[j].chepai,&plist[j].dname,&plist[j].pname,&plist[j].tbianhao,&plist[j].fbianhao,&plist[j].date);

}

num=j;

fclose(fp);

printf("\n请输入开单交警的:

");

scanf("%s",name);

printf("\n罚单的信息为:

\n\n");

printf(”车牌号驾驶员交警交警编号处罚单编号处罚日期\n");

for(j=0;j

{

if(strcmp(name,plist[j].pname)==0)

{

f=j;

printf("\n%s\t%s\t%s\t%s\t%s\t%s",&plist[j].chepai,&plist[j].dname,&plist[j].pn

ame,&plist[j].tbianhao,&plist[j].fbianhao,&plist[j].date);

}

}

if(f<0)

printf("\n没有找到该班号的记录!

\n");

printf("\npressentertoreturnsubmenu\n”);

getchar();

getchar();

find();

}

5所示

(四)show函数

分析:

该模块的功能是显示所有的处罚信息。

流程图如图程序代码

图5show函数流程图

voidshow()

{

intj;

intnum;

FILE*fp;if((fp=fopen("plist.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",&plist[j].chepai,&plist[j].dname,&plist[j].pname,&plist[j].tbianhao,&plist[j].fbianhao,&plist[j].date);

}

fclose(fp);

num=j;

printf("\n已添加%d条记录\n\n",num);

printf("车牌号驾驶员交警交警编号处罚单编号处罚日期\n");for(j=0;j

{printf("\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);

}

printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

(5)sum函数分析:

该模块的功能是根据输入的处罚单号、车辆、驾驶员、开单时间以及交警ID查找相应的记录,方便驾驶员了解自己的处罚情况。

流程图如图6所示

(6)

图6sum函数流程图

程序代码

voidsum()

{

intf=-1;

intnum;//所有罚单单数

intj;

intall=0;//某驾驶员的罚单数

charname[20];

chartime1[20];

chartime2[20];

FILE*fp;

if((fp=fopen("plist.txt","r"))==NULL)

{

printf("文件打不开!

\n");

printf("\npressentertoreturnmenu\n”);

getchar();

menu();

}

for(j=0;!

feof(fp);j++)//读取文件

{

fscanf(fp,"%s%s%s%s%s%s",&plist[j].chepai,&plist[j].dname,&plist[j].pname,&plist[j].tbianhao,&plist[j].fbianhao,&plist[j].date);

}

num=j;fclose(fp);

printf("\n请根据提示输入驾驶员的和一个时间段,统计某个驾驶员在某段时间的处罚单数目和罚单号\n");

printf("\n\n请输入驾驶员的:

");

scanf("%s",name);

printf("\n请输入一个较早的时间:

");

scanf("%s",time1);

printf("\n请输入一个最近的时间:

");

scanf("%s",time2);

for(j=0;j

{if((strcmp(plist[j].date,time1)>=0)&&(strcmp(plist[j].date,time2)<=0))

{

f=j;

all++;

printf("\n罚单号:

%s\n",plist[j].fbianhao);

}

}

if(f<0)

printf("\n没有找到记录!

\n");

printf("\n罚单总数为:

%d\n",all);

printf("\npressentertoreturnmenu\n");

getchar();

getchar();

menu();

}

四.系统测试

(一)测试input函数

交通罚单管理系统

请输入处罚单数量泊

 

注意冲间用空整隔幵?

裁456虎哥程化4532G109356320130630

保存咸功!

pi-G苗昏右。

rctwrnmenu

(二)测试delet函数

"I'■.3eblig该兰™单.eKe"

交通罚单管理系统

录ffill杳律条自S自3自4自「自4亠二巳=巳一0_0一・艮一

12345&

悴选捋您要进行的眾奔〔用序号代替)例.1〔信息录入)

冷输入要册II除的处罚单的编号

*!

1除成功!

bres^uintui'toreturnmenu.

■1"IADetxjgA^uSwiM^e

幘选j?

■查询类型:

|-按车牌号-按驾驶員姓名4按开单交警姓名4-返回主菜单

*输入数字选择汽

+青输入车牌号=23*32

”单的信息为;

£牌号莺驶员姓名交警姓名交警编号处罚单编号处罚

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 法语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1