zoukankan      html  css  js  c++  java
  • 软件工程——电梯调度

    1、题目:

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

    2、设计思路:

    刚看到题目的时候首先想到的就是最笨的方法,记录所有登电梯乘客的楼层信息,从电梯停在最低的楼层开始一直计算到最高楼层,进而比较求出其中最优解,后来听了老师讲的优化方法,感觉不太理解,就用嘴笨的方法实现的。

    3、源代码:

     #include<iostream>
     #include<math.h>
     using  namespace std;
     int main()
     {
          int i,j;
          int m;
          int sum[18],summin;
          int max=2,min,n=0;
          int a[15]={0};
         cout<<"请输入乘电梯的总人数:"<<endl;
         cin>>n;
          cout<<"请分别输入每个人想要去的楼层号:"<<endl;
         for(i = 0;i < n;i++)
        {
              cin>>a[i];    
              if(a[i] <= 1)
            {
                  cout<<"输入错误,请重新输入!"<<"	";
                  cin>>a[i];    
             }
        }
          min = a[0];
          for(i = 0;i < n;i++)
        {
              if(a[i] > max)
                 {
                      max = a[i];
                 }    
                 if(a[i] <= min)
                 {
                     min = a[i];
                 }
         }
          for(j = min;j <= max;j++)
         {
              sum[j] = 0;
              for(i = 0;i < n;i++)
             {
                  sum[j] += abs(a[i] - j);
             }
         }
         summin = sum[min];
          m = min;
          for(j = min;j <= max;j++)
        {
              if(sum[j] < summin )
             {
                  summin = sum[j];
                  m = j;
             }
         }
          cout<<"电梯应停在第"<<m<<"层,此时爬楼总层数最少。"<<endl;
          return 0;
      }

    4、实验截图:

    5、实验总结:

           用的比较笨的方法,对于算法的优化方面还没有太好的想法,还要仔细的想一想上课老师讲的优化方案。

  • 相关阅读:
    程序员的7中武器
    需要强化的知识
    微软中国联合小i推出MSN群Beta 不需任何插件
    XML Notepad 2006 v2.0
    Sandcastle August 2006 Community Technology Preview
    [推荐] TechNet 广播 SQL Server 2000完结篇
    《太空帝国 4》(Space Empires IV)以及 xxMod 英文版 中文版 TDM Mod 英文版 中文版
    IronPython 1.0 RC2 更新 1.0.60816
    Microsoft .NET Framework 3.0 RC1
    《Oracle Developer Suite 10g》(Oracle Developer Suite 10g)V10.1.2.0.2
  • 原文地址:https://www.cnblogs.com/d12138/p/4442589.html
Copyright © 2011-2022 走看看