交通处罚单管理系统.docx

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

交通处罚单管理系统.docx

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

交通处罚单管理系统.docx

交通处罚单管理系统

精品文档

 

C语言实践应用

 

交通处罚单管理系统

 

内容:

 

〔要求〕交通处罚单涉及到车辆、驾驶员和开单交警的信息,还有交

 

通处罚单号码,处罚时间等信息。

 

功能:

 

(1)要求可以输入、删除、浏览交通处罚单信息。

 

(2)可以按车辆、驾驶员和开单交警查询。

 

(3)统计某时间段某个驾驶员的交通处罚单数目及交通处罚单号码。

 

第二部分:

需求分析

1.交通处罚单信息用文件存储,提供文件的输入输出操作;

 

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

 

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

 

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

 

第三部分:

程序总体设计思路

由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。

 

在编写本程序的过程中,首先,确定目标程序运行的次序与界面,

 

1欢迎下载

精品文档

 

即本程序首先运行【用户系统】菜单界面,菜单界面上为用户提供信

 

息输入,信息删除,信息查询,信息浏览,信息统计,退出菜单共六

 

种操作选择。

此功能用switch语句来实现。

其次,根据目标程序运

 

行的次序与界面,确定设计顺序,设计界面(包括各部分菜单与用户

 

提示信息)。

再次,按照程序运行的各界面下的菜单功能编写各功能

 

模块,并调试程序各功能模块,使各模块能够稳定高效准确地完成对

 

应功能。

 

第四部分:

程序功能模块划分、图示及流程图

 

系统的结构图:

 

交通处罚单管理系统

 

信息

信息

信息

信息

信息

输入

查找

浏览

删除

统计

 

.

 

【信息输入模块】

该模块的功能是为用户提供信息输入界面,用户可以根据信息提示进行信息输入,用户输入的信息将被保存在文件当中。

【流程图】

 

2欢迎下载

精品文档

 

请输入车牌号码:

 

请输入驾驶员姓名:

 

请输入开单日期:

 

请输入罚单号:

 

显示已有罚单数目

 

【程序】:

 

3欢迎下载

精品文档

 

voidshuru()

 

{

 

FILE*fp;

 

inti=0;

 

if((fp=fopen("data.txt","wb"))==NULL)

 

{

 

printf("Cannotopenthefile\n");

 

exit(0);//调用此函数时必须包含

 

}

 

printf("请输入车牌号码:

\n");

 

scanf("%d",&dan[NUM].chepai);

 

printf("请输入驾驶员姓名:

\n");

 

scanf("%s",dan[NUM].name);

 

printf("请输交警ID:

\n");

 

scanf("%d",&dan[NUM].id);

 

printf("请输入开单日期(以年/月/日形式输入):

\n");

 

scanf("%d/%d/%d",&dan[i].date.year,&dan[i].date.month,&dan[

 

i].date.day);

 

printf("请输入处罚单号:

\n");

 

scanf("%d",&dan[NUM].num);

 

for(i=0;i<=NUM;i++)

 

4欢迎下载

精品文档

 

{

 

if(fwrite(&dan[i],sizeof(structcfd),1,fp)!

=1)

 

printf("filewriteerror\n");

 

}//此处for循环的作用是:

在每次调用输入函

 

数时都能够把结构体数组中已有的数据和本次输入的数据都记录在

 

文件data.txt中

 

printf("已经有%d个罚单\n",i);

 

NUM++;//NUM用来记录罚单总数,每调用一次输入函数NUM就加

 

 

fclose(fp);

 

}

 

【删除罚单模块】:

 

按操作者的指令在结构体数组中找到删除的信息,把结构体数组

 

中的信息抄到文件中去忽略要删除的信息达到要删除的目的。

 

【流程图】:

 

5欢迎下载

精品文档

 

输入要删除的罚单号

 

通过for循环在结构体数组找到与之对应

的信息

 

for循环,i==c?

 

若i==c抄入文件若i!

=c不抄入文件

 

【程序】:

 

voidshanchu()

 

{

 

inti;

 

intc;//待删除罚单号码

 

intw;//删除处罚单号

 

FILE*fp;

 

printf("请输入要删除的处罚单号:

");

 

scanf("%d",&w);

 

6欢迎下载

精品文档

 

fp=fopen("data.txt","rb");

 

for(i=0;i

 

{

 

if(w==dan[i].num)//查找要删除的罚单号码

 

c=i;//待删除罚单号码

 

}

 

fclose(fp);

 

fp=fopen("data.txt","wb");

 

for(i=0;i

 

{

 

if(i!

=c)

 

fwrite(&dan[i],sizeof(structcfd),1,fp);//如果罚单号与待

 

删除罚单号不同,就写入文件

 

}//此处for循环的作用是:

从文件中把待删除的信息删除

 

NUM--;//全局变量更新

 

printf("删除成功\n罚单号是%d\n",dan[c].num);

 

fclose(fp);

 

}

 

【信息浏览模块】:

 

把储存在文件中信息全部输出。

 

【程序】:

 

7欢迎下载

精品文档

 

voidliulan()

 

{

 

inti;

 

FILE*fp;

 

fp=fopen("data.txt","rb");

 

printf("已有%d个罚单",NUM);

 

for(i=0;i

 

{

 

if(fread(&dan[i],sizeof(structcfd),1,fp))

 

{

 

printf("第%d罚单信息\n",i+1);

 

prntf(i);

 

}

 

elsebreak;

 

}

 

fclose(fp);

 

}

 

【信息查询模块】:

 

用户根据界面的提示选择查询方式,并根据进一步的提示进行相关

 

输入,程序根据用户输入的信息通过for循环找到与之相对应的信息,

 

并输出相关信息。

 

【流程图】:

 

8欢迎下载

精品文档

 

根据提示输入查询方式

 

按车牌号查询

按司机姓名查询

按警察ID查询

 

通过循环找到与之对应的信息,并将之输出

 

【程序】:

 

voidchaxun()

 

{

 

inti,w,x,flag;

 

FILE*fp;

 

charv[8];//驾驶员名字

 

printf("请输入你想查询的信息:

\n");

 

printf("1-按车牌号查询\n");

 

printf("2-按司机姓名查询\n");

 

printf("3-按警察ID查询\n");

 

scanf("%d",&x);

 

flag=0;//查找成功的标志,查找成功FLAG=1

 

9欢迎下载

精品文档

 

if(x==3)

 

{

 

printf("请输入要查询的警察ID:

\n");

 

scanf("%d",&w);

 

fp=fopen("data.txt","rb");

 

for(i=0;i

 

{

 

if(fread(&dan[i],sizeof(structcfd),1,fp)!

=1)break;

 

if(dan[i].id==w)

 

{

 

prntf(i);

 

flag=1;

 

break;

 

}

 

}

 

if(flag==0)

 

printf("找不到此处罚单信息!

\n");

 

fclose(fp);

 

}

 

elseif(x==2)

 

{

 

printf("请输入要查询的司机姓名:

\n");

 

10欢迎下载

精品文档

 

scanf("%s",v);

 

fp=fopen("data.txt","rb");

 

for(i=0;i

 

{

 

if(fread(&dan[i],sizeof(structcfd),1,fp)!

=1)break;

 

if(strcmp(dan[i].name,v)==0)//使用此函数时必须包含

 

string.h

 

{

 

prntf(i);

 

flag=1;

 

break;

 

}

 

}

 

if(flag==0)

 

printf("找不到此处罚单信息!

\n");

 

fclose(fp);

 

}

 

elseif(x==1)

 

{

 

printf("请输入要查询的车牌号:

\n");

 

scanf("%d",&w);

 

fp=fopen("data.txt","rb");

 

11欢迎下载

精品文档

 

for(i=0;i

 

{

 

if(fread(&dan[i],sizeof(structcfd),1,fp)!

=1)break;

 

if(dan[i].num==w)

 

{

 

prntf(i);

 

flag=1;

 

break;

 

}

 

}

 

if(flag==0)

 

printf("找不到此处罚单信息!

\n");

 

fclose(fp);

 

}

 

elseprintf("输入错误!

\n");

 

}

 

信息统计模块:

 

用户根据提示输入驾驶员姓名和一个时间段,程序将对储存在文件

 

中的信息逐个进行检验看其是否与输入的信息相对应,若相对应,就会

 

将其输出,并使统计变量加一,最终输出此驾驶员在此时间段内总共有

 

多少罚单。

 

【流程图】:

 

12欢迎下载

精品文档

 

输入驾驶员姓名

 

输入要统计的时间段

 

通过循环将文件中的每一个信息

与输入条件对比,判断是否满足。

 

输出满足条件的罚单号,并每输出

一个罚单号使统计变量加一。

 

输出驾驶员此段时间罚单总数

 

【程序】:

 

voidtongji()

 

{inta1,b1,c1;//分别用来表示起始时间的年、月、日

 

inta2,b2,c

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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