1、一、系统功能模块结构图二、数据结构设计及用法说明需处理的车辆及违章基本信息包括:车牌号、车主姓名、违章停车次数、闯红灯次数、超速次数。这些信息采用结构体数据类型表示更为方便,这更符合实际应用所以采用的数据结构如下typedef struct Pe /*建立结构体*/char vno8; /*车牌号*/char name15; /*车主姓名*/int parking; /*违章停车次数*/int redlight; /*闯红灯次数*/int speeding; /*超速次数*/PECCANCY;其中 char vno8 用来存储车牌号, char name15存储车主姓名 int parking
2、 记录违章停车次数,int redlight;记录闯红灯次数,int speeding; 记录超速次数, 。三、各模块的功能本程序一共具有 3 个功能。因此,一共将程序分为 3 个模块。模块一是车辆及违章信息的录入。具体流程为:输入的车牌号、车主姓名,依此输入这个车牌号所违车辆违章管理系统违章记录录入 违章记录查询罚款金额统计 显示所有信息 退出系统章的项目的次数。输入 1 继续输入,输入 0 停止输入。模块二、基于车牌号查询违章记录具体流程为:根据输入的车牌号查找每一条存储的信息。有符合的信息则输出模块三、根据车牌号统计每辆车的罚款总金额具体流程为:根据输入的车牌号查找所储存的信息,并计算出
3、罚款总金额。四、设计程序见附录。五、实验结果运行程序。输入 1,提示输入信息.输入 12345678,123,1,1,0。输入 2.输入车牌号 12345678 程序输出该车违章信息。其中违章停车一次,闯红灯一次,超速 0 次。返回主菜单。输入 3. 输入车牌 12345678.输出罚款 300.六、体会编写程序速度较慢,感觉力不从心。同时,c 语言很久没有使用,感觉比较生疏,很多基本的语句都会出错。完成这个实验让我明白,只有不断地编写程序才能提高自己,才能是自己更快的找到完成程序的算法。同时,第一的实验也为第二个实验开了个好头。七、部分功能截图信息输入信息输出附录:程序清单#include#
4、includetypedef struct Pe /*建立结构体*/char vno8; /*车牌号*/char name15; /*车主姓名*/int parking; /*违章停车次数*/int redlight; /*闯红灯次数*/int speeding; /*超速次数*/PECCANCY;void main()PECCANCY a20;int i,j,sum;sum=-1;i=1;int key;while (key!=4)printf(“请输入指令 n1车辆及违章信息的录入n2车辆的违章情况n3车辆的罚款总金额n4.退出n“);scanf(“%d“,switch(key) /*功能
5、选择*/case 1: /*信息录入*/int k=1;while (k!=0)printf(“输入请按 1 退出请按 0“);scanf(“%d“,for (j=1;j=k;j+)printf(“请输入违章车辆的车牌号 车主姓名 违章停车次数 闯红灯次数 超速次数n“);scanf(“%s“,scanf(“%s“,scanf(“%d“,scanf(“%d“,scanf(“%d“, printf(“n“);sum=sum+k;break;case 2: /*信息查询*/printf(“请输入违章车辆的车牌号“);char vnoc8;scanf(“%s“,vnoc);for (j=0;jsum
6、+1;j+)if (strcmp(vnoc,aj.vno)=0)printf(“违章车辆的车牌号%sn“,aj.vno);printf(“车主姓名%sn“,aj.name);printf(“违章停车次数%dn“,aj.parking);printf(“闯红灯次数%dn“,aj.redlight);printf(“超速次数%dn“,aj.speeding);break;case 3: /*罚金查询*/printf(“请输入违章车辆的车牌号“);char vnoc8;scanf(“%s“,vnoc);for (j=0;jsum+1;j+)if (strcmp(vnoc,aj.vno)=0)int fine;fine= aj.parking*100+aj.redlight*200+aj.speeding*500;printf(“应缴罚金:“);printf(“%d“,fine);break;