(完整word版)停车场管理系统—C语言课程设计_第1页
(完整word版)停车场管理系统—C语言课程设计_第2页
(完整word版)停车场管理系统—C语言课程设计_第3页
(完整word版)停车场管理系统—C语言课程设计_第4页
(完整word版)停车场管理系统—C语言课程设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、返回到系统界面。即ma in ()函数写为如下:void mai n()/* 主函数 */menu();/*菜单函数*/菜单函数:void menu()int n,w;doputs("tt*MENU*nn");p uts("ttt 1.初始化");puts("ttt 2.有车进入");puts("ttt 3.有车离开");p uts("ttt 4.退出");puts("nntt*n");prin tf(" PI ease choice your number(1-4

4、): bb"); scan f("%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、状态。用循环实现车位的致零即可。struct changnei/*场内车道信息*/ int n eik ong;ch nN-1;struct changwai/*场外车道信息*/ int waik ong;chwM-1;N和M分别是停车场和便道的车位预设值,用宏定义。用户可根据实际情况改 变。#defi ne N 100/*预设停车场有100个车位*/#defi ne M 100/*预设便道有100个出位*/void chushi()/*初始化函数 */int i,j;for(i=0;i<=N-1;i+)chni.neikong=0;/*将场内车道设置为空*/ for(j=0;j<

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

7、CIXUHAO是车辆次序号的宏定义:口号,由 0开始*/给予车辆次序号之后,用循环判断停车场是否停满,再分别给予选择:场内是否已满已满,将车停在便道未满,指定停车场位置void jinru()/*车辆进入函数*/int i,a;int h=0;printf("nn请输入该车次序号(从0号开始):"); sea nf("%d",&a);for(i=0;i<N;i+)if(ehni.neikong=0);/* 无车标记 0*/ if(ehni.neikong=1)/* 有车标记 1*/ h=h+1; if(h=N)printf("停车

8、场内已停满,请停在便道上elsecara.car_stay=h; chn h. neik on g=1;printf("该车应该停在停车场内第道 printf("请输入该车进停车场时刻( sca nf("%d",&cara.car_arr); "n");%d(从0道开始记)n",h); 24小时整点计时):n");便道上还有车吗?menu();程序执行完后回到菜单。#define CIXUHAO 1000/*预设车辆次序号。不管车辆到达时停在场内或便道, 均 依次设置一个次序车辆离开函数:【需求分析】若有一

9、辆车要离开,则需要记 录该车的离开时间,以计算出该车 在停车场内的停车时间和应该缴纳 的费用。该车离开后,要判断便道 上是否有车等待进入,如有,则将 便道上第一辆车停放在停车场内最 后的位置并记录好进场时间;若无, 则返回菜单。void likai()/*车辆离开函数*/ int i,k,choi,time;double fee;printf("请输入离开车辆次序号,并将此车之后的车先全部退出停车场!"); sca nf("%d",&i);printf("n请输入离开车辆的离开时刻(24小时整点计时):n");sca nf(&

10、quot;%d",&cari.car_lef);fee=D*(cari.car_lef-cari.car_arr);time=cari.car_lef-cari.car_arr;printf("次序号为%d的车停车时间%d小时,应收费%f元n",i,time,fee); printf("nnn请让场内退出的车再依次进场!nnn");printf("便道上现在有车吗?(请选择1或2)n1.有门2投有n");/*因便道上可能 没有车,因此要做选择*/sca nf("%d",&choi);if(

11、choi=2)menu();if(choi=1)printf("请让便道上的第一辆车进场n");printf("该车次序号为:n");sea nf("%d",&k);printf("请输入该车进场时间:n");sea nf("%d",&cark.car_anj; menu();D为预设停车场单位小时费用,用宏定义,便于以后修改。#define D 1.2/*预设车辆停车费为1.2元每小时*/5上机操作(1)主菜单函数M "I r匚:Users5unxiaoDe5Icto

12、pDebugTexl 1.exeX U tf M- U-空 H Sf-弩,曙須 LT phi T?UI I HW 甘 W ¥唇 H 豁唏“阿遛热:弼开lPlease cJioice your number<l-4>: 1(2) 初始化操作E *C:UersVsunsi自oDesktop0eb-ug,T亡xtl启阳Please cho iceyoui* nunbei?<l-4>: ftl已初始化WH WWMXWMMHMMHXfIENU WWMHWMWWKWWHW*遒入A#车离开4-lSflease choiceyour minbeL<l-4: 【 (3)

13、有车进入your nunbei'<i-4>: E21Please choice己寸 i B hnTT i-'v 开岂 0道螫 :0 7始j 干0 2 Tfic T-TJ1TA 碣第刻 从C场场 号4< 圧=王爭 次雷 WMjt车 该该该 八应入 请该请1卩lease choice your nuRljei*<l-4>: 2】己寸-1 Q开点1道整山时殳 4IT 1 2卄道<刻(场场 号聿 次渤 霍车 该该该 请该请目Piease choice your numberCl-4>: L2 记时3道蹩 始鬻刻(场场 号辜 庠UT T 毒车 该

14、该该 #44输以上分别举例0,1,2三个车的进场情况(4) 有车离开Flease cho ice yum* nunbei*<l"4> : 3 请输入离开车辆次序号】并将此车之后的车先全部退岀停车场! 0 请输入离开车辆的离开时刻 3小时整点计时):欣序号为砒车停车时间?小时,应收费8 400000请让场内退出的车再依次进场!更堇上现在有车吗?"青选择丄或2若便道上没车,则退回到主菜单入幵化翳始12 3 4若便道上有车12.34-Pic ace cbo ice your nuPiher<l-4> : 3 1请输入离开车辆次序号】并将此车之后的车先全部退

15、岀停车场! 2请输入离开车辆的离开时刻(24小时整点计时): ?次序号为2的车停车时间卩小时,应收费10-800000元请辻场內退出的车再依次进场!便道上现在有车吗?(请选择丄或2L 有亠2 没有!»让便道上的第一辆车进场该车诙序号为:234请龜入该车迸场时间=?KMKMMMMMKMWMMwHEN UMMMMWMMMMMWMMM瀟离开3-/6总结通过该实例的实习,要求大家进一步理解和运用结构化程序设计的思想和方法, 初步掌握开发一个小型实用系统的基本方法, 学会调试较长的程序,学会利用流 程图表示算法,进一步掌握和提高利用 C语言进行程序设计的能力。7原程序代码#i ncludevs

16、tdio.h>#in clude<stdlib.h>#i ncludevstri ng.h>#defi ne N 100/*预设停车场有100个车位*/#defi ne M 100/*预设便道有100个出位*/#define D 1.2/*预设车辆停车费为1.2元每小时*/#define CIXUHAO 1000/*预设车辆次序号。不管车辆到达时停在场内或便道,均依次设置一个次序号,由0开始*/void menu();void chushi();void jin ru();void likai();struct car/*车辆信息 */int car_num;/*车辆次

17、序号*/int car_arr;/*车辆到达时间*/int car_lef;/*车辆离开时间*/ int car_stay;/*车辆停放位置*/ carCIXUHAO;struct changnei/*场内车道信息*/ int n eik ong;ch nN-1;struct changwai/*场外车道信息*/ int waik ong;chwM-1;void mai n()/* 主函数 */menu();/*菜单函数*/ void menu()int n,w;doputs("tt*MENU*nn");p uts("ttt 1.初始化");puts(&

18、quot;ttt 2.有车进入");puts("ttt 3.有车离开");p uts("ttt 4.退出");puts("nntt*n"); prin tf(" PI ease choice your number(1-4): bb"); scan f("%d",&n);if(n<1|n>4)/*对选择的数字作判断*/w=1;getchar();else w=0;while(w=1);switch( n)case 1:chushi();break;/初始化函数 */

19、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;jv=M-1;j+)chwi.waikong=0;/*将便道车道设置为空*/ printf("nntt 已初始化 nn");menu(); void jinru()/*车辆进入函数*/int i,a;int h=0;print

20、f("nn请输入该车次序号(从0号开始):"); sca nf("%d",&a);for(i=0;i<N;i+)if(chni.neikong=0);/* 无车标记 0*/ if(chni.neikong=1)/* 有车标记 1*/ h=h+1;if(h=N)n");%d (从0道开始记)n",h);24小时整点计时):n");printf("停车场内已停满,请停在便道上 else cara.car_stay=h; chn h. neik on g=1;printf("该车应该停在停车场内第道 printf("请输入该车进停车场时刻( sca nf("%d",&cara.car_arr); " menu(); void li

温馨提示

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

评论

0/150

提交评论