课堂练习--电梯调度
一、题目要求
•石家庄铁道大学基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停。信1201-1班的XXX东觉得在每层都停觉得不耐烦。
•由于楼层不太高,在上下课高峰期时时,电梯从一层上行,但只允许停在某一楼层。在一楼时,每个乘客选择自己的目的层,电梯则自动计算出应停的楼层。
•问电梯停在那一楼层,能够保证这次乘坐电梯的所有乘客爬楼梯的层数之和最少。
二、设计思想
这次的电梯的设计题目一开始我其实想明白了,但是老师后来讲了半天结果又说迷糊了。。。所以今天做作业之前看了一下同学们的设计思想,发现跟我一开始想的都差不多,就是挨个楼层都算一遍 求绝对值就好了,然后最小值就是最小的楼层数了。这次想用java编写程序,因为要做大作业就是要用java,所以这次的实验代码算是抄的同学得了。。不过是自己看明白了。。费了一下午总算是编了一个除了helloworld以外的第二个java程序了。
三、程序源代码
1 package 电梯调度; 2 import java.util.Arrays; 3 import java.util.Scanner; 4 public class 电梯代码 { 5 6 public static void main(String[] args) { 7 // TODO Auto-generated method stub 8 Scanner input=new Scanner(System.in); 9 System.out.print("请输入楼梯人数:"); 10 int n=input.nextInt(); 11 int shuzu[]=new int [n]; 12 int sum[]=new int[18]; 13 for(int a=0;a<n;a++){ 14 System.out.print("请输入楼层:"); 15 shuzu[a]=input.nextInt( ); 16 } 17 for(int i=0;i<18;i++){ 18 for(int j=0;j<n;j++) 19 { 20 sum[i]=sum[i]+Math.abs(shuzu[j]-(i+1)); 21 } 22 } 23 int c=0; 24 for(int i=0;i<18;i++) 25 { 26 if(sum[i]<sum[0]) 27 { 28 sum[0]=sum[i]; 29 c=i+1; 30 } 31 } 32 System.out.println("所停楼层为"+(c)+""); 33 System.out.print("楼层数目为"+(sum[0])+""); 34 } 35 }
四、运行结果截图
五、总结体会
这次是第一次用java,还不太熟悉,但基本的思想什么的还是那样的,就是函数会有些不同,以后会继续努力的。这次相当于完全抄了一个程序,下次会自己再去想一个的。。。