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