做业三C++

做业心得

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

假设电梯停在第 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 addressgit

其中main函数github

#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;
}
相关文章
相关标签/搜索