zoukankan      html  css  js  c++  java
  • 结对开发----电梯调度(课堂练习)

    一.题目

       石家庄铁道大学基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停。信1201-1班的张一东觉得在每层都停觉得不耐烦。 由于楼层不太高,在上下课高峰期时,电梯从一层上行,但只允许停在某一楼层。在一楼时,每个乘客选择自己的目的层,电梯则自动计算出应停的楼层。 问电梯停在那一楼层,能够保证这次乘坐电梯的所有乘客爬楼梯的层数之和最少。

    二.设计思路

      首先我们最初设定人数为默认的8人,每次分别输入每个人想要到达的楼层,然后存入一个数组中,用到循环结构;然后再用一个循环结构分别计算停在某一层所有乘客爬楼梯的层数之和,存入数组中比较出最小数,然后再利用上次的数组,求出所有乘客爬楼梯的层数最小和所对应的楼层;在每一个阶段分别给出相应的提示。

    三.源代码

    #include <iostream.h>
    int main ()
    {
        int num=0;                //表示电梯到某层楼停的话,所有人需要爬楼的层数之和
        int floor[19]={0};        //记录到达某层的人数
        int *shuzu=new int[19];   //设置数组分别记录到达2~18层楼停的话,所有人需要爬楼的层数之和
        int n;                    //n记录到达楼层
        int x;                    //最后停留的层数
        int y;                    //用次可记录有人到达的楼层
        int k;                    //控制x-y的正负
        for (int i=0;i<8;i++)     //假设只能容纳8人,且达到最大容纳人数
        {   
            cout<<"请输入第"<<i+1<<"个人要到达的楼层:  ";
            cin>>n;
            floor[n]=floor[n]+1;
        }
        x=2;                      //此处只为给temp赋初值
        for(y=2;y<=18;y++)
        {        
            k=x-y;
            if(k<0)
            {
                k=y-x;
            }
            num=k*floor[y]+num;
        }
        int temp=num;
        for(x=2;x<=18;x++)         //分别记录所有人分别到达2~18楼时所爬楼层总和,进行比较,并将其保存在数组shuzu[]中
        {
            num=0;
            for(y=2;y<=18;y++)
            {
                k=x-y;
                if(k<0)
                {
                    k=y-x;
                }
                num=k*floor[y]+num;
            }
            shuzu[x]=num;
            if(num<temp)           //此函数是为了找出所爬楼层之和最小值
            {
                temp=num;
            }
        }
        cout<<"*******************************"<<endl;
        for(int e=0;e<19;e++)      //此循环是为了找出与所爬楼层之和最小值对应的电梯停留层数
        {
            if(shuzu[e]==temp)
            {
                cout<<"          "<<e<<"  层最好!"<<endl;
            }
        }
        cout<<"*******************************"<<endl;
        return 0;    
    }

    四.运行截图

    五.实验感想

      这次实验再一次用到了多次循环嵌套,各个变量在每一层的含义都需要多次了解,否则十分容易出错;另外,在实验的测试结果中有时会出现多个结果,开始以为是程序出错,但是后来发现,这是正常的情况下可能出现的结果。

  • 相关阅读:
    20145325张梓靖 《Java程序设计》第9周学习总结
    20145325张梓靖 实验四 "Andoid开发基础"
    20145325张梓靖 《Java程序设计》第8周学习总结
    20145307《信息安全系统设计基础》第7周学习总结
    20145307《信息安全系统设计基础》第六周学习总结
    Y86模拟器安装
    20145307《信息安全系统设计基础》第五周学习总结PT2
    git失败案例
    20145307陈俊达《信息安全系统设计基础》第5周学习总结PT1
    20145307陈俊达《信息安全系统设计基础》第3周学习总结
  • 原文地址:https://www.cnblogs.com/fan123/p/4440160.html
Copyright © 2011-2022 走看看