寒假作业3
GitHub仓库地址:Destr
电梯问题
这次emmm还是写了一个简化版的电梯,在上一次的电梯基础上改动,增加了题目要求的到达层数
代码行数 | bug数 | 花费时间 |
---|---|---|
118 | 5 | 3h |
关于Git的学习使用
经过一番仔细的研究,发现Git的使用确实有很多需要注意的地方,要认真研究每一个步骤
使用git提交显示成功,但在仓库中却没有发现自己上传的文件emmm,所以先将代码粘贴如下
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int ans,fx,dc,num_p,t;
struct p
{
int time;
int floor;
int direction;
p()
{
memset(this,0,sizeof(p));
}
}people[10];//记录各个请求
struct f
{
int time;
int m;
int d;
int num;
f()
{
memset(this,0,sizeof(f));
}
}e[15];//电梯状况
void up()
{
if(e[dc].time<=ans&&e[dc].m>0&&((e[dc].d-dc>0&&fx==1)||(e[dc].d-dc<0&&fx==-1&&num_p==0)))
{
cout<<ans<<"时,停靠在"<<dc<<"层"<<endl;
if(num_p==0)
{
fx=0-fx;
}
e[e[dc].d].num++;
ans++;
num_p+=e[dc].m;
e[dc].m=0;
e[dc].time=0;
e[dc].d=0;
if(e[dc].num!=0)
{
t+=e[dc].num;
num_p-=e[dc].num;
e[dc].num=0;
}
}
ans++;
dc++;
}//上行处理
void down()
{
if(e[dc].time<=ans&&e[dc].m>0&&((e[dc].d-dc>0&&fx==1&&num_p==0)||(e[dc].d-dc<0&&fx==-1)))
{
cout<<ans<<"时,停靠在"<<dc<<"层"<<endl;
if(num_p==0)
{
fx=0-fx;
}
e[e[dc].d].num++;
ans++;
num_p+=e[dc].m;
e[dc].m=0;
e[dc].time=0;
e[dc].d=0;
if(e[dc].num!=0)
{
t+=e[dc].num;
num_p-=e[dc].num;
e[dc].num=0;
ans++;
}
}
ans++;
dc--;
}//下行处理
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
int i,j;
for(i=0;i<5;i++)
{
cin>>people[i].time>>people[i].floor>>people[i].direction;
e[people[i].floor].time=people[i].time;
e[people[i].floor].m=1;
e[people[i].floor].d=people[i].direction;
}
t=0;//完成人数
ans=0;//总体用时
fx=1;//电梯方向
dc=1;//电梯当前所在层数
t=0;
num_p=0;//当前电梯内部人数
while(1)
{
if(e[dc].num!=0)
{
cout<<ans<<"时,停靠在"<<dc<<"层"<<endl;
t+=e[dc].num;
num_p-=e[dc].num;
e[dc].num=0;
ans++;
}//到达目的地的人出电梯
if(t>=5)break;
if(dc==10)fx=-1;
else if(dc==1)fx=1;
if(fx==1)
{
up();
continue;
}
else if(fx==-1)
{
down();
continue;
}
}
cout<<"总体用时:"<<ans<<endl;
return 0;
}
提交日志截图
关于文件读写
文件读写输入输出还是不太会,于是选用了简单的freopen。。