交通罚单管理系统.doc

  • 格式:doc
  • 大小:292.61 KB
  • 文档页数:31

下载文档原格式

  / 31
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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");