停车场管理系统—C语言课程设计.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 停车场 管理 系统 语言 课程设计
- 资源描述:
-
C语言课程设计报告 停车场管理系统 1题目要求 设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车站。停车站内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车站为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。 【基本要求】要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场是的停车时间及它应该交的费用。 2需求分析 根据题目要求,因为停车场是一个单条的序列,可以用结构体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。车辆离开要计时计费。另外,每天开始时,停车场要初始化。 3总体设计 这个系统可以分为:初始化、有车进入、有车离开、退出四个模块。 4详细设计 开始 显示一系列选项功能 输入n,判断n是不是1-4? Y 根据n的值调用各功能模块函数 结束 main()函数体内包含了界面选则部分menu(),并单独 抽出来作为一个独立函数,目的在于系统执行每部分 模块后能够方便返回到系统界面。即main()函数写为 N 如下: 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); /*退出*/ } } 初始化模块设计: 【需求分析】 该模块是将每一天开始的停车场内和便道车位清零。首先建立场内场外的结构体,结构体内成员即车位的状态。用循环实现车位的致零即可。 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(); } 函数出示化后将回到菜单界面。 车辆进入函数: 【需求分析】 车辆到达后,要指定车辆的停车位置。用户根据菜单函数进入车辆进入模块。按照每辆车的到达次序给予车辆次序号,由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(); } 程序执行完后回到菜单。 有车离开 记录该车离开时间 得到停车时间和费用 便道上还有车吗? 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元每小时*/ 5上机操作 (1) 主菜单函数 (2) 初始化操作 (3) 有车进入 以上分别举例0,1,2三个车的进场情况 (4) 有车离开 若便道上没车,则退回到主菜单 若便道上有车 6总结 通过该实例的实习,要求大家进一步理解和运用结构化程序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法,学会调试较长的程序,学会利用流程图表示算法,进一步掌握和提高利用C语言进行程序设计的能力。 7原程序代码 #include<stdio.h> #include<stdlib.h> #include<string.h> #define N 100/*预设停车场有100个车位*/ #define M 100/*预设便道有100个出位*/ #define D 1.2/*预设车辆停车费为1.2元每小时*/ #define CIXUHAO 1000/*预设车辆次序号。不管车辆到达时停在场内或便道,均依次设置一个次序号,由0开始*/ void menu(); void chushi(); void jinru(); void likai(); struct car/*车辆信息*/ { int car_num;/*车辆次序号*/ int car_arr;/*车辆到达时间*/ int car_lef;/*车辆离开时间*/ int car_stay;/*车辆停放位置*/ }car[CIXUHAO]; struct changnei/*场内车道信息*/ { int neikong; }chn[N-1]; struct changwai/*场外车道信息*/ { int waikong; }chw[M-1]; 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);/*退出*/ } } 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(); } 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(); } 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(); } } 12展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




停车场管理系统—C语言课程设计.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/1362633.html