实验一 车辆违章管理系统
一、系统功能模块结构图
本系统主要具备以下三个功能
1.车辆及违章信息的录入。
2.基于车牌号查询每台车辆的违章情况。
3.基于车牌号统计每台车辆的总金额。
何赛飞越剧二、数据结构设计及用法说明
需处理的车辆及违章基本信息包括:眼线笔车牌号、车主姓名、违章停车次数、闯红灯次数、超速次数。这些信息采用结构体数据类型表示更为方便,因为违章信息数量的不确定性,所以信息应采用链表进行存储,这更符合实际应用
所以采用的数据结构如下
typedef struct 画蛇添足古文Pe
{
char vno[8]; /*车牌号*/
char name[15]; /*车主姓名*/
int times1; /*违章停车次数*/
int times2; /*闯红灯次数*/
int times3; /*超速次数*/
struct Pe *next /*结构体指针*/
}PECCANCY;
其中char vno[8] 用来存储车牌号, char name[15]存储车主姓名int times1记录违章停车次数,int times2记录闯红灯次数,int times3记录超速次数,struct Pe *next为结构体指针,用于链表链接。
三、程序结构
四、各模块的功能
本程序一共具有3个功能。因此,一共将程序分为3个模块。
模块一是车辆及违章信息的录入。
具体流程为: 根据输入的车牌号判断原有的链表是否存在这个车牌号。如果存在,则要输入这个车牌号所违章的项目,并在相应的违章记录次数上+1.如果原链表不存在这个车牌号,则需要创建新的节点,并提示输入完整的信息。最后将这个节点用尾插法插入链表中。
模块二、基于车牌号查询违章记录
具体流程为:根据输入的车牌号判断链表中是否存在这个车牌号。如果存在,将这个节点的所有信息输出。如果不存在,则输出不存在。
模块三、根据车牌号统计每辆车的总金额
具体流程为:根据输入的车牌号判断链表中是否存在这个车牌号。如果存在,将这个节点
的输出。如果不存在,则输出不存在。
int LocateElem(PECCANCY *L,char a[]) 是元素查函数,其中PECCANCY *L传递头指针,,char a[])传递车牌号
五、实验结果
运行程序。打印菜单项。输入1,提示输入车牌号.输入12345678.。程序提示不存在这个信息,要求输入违章项目,输入1.违章次数+1.返回主菜单。
输入1,输入车牌号12345678.要求输入违章项目。输入2。闯红灯次数+1.返回主菜单。
一吨柴油是多少升输入1.输入车牌号。45612378. 程序提示不存在这个信息,要求输入违章项目,输入1.违章次数+1.返回主菜单。
输入2.输入车牌号78945612.程序提示不存在这个信息。返回主菜单。
输入2.输入车牌号12345678.程序输出该车违章信息。其中违章停车一次,闯红灯一次,超速0次。返回主菜单。
输入3. 输入车牌号78945612.程序提示不存在这个信息。返回主菜单。
输入3.输入车牌号12345678.输出300.
六、体会
链表只是接触是在学习算法与数据结构课程中,虽然已经掌握基本语法,但第一次用链表的时候感觉力不从心。编写程序速度较慢。同时,c语言很久没有使用,感觉比较生疏,很多基本的语句都会出错。
完成这个实验让我明白,只有不断地编写程序才能提高自己,才能是自己更快的到完成程序的算法。同时,第一的实验也为第二个实验开了个好头。
附录:程序清单
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct Pe /*建立结构体*/
{
char vno[8]; /*车牌号*/
char name[15]; /*车主姓名*/
int times1; /*违章停车次数*/
int times2; /*闯红灯次数*/
int times3; /*超速次数*/
struct Pe *next; /*指针节点*/
}PECCANCY;
怎么设置屏幕保护 int LocateElem(PECCANCY *L,char a[])/*元素查函数*/
{
PECCANCY *p=L->next;
int n=1;
while(p!=NULL&&strcmp(a,p->vno)!=0)
{p=p->next;
过春节的国家 n++;
}
if(p==NULL)
return(0);
else
return(n);
}
void main()
{ int caidan; /*关于菜单项的变量*/
int i,j,k,money;
char names[15],carnumber[9];
PECCANCY *head,*r,*s,*q; /*建立链表结点*/
head=(PECCANCY*)malloc(sizeof(PECCANCY));
r=(PECCANCY*)malloc(sizeof(PECCANCY));
r=head; /*r始终指向尾节点*/
head->next=NULL;
for(;;)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论