C语言综合程序设计停车场管理系统.doc
C语言:停车场管理系统

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<malloc.h>#include<time.h>//获取系统时间#include<conio.h>//包含屏幕操作函数#define NULL 0#define LEN sizeof(struct car)//用于存放时间typedef struct time{int intimeyear;int intimemounth;int intimeday;int intimehour;int intimeminute;int intimesecond;//驶入时间,驶入时系统获取int outtimehour;int outtimeminute;int outtimesecond;//驶出时间}TIME;//用于存放车辆信息typedef struct car{int number;//在头指针中代表空车位,在其它指针中代表其车位号,从1-15按顺序char license[10];//每辆车自己的型号TIME time;//时间struct car *next;}CAR;//用于存放每日费用,并写入文件,便于计算一个月收入struct oneday{int tyear;int tmounth;int tday;int onedayfee;}one;CAR *creat();void inbigcar();//驶入一辆大型客车或货车void inmiddlecar();//驶入一辆中型客车或货车void insmallcar();//驶入一辆轿车int outbigcar();//输出一辆大型客车或货车int outmiddlecar();//开出一辆中型客车或货车int outsmallcar();//开出一辆轿车void lookup1();//分别输出A区,B区,C区当前所停放的汽车的信息void lookup2();//分别输出A区,B区,C区当前空闲的车位号void lookup3();//输入车牌号,输出该车所停放的车位号void lookup4();//输出A区,B区,C区当前所停放的汽车的数量void lookup5();//输入当前时间,分别统计A区,B区,C区到当前时间为止,停车时间超过5小时的汽车数量,并输出这些汽车的信息void lookup6();//输入一个日期(年.月),统计该月停车场的收费金额int onemoufee(int year,int mounth);//计算一个月的收入CAR *Ahead,*Bhead,*Chead;void main(){printf("\n\n\n\n================================================================== ==============\n\n\n\n");printf("\t\t********欢迎使用Light停车场管理系统!********\n\n\n\n\n");printf("========================================================================= =======\n\n\n\n");printf("\t\t\t 请按任意键进入\n");getchar();FILE *fp,*fp1;int year,mounth,day,hour,m,n=1,i=0;int Amoney=0,Bmoney=0,Cmoney=0,summoney=0;if((fp=fopen("table.txt","a"))==NULL){printf("Cannot open file!\n");exit(0);}//end if创立一个文件,以便记录Ahead=creat();Bhead=creat();Chead=creat();time_t nowtime;struct tm *timeinfo;time( &nowtime );timeinfo = localtime( &nowtime );one.tyear =year= timeinfo->tm_year + 1900;one.tmounth =mounth=timeinfo->tm_mon + 1;one.tday =day= timeinfo->tm_mday;hour = timeinfo->tm_hour;printf("%d\n",hour);if(hour<6||hour>=22){system("cls");printf("\n\n\n=================================================================== =============\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * Light停车场管理系统close *\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * 营业时间:6:00-22:00 *\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * 请您营业时间再来!*\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("========================================================================= =======\n");printf("\n\t\t\t\t请按任意键结束\n");getchar();exit(0);}//end iffprintf(fp,"%d年%d月%d日",year,mounth,day);while(n==1){system("cls");printf("\n");printf("========================================================================= =======\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * Light停车场管理系统*\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * 欢迎使用!*\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("\t\t * *\n");printf("========================================================================= =======\n\n");printf("\t 1. 停车 3. 查询\n");printf("\t 2. 取车0. 退出\n\n");printf("\t 请选择: ");scanf("%d",&m);switch(m){case 1:while(n==1){system("cls");printf("\t\t欢迎您停车!\n\n\t\t请选择您的停车区域\n");printf("--------------------------------------------------------------------------------\n\n");printf("\t 1. A区停放轿车 3. C区停放大型客车或货车\n");printf("\t 2. B区停放中型客车或货车0. 退出\n\n");printf("\t 请选择您需要的服务(0-3):");printf("\n\t 请选择: ");scanf("%d", &m);getchar();//驶入状况下选择车型switch(m){case 1:insmallcar();break;case 2:inmiddlecar();break;case 3:inbigcar();break;case 0:break;default:printf("You input the wrong number.\n");}//end switchprintf("\n\t如果您想继续停车,请输入1;如果想进入主菜单或退出,请输入任意数字:");printf("\n\t 请选择: ");scanf("%d",&n);}break;case 2: while(n==1){system("cls");printf("\t\t欢迎您取车!\n\n\t\t请选择您的取车的区域!\n");printf("--------------------------------------------------------------------------------\n\n");printf("\t 1. 从A区取轿车 3. 从C区取大型客车或货车\n");printf("\t 2. 从B区取中型客车或货车0. 退出\n\n");printf("--------------------------------------------------------------------------------\n");printf("\t 请选择您需要的服务(0-3):");scanf("%d", &m);getchar();//驶出状况下选择车型switch(m){case 1:Amoney=outsmallcar();break;case 2:Bmoney=outmiddlecar();break;case 3:Cmoney=outbigcar();break;case 0:break;default:printf("You input the wrong number.\n");}printf("\n\t如果您想继续开车,请输入1;如果想进入主菜单或退出,请输入0:");printf("\n\t 请选择: ");scanf("%d",&n);}one.onedayfee =summoney=Amoney+Bmoney+Cmoney;break;case 3: while(n==1){system("cls");printf("--------------------------------------------------------------------------------\n");printf("\t欢迎进入管理系统\t\n");printf("--------------------------------------------------------------------------------\n");printf("What do you want to look up?\n");printf("1、分别输出A区,B区,C区当前所停放的汽车的信息;\n");printf("2、分别输出A区,B区,C区当前空闲的车位号;\n");printf("3、输入车牌号,输出该车所停放的车位号;\n");printf("4、输出A区,B区,C区当前所停放的汽车的数量;\n");printf("5、输入当前时间,分别统计A区,B区,C区到当前时间为止,停车时间超过5小时的汽车数量,并输出这些汽车的信息;\n");printf("6、输入一个日期(年.月),统计该月停车场的收费金额。
停车场管理系统c语言

停车场管理系统c语言- 第二学期《高级语言程序设计》课程设计报告题目:停车场管理系统专业:计算机科学与技术班级:15级计科<1>班姓名:胡玉玉指导教师:陈广宏成绩:计算机学院年 4月 25 日目录1. 设计内容及要求 (1)1.1 课程设计内容 (1)1.2 课程设计的要求 (2)2 概要设计 (3)2.1 设计思路 (3)2.2 程序基本框架结构图 (4)3 设计过程或程序代码 (5)3.1 主要程序代码及解释 (5)4 设计结果与分析 (13)4.1 程序运行结果截图与分析 (13)5参考文献 (16)1.设计内容及要求1.1 课程设计内容①经过本次课程设计,强化上级动手能力,在理论和实践的基础上巩固《C语言程序设计》课程的学习内容。
掌握软件设计的基本方法。
②熟悉C语言的基本内容从而掌握C语言的基本知识以及了解C语言的基本编写及运行。
③了解程序的分模块编写并对程序的每个模块进行详细的设计而且能理解一般C语言编写的程序。
④掌握书写程序设计说明文档的能力。
⑤熟悉C程序设计的开发环境及C程序的调试过程1.2 课程设计的要求①分析课程设计题目的要求。
②写出详细设计说明。
③编写程序代码,调试程序使其能正确运行。
④设计完成的软件要便于操作和使用。
⑤设计完成后提交课程设计报告。
2.概要设计2.1设计思路停车场是一个可停放n辆汽车的狭长通道,并只有一个大门可供汽车进出,汽车在停车场内按车辆到达的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),如车长内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用,以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理.每一组输入数据包括三个数据项:汽车”到达”或”离去”信息,汽车牌照号码以及到达或离去的时刻(到达或离去的时刻也可用计算机控制).对每一组输入数据进行操作后的输入信息为:如是车辆到达,则输入汽车在停车场。
停车场管理系统--c语言

t->next=NULL;
q->rear->next=t;
q->rear=t;//q->rear=q->rear->next;
printf("%d号车进入便道等待\n",q->rear->data);
q->geshu++;
}
}
int D_cars(SqStack *s,LinkQueue *q,struct car d)
{QNODE *front,*rear;
int geshu;
}LinkQueue;
QNODE *head;
struct Dcar dd[MAXSIZE];
A_cars(SqStack *s,LinkQueue *q,struct car a)
{QNODE *t, *p;
printf(" ** 停车场管理系统 ** \n");
printf(" ** ** \n");
a=s->top;
printf("停车场内车辆数: %d\n",(s->top)+1);
printf("停车场内剩余空位:%d\n",3-s->top);
printf("详细信息:\n");
while(s->top>=0)
{printf("%d号车,%d时停车\n",(s->G[s->top]).num,(s->G[s->top]).time);
{int i,j,l;
C语言课程设计报告-停车场管理系统.doc

C语言课程设计报告目录一、题目要求,需求分析二、总体设计思路与功能模块划分三、程序设计四、程序运行测试五、总结前言计算机科学技术的发展,不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。
因此,计算机教育在全国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。
如今,高等教育的计算机教育发展十分迅速。
十多年前,只有部分理工科专业开设计算机课程。
今天,几乎所有高校的所有专业都开设了程度不同的计算机课程。
人们已经认识到,计算机知识已成为当代知识分子知识结构中不可缺少的重要组成部分。
而除了掌握计算机的基础知识和操作的基本能力外,掌握一门高级编程语言,并可以熟练运用它,已成为当代大学生综合能力必要组成。
计算机技术发展如此迅猛,计算机应用如此广泛,需要学习的东西愈来愈多,而我们的总学时是有限的。
一般来说,计算机课程学习可以分为两部分:一部分是理论课程学习,一部分是上机应用实习。
根据我们专业的性质和要求,则应侧重于上机操作运用。
为此,学校特意在本学期最后安排了32个学时的上机实习。
现将一星期的实习内容及结果分析分列如下:一、题目要求:27.停车场管理21、有一个两层的停车场,每层有6个车位,当第一层车停满后才允许使用第二层,(停车场可用一个二维数组实现,每个数组元素存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共4项,其中停车时间按分钟计算。
2、假设停车场初始状态为第一层已经停有4辆车,其车位号依次为1-4,停车时间依次为20,15,10,5。
即先将这四辆车的信息存入文件“car.dat"中(数组的对应元素也要进行赋值)。
3、停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件"car.dat"中,并将在此之前的所有车的停车时间加5。
c语言实现停车场管理系统

c语言实现停车场管理系统#include#include #include#define Size 2#define price 5typedef struct { char num[20]; int reachtime; int leavetime; }carinfo;typedef struct stack{ carinfo car[5]; int top;}Stack;typedef struct Node{ carinfo data; struct Node*next; }QueueNode;typedef struct { QueueNode *front; QueueNode *rear;}Queue,*linkQueue;int EnterQ(Queue *Q,carinfo x); int inistack(Stack *S) //初始化栈{S->top=-1; return 1;}void Push(Stack *S,carinfo x) //进栈操作{S->top++; S->car[S->top]=x;printf(" 进站成功!"); }void Pop(Stack *S,carinfo x) //出栈操作{ if(S->top=-1) printf(" 空栈,无法出栈!");x=S->car[S->top];S->top--;printf(" 出栈成功!");}IsEmpty(Stack *S) // 判断栈空{ if(S->top==-1) return 1;elsereturn 0;}int iniQueue(Queue *Q) //初始化便道{Q->front=(QueueNode *)malloc(sizeof(QueueNode)); //申请节点if(Q->front!=NULL){Q->rear=Q->front;Q->front->next=NULL;return 1;}else return 0;}int EnterQ(Queue *Q,carinfo x) //进便道{QueueNode *newNode;newNode=(QueueNode *)malloc(sizeof(QueueNode)); if(newNode!=NULL){ newNode->data=x; newNode->next=NULL;Q->rear->next=newNode; Q->rear=newNode; return 1;}else return 0;}int DeleteQ(Queue *Q,carinfo x) // 出便道{QueueNode *p; p=Q->front->next;if(Q->front==Q->rear) //判断便道是否有车return 0;x=p->data;if(p->next==Q->rear)Q->rear=Q->front;Q->front->next=NULL;}Q->front->next=p->next; free(p); return 1;}void Lpush(Stack *S,carinfo x){ Push(S,x); //进临时栈}void LPop(Stack *S,carinfo x){Pop(S,x);}int Arrive(Stack *S,Queue *Q) // 车辆到达{carinfo x;int a;printf(" 输入车牌号:"); scanf("%s",x.num); printf(" 请输入进车场的时间:");scanf("%d",&x.reachtime);if(S->top==Size-1){printf(" 车场已满,不能进入,进便道");//递归调用进便道操作a=EnterQ(Q, x);if(a==1){ printf("OK\n");} else printf("No!\n");}else{ Push(S,x);} return 1;}int Departure(Stack *S) // 车辆离开操作{int money;。
C程序设计-停车场管理系统(流程设计图)

3 2
N
Y
是否继续
N
退出程序 退出程序
主菜单
主菜单
Y
退出程
主菜单 出站模块流程图
停车场管理 1
主菜单
浏览、显示信息
入站
出站
退站
系统功能模块图
主函数
主菜单
主函数流程图
显示一系列功能选项
输入 n 判断 n 是否为 0~4
N
Y 根据 n 的值调用其他功能模块函数 主菜单模块流程图
浏览、显示模块
从文件中读取站内车辆信息
显示所读信息
从文件中读取便道停车信
显示所读信息
是否继续
N
Y
返回主菜单
退出程序
查询、显示模块程图
入站模块
从文件中读出站内停车信息
Y
记录空位信息
查询站内是否有空位
N
从文件中读出便道停车信息
车辆入站,记录信息
查询便道是否有空位
将信息存入文件
记录空位信息
是否继续
Y
是否继续
N
N
车辆入站,记录信息
主菜单
Y
主菜单 Y
退出 退出程序
将信息存入文件
程序
是否继续
N
Y
主菜单 入站模块流程图
退出程序
出站模块
输入车辆车牌
从文件中读取站内车辆信息
查询该车所在的位
Y
输出该车的信息,安排出站
该车是否在站内
N
从文件中读取便道停车信息
安排该车出站,更新站内信息
查询该车所在的位
从文件中读取便道停车信息 该车是否在便道内
N
便道内是否有 车
输出该车的信息,安排出站
C程序课程设计停车场管理系统

XXXXXXC程序设计课程设计说明书设计(论文)题目:停车场管理系统所在院:信息工程学院专业班级: 14通信工程2班学生姓名:学号:201451032指导教师:XXX2016年3月7日一、问题描述某停车场有20车位(1-20号),车辆信息包括:车位号,车牌号,进入时间,离开时间,计费(按每天20元收费)。
编程实现如下菜单驱动的停车场管理系统:(1)查找空车位并显示车位号。
(2)车辆进入(判断有没有空车位,如果有,允许车辆进入,同时记录车位号,车牌号及辆进入时间)。
(3)查找车辆并显示车辆信息。
(4)车辆离开(按照车位号查找车辆,如果在车位,计费,同时让车辆离开)。
(5)显示所有在位车辆信息。
二、设计要求1. 界面清晰,美观大方。
2. 要求使用菜单的形式描述功能项,菜单设计美观大方、实用,可仿照课程说明书模板或自行设计。
3. 模块化程序设计:要求在设计的过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现。
4. 程序以缩进格式书写,要求清晰、易懂。
5. 各功能模块要求必须有准确描述函数功能的注释,重要语句最好也加上注释,以更好地让读者理解。
6. 要求对2-3个重要功能模块进行描述。
7. 课程设计题目选择要求一个班最多有两人可选择同一题目,但要求不得抄袭,最终每个人(即使题目相同)内容都是独立的。
8. 课程设计至少包含5-10个功能模块,若题目中不够5-10个功能项,请自行设计功能项(5-10个功能项数目不同,得分也不同)。
9. 可以选择老师提供的参考选题,也可以自选,如果自选,需要将自选题目的详细内容以及实现要求提供给老师,老师批准后方可采用。
10. 要求利用结构化程序设计方法以及C的编程思想来完成系统的设计。
11. 编辑平台选用Microsoft Visual C++ 6.0。
三、分析与实现本程序采用模块化设计,主函数清晰、明了,各功能分别在不同模块中实现。
共有七个功能模块,每个功能模块以函数的形式表示,实现了有关停车场管理的七项功能。
C语言停车场管理系统源代码.doc

#include<stdio.h>#include<stdlib.h>#define stacksize 2 //车站//容量///////////////////////////////////////////////////////typedef struct Snode{int number;float int_time[2];float bian_time[2];}record;typedef struct {record *base;record *top;int size;}Stack;/////////////////////////////////////////////////////typedef struct Qnode{int number;float int_time[2];struct Qnode *next;}Qnode,*Queue;typedef struct {Queue front;Queue rear;}Linkqueue;void xunhuan(Stack L,Linkqueue Q);void jixu(Stack L,Linkqueue Q);//////////////////////////////////////////////////////////////////////////////////////////////////////////void InitStack(Stack &L) //堆栈操作{L.base=(record*)malloc(sizeof(Snode)*stacksize);if(!L.base)exit(0);L.top=L.base;L.size=stacksize;}/////////////////////////////////////////////////////void input(Stack &L,record h){*L.top++=h;}///////////////////////////////////////////////////Snode output(Stack &L,record &e){e=*--L.top;return e;}int Stackman(Stack L){if(L.top-L.base==L.size)return 0;elsereturn 1;}int StackEmpty(Stack L){if(L.base==L.top)return 0;elsereturn 1;}////////////////////////////////////////////////////////////////////////////////////////////////////void Initque(Linkqueue &Q) //队列操作{Q.front=Q.rear=(Queue)malloc(sizeof(Qnode));if(!Q.front)exit(0);Q.front->next=NULL;}//////////////////////////////////////////////////void enqueue(Linkqueue &Q,int number,float time[]){Queue q;printf("停车场已满,请将车辆停入便道!\n");q=(Queue)malloc(sizeof(Qnode));q->int_time[0]=time[0];q->int_time[1]=time[1];q->number=number;q->next=NULL;Q.rear->next=q;Q.rear=q;}///////////////////////////////////////////////////void outqueue(Linkqueue &Q,Queue &e) //此处有点问题??????????????{// Qnode *q;// q=(Queue)malloc(sizeof(Qnode));e=Q.front->next;// Q.front->next=q->next;//delete q;Q.front->next=Q.front->next->next;if(Q.rear==e){Q.front=Q.rear;// Q.front=NULL;}}int QEmpty(Linkqueue Q){if(Q.rear==Q.front)return 0;elsereturn 1;}//////////////////////////////////////////////////// //停车场管理操作////////////////////////////////////////////////////void jixu(Stack L,Linkqueue Q){int n;fflush(stdin);scanf("%d",&n);switch(n){case 1:printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");xunhuan(L,Q);break;case 2:printf("****************************退出管理系统*****************************\n");default:printf("\n输入错误,请重新输入: ");jixu(L,Q);break;}}void jiaofei(float time[],float time1[],float time2[]) //缴费操作{float data1,data2;double money;if(time2[0]!=0&&time2[1]!=0)data2=(time1[0]-time2[0]-1)*60+60-time2[1]+time1[1];elsedata2=0;data1=(time[0]-time1[0]-1)*60+60-time1[1]+time[1];// printf("进入车场时间%f,退出车场时间%f\n",time1[1],time[1]);printf("你的停车时间为%lf小时,在便道停留时间%f小时\n",data1/60,data2/60);money=data1/60*5.0+data2/60*2.0;printf("请交纳%lf元\n",money);/* if(data1<=60.0)printf("请交纳5元。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
综合性程序设计报告
设计题目:____停车场管理系统___________
指导教师: _______________
班级: _____________
学号: _______________
设计者: _______________
成绩: _______________
设计时间: 年月日
停车场管理系统
目录
1.题目描述
2.功能模块分解及说明
3.数据库设计及说明
4.界面说明
5.主要算法说明
6.代码清单及注释
7.设计测试说明
8.设计体会
停车场管理系统
1.题目描述
停车场的基本概述:用于利用计算机实现停车场的管理,包括车位调度,停车记费。
车位记录,收费管理与计算。
停车场的主要功能:
1.车位调度。
2.停车时间与费用的计算。
3.车位记录。
2.功能模块分解及说明
根据题目要求,可以用结构体实现,在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。
车辆离开要计时计费。
另外,每天开始时,停车场要初始化。
所以,这个系统可以分为:初始化、有车进入、有车离开、退出四个模块。
○1菜单函数:
main()函数体内包含了界面选则部分menu(),并单独
抽出来作为一个独立函数,目的在于系统执行每部分
模块后能够方便返回到系统界面。
即main()函数写为
如下:
void main()/*主函数*/
{
menu();/*菜单函数*/
}
void menu()
{
int n,w;
do
{
puts("\t\t**************MENU**************\n\n");
puts("\t\t\t 1.初始化");
puts("\t\t\t 2.有车进入");
puts("\t\t\t 3.有车离开");
puts("\t\t\t 4.退出");
puts("\n\n\t\t*********************************\n");
printf("Please choice your number(1-4): [ ]\b\b");
scanf("%d",&n);
if(n<1||n>4) /*对选择的数字作判断*/
{
w=1;
getchar();
}
else w=0;
}while(w==1);
switch(n)
{
case 1:chushi();break; /*初始化函数*/
case 2:jinru();break; /*车辆进入函数*/
case 3:likai();break; /*车辆离开函数*/
case 4:exit(0); /*退出*/
}
}
○2车道信息
该模块是将每一天开始的停车场内和便道车位清零。
首先建立场内场外的结构体,结构体内成员即车位的状态。
用循环实现车位的致零即可。
struct changnei/*场内车道信息*/
{
int neikong;
}chn[N-1];
struct changwai/*场外车道信息*/
{
int waikong;
}chw[M-1];
N和M分别是停车场和便道的车位预设值,用宏定义。
用户可根据实际情况改变。
#define N 100/*预设停车场有100个车位*/
#define M 100/*预设便道有100个出位*/
void chushi()/*初始化函数*/
{
int i,j;
for(i=0;i<=N-1;i++)
chn[i].neikong=0;/*将场内车道设置为空*/
for(j=0;j<=M-1;j++)
chw[i].waikong=0;/*将便道车道设置为空*/
printf("\n\n\t\t已初始化\n\n");
menu();
}
函数出示化后将回到菜单界面。
○3车辆进入函数:
该模块车辆到达后,要指定车辆的停车位置。
用户根据菜单函数进入车辆进入模块。
按照每辆车的到达次序给予车辆次序号,由0号开始。
车辆信息也建立结构体。
struct car/*车辆信息*/
{
int car_num;/*车辆次序号*/
int car_arr;/*车辆到达时间*/
int car_lef;/*车辆离开时间*/
int car_stay;/*车辆停放位置*/
}car[CIXUHAO];
其中,CIXUHAO是车辆次序号的宏定义:
#define CIXUHAO 1000/*预设车辆次序号。
不管车辆到达时停在场内或便道,均依次设置一个次序号,由0开始*/
给予车辆次序号之后,用循环判断停车场是否停满,再分别给予选择:
void jinru()/*车辆进入函数*/
{
int i,a;
int h=0;
printf("\n\n请输入该车次序号(从0号开始):");
scanf("%d",&a);
for(i=0;i<N;i++)
{
if(chn[i].neikong==0);/*无车标记0*/
if(chn[i].neikong==1)/*有车标记1*/
h=h+1;
}
if(h==N)
printf("停车场内已停满,请停在便道上\n");
else
{
car[a].car_stay=h;
chn[h].neikong=1;
printf("该车应该停在停车场内第道%d(从0道开始记)\n",h);
printf("请输入该车进停车场时刻(24小时整点计时):\n");
scanf("%d",&car[a].car_arr);
}
便道上还有车吗?
menu();
}
程序执行完后回到菜单。
○4车辆离开函数:
该模块一辆车要离开,则需要记
录该车的离开时间,以计算出该车
在停车场内的停车时间和应该缴纳
的费用。
该车离开后,要判断便道
上是否有车等待进入,如有,则将
便道上第一辆车停放在停车场内最
后的位置并记录好进场时间;若无,
N Y 则返回菜单.
void likai()/*车辆离开函数*/
{ int i,k,choi,time;
double fee;
printf("请输入离开车辆次序号[ ],并将此车之后的车先全部退出停车场!");
scanf("%d",&i);
printf("\n请输入离开车辆的离开时刻(24小时整点计时):\n");
scanf("%d",&car[i].car_lef);
fee=D*(car[i].car_lef-car[i].car_arr);
time=car[i].car_lef-car[i].car_arr;
printf("次序号为%d的车停车时间%d小时,应收费%f元\n",i,time,fee);
printf("\n\n\n请让场内退出的车再依次进场!\n\n\n");
printf("便道上现在有车吗?(请选择1或2)\n1.有\n2.没有\n");/*因便道上可能没有车,因
此要做选择*/
scanf("%d",&choi);
if(choi==2)
{
menu();
}
if(choi==1)
{
printf("请让便道上的第一辆车进场\n");
printf("该车次序号为:\n");
scanf("%d",&k);
printf("请输入该车进场时间:\n");
scanf("%d",&car[k].car_arr);
menu();
}
}
D为预设停车场单位小时费用,用宏定义,便于以后修改。
#define D 1.2/*预设车辆停车费为1.2元每小时*/
3.数据库设计及说明
○1停车车道:用宏定义管理数据。
N和M分别是停车场和便道的车位预设值
原因以及说明:用户可根据实际情况改变。
○2预设车辆次序号:用宏定义。
原因及说明不管车辆到达时停在场内或便道,均依次设置一个次序号,由0开始*/ 给予车辆次序号之后,用循环判断停车场是否停满,再分别给予选择:
○3停车费用:用宏定义。
原因及说明:以后便于修改。
○4车辆号码:用数组。
原因及说明:车辆数目较大,用数组更加有条理。
○5车道号码:用数组。
原因及说明:车辆数目较大,用数组更加有条理。
4.界面说明
○1主菜单函数
○2初始化操作。