ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:22.14KB ,
资源ID:6078293      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6078293.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(停车场问题含完整C程序代码.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

停车场问题含完整C程序代码.docx

1、停车场问题含完整C程序代码最新文件 仅供参考 已改成 word 文本 方便更改停车场问题完整c程序代码1) 内容:设停车场是一个可停放n辆汽车的狭长通道,且只有一个人门可供汽车进出。 汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(人门在最南端,最先到达 的在最北端),若停车场内已经停满n辆车,那么后来的车只能在场外等候,一旦有车开走, 则等候在第一位的车即可开入(这是一个队列设长度为m);当停车场内某辆车需要开出, 则在它之后的车辆必须给它让道,当这辆车驶出停车场后,其他车辆按序入栈。每辆车按时 间收费。2) 要求:以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入数据的序列进

2、行模 拟管理。每一组输入数据包括三个数据:汽车的到达(A表示)或离去(表示)信息, 汽车标识(牌照号)以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或者便道上的停车 位置;若是车辆离去,则输出汽车在停车场停留的时间和应缴纳的费用(便道上 不收费)。栈以顺序结构实现,队列以链表结构实现。# include#include#define pmax 3定义停车场的最大容车量为3#define price 2停车单价为2static int flag=O;全局变量,用来记录停车场车的数量struct parkcar定义车辆的结构体long num;in

3、t time;struct parkcar*next; *head,*rear;struct parkcar pcpmax;struct parkcar tcpmax;结构体数组创建停车场的结构体数组创建用来缓存停车场出来的车辆的struct parkcar *inqueue(long carnumzint atime);声明入队列函数,让车辆进入候车区void arrive(void);void leave(void);void display_P(void);数void display_W(void);函数int main()head=NULL;针和尾指针rear=NULL;int sta

4、te=O;=Parkcar Menu=nn);声明到达函数声明离开函数/廣明显示停车场车辆信息的函声明显示侯车区车辆信息的初始化队列头指printfCV/瀚出停车菜单printf(Htprice:2n);printf(tinputstatenH);A ),后执行相应函数printf(Ht AarrivenJ;printf(Ht DleavenJ;printf(Ht Pdisplay park_carnJ;printf(Ht Wdisplay wait_carrf);printf(Ht Equitn”);do通过先输入状态(如通过先输入状如果停车场为空则printf(”input:n“);sca

5、nf(,%c,/&state);fflush(stdin);switch(state)态(如A ),后执行相应函数case AlarriveOjbreak;case ,D:if(pcflag-l.num=NULL)输出为空printf(Park is empty!n);elseleave();break;case P:display_P();break;case W:clisplay_W();break;case E:break;default:printf(eiror message,!nput again!rf);当输入Ewhile(state!=,E,);则退出return 0;void

6、 arrive(void) long carnum;int atime;prin tf(Mplease in put car number and arrive time!nn);scanf(%ld %d,/&carnum,&atime);fflush(stdin);if(flag!=pmax) 如果停车场未满,则入停车场pcflag. nu m=carnum;pcflag.time=atime;+flag;else否则inqueue(car nunxatime);囲唉车区struct parkcar 才inqueue(long carnumjnt atime)立候车区的队列链表struct

7、parkcar*p;p=(struct parkcar*)malloc(sizeof(struct parkcar);p-num=carnum; p-time=atime;if(head=NULL)head=p; else rear- n ext=p;rear=p;rear-next =NULL; return head;void leave(void)long car num;int ltime,dtime;int save=0;int i=l,flagO;以尾插法建/flagO用来存储刚调用离开函数时flag的值struct parkcar*p;prin tf(nplease in put

8、 car nu mber and leave time!nJ;scanf(%ld %d,&carnum,<ime);fflush(stdin);while(pcflag-l.num !=carnum) 从栈顶往下找要离开的那辆车tcsave. nu m=pcflag-l.num;tcsave.time =pcflag-l.time;tcsave. next =pcflag-l. next ;if(flag=l&pcO.num !=carnum) 如果找到栈底都没有这辆车,则返回,并将存储着刚调用离开函数时flag的值,即flagO重新 赋值给flag ,避免在没有车辆离开的情况下对全局变量

9、flag进行修改而导致错误printf(nThis car is not founded!nn);flag=flagO;return;flag-;save+;dtime=ltime-pcflag-l.time ; 停车时间的计算5 口果输入的离开时间小于到达时间则重新输入离开时间printf(nThe leave time is illegal,please input the leave time againn”); scanf(,%d,<ime);fflush(stdin);dtime=ltime-pcflag-l.time;printf(tpark time:%drV:dtime);

10、printf(tcost: %dn/dtime*price); 输出停车时间和费用while(save!=O) 当车辆离开后,将缓存栈里的车回到停车场if(i-)flag-; 因为执行完上一个while循环后flag少执行了次减一操作,通过控制i来让flag在这个循环里只减一次。但flag-save-; 放在while ( save!=0 )外面,这样对某些输入会有bug。也就是只有当缓存栈里有车时才需要flag做一次减一操作pcflag.num =tcsave.num ;pcflag.time =tcsave.time;flag+;if(head!=NULL) 如果候车 区不空,则将队首第一

11、辆车进入停车场p=head;pcflag.num 二pnum;pcflag.time =ltime;pcflag.next 二pnext;显示从候车区flag+;printfCtWldcar in park,arrive time:%dn蔦p-num Jtime);进停车场的车辆车牌号和进入时间head=head-n ext;free (p);void display_P(void) 从栈顶往栈底显示停车场的车辆信息int flagl;flagl=flag; 用flagl记录此时的flag ,避免对全局变量进行操作prin tfCXtparkcarnum airive_timerf);fflu

12、sh(stdin);while(flagl)!=O)printf(Ht%ld %drCpcflagllnum,pcflag:lJtirne);flagl-;从队首void display_W(void)往队尾显示候车区的车辆信息struct parkcar*w;w=head;prin tf(Htwait_carnum arrive_timenH);while(w!=NULL)printf(Ht%ld %dn:wnum,wtime);w=wn ext;free(w);/*可参考的测试数据,含一定團士性,复制粘贴可用DA1015A102 10PD103 15D10115PA103 20A104 25A105 30PWD102 35PWD104 20柿品WORD仅供参考榕品Word仅供参考40PWE*/word文本最新文件 仅供参考 已改成 方便更改赠人玫瑰,手留余香。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1