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

  • 相关阅读:
    Domain Logic approaches
    Comparing Spring AOP and AspectJ
    CDI Features
    Java Design Patterns
    第二阶段:代码片段
    第一阶段:学生在线系统需求分析报告
    load data语句实验报告
    Sping AOP Capabilities and Goals
    Java Design Patterns
    CDI Features
  • 原文地址:https://www.cnblogs.com/Destr/p/8459994.html
Copyright © 2020-2023  润新知