C程序课程设计停车场管理系统
c语言停车场课程设计

c语言停车场 课程设计一、课程目标知识目标:1. 理解C语言中数组、函数和指针的基本概念,并能运用这些知识解决实际问题。
2. 学会使用C语言编写简单的停车场管理系统,掌握基本的编程技巧和逻辑思维能力。
3. 了解停车场管理系统的基本功能,如车位分配、查询、车辆进出等。
技能目标:1. 能够运用数组、函数和指针等C语言知识,设计并实现一个简单的停车场管理系统。
2. 培养学生分析问题、解决问题的能力,以及编程实践和调试技巧。
3. 提高学生的团队协作能力和沟通能力,通过小组合作共同完成课程项目。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,激发学生主动探索新知识的精神。
2. 引导学生认识到编程在实际生活中的应用价值,提高学生对信息技术的重视程度。
3. 培养学生的责任感和使命感,使他们认识到停车场管理系统在现代社会中的重要性。
课程性质:本课程为实践性较强的学科,结合实际生活中的停车场管理系统,培养学生运用C语言编程解决问题的能力。
学生特点:考虑到学生所在年级,已具备一定的C语言基础,对数组、函数和指针等概念有初步了解,但实际应用能力有待提高。
教学要求:注重理论与实践相结合,强调动手实践,培养学生实际编程能力。
通过小组合作,提高学生的团队协作能力和沟通能力。
在教学过程中,关注学生的个体差异,因材施教,确保每个学生都能在课程中学有所获。
二、教学内容1. C语言基础知识回顾:数组、函数和指针的基本概念及其应用。
2. 停车场管理系统需求分析:介绍停车场管理系统的基本功能,如车位分配、查询、车辆进出等。
3. 系统设计:- 数据结构设计:数组、结构体等。
- 函数设计:功能模块划分,如车位分配、查询、车辆进出等。
- 指针应用:动态内存分配、函数指针等。
4. 编程实践:- 编写主程序框架,实现系统初始化。
- 编写功能模块,如车位分配、查询、车辆进出等。
- 整合各功能模块,形成完整的停车场管理系统。
5. 调试与优化:分析程序运行过程中可能出现的错误,进行调试和优化。
大学 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取车模块 (3)2-3车辆信息浏览模块 (4)2-4程序设计组成框图 (4)(三)详细设计 (4)3-1停车场分析 (4)3-2停车操作 (4)3-3收费管理(取车) (5)3-4车辆信息 (5)3-5退出系统 (5)(四)程序运行结果测试与分析 (5)(五)结论与心得 (7)(六)参考文献 (7)(七)致谢 (8)附录: (8)(一)需求分析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语言的基本语法和编程技巧,通过编写程序实现停车场管理系统,培养学生的实际编程能力和问题解决能力。
具体目标如下:1.知识目标:(1)掌握C语言的基本数据类型、运算符和表达式;(2)了解函数的定义和调用方法;(3)熟悉数组的声明和使用;(4)理解指针的概念和应用。
2.技能目标:(1)能够运用C语言编写简单的程序;(2)学会使用函数 modularize 代码;(3)掌握数组在程序中的应用;(4)了解指针的基本操作和内存管理。
3.情感态度价值观目标:(1)培养学生的团队合作意识和沟通能力;(2)激发学生对计算机科学的兴趣和好奇心;(3)培养学生解决问题的能力和创新精神。
二、教学内容本节课的教学内容主要包括以下几个部分:1.C语言基础知识:数据类型、运算符、表达式、函数、数组、指针等;2.停车场管理系统的需求分析;3.停车场管理系统的程序设计;4.程序调试和优化。
具体安排如下:第1-2课时:C语言基础知识讲解和练习;第3-4课时:停车场管理系统的需求分析及总体设计;第5-6课时:停车场管理系统的详细设计和程序编写;第7课时:程序调试和优化。
三、教学方法为了提高学生的学习兴趣和主动性,本节课将采用以下教学方法:1.讲授法:讲解C语言的基本语法和编程技巧;2.案例分析法:通过分析停车场管理系统的实际案例,引导学生思考和解决问题;3.实验法:让学生动手编写程序,实现停车场管理系统;4.小组讨论法:分组进行讨论和合作,培养学生的团队合作意识和沟通能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《C程序设计语言》;2.参考书:《C Primer Plus》、《C和指针》;3.多媒体资料:PPT课件、教学视频、在线教程等;4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。
C语言课设之停车场管理系统

C语言课程设计实习报告目录一. 题目要求二. 需求分析三.总体设计四. 具体程序页脚内容1五. 上机操作及使用说明六. 存在问题与不足七. 学习心得停车场管理一. 题目要求1.设计一个停车场用长度为N的堆栈来模拟。
由于停车场内如有某辆车要开走,在它之后进来的车都必须先退出为它让道,待其开出停车场后,这些车再依原来的顺序进入。
2.程序输出每辆车到达后的停车位置,以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。
二. 需求分析页脚内容2根据题目要求首先设计一个堆栈,以堆栈来模拟停车场,又每辆汽车的车牌号都不一样,这样一来可以根据车牌号准确找到汽车位置,所以堆栈里的数据元素设计成汽车的车牌号。
当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入停车场。
这是个一退一进的过程,而且让道的汽车必须保持原有的先后顺序,因此可再设计一个堆栈,以之来暂时存放为出站汽车暂时让道的汽车车牌号。
当停车场满后,继续进来的汽车需要停放在停车场旁边的便道上等候,若停车场有汽车开走,则按排队的先后顺序依次进站,最先进入便道的汽车将会最先进入停车场,这完全是一个先进先出模型,因此可设计一个队列来模拟便道,队列中的数据元素仍然设计成汽车的车牌号。
另外,停车场根据汽车在停车场内停放的总时长来收费的,在便道上的时间不计费,因此必须记录车辆进入停车场时的时间,车辆离开停车场时的时间不需要记录,当从终端输入时可直接使用。
由于时间不像汽车一样需要让道,可设计了一个顺序表来存放时间。
又用顺序表用派生法设计了一个堆栈,恰好满足上面模拟停车场的需要。
三. 总体设计页脚内容3页脚内容4四. 具体程序#include <stdio.h> #include <malloc.h> #define SIZE 3#define NULL 0 typedef struct{ int hour;int min;} time;typedef struct{ int num;页脚内容5int position;time t;float money;} Car;typedef struct{ Car elem[SIZE+1];int top;} Stack;typedef struct Node{ Car data;struct Node *next;}CQueueNode;typedef struct{ CQueueNode *front;CQueueNode *rear;}LinkQueue;void InitStack(Stack *S)页脚内容6{ S->top=0; }void Push(Stack *S,Car *r){ S->top++;S->elem[S->top].num=r->num;r->position=S->elem[S->top].position=S->top;S->elem[S->top].t.hour=r->t.hour;S->elem[S->top].t.min=r->t.min;}int IsEmpty(Stack* S){ return(S->top==0?1:0); }int IsFull(Stack *S){ return(S->top==SIZE?1:0); }int GetTop(Stack *S,Car *n){ n->num=S->elem[S->top].num;n->position=S->elem[S->top].position;n->t.hour=S->elem[S->top].t.hour;n->t.min=S->elem[S->top].t.min;return 1;}void InitQueue(LinkQueue *Q)页脚内容7{ Q->front=(CQueueNode*)malloc(sizeof(CQueueNode));if(Q->front!=NULL){ Q->rear=Q->front;Q->front->next=NULL; }}int EnterQueue(LinkQueue *Q,Car *t){ CQueueNode *NewNode;NewNode=(CQueueNode*)malloc(sizeof(CQueueNode));if(NewNode!=NULL){NewNode->data.num=t->num;NewNode->data.t.hour=t->t.hour;NewNode->data.t.min=t->t.min;NewNode->next=NULL;Q->rear->next=NewNode;Q->rear=NewNode;return 1;}else return 0;}int DeleteQueue(LinkQueue *Q,Car *x)页脚内容8{ CQueueNode *p;if(Q->front==Q->rear)return 0;p=Q->front->next;Q->front->next=p->next;if(Q->rear==p)Q->rear=Q->front;x->num=p->data.num;x->t.hour=p->data.t.hour;x->t.min=p->data.t.min;free(p);return 1;}void print1(Stack *S){int tag;Car x;printf("停车场停车情况:\n");if(IsEmpty(S))printf("无车!");for(tag=S->top;S->top>0;S->top--)页脚内容9if(GetTop(S,&x))printf("车牌号%d,所在位置%d,到达/离开时间%d:%d\n",x.num,x.position,x.t.hour,x.t.min); S->top=tag;}void print2(LinkQueue *Q){ CQueueNode *p;p=Q->front->next;for(;p!=NULL;p=p->next)printf("等待车牌号%d, 到达/离开时间%d:%d",p->data.num,p->data.t.hour,p->data.t.min); }void TaM(Car *r,int h,int m){ if(m>r->t.min){r->t.min+=60;r->t.hour-=1;}h=r->t.hour-h;m=r->t.min-m;printf("\n停车%d小时%d 分钟\n",h,m);printf("每小时收费30元\n");h=h*60;m=h+m;r->money=0.5*m;printf("请支付金额%.2f元\n",r->money);页脚内容10}void In(Stack *S,LinkQueue *Q,Car*r){if(IsFull(S)){ printf("车库已满,请等待!");EnterQueue(Q,r);}else{Push(S,r);printf("\n您现在所在位置%d",r->position);}}void Out(Stack *S,Stack *S0,Car *r,LinkQueue *Q){ int tag=S->top;Car x;if(IsEmpty(S)) printf("没有此车!");else{ for(;r->num!=S->elem[tag].num&&tag>0;tag--){ Push(S0,&S->elem[tag]);S->top--;}页脚内容11if(r->num==S->elem[tag].num){ TaM(r,S->elem[tag].t.hour,S->elem[tag].t.min);S->top--;for(;S0->top>0;S0->top--)Push(S,&S0->elem[S0->top]);if(S->top<SIZE && Q->front!=Q->rear){ DeleteQueue(Q,&x);Push(S,&x);}}else if(tag==0){ printf("未进入停车场应支付金额0元!");for(;S0->top>0;S0->top--)Push(S,&S0->elem[S0->top]);}}}void print(){printf("\n***********************************欢迎光临*************************************\n");printf("\n 请选择:\n");页脚内容12printf("\n 1 :到达");printf("\n 2 :离开");printf("\n 3 :搜索");printf("\n 4 :退出\n");printf("\n");}int main(){ int n,m,i=1,j,flag=0;Car c[10];Car x;Stack S,S0;LinkQueue Q;InitStack(&S);InitStack(&S0);InitQueue(&Q);while(1){ print();scanf("%d",&m);switch(m){case 1:printf("\n请输入车牌号:");页脚内容13scanf("%d",&c[i].num);printf("\n请输入到达/离开时间:");scanf("%d:%d",&c[i].t.hour,&c[i].t.min);In(&S,&Q,&c[i]);i++;break;case 2:printf("\n请输入车牌号:");scanf("%d",&n);for(j=0;j<10;j++)if(n==c[j].num) break;printf("\n请输入到达/离开时间:");scanf("%d:%d",&c[j].t.hour,&c[j].t.min);Out(&S,&S0,&c[j],&Q); break;case 3: print1(&S);print2(&Q);break;case 4: flag=1; break;default:printf("\n输入错误,请输入1,2,3 或4");}if(flag)break;} return 0;}五. 上机操作及使用说明页脚内容14运行Microsoft Visual C++,进入运行状态:1.主菜单:根据页面提示,输入相应数字。
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程序设计-停车场管理系统(流程设计图)

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语言课程设计报告停车场管理系统

算法与数据结构课程设计题目:停车场管理专业班级:软件四班姓名:学号:指导教师:成绩:______________目录一、题目及要求 (2)二、题目分析 (3)三、数据结构说明 (4)四、各函数算法分析 (5)(1)主函数 (5)(2)车辆到达函数 (7)(3)车辆离开函数 (8)(4)列表显示函数 (10)五、程序测试 (14)(1)测试信息对错误的处理 (14)(2)列表显示 (15)(3)同时输出等待的提示作息 (16)(4)计算它们的应交费用 (17)六、课程设计感悟与收获 (18)七、源代码 (19)八、参考文献 (25)一、题目及要求[要求]设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆国就进入停车场。
停车场内如有某辆车要走,在它之后进来的车都必须退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且其他在便道上等待的车辆的次序不变。
编制一程序模拟停车场管理。
[提示]汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去时刻)。
例如:(’A’,1,5)表示1号牌照车在5这个时刻到达,而(’D’,5,20)表示5号牌照车在20这个时刻离去,整个程序可以在输入信息为(’E’,0,0)时结束。
基本要求:要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交的费用和它在停车场内停留的时间。
根据题目要求,停车场可以用一个长度为n的堆栈来模拟。
由于停车场内如有某辆车要开走,在它之后进来的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
停车场c语言课程设计

停车场c语言课程设计一、课程目标知识目标:1. 学生能理解C语言在现实问题解决中的应用,特别是停车场管理系统中的编程实现。
2. 学生能够掌握C语言中数组、结构体、函数等基本概念,并将其应用于停车场系统的设计。
3. 学生能够运用C语言中的条件语句和循环语句,实现对停车场车位的管理逻辑。
技能目标:1. 学生能够运用所学知识,设计并编写一个简单的停车场管理系统。
2. 学生通过课程实践,培养问题分析、程序设计、编码调试的能力。
3. 学生能够进行团队合作,共同完成课程设计任务,提高沟通与协作技巧。
情感态度价值观目标:1. 学生在课程实践中,培养对编程的兴趣,增强解决实际问题的信心。
2. 学生通过课程学习,认识到编程在现代社会中的重要作用,激发对计算机科学的热爱。
3. 学生在学习过程中,培养认真负责、严谨细致的学习态度,树立正确的价值观。
课程性质:本课程为信息技术学科的高年级课程,以C语言编程为核心,结合停车场管理系统实例,旨在提高学生的编程能力和实际问题解决能力。
学生特点:学生已具备一定的C语言基础,具有较强的逻辑思维能力,对实际应用有较高的兴趣。
教学要求:课程设计需贴近实际,引导学生主动探究,注重培养学生的动手能力和团队协作精神,提高学生的编程综合素质。
通过分解课程目标为具体学习成果,使学生在实践中达成预期目标,为后续教学设计和评估提供依据。
二、教学内容1. C语言基础知识回顾:数组、结构体、函数、指针、文件操作等。
- 教材章节:第二章数组、第三章函数、第四章结构体与联合、第六章指针、第七章文件操作。
2. 停车场管理系统需求分析:- 功能要求:车位管理、车辆进出管理、费用计算等。
- 教学大纲:第一节介绍停车场管理系统背景,第二节分析系统需求。
3. 停车场管理系统设计与实现:- 教学内容:系统架构设计、模块划分、代码编写与调试。
- 教材章节:第五章项目设计与实现。
4. C语言编程实践:- 教学内容:编写停车场管理系统相关功能模块,如车位分配、车辆查询、费用支付等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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。
三、分析与实现本程序采用模块化设计,主函数清晰、明了,各功能分别在不同模块中实现。
共有七个功能模块,每个功能模块以函数的形式表示,实现了有关停车场管理的七项功能。
具体实现如下:首先声明必要的变量及数据结构。
//相关头文件#include <stdio.h>#include <string.h>#include <stdlib.h>//符号常量定义struct Garage{char carnum[8]; /*车牌号*/int lay; /*层号*/intgaragenum; /*车位号*/int time; /*停车时间*/intisempty; /*该车位是否为空,1表示空0表示有车*/};void Instruction(){printf("停车场管理系统使用说明\n");printf("停车请输入1 \n");printf("取车请输入2 \n");printf("查看全部车辆的信息请输入3 \n");printf("退出请输入0 \n");}/*初始化停车场信息初始状态为第一层已经停有4辆车, *其车位号依次为1—4 , 停车时间依次为20, 15, 10 , 5 */voidInit(struct Garage gar[][6]){int i, j; /*给所有的车位的层号车位号初始化停车时间初始化为0停车位全都初始化为空*/for (i=0; i<2; i++){for (j=0; j<6; j++){gar[i][j].lay = i+1;gar[i][j].garagenum= j+1;gar[i][j].time = 0;gar[i][j].isempty = 1;}}/*第一层的1-4号车位停车*/for (i=0; i<4; i++){gar[0][i].isempty =0;}strcpy(gar[0][0].carnum, "0000"); /*初始化的车牌号*/gar[0][0].time = 20;strcpy(gar[0][1].carnum,"1111"); gar[0][1].time = 15;strcpy(gar[0][2].carnum, "2222");gar[0][2].time = 10;strcpy(gar[0][3].carnum, "3333");gar[0][3].time = 5;}/*新停入的汽车后将在此之前的所有车的停车时间加5*/ voidAddTime(struct Garage gar[][6]){int i, j;for (i=0; i<2; i++){for (j=0; j<6; j++){if (gar[i][j].isempty == 0){gar[i][j].time += 5;}}}}/*停车模块*/void Park(struct Garage gar[][6]){int i;charnum[8];printf("请输入车牌号");scanf("%s", num); /*查找空车位*/for (i=0; i<6; i++){if (gar[0][i].isempty == 1){printf("第一层第%d号车位空着请在此处停车\n", i+1);strcpy(gar[0][i].carnum, num);printf("车牌号%s 层号 1 车位号%d \n", num, i+1);AddTime(gar); /*在此之前停车的所有汽车时间加5*/gar[0][i].isempty = 0; /*表示该车为已经停车*/gar[0][i].time = 5; /*将时间设为5*/return;}}printf("第一层已经没有空车位\n");for (i=0; i<6; i++){if (gar[1][i].isempty == 1){printf("第二层第%d号车位空着请在此处停车\n", i+1);strcpy(gar[1][i].carnum, num);printf("车牌号%s 层号 2 车位号%d \n", num ,i+1);AddTime(gar); /*在此之前停车的所有汽车时间加5*/gar[1][i].isempty = 0; /*表示该车位已经停车*/gar[1][i].time = 5; /*将时间设为5*/return;}}printf("对不起 1 2层都没有空车位您现在不能在此停车\n");}/*查看所有车辆信息*/void Information(struct Garage gar[][6]){int i, j;printf(" 车牌号层号车位号停车时间\n");for (i=0; i<2; i++){for(j=0; j<6; j++){if (gar[i][j].isempty == 0)printf(" %s%8d%8d%8d\n", gar[i][j].carnum, gar[i][j].lay,gar[i][j].garagenum, gar[i][j].time);}}printf("\n");}/*取车模块*/double Leave(struct Garage gar[2][6]){int i, j;charnum[8];double charge = 0;printf("请输入要取的车牌号");scanf("%s", num);for (i=0; i<2; i++){for (j=0; j<6; j++){if (!strcmp(gar[i][j].carnum, num)){printf("您在%d层%d车位停车%d分钟\n", gar[i][j].lay,gar[i][j].garagenum, gar[i][j].time);charge = gar[i][j].time/5*0.2;printf("停车费用为每5分钟0.2元您需交%.2lf元\n", charge);gar[i][j].isempty = 1;return charge;}}}printf("没有您输入的车号。
\n\n");return charge;}/*是否查看总收入*/voidIsPrintTotal(double total){charch;printf("是否查看停车收费总计Y/N");scanf("%c", &ch);while (ch!='y' &&ch!='Y' &&ch!='n' &&ch!='N'){printf("请输入Y或N ");scanf("%c", &ch);printf("\n");}switch (ch){case 'Y':case 'y':printf("停车收费总计为%.2lf元\n", total);break;case 'N':case 'n':break;}}/*主函数模块*/main(){int choice;double total = 0;struct Garage gar[2][6];Init(gar); /*初始化第一层已经停有的4辆车*/while (1){Instruction();printf("请输入要进行的操作:");scanf("%d", &choice);while (choice<0 || choice>3){printf("输入的不合法请输入0-3选择");scanf("%d", &choice);}switch (choice){case 1:Park(gar);break;case 2:total += Leave(gar);IsPrintTotal(total);break;case 3:Information(gar);break;case 0:exit(0);}}return 0;}四、运行与测试五、总结与思考两个星期的努力终于总算把课程设计给完成了。