首页 > 其他分享 >纯菜鸟求帮忙看看这代码为什么只能输入两行

纯菜鸟求帮忙看看这代码为什么只能输入两行

时间:2023-11-28 21:12:44浏览次数:25  
标签:两行 Sqstack 菜鸟 停车场 帮忙 汽车 car front next

停车场管理 [问题描述] 设停车场内只有一个的停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车 在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第 一辆车停放在车场的最北端),若车场内已停满 n 辆汽车,则后来的汽车只能在门外的便道 上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时, 在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序 进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为 停车场编制按上述要求进行管理的模拟程序。 [测试数据] 设 n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3, 20), (‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。 其中,‘A’表示到达;‘D’表示离去,‘E’表示输入结束。 [基本要求] 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟 管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到 达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车 在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳 的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。 [实现提示] 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存 储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数 据项:汽车的牌照号码和进入停车场的时刻。

#include<bits/stdc++.h>
#define n 2
#define danjia 5
using namespace std;
typedef struct car{//设置车节点
	int pai;
	int atime;
	int dtime;
};
typedef struct{//设置栈的存储结构
	car *base;
	car *top;
	int stacksize;
}Sqstack;
 void Initstack(Sqstack &s){//初始化停车场栈
	s.base=new car[n];
	s.top=s.base;
	s.stacksize=n;
}
void Initstack2(Sqstack &s){//初始化wait栈
	s.base=new car[100];
	s.top=s.base;
	s.stacksize=100;
}
void push(Sqstack &s,car e){//压入栈
	*s.top++=e;
}
car pop(Sqstack &s){//输出并弹出栈顶元素
	return *--s.top;
}
bool fullstack(Sqstack &s){
	if(s.top-s.base==s.stacksize)return 1;
	else return 0;
}
typedef struct queue{//建立链表节点
	car date;
	queue *next;
}QNode,*queueptr;
typedef struct{//建立队列的链式存储结构
	queueptr front;
	queueptr rear;
}linkqueue;
void Initequeue(linkqueue &q){//初始化链表
	q.front=q.rear=new QNode;
	q.front->next=NULL;
}
void enqueue(linkqueue &Q,car e){//入队
    queueptr p;
	p=new QNode;
	p->date=e;
	p->next=NULL;
	Q.rear->next=p;
	Q.rear=p;
}
car dequeue(linkqueue &Q){//出队
	queueptr p;car e;
	p=Q.front->next;
	e=p->date;
	Q.front->next=p->next;
	if(Q.rear==p)Q.rear=Q.front;
	return e;
}
int main(){
	//stack<car>park[n];//使用函数创建汽车类型的停车场栈
	//stack<car>wait[1000];//为出去的车退让
	Sqstack park,wait;
	linkqueue q;
	Initstack(park);
	Initequeue(q);//初始化链表
	char op;
	int number,t;
	while(1){
		cin>>op>>number>>t;//cout<<number<<t;
		car a;
		a.pai=number;
		//a.time=t;
		if(op=='E')break;
		if(op=='A'){
			a.atime=t;
			if(fullstack(park))enqueue(q,a);//如果栈满则将该数据加入队列链
			else{//栈不满
				push(park,a);
			}
			
		}
		if(op=='D'){
			cout<<"D";
			car *p,m;
			p=park.top;
			while(p->pai!=a.pai){
				m=pop(park);
				push(wait,m);
			}
			m=*p;cout<<m.dtime;
		    m.dtime=t;
		    cout<<m.pai<<" 的停车时长是:"<<m.dtime-m.atime<<endl;
		    cout<<"  应缴费:"<<danjia*(m.dtime-m.atime);
		    while(wait.top!=wait.base){
		    	m=pop(wait);
		    	push(park,m);
			}
			if(q.front!=q.rear){
			m=dequeue(q);
			m.atime=t;
			push(park,m);}
			}
		}
	}
	
	

  

标签:两行,Sqstack,菜鸟,停车场,帮忙,汽车,car,front,next
From: https://www.cnblogs.com/zhengmou/p/17863077.html

相关文章

  • 一行溢出和两行溢出
    /*一行溢出*/.box1{width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}/*两行溢出(有时候不起作用,给固定高度)*/.box2{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical......
  • awk打印最后两行
    保存最后两行并打印,效果如同tail-n2,如需打印指定的列,只需将$0换成对应的列数值,从事实现grep和tail的两个合并命令的效果。awk'{l2=l1;l1=$0}END{printl2"\n"l1}'文件名示例:#准备数据,使用cat从标准输入中内容输出到file文件中cat>file<<EOFlast3last2last1E......
  • 蔡崇信看好的菜鸟,“基本面”究竟如何?
    今年5月,阿里巴巴集团曾公布云智能集团将完全分拆独立走向上市,菜鸟、盒马启动上市计划,国际数字商业集团启动外部融资。但随着16日阿里巴巴集团最新财报的发布,及宣布终止分拆阿里云、盒马IPO搁置,现在,仅有菜鸟在按原定的计划照常IPO中。作为阿里“1+6+N”之后第一家冲刺上市的业务集......
  • 知乎问题采集如此轻松,Kotlin来帮忙
    知乎是国内最好的一个知识学习的平台,我们平时很多问题都能在知乎上找到很好的答案。那么今天我就用Kotlin编写一段知乎问题收集的程序,我们可以根据自己需要的问题,进行针对性的采集,非常的不错,一起来看看吧。```kotlinimportokhttp3.OkHttpClientimportokhttp3.Requestimportja......
  • uni-app 文本显示两行超出部分显示...
    <template><view><view>这是登录界面<button@click="RedirdectToMain">跳转到首页</button></view></view><view><uni-file-pickerv-model="imag......
  • 制造业供应链“智慧大脑”已至,菜鸟首推三大数智科技产品
    2023第十二届制造业物流与仓储智能化工程大会,在《新能源汽车行业用移动机器人解决方案蓝皮书》正式发布之际,菜鸟物流科技首次推出了面向制造业的三大数智科技产品——全场景优化的“数智助手”(菜鸟智慧物流管理系统)、自动化设备的“指挥中心”(菜鸟WCS自动化控制系统)、供应链全局优......
  • 【C语言菜鸟知识】——动态内存管理
    --------------------------------------------------------------------------------------------------------------------- 1、栈在全局变量是分配在内存中的静态储存区,非静态的局部变量是分配在内存中的动态储存区,这个储存区就是栈的区域。2、堆在内存中允许建立内存动态分......
  • 2023-09-18 hexo博客之如何自定义页面内容宽度==》在custom.styl中添加两行代码即可
    前言:我的hexo主题为hexo-theme-next 5.1.4版本。操作如下:打开你的博客名称\themes\hexo-theme-next\source\css\_variables,找到这个文件custom.styl,然后把下面代码添加进去:$main-desktop=1200px$content-desktop=1000px刷新页面即可见效。......
  • 不要鄙视菜鸟
    菜鸟是初学者,菜鸟的水平一般比大虾肯定不能,但是任何一个大虾都是从菜鸟慢慢成长起来的,没有人会一下子从鸟卵变成大虾的。所以我们不要歧视菜鸟,既然大虾与菜鸟的水平有差距,我们就不要拿大虾的标准来要求菜鸟。菜鸟可以提一些就大虾来看是非常幼稚的问题。菜鸟可以在blog里面发一......
  • 总结liunx的菜鸟之路1
    首先要认识到,Linux重要的四句话1.Linux里一切都是文件2.配置服务就是修改这个服务的配置文件3.配置参数立即生效,需要重启对应的服务4.顺手加到启动项当中,保证考试工作中生效, Systemctlenabl在Linux里安装软件关于RPMPM是红帽软件包管理器,rpm-ivhfilename.rpm 安装软件rpm-......