Fork me on GitHub

寒假作业3

寒假作业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。。

posted @ 2018-02-22 20:20  Destr  阅读(238)  评论(0编辑  收藏  举报