c语言课程设计交通处罚单程序exe,交通处罚单管理系统——C语言.doc

交通处罚单管理系统

内容: 〔要求〕交通处罚单涉及到车辆、驾驶员和开单交警的信息,还有交通处罚单号码,处罚时间等信息。? 功能:? (1)要求可以输入、删除、浏览交通处罚单信息。? (2)可以按车辆、驾驶员和开单交警查询。? (3)统计某时间段某个驾驶员的交通处罚单数目及交通处罚单号码。? 第二部分:需求分析 1.交通处罚单信息用文件存储,提供文件的输入输出操作;

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

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

4.另外提供系统操作和键盘式选择菜单以实现功能选择。? 第三部分:程序总体设计思路

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

在编写本程序的过程中,首先,确定目标程序运行的次序与界面,即本程序首先运行【用户系统】菜单界面,菜单界面上为用户提供信息输入,信息删除,信息查询,信息浏览,信息统计,退出菜单共六种操作选择。此功能用switch语句来实现。其次,根据目标程序运行的次序与界面,确定设计顺序,设计界面(包括各部分菜单与用户提示信息)。再次,按照程序运行的各界面下的菜单功能编写各功能模块,并调试程序各功能模块,使各模块能够稳定高效准确地完成对应功能。

第四部分:程序功能模块划分、图示及流程图

系统的结构图:

交通处罚单管理系统

交通处罚单管理系统

信息浏览信息统计信息删除信息查找信息输入

信息浏览

信息统计

信息删除

信息查找

信息输入

.

【信息输入模块】

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

【流程图】

请输入车牌号码:

请输入车牌号码:

显示已有罚单数目请输入罚单号:请输入开单日期:请输入驾驶员姓名:

显示已有罚单数目

请输入罚单号:

请输入开单日期:

请输入驾驶员姓名:

【程序】:

void shuru()

{

FILE *fp;

int i=0;

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

{

printf("Can not open the file\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++)

{

if(fwrite(&dan[i],sizeof(struct cfd),1,fp)!=1)

printf("file write error\n");

} //此处for循环的作用是:在每次调用输入函数时都能够把结构体数组中已有的数据和本次输入的数据都记录在文件data.txt中

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

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

fclose(fp);

}

【删除罚单模块】:

按操作者的指令在结构体数组中找到删除的信息,把结构体数组中的信息抄到文件中去忽略要删除的信息达到要删除的目的。

【流程图】:输入要删除的罚单号

输入要删除的罚单号

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

for循环,i= =c?

若i= =c抄入文件

若i!=c不抄入文件

【程序】:

void shanchu()

{

int i;

int c;//待删除罚单号码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
需求分析 交通处罚信息用文件存储,因而要提供文件的输入输出操作;要求可以输入、删除、浏览交通处罚信息,因而要提供信息的输入、删除和显示操作;要实现按车辆、驾驶员和开交警查询,则要提供查找操作;另外提供统计操作和键盘式选择菜以实现功能选择。 总体设计 整个管理系统被设计为信息输入模块、信息删除模块、信息浏览模块、信息查询模块和信息统计模块。 详细设计 数据结构采用结构体,设计交通处罚结构体: Struct TranficPunishBill { Char carNo[10]; //车牌号 Char driverNo[20]; //驾照号 Char policeNo[10]; //开交警号码 Char billNo[20]; //处罚号码 Char time[12]; //处罚时间(yyyymmddhhmm,年月日时分) }TPB; (1)主函数提示用户选择功能:输入 删除 浏览 查询 统计 (2)信息输入模块 采用追加的方式用fwrite或fprintf把处罚信息写入处罚信息文件。 (3)信息删除模块 输入处罚号码,然后在处罚信息文件中查找该条处罚,删除之。具体删除操作:用fopen打开该文件,从文件中读一条记录,判断是否要删除,如果是,则舍弃;否则重新写入文件,读下一条记录。 (4)信息浏览模块 采用fread或fscanf读处罚信息文件,分屏输出,每屏10条记录。 (5)信息查询模块 通过菜选择查询字段:车辆 驾驶员 开交警, 分别按照车牌号、驾照号、开交警号采用基本的查找算法查找交通处罚信息文件,如果找到相应得记录则输出处罚信息,否则输出“您所查找的信息不存在!”。 (6)信息统计模块 提示输入驾驶员的驾照号和时间段。设置一个计数器,初始化为0。采用基本算法查找交通处罚信息文件,比较驾照号,如果驾照号匹配,再看处罚时间是否出于查询时间段内,如果是,则计数器加1,并输出该处罚号。文件查找结束后,输出计数器的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值