交通罚单管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
交通罚单管理系统
一.系统开发的背景 (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 输入函数流程图
***************************输入模块************************
程序代码:
void input()
{
FILE*fp;
int num;
int i,j;
if((fp=fopen("plist.txt","r+"))==NULL)
//r+为读和写而打开文本文件
{
if((fp=fopen("plist.txt","w"))==NULL) //w为读而打开文本文件
{
printf("文件打开或创建失败!\n");
printf("\npress enter to return menu\n");
getchar();
menu();
}
printf("\n请输入处罚单数量:");
scanf("%d",&i);
printf("\n\n");
for(j=0;j
{
printf("输入第%d张处罚单的:\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].p name,plist[j].tbianhao,plist[j].fbianhao,plist[j].date);
}
fclose(fp);
printf("\n保存成功!");
printf("\npress enter to return menu\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,&plis t[j].tbianhao,&plist[j].fbianhao,&plist[j].date);
}
num=j+i;
if(num>N)
{printf("\n结构体数组数的N太小,请先修改N的值\n");
printf("\npress enter to return menu\n");
getchar();
getchar();
menu();
}
printf("\n");
for(j=0;j
{printf("输入第%d张处罚单的:\n",j+1);
printf("\n车牌号、驾驶员姓名、交警姓名、交警号、处罚单号、日期(如20101112)\n"); printf("\n注意:中间用空格隔开!\n");