c语言交通处罚单系统主函数,C语言课程设计交通处罚单管理系统.doc

C语言课程设计交通处罚单管理系统

C语言课程设计

交通处罚单管理

题目要求

交通处罚单涉及到车辆、驾驶员和开单交警的信息,还有交通处罚单号码、处罚时间等信息。

功能:

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

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

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

需求分析

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

总体设计

交通处罚单管理系统信息输入

交通处罚单管理系统

信息输入

信息删除

信息浏览

信息查询

信息统计

退出

详细设计

主函数

[主函数流程图]

显示一系列功能选项

显示一系列功能选项

输入n,判断n是否是1—6

根据n的值调用各功能模块函数

[主函数程序]

menu() /*主界面*/

{

int n,w; /*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/

do

{

printf("\t\t\t欢迎来到交通处罚单管理系统!\n\n");

printf("\t\t*******************MENU*******************\n\n");

printf("\t\t\t\t1.信息输入\n");

printf("\t\t\t\t2.信息删除\n");

printf("\t\t\t\t3.信息浏览\n");

printf("\t\t\t\t4.信息查询\n");

printf("\t\t\t\t5.信息统计\n");

printf("\t\t\t\t6.退出\n");

puts("\n\n\t\t********************************************\n");

printf("\t\t请输入您的操作(1-6):[ ]\b\b");

scanf("%d",&n);

if(n<1||n>6) /*对选择的数字作判断*/

{

w=1;

getchar();

}

else

w=0;

}

while(w==1); /*选择功能*/

switch(n)

{

case 1:shuru();break;

case 2:shanchu();break;

case 3:liulan();break;

case 4:chaxun();break;

case 5:tongji();break;

case 6:exit(0);

}

return(n);

}

void main() /*主函数*/

{

menu();

}

各功能模块设计

(1)、输入模块

[数据结构]

采用结构体的形式,把处罚单的处罚单号、车牌号码、驾驶员姓名、开单警察ID、处罚时间作为结构体成员,用结构体数组的形式存放若干条处罚单信息。

struct fandan

{

int num; /*处罚单号码*/

int chepai; /*车牌号码*/

char name[8]; /*驾驶员名字*/

int id; /*开单警察的信息ID*/

char time[11]; /*处罚时间为年月日排列*/

}dan[N]; /*dan[500]中每个数组元素对应一个处罚单信息*/

[注意]

dan[N]中的N为处罚单条数,本程序采用宏定义#define N 500。

[输入模块流程图]

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

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

能否打开文件

退出

i从0到j-1依次输入处罚单信息,并保存到文件中

j

开始

选择浏览还是返回主菜单

[输入模块程序]

void shuru() /*输入模块*/

{

int i,j;

FILE *fp;

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

{

printf("无法打开文件!\n");

exit(0);

}

printf("\n你要输入多少条处罚单信息:");

scanf("%d",&j);

for(i=0;i

{

printf("\n请依次输入罚单信息:\n");

printf("\n罚单号 车牌号 驾驶员姓名 警察ID 处罚时间\n");

scanf("%3d %5d %8s %5d %11s",&dan[i].num,&dan[i].chepai,&dan[i].name,&dan[i].

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值