作业三C++

作业心得

1.本次作业开始使用C++编写了(面向过程的C++,2333)
2.粗略学习了一下文件输入输出,和项目的创建等(在大佬眼里最基本的操作QAQ,然而我还是有点晕晕的,平时都是ctrl+n新建源代码写的一个文件,大概没花非常多的 功夫去学这些吧)
3.电梯的操作函数或者说类的主体操作还是不懂,大概有如下的想法:

假设电梯停在第 i 层楼,我们计算出所有乘客总共爬楼梯的层数(与耗时数相当)是s。如果有down个乘客想去的楼层在第 i 层之下,有fit个乘客正好想去的楼层是第 i 层,有up个乘客想去的楼层在第 i 层之上。这个时候,重点来了:如果电梯改停在i-1层,所有目的地在第i - 1层以下的乘客可以少爬1层,总共少爬N1层,所有在i层及以上的乘客要多爬一层,总共多爬now+up层,这时总共需要爬s-down+fit+up。

反之,如果电梯在i+1层停所有目的地在第 i 层以上的乘客可以少爬1层,总共少爬up层,所有在 i 层及以下的乘客要多爬一层,总共多爬fit+down层,这时总共需要爬s+down+fit-up层。

可见,当down> fit+up 时,电梯在第i-1层楼停更好;当down+fit < up 时,电梯在i+1层停更好。其他情况在第i层更好。

如此一来,问题的解法就出来了,从第一层开始考察,计算各位乘客走的楼层的数目(与耗时数相当),然后根据down,fit,up之间的关系进行调度,直到找到下一个最佳目标楼层;重复上述检索操作,直到全部送完。

代码

git address

其中main函数

#include <fstream.h>
#include"moveing direction judge.h"
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
    ifstream OpenFile("input.txt");
    /*
    int a;
    SaveFile <<"......." 
    while(!OpenFile.eof()
    {
        OpenFile.get(a);
        .......
    }
    此处为操作函数/类 
    OpenFile.close();
    */
    
    /*
    ofstream SaveFile("output1.txt", ios::out);
 
    SaveFile << "......";
 
    SaveFile.close();
    此处应该有操作
    */
     
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/suolun/p/9033438.html