停车场管理系统_第1页
停车场管理系统_第2页
停车场管理系统_第3页
免费预览已结束,剩余10页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C 语言课程设计报告停车场管理系统1 题目要求设有一个可以停放 n 辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放 (最先到达的第一辆车放在停车场的最里面) 。如果停车场已放满 n 辆车,则后来的车辆只能在停车场大门外的便道上等待, 一旦停车场内有车开走, 则排在便道上的第一辆车就进入停车站。 停车站内如有某辆车要开走, 在它之后进入停车场的车都必须先退出停车站为它让路, 待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时, 都应根据它在停车场内停留的时间长短交费。 如果停留在便道上的车未进停车场就要离去, 允许其离

2、去, 不收停车费, 并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。【基本要求】要求程序输出每辆车到达后的停车位置(停车场或便道上) ,以及某辆车离开停车场是的停车时间及它应该交的费用。2 需求分析根据题目要求,因为停车场是一个单条的序列,可以用结构体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。车辆离开要计时计费。另外,每天开始时,停车场要初始化 。3 总体设计这个系统可以分为:初始化、有车进入、有车离开、退出四个模块。4 详细设计main()函数体内包含了界面选则部分 menu(),并单独抽出来作为一个独立函数,目的在于系统执行每部分模块后

3、能够方便返回到系统界面。即 main()函数写为如下:void main()/* 主函数 */menu();/* 菜单函数 */开始显示一系列选项功能N输入 n,判断n 是不是 1-4?Y 根据 n 的值调用各功能模块 函1结束C 语言课程设计报告菜单函数:void menu()int n,w;doputs("tt*MENU*nn");puts("ttt 1.初始化 ");puts("ttt 2.有车进入 ");puts("ttt 3.有车离开 ");puts("ttt 4.退出 ");puts

4、("nntt*n");printf("Please choice your number(1-4): bb");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);/* 退出

5、 */初始化模块设计:【需求分析】该模块是将每一天开始的停车场内和便道车位清零。 首先建立场内场外的结构体,结构体内成员即车位的状态。用循环实现车位的致零即可。2C 语言课程设计报告struct changnei/*场内车道信息 */int neikong;chnN-1;struct changwai/*场外车道信息 */int waikong;chwM-1;N 和 M 分别是停车场和便道的车位预设值,用宏定义。用户可根据实际情况改变。#define N 100/*预设停车场有 100 个车位 */#define M 100/* 预设便道有 100 个出位 */void chushi()/*

6、初始化函数 */int i,j;for(i=0;i<=N-1;i+)chni.neikong=0;/* 将场内车道设置为空 */for(j=0;j<=M-1;j+)chwi.waikong=0;/* 将便道车道设置为空 */printf("nntt 已初始化 nn");menu();函数出示化后将回到菜单界面。车辆进入函数:【需求分析】车辆到达后,要指定车辆的停车位置。 用户根据菜单函数进入车辆进入模块。按照每辆车的到达次序给予车辆次序号,由0 号开始。车辆信息也建立结构体。struct car/*车辆信息 */int car_num;/* 车辆次序号 */in

7、t car_arr;/*车辆到达时间 */int car_lef;/* 车辆离开时间 */int car_stay;/*车辆停放位置 */carCIXUHAO;3C 语言课程设计报告其中, CIXUHAO 是车辆次序号的宏定义:#define CIXUHAO 1000/* 预设车辆次序号。 不管车辆到达时停在场内或便道, 均依次设置一个次序号,由 0 开始 */给予车辆次序号之后,用循环判断停车场是否停满,再分别给予选择:场内是否已满已满,将车停在便道未满,指定停车场位置void jinru()/* 车辆进入函数 */int i,a;int h=0;printf("nn 请输入该车次

8、序号(从0 号开始) :");scanf("%d",&a);for(i=0;i<N;i+)if(chni.neikong=0);/* 无车标记 0*/if(chni.neikong=1)/* 有车标记 1*/h=h+1;if(h=N)printf(" 停车场内已停满,请停在便道上n");elsecara.car_stay=h;chnh.neikong=1;printf(" 该车应该停在停车场内第道 %d(从 0 道开始记) n",h); printf(" 请输入该车进停车场时刻( 24 小时整点计时)

9、:n");scanf("%d",&cara.car_arr);便道上还有车吗?menu();程序执行完后回到菜单。4C 语言课程设计报告车辆离开函数:【需求分析】若有一辆车要离开,则需要记录该车的离开时间,以计算出该车在停车场内的停车时间和应该缴纳的费用。该车离开后,要判断便道上是否有车等待进入,如有,则将便道上第一辆车停放在停车场内最后的位置并记录好进场时间;若无,则返回菜单。有车离开记录该车离开时间得到停车时间和费用便道上还有车吗?NY返回主令其进场菜单输入次序号和进场时间void likai()/* 车辆离开函数 */ int i,k,choi,ti

10、me;double fee;printf(" 请输入离开车辆次序号 , 并将此车之后的车先全部退出停车场! "); scanf("%d",&i);printf("n 请输入离开车辆的离开时刻( 24 小时整点计时): n"); scanf("%d",&cari.car_lef); fee=D*(cari.car_lef-cari.car_arr); time=cari.car_lef-cari.car_arr;printf(" 次序号为 %d 的车停车时间 %d 小时,应收费 %f 元 n

11、",i,time,fee); printf("nnn 请让场内退出的车再依次进场! nnn");printf(" 便道上现在有车吗? (请选择 1 或 2)n1.有n2.没有 n");/* 因便道上可能没有车,因此要做选择 */scanf("%d",&choi);if(choi=2)menu();if(choi=1)printf(" 请让便道上的第一辆车进场n");5C 语言课程设计报告printf(" 该车次序号为 :n");scanf("%d",&

12、;k);printf(" 请输入该车进场时间 :n");scanf("%d",&cark.car_arr);menu();D 为预设停车场单位小时费用,用宏定义,便于以后修改。#define D 1.2/*预设车辆停车费为1.2 元每小时 */5 上机操作( 1) 主菜单函数(2)初始化操作6C 语言课程设计报告(3)有车进入7C 语言课程设计报告以上分别举例0,1,2 三个车的进场情况(4)有车离开若便道上没车,则退回到主菜单8C 语言课程设计报告若便道上有车6 总结通过该实例的实习,要求大家进一步理解和运用结构化程序设计的思想和方法,初步掌握

13、开发一个小型实用系统的基本方法, 学会调试较长的程序, 学会利用流程图表示算法,进一步掌握和提高利用 C 语言进行程序设计的能力。7 原程序代码#include<stdio.h>#include<stdlib.h>9C 语言课程设计报告#include<string.h>#define N 100/*预设停车场有 100 个车位 */#define M 100/* 预设便道有 100 个出位 */#define D 1.2/*预设车辆停车费为1.2 元每小时 */#define CIXUHAO 1000/* 预设车辆次序号。 不管车辆到达时停在场内或便道,

14、均依次设置一个次序号,由 0 开始 */void menu();void chushi();void jinru();void likai();struct car/*车辆信息 */int car_num;/* 车辆次序号 */int car_arr;/*车辆到达时间 */int car_lef;/* 车辆离开时间 */int car_stay;/*车辆停放位置 */carCIXUHAO;struct changnei/*场内车道信息 */int neikong;chnN-1;struct changwai/*场外车道信息 */int waikong;chwM-1;void main()/*

15、主函数 */menu();/* 菜单函数 */void menu()int n,w;doputs("tt*MENU*nn");puts("ttt 1.初始化 ");puts("ttt 2.有车进入 ");puts("ttt 3.有车离开 ");puts("ttt 4.退出 ");10C 语言课程设计报告puts("nntt*n");printf("Please choice your number(1-4): bb");scanf("%d&quo

16、t;,&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);/*退出 */void chushi()/* 初始化函数 */int i,j;for(i=0;i<=N-1;i+)chni.neikong=0;/* 将场内车道设置为空 */for(j=0;j<

17、=M-1;j+)chwi.waikong=0;/* 将便道车道设置为空 */printf("nntt 已初始化 nn");menu();void jinru()/* 车辆进入函数 */int i,a;int h=0;printf("nn 请输入该车次序号(从0 号开始) :");scanf("%d",&a);for(i=0;i<N;i+)if(chni.neikong=0);/* 无车标记 0*/if(chni.neikong=1)/* 有车标记 1*/h=h+1;if(h=N)11C 语言课程设计报告printf(&q

18、uot; 停车场内已停满,请停在便道上n");elsecara.car_stay=h;chnh.neikong=1;printf(" 该车应该停在停车场内第道 %d(从 0 道开始记) n",h); printf(" 请输入该车进停车场时刻( 24 小时整点计时):n"); scanf("%d",&cara.car_arr);menu();void likai()/* 车辆离开函数 */ int i,k,choi,time;double fee;printf(" 请输入离开车辆次序号 , 并将此车之后的车先全部退出停车场! "); scan

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论