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元。
C语言课程设计停车场管理
感谢您的观看
汇报人:
校等。
停车场管理系统的功能
车辆识别:自动识别车牌号码,记录车辆信息 车位管理:实时更新车位使用情况,显示剩余车位数量 收费管理:自动计算停车费用,支持多种支付方式 车辆引导:提供车辆引导服务,帮助车主快速找到空闲车位 安全监控:实时监控停车场内车辆和人员活动,保障停车场安全 数据分析:统计停车场使用情况,为停车场管理提供决策支持
错误处理:使用if、else、switch等语句进行错误处理,如处理输场管理系统中的优势
易于理解和学习:C语言语法简单,易于理解和学习,适合初学者使用。
强大的功能:C语言具有强大的功能,可以处理复杂的数据结构和算法,适合停车场管理系统 的需求。
高效的运行速度:C语言编译后的程序运行速度快,适合停车场管理系统对实时性的要求。
和性能。
停车场管理系统优化与改进
优化算法:提高系统运行效率,降低资源消耗 增加功能:如车位预约、停车引导、停车支付等 提高安全性:加强数据加密,防止数据泄露 优化用户体验:简化操作流程,提高用户满意度
06
停车场管理系统应用与 维护
停车场管理系统的部署与安装
硬件需求:服务器、网络设备、监控设备等 软件需求:停车场管理系统软件、数据库管理系统等 安装步骤:硬件安装、软件安装、系统调试等 维护与更新:定期检查硬件设备、软件更新、数据备份等
可移植性:C语言具有良好的可移植性,可以在不同的操作系统和硬件平台上运行,适合停车 场管理系统在不同环境下的运行需求。
04 停车场管理系统设计
停车场管理系统需求分析
C语言实现简易停车场管理系统
C 语⾔实现简易停车场管理系统本⽂实例为⼤家分享了C 语⾔实现停车场管理系统的具体代码,供⼤家参考,具体内容如下问题描述:设停车场内只有⼀个可停放n 辆汽车的狭长通道,且只有⼀个⼤门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(⼤门在最南端,最先到达的第⼀辆车停放在车场的最北端),若车场内已停满n 辆汽车,则后来的汽车只能在门外的便道上等候,⼀旦有车开⾛,则排在便道上的第⼀辆车即可开⼊;当停车场内某辆车要离开时,在它之后开⼊的车辆必须先退出车场为它让路,待该辆车开出⼤门外,其它车辆再按原次序进⼊车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费⽤。
由题得,此系统要实现的功能为:(1)设计停车场内的结构。
(由题分析为⼀个栈,因为只有⼀个门所以其就像数据结构中学到的栈,但是因为既要出栈⼜要⼊栈,此处我就将这个栈简化为了⼀个链表)(2)当车库满时,在车库外等待的结构。
(就像排队⼀样,先来先进后来后进,只能从⼀端进,另⼀端出)。
(3)车辆的结构,⼀辆车要有什么信息?⾸先要有这辆车的车牌号,可以⽤⼀个字符数组来存储(因为车牌不⼀定全是数字,还可能有汉字,英⽂字母等),题中要求要⽤要计算收费,就要知道驶⼊时间和驶出时间(怎样获取在下⾯会说到)。
算法描述:1、刚开始定义结构类型,如车的类型,车库⾥的类型,车库外等待的类型。
2、声明所要⽤到的函数:1234567891011121314void menu(Stack *cheku,SequenQueue* paidui);//开始菜单 //就是展⽰出菜单的函数//队列的相关操作SequenQueue* InitQueue();//申请⼀个空队int EmptyQueue(SequenQueue* Q);//判断队空int FullQueue(SequenQueue* Q);//判断队满int EnQueue(SequenQueue* Q, ElemType *e);//⼊队int DeQueue(SequenQueue* Q, ElemType *e); //出队Stack* build();//建链表int fullstack(Stack *cheku);//判断链表满void tingche(Stack *cheku,SequenQueue* paidui);//停车的函数void likai(Stack *cheku,SequenQueue* paidui);//离开的函数void chakan(Stack *cheku,SequenQueue* paidui);//查看车库停车情况的函数3、⼀些可能不理解的说明的说明。
(完整word版)C语言停车场管理系统课程设计
课程设计课程设计名称:课程设计专业班级:学生姓名:学号:指导教师:课程设计时间:目录1 需求分析。
.。
...。
....。
.。
...。
.。
.....。
....。
..。
.。
.。
.。
.。
.。
.....。
.。
.。
.。
....。
..。
...。
32 概要设计。
.。
.。
.。
..。
..。
.。
..。
.。
.。
.。
.。
.。
.。
.。
..。
..。
.。
..。
..。
..。
.。
....。
..。
....。
.。
.。
.33详细设计..。
..。
.。
.。
.。
.。
.。
..。
..。
.。
..。
.。
.....。
.。
.。
..。
..。
.。
..。
..。
.......。
..。
.。
...。
..。
..。
44 运行环境..。
..。
.。
..。
.。
.。
..。
.。
....。
.。
.。
..。
.。
..。
.。
..。
..。
..。
...。
..。
.。
.。
..。
..65开发环境。
.。
..。
..。
..。
..。
...。
..。
.。
...。
.。
.。
..。
.。
......。
.。
.。
.。
.。
.。
.。
66 程序设计.。
.。
..。
.。
.....。
...。
....。
.。
...。
.。
.。
.。
..。
..。
..。
..。
.。
......。
..。
.。
.。
.。
67 调试分析。
.。
...。
..。
.。
......。
.。
.。
....。
.。
.。
...。
..........。
.。
..。
..。
..。
.。
..。
.。
118 测试结果。
.。
.。
.。
.。
.。
..。
..。
.。
.。
.。
.。
...。
........。
..。
.。
..。
.。
.。
.。
...。
.。
.。
. (19)9参考文献.。
..。
....。
.。
.。
..。
.。
..。
.。
...。
.....。
..。
.。
..。
.。
.。
...。
....。
.。
(22)10心得体会。
.。
.。
.。
.。
.。
..。
.。
...。
..。
...。
......。
..。
....。
.。
....。
..。
.。
.。
.....。
.。
...。
(23)11成绩评价表。
.。
.。
..。
.。
.。
.。
..。
.。
...。
.。
.。
...。
......。
大学C语言停车场管理系统设计c语言课程设计含调试图
Xxxxx大学xxxxxxxxxxx系20xx-20xx学年第一学期《C程序设计》课程设计题目名称:停车场管理系统设计姓名:学号:班级:指导教师:编写日期:20 年1月5日—20 年1月31日成绩:目录(一)需求分析 (3)1-1停车 (3)1-2取车 (3)1-3功能的选择 (3)(二)总体设计(程序设计组成框图) (3)2-1停车模块 (3)2-2取车模块 (4)2-3车辆信息浏览模块 (4)2-4程序设计组成框图 (4)(三)详细设计 (5)3-1停车场分析 (5)3-2停车操作 (5)3-3收费管理(取车) (5)3-4车辆信息 (6)3-5退出系统 (6)(四)程序运行结果测试与分析 (6)(五)结论与心得 (8)(六)参考文献 (9)(七)致谢 (9)附录: (9)(一)需求分析1-1停车车辆信息要用文件存储,因而要提供文件的输入输出操作。
1-2取车当车离开时,要删除文件中该车的信息,因而要提供文件的删除操作。
1-3功能的选择提供现实操作和用键盘式菜单实现功能选择。
(二)总体设计(程序设计组成框图)2-1停车模块对车辆信息赋值,分配前检查车位使用情况(按行查找park 数组,元素为0 表示车位为空,则允许分配)。
把新添加的车辆信息以追加的方式写入汽车信息文件,并更改汽车信息文件中其他汽车信息的停车时间(停车时间加5)。
2-2取车模块计算费用(停车费用=停车时间*0.2 元),从文件中删除该车信息。
并将该车位对应的二位数组变量设为0,表示该车位可用。
输出提示信息:是否输出停车费用总计?(Y/N)如果选择Y,则输出停车费用,否则回到上级菜单。
2-3车辆信息浏览模块输出车辆信息文件中的记录。
另外,用户按Esc 键退出系统。
2-4程序设计组成框图(三)详细设计3-1停车场分析有一个两层的停车场, 每层有6个车位, 当第一层车停满后才允许使用第二层。
( 停车场可用一个二维数组实现, 每个数组元素存放一个车牌号)假设停车场初始状态为第一层已经停有4辆车, 其车位号依次为1—4 , 停车时间依次为20, 15, 10 , 5 . 即先将这四辆车的信息存入文件”car.dat”中。
C语言停车场管理器程序_数据结构课程设计
做完了课程设计,用C语言写的。
不过挑了个容易点的,停车场管理系统。
不过写得好繁琐啊,好耐无用C语言了。
请大家指教,也帮帮急需的朋友们。
呵呵···终于可以放假啦,嘿嘿·····/*******************************停车场管理器*************************************/#include<stdio.h>#include<stdlib.h>#include<string.h>#include <conio.h>/********************************************************************************/#define MAXSTACKSIZE 2 /*车库容量*/#define price 0.1 /*每车每分钟费用*/typedef struct time{int hour;int min;}Time; /*时间结点*/typedef struct {char num[10];Time reach;Time leave;}CarNode; /*车辆信息结点*/typedef struct {CarNode *base;CarNode *top;int stacksize;}SqStackCar; /*模拟车站*/typedef struct car{CarNode *data;struct car *next;}QueueNode;typedef struct {QueueNode *front;QueueNode *rear;}LinkQueueCar; /*模拟通道*/int QueueEmpty(LinkQueueCar Q) /*便道判空函数*/{if(Q.front==Q.rear) return 1;else return 0;}/********************************************************************************/ void InitStack(SqStackCar *s) /*初始化栈*/{s->base=(CarNode *)malloc(MAXSTACKSIZE*sizeof(CarNode));if(!s->base) exit(0);/*分配失败*/s->top=s->base;s->stacksize=MAXSTACKSIZE;}int Push(SqStackCar *s,CarNode *e) /*进站函数*/{if(s->top-s->base>=s->stacksize) return 0;else *s->top++=*e;return 1;}int Pop(SqStackCar *s,CarNode *e) /*出站函数*/{if(s->top==s->base) return 0;*e=*--s->top;return 1;}int StackEmpty(SqStackCar s) /*判空函数*/{if(s.base==s.top) return 1;else return 0;}int InitQueue(LinkQueueCar *Q) /*初始化便道*/{Q->front=Q->rear=(QueueNode *)malloc(sizeof(QueueNode));if(!Q->front) exit(0);Q->front->next=NULL;return 1;}/**************************************************************/ int EnQueue(LinkQueueCar *Q,CarNode *e) /*便道插入函数*/{QueueNode *p;p=(QueueNode *)malloc(sizeof(QueueNode));if(!p) exit(0);p->data=e;p->next=NULL;Q->rear->next=p;Q->rear=p;return 1;}int DeQueue(LinkQueueCar *Q,CarNode *e) /*便道删除函数*/{QueueNode *p;if(Q->front==Q->rear) return 0;p=Q->front->next;e=p->data;Q->front->next=p->next;if(Q->rear==p) Q->rear=Q->front;free(p);return 1;}/********************************************************************************/ int Arrive(SqStackCar *In,LinkQueueCar *Wait) /*车辆到达函数*/{CarNode *i;QueueNode *w;i=(CarNode *)malloc(sizeof(CarNode));flushall();printf("Input the car number:");gets(i->num);if(In->top-In->base<MAXSTACKSIZE) /*车场未满,车辆进栈*/{printf("\nThe time the car arrive(00:00): ");scanf("%d:%d",&i->reach.hour,&i->reach.min);Push(In,i);printf("\nCar in success!!");sleep(1);return 1;}else /*停车场已满,车进便道*/{w=(QueueNode *)malloc(sizeof(QueueNode));w->data=i;w->next=NULL;Wait->rear->next=w;printf("The PART is full,car must wait in the road!");sleep(1);return 1;}return 0;}/********************************************************************************/ int Departure(SqStackCar *In,SqStackCar *temp,LinkQueueCar *Wait) /*车辆离开函数*/{int flag=0,a1,a2,b1,b2, money;CarNode *p,*t;QueueNode *q;p=(CarNode *)malloc(sizeof(CarNode));flushall();printf("Input the out car number: ");gets(p->num);while(!StackEmpty(*In)){t=(CarNode *)malloc(sizeof(CarNode));Pop(In,t);if(strcmp(p->num,t->num)==0) /*比较车场中有无这辆车,有即出站*/{printf("Input the time the car out(00:00):");scanf("%d:%d",&p->leave.hour,&p->leave.min);printf("The ");printf("%s",p->num);printf(" Car out the part!");a1= p->leave.hour;a2= t->reach.hour;b2= t->reach.min;money = ((a1-a2+24)%24*60+(b1-b2+60)%60)*price; /*计算车辆需要的费用*/printf("\nThe time the car arrive: %d:%d",t->reach.hour,t->reach.min);printf("\nThe time the car leave: %d:%d",p->leave.hour,p->leave.min);printf("\nNeed: %d yuan",money);flag=1;getch();free(t);break;}elsePush(temp,t);} /*while*/if(!flag){printf("No this car!!");getch();}while(!StackEmpty(*temp)){Pop(temp,p);Push(In,p);}free(p);if(flag&&Wait->front!=Wait->rear) /*车站中有空位,便道有车,车入站*/ {q=(QueueNode *)malloc(sizeof(QueueNode));q=Wait->front->next;t=q->data;if(q!=NULL){Push(In,t);printf("\nThe ");printf("%s",t->num);printf(" car in part!");printf("\nInput the time the car arrive(00:00): ");scanf("%d:%d",&t->reach.hour,&t->leave.min);}Wait->front->next=q->next;if(q==Wait->rear) Wait->rear=Wait->front;free(q);}return 1;}/****************************************************************************** **/void Print(SqStackCar *In,SqStackCar *Temp,LinkQueueCar *Wait) /*打印函数*/{int c=0;int count=1;CarNode *p,*t;QueueNode *q;q=(QueueNode *)malloc(sizeof(QueueNode));p=(CarNode *)malloc(sizeof(CarNode));t=(CarNode *)malloc(sizeof(CarNode));while(1&&c!='3'){clrscr();gotoxy(1,10);printf("1. Print the road!");gotoxy(1,11);printf("2. Print the part!");gotoxy(1,12);printf("3. return.");do{printf("\nInput your choice:");c = getche();printf("\n");}while(c!='1'&&c!='2'&&c!='3');if(c=='2') /*打印停车场*/{printf("The car in the part!\n");count=1;while(!StackEmpty(*In)){Pop(In,t);}while(!StackEmpty(*Temp)){Pop(Temp,t);printf("The ");printf("%d",count);printf(" car number is: ");count++;puts(t->num);Push(In,t);}printf("Press any key to continue...");getch();}if(c=='1') /*打印便道*/{printf("The car in the road!\n");count=1;q=Wait->front->next;if(Wait->front!=Wait->rear) /**/{while(q!=NULL){p=q->data;printf("The ");printf("%d",count);printf(" Car number is: ");puts(p->num);count++;}}else printf("\nNo car in the road.");printf("Press any key to continue...");getch();}}}/***************************主程序***********************************************/ int Arrive(SqStackCar *In,LinkQueueCar *Wait);int Departure(SqStackCar *In,SqStackCar *temp,LinkQueueCar *Wait);void Print(SqStackCar *In,SqStackCar *temp,LinkQueueCar *Wait);void initialization();char readcommand();void interpret(char cmd);main(){char cmd;SqStackCar part,temp;LinkQueueCar road;InitStack(&part);InitStack(&temp);InitQueue(&road);printf("Press any key to continue......");getch();while(1){initialization(); /*初始化界面*/cmd = readcommand(); /*读取停车场状况*/clrscr();switch(cmd){case 'a': Arrive(&part,&road); break;case 'A': Arrive(&part,&road); break;case 'd': Departure(&part,&temp,&road); break;case 'D': Departure(&part,&temp,&road); break;case 'p': Print(&part,&temp,&road); break;case 'P': Print(&part,&temp,&road); break;case 'e': printf("Press any to continue...");getch();exit(0); break;case 'E': printf("Press any to continue...");getch();exit(0); break;default : printf("ERROR!"); break;}}}/********************************************************************************/ void initialization() /*初始函数*/{int i;clrscr();gotoxy(0,0);for(i=1;i<=240;i++)printf("\1");gotoxy(15,8);printf("THIS IS A CAR PART MANAGE SYSYTEM!");gotoxy(15,12);printf("NAME: LIYONGJUN.");gotoxy(15,13);printf("NUM: 3104006893.");;.. gotoxy(15,14);printf("GRADE: 2004.");gotoxy(15,15);printf("CLASS: COMPUTER SCIENCE AND TECHNOLOGY 10"); gotoxy(1,20);printf("\n********************************************************************************");printf("1. Car Arrive--A 2. Car Departure--D 3. Print Car--P 4.Exit--E");printf("\n********************************************************************************");printf("Input C,D,P,E choose!!\n");}char readcommand() /*选择函数*/{char cmd;do{printf("Input your choice:");cmd = getche();printf("\n");}while((cmd!='a')&&(cmd!='A')&&(cmd!='d')&&(cmd!='D')&&(cmd!='p')&&(cmd!='P')&&(cmd!='E')&&( cmd!='e'));return cmd;}。
c语言停车场管理系统
cteam* initTeam(){
cteam *Q;
Q=(cteam *)malloc(sizeof(teamNode));
Q->front=(teamPtr)malloc(sizeof(teamNode));
Q->front->next=NULL;
// 仅供参考
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 50 //停车场最多停车数
typedef struct{
char cnum[8];
float date;
}pnode; //栈中结点数据类型
printf(" >>\n");
printf(" 3.退出系统\n\n\n");
printf("***>>>>>>>>>>>>>>>>>>>> Made by Lemon'x <<<<<<<<<<<<<<<<<<<<<***\n\n");
Q->front->number=50;
Q->rear=Q->front;
return Q;
} //初始化队列
int inTeam(cteam *Q,char cnum[]){ //接收队列的地址,来车的车牌号码
数据结构c语言版课程设计停车场管理系统
课程设计:停车场c语言版本的数据结构课程设计,规定用栈模拟停车场,用队列模拟便道,实现停车场的收费管理系统停车场停满车后车会停在便道上面下面附上源码,vc:(下编译#include <stdio.h>//#include <stdlib.h> //malloc#include <time.h> //获取系统时间所用函数#include <conio.h> //getch()#include <windows.h> //设立光标信息mallco#define MaxSize 5 /*定义停车场栈长度*/#define PRICE 0.05 /*每车每分钟收费值*/#define BASEPRICE 0.5 //基础停车费#define Esc 27 //退出系统#define Exit 3 //结束对话#define Stop 1 //停车#define Drive 2 //取车int jx=0,jy=32; //全局变量日记打印位置typedef struct{int hour;int minute;}Time,*PTime; /*时间结点*/typedef struct /*定义栈元素的类型即车辆信息结点*/ {int num ; /*车牌号*/Time arrtime; /*到达时刻或离区时刻*/}CarNode;typedef struct /*定义栈,模拟停车场*/{CarNode stack[MaxSize];int top;}SqStackCar;typedef struct node /*定义队列结点的类型*/{int num; /*车牌号*/struct node *next;}QueueNode;typedef struct /*定义队列,模拟便道*/{QueueNode *front,*rear;}LinkQueueCar;/*函数声明*/PTime get_time();CarNode getcarInfo();void qingping(int a);void gotoxy(int x,int y);void printlog(Time t,int n,int io,char ab,int po,double f);void printstop(int a,int num,int x0,int y0);void printleave(int a,int po,int num);/*初始化栈*/void InitSeqStack(SqStackCar *s){s->top=-1;}/* push入站函数*/int push(SqStackCar *s,CarNode x) //数据元素x入指针s所指的栈{if(s->top==MaxSize-1)return(0); //假如栈满,返回0 else{s->stack[++s->top]=x; //栈不满,到达车辆入栈return(1);}}/*栈顶元素出栈*/CarNode pop(SqStackCar *s){CarNode x;if(s->top<0){x.num=0;x.arrtime.hour=0;x.arrtime.minute=0;return(x); //假如栈空,返回空值}else{s->top--;return(s->stack[s->top+1]); //栈不空,返回栈顶元素}}/*初始化队列*/void InitLinkQueue(LinkQueueCar *q){q->front=(QueueNode*)malloc(sizeof(QueueNode)); //产生一个新结点,作头结点if(q->front!=NULL){q->rear=q->front;q->front->next=NULL;q->front->num=0; //头结点的num保存队列中数据元素的个数}}/*数据入队列*/void EnLinkQueue(LinkQueueCar *q,int x){QueueNode *p;p=(QueueNode*)malloc(sizeof(QueueNode)); //产生一个新结点p->num=x;p->next=NULL;q->rear->next=p; //新结点入队列q->rear=p;q->front->num++; //队列元素个数加1}/*数据出队列*/int DeLinkQueue(LinkQueueCar *q){QueueNode *p;int n;if(q->front==q->rear) //队空返回0return(0);else{p=q->front->next;q->front->next=p->next;if(p->next==NULL)q->rear=q->front;n=p->num;free(p);q->front->num--;return(n); //返回出队的数据信息}}/********************* 车辆到达***************************/ //参数:停车栈停车队列车辆信息//返回值:空//功能:对传入的车辆进行入栈栈满则入队列void Arrive(SqStackCar *stop,LinkQueueCar *lq,CarNode x){int f;f=push(stop,x); //入栈if (f==0) //栈满{EnLinkQueue(lq,x.num); //入队printstop(1,lq->front->num,0,23);printlog(x.arrtime,x.num,1,'B',lq->front->num,0);qingping(0); printf("您的车停在便道%d号车位上\n",lq->front->num); //更新对话}else{printstop(0,stop->top+1,0,23);printlog(x.arrtime,x.num,1,'P',stop->top+1,0);qingping(0); printf("您的车停在停车场%d号车位上\n",stop->top+1); //更新对话}qingping(1); printf("按任意键继续");getch();}/************************** 车辆离开*************************************///参数:停车栈指针s1,暂存栈指针s2,停车队列指针p,车辆信息x//返回值:空//功能:查找栈中s1的x并出栈,栈中没有则查找队p中并出队,打印离开收费信息void Leave(SqStackCar *s1,SqStackCar *s2,LinkQueueCar *p,CarNode x){double fee=0;int position=s1->top+1; //车辆所在车位int n,f=0;CarNode y;QueueNode *q;while((s1->top > -1)&&(f!=1)) //当栈不空且未找到x{y=pop(s1);if(y.num!=x.num){n=push(s2,y);position--;}elsef=1;}if(y.num==x.num) //找到x{gotoxy(33,17);printf("%d:%-2d",(x.arrtime.hour-y.arrtime.hour),(x.arrtime.minute-y.arrtime.minute) );fee=((x.arrtime.hour-y.arrtime.hour)*60+(x.arrtime.minute-y.arrtime.minute))*PRICE+BASEP RICE;gotoxy(48,17); printf("%2.1f元\n",fee);qingping(0); printf("确认您的车辆信息");qingping(1); printf("按任意键继续");getch();while(s2->top>-1){ y=pop(s2);f=push(s1,y);}n=DeLinkQueue(p);if(n!=0){y.num=n;y.arrtime=x.arrtime;f=push(s1,y);printleave(p->front->num+1,position,s1->top+1); //出栈动画ji队列成员入栈printlog(x.arrtime,x.num,0,'P',position,fee);printlog(y.arrtime,y.num,1,'P',s1->top+1,0);}else{printleave(0,position,s1->top+2);printlog(x.arrtime,x.num,0,'P',position,fee);}}else //若栈中无x{while(s2->top > -1) //还原栈{y=pop(s2);f=push(s1,y);}q=p->front;f=0;position=1;while(f==0&&q->next!=NULL) //当队不空且未找到xif(q->next->num!=x.num){q=q->next;position++;}else //找到x{q->next=q->next->next;p->front->num--;if(q->next==NULL)p->rear=p->front;gotoxy(33,17); printf("0:0");gotoxy(48,17); printf("0元");qingping(0); printf("您的车将离便道");qingping(1); printf("按任意键继续");getch();printleave(-1,position,p->front->num+1); //出队动画printlog(x.arrtime,x.num,0,'B',position,0);f=1;}if(f==0) //未找到x{qingping(0); printf("停车场和便道上均无您的车");qingping(1); printf("按任意键继续");getch();}}}/*获取系统时间*///返回PTime类型PTime get_time(){Time *t;t=new Time;time_t timer;struct tm *tblock;timer=time(NULL);tblock=localtime(&timer);t->minute=tblock->tm_min;t->hour=tblock->tm_hour;return t;}/*移动光标*///蒋光标移动到(x,y)点void gotoxy(int x,int y){COORD coord;coord.X=x;coord.Y=y+3;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord); }/*画图*///画出系统界面void panitPL(){gotoxy(20,4);printf("****************对话框****************");int x=18,y=6; //起始点int a[2][4]={2,0,0,1,-2,0,0,-1}; //方向for(int i=0;i<2 ;i++){for(int j=0; j<20; j++){x+=a[i][0]; y+=a[i][1];gotoxy(x,y);printf("═");}x+=a[i][0]; y+=a[i][1];gotoxy(x,y);if(i==0)printf("╗");elseprintf("╚");for(j=0; j<12; j++){x+=a[i][2]; y+=a[i][3];gotoxy(x,y);printf("║");}x+=a[i][2]; y+=a[i][3];gotoxy(x,y);if(i==0)printf("╝");elseprintf("╔");}gotoxy(22,8);printf("小王:");gotoxy(22,11);printf("顾客:");gotoxy(22,14); printf("*********** 停车信息***********");gotoxy(23,15); printf("车牌号:");gotoxy(42,15); printf("时间:");gotoxy(23,17); printf("停车时长:");gotoxy(42,17); printf("收费:");}/*清屏函数*///更新对话框前将原对话晴空void qingping(int a){if(a==0) //清空小王的对话{gotoxy(28,8); printf(" ");gotoxy(28,9); printf(" ");gotoxy(28,8);}else if(a==1) //清空顾客的对话{gotoxy(28,11); printf(" ");gotoxy(28,12); printf(" ");gotoxy(28,13); printf(" ");gotoxy(28,11);}else //清空车辆信息{gotoxy(31,15); printf(" ");gotoxy(48,15); printf(" ");gotoxy(33,17); printf(" ");gotoxy(48,17); printf(" ");gotoxy(31,15);}}//用上下键移动选择int getkey(){char c;int x=28,y=11;while(1){gotoxy(x,11); printf(" ");gotoxy(x,12); printf(" ");gotoxy(x,13); printf(" ");gotoxy(x,y); printf(">>");c=getch();if(c==13) return y-10; //enter键返回当前选项if(c!=-32)continue; //不是方向键进行下次循环c=getch();if(c==72) if(y>11) y--; //上if(c==80) if(y<13) y++; //下}}//输入车辆信息CarNode getcarInfo(){PTime T;CarNode x;qingping(0); printf("请输入您的车牌号\n");qingping(1); printf("在下面输入车辆信息");qingping(2);scanf("%d",&(x.num));T=get_time();x.arrtime=*T;gotoxy(48,15); printf("%d:%d",x.arrtime.hour,x.arrtime.minute);getch();return x;}//打印停车场void printcar(){gotoxy(0,20); //╔ ╗╝╚═║printf("═══════════════════════════════════════╗");printf(" 出场暂放区║ 1 2 3 4 5 ║");printf("---------------------------------------------------------------------- ║");printf(" 主车道║");printf("---------------------------------------------------------------------- ║");printf(" 12 11 10 9 8 7 6 5 4 3 2 1 ║");printf("═══════════════════════════════════╗ ║");printf(" ↑ ╔══════════════╝ ║");printf(" 便道停车区→ ║ 1 2 3 4 5 ║");printf(" ╚══════════════════╝");printf(" 停车场管理日记\n\n");printf(" 时间车牌号进(1)/出(0) 车位(B便道P停车场) 收费(元) "); }//打印日记记录void printlog(Time t,int n,int io,char ab,int po,double f){jy++;gotoxy(jx,jy);// printf(" 时间车牌号进(1)/出(0) 车位(B便道P停车场) 收费(元) ");if(io==0)printf("/ %2.1f",f);gotoxy(jx,jy);printf(" / %d / %c:%d",io,ab,po);gotoxy(jx,jy);printf(" %d:%d / %d",t.hour,t.minute,n);}void printstop(int a,int num,int x0,int y0){static char *car="【█】";// int x0=0,y0=23;int x=0,y=28;if(a==0){x=(num+6)*6;for(;x0<72;x0++){gotoxy(x0,y0); printf("%s",car); Sleep(30);gotoxy(x0,y0); printf(" ");}for(;y0<y;y0++){gotoxy(x0,y0); printf("%s",car); Sleep(100);gotoxy(x0,y0); printf(" ");}for(;x0>x;x0--){gotoxy(x0,y0); printf("%s",car); Sleep(50);gotoxy(x0,y0); printf(" ");}gotoxy(x,y);printf("%s",car);}else{x=(12-num)*6;y=y-3;for(;x0<x;x0++){gotoxy(x0,y0); printf("%s",car); Sleep(30);gotoxy(x0,y0); printf(" ");}gotoxy(x,y);printf("%s",car);}}void printleave(int a,int po,int num){static char *car="【█】";int x0=0,y0=23;int x=0,y=28;int i;if(a==-1){x=(12-po)*6;y=y-3;gotoxy(x,y); printf(" ");gotoxy(x,y-2); printf("%s",car);Sleep(100);if(12>num){gotoxy((12-num)*6,y);printf(" ");}gotoxy(x,y); printf("%s",car);for(;x>x0;x--){gotoxy(x,y-2); printf("%s",car); Sleep(30);gotoxy(x,y-2); printf(" ");}}else{i=num+1;for(;num>po;num--){x=(num+6)*6; y=28;for(;x<72;x++){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}for(;y>21;y--){gotoxy(x,y); printf("%s",car); Sleep(50);gotoxy(x,y); printf(" ");}for(;x>(i-num+6)*6;x--){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}gotoxy(x,y); printf("%s",car);}x=(po+6)*6; y=28;for(;x<72;x++){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}for(;y>23;y--){gotoxy(x,y); printf("%s",car); Sleep(50);gotoxy(x,y); printf(" ");}for(;x>0;x--){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}num++;for(;i-num>0;num++){x=(i-num+6)*6; y=21;for(;x<72;x++){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}for(;y<28;y++){gotoxy(x,y); printf("%s",car); Sleep(50);gotoxy(x,y); printf(" ");}for(;x>(num-1+6)*6;x--){gotoxy(x,y); printf("%s",car); Sleep(30);gotoxy(x,y); printf(" ");}gotoxy(x,y); printf("%s",car);}if(a>0){x=66;y=25;gotoxy(x,y); printf(" ");gotoxy(x,y-2); printf("%s",car); Sleep(100);if(12>a){gotoxy((12-a)*6,y);printf(" ");}if(a>1){gotoxy(x,y); printf("%s",car);}printstop(0,i-1,x,y-2);}}}/************************************************************ main ********************************************************/int main(void){SqStackCar s1,s2; //停车栈和暂存栈LinkQueueCar p; //队列InitSeqStack(&s1);InitSeqStack(&s2);InitLinkQueue(&p);printf(" 停车场管理系统\n\n");printf("************************* 欢(=^_^=)迎***************************\n");printf(" 收费标准:基础费0.5元,每分钟收取0.05元,收费精确到0.1元\n");printf(" PS:车牌号由阿拉伯数字组成");panitPL();printcar(); gotoxy(0,-3);char c=0; //接受按键while(1) //按ESC退出系统{for(int i=2;i>-1 ;i--) //初始化对话框qingping(i);printf("按ESC退出系统,其它键开始对话");c=getch();if(c==Esc){qingping(0);break;}while(1){qingping(2);gotoxy(28,8); printf("欢迎来到停车场!我是管理员小王。
停车场管理系统c语言课程设计
停车场管理系统c语言课程设计随着城市化进程的加快,人们的生活质量不断提高,汽车已经成为了现代人出行的主要方式。
然而,随着汽车数量的增加,停车难题也日益凸显。
传统的停车方式已经无法满足人们的需求,因此停车场的建设和管理也变得越来越重要。
为了更好地管理停车场,本文设计了一款停车场管理系统。
二、需求分析本系统需要实现以下功能:1. 停车位管理:实现对停车位的管理,包括停车位的添加、删除、修改和查询等操作。
2. 车辆管理:实现对车辆的管理,包括车辆的进入、离开、查询和计费等操作。
3. 收费管理:实现对车辆的计费管理,包括按小时计费和按天计费。
4. 报表统计:实现对停车场的报表统计,包括车位使用情况、收入情况等。
三、系统设计1. 数据结构设计本系统主要包括两个数据结构:停车位和车辆。
停车位包括编号、位置、状态等信息;车辆包括车牌号、进入时间、离开时间、停车位等信息。
2. 界面设计本系统的界面采用命令行界面,用户可以通过输入命令来完成对系统的操作。
界面包括以下命令:添加停车位:add_space删除停车位:del_space修改停车位:mod_space查询停车位:query_space车辆进入:car_in车辆离开:car_out查询车辆:query_car计费管理:charge报表统计:report退出系统:exit3. 算法设计本系统的算法主要包括车辆进入、离开和计费等算法。
车辆进入:当车辆进入停车场时,系统需要检查是否有空闲停车位,如果有则将车辆停放在该停车位上,并记录车辆信息;如果没有则提示用户无法停车。
车辆离开:当车辆离开停车场时,系统需要计算停车时长并根据收费标准计算费用,并将车辆信息从停车位中删除。
计费管理:系统需要根据停车时长和收费标准计算车辆的费用,包括按小时计费和按天计费。
四、实现过程本系统采用C语言实现,主要包括以下模块:1. 停车位管理模块:实现对停车位的添加、删除、修改和查询等操作。
- 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初始化操作。