当前位置: 首页>>代码示例>>C++>>正文


C++ Polynomial::set方法代码示例

本文整理汇总了C++中Polynomial::set方法的典型用法代码示例。如果您正苦于以下问题:C++ Polynomial::set方法的具体用法?C++ Polynomial::set怎么用?C++ Polynomial::set使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Polynomial的用法示例。


在下文中一共展示了Polynomial::set方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(int argc, char *argv[])
{   
    // ################### file IO ###################
    ifstream fin;  // for reading file 
    ofstream fout; // for writing file 
    string temp; 
    
    // argv[0] 為程式路徑,所以要讀第二個參數,也就是 argv[1]。
    if (argc == 2){  
        // 開檔 input1.txt
        fin.open(argv[1]);
    }
    // 如果沒有在 command line 輸入參數,則從程式裡面輸入。
    else{ 
        cout << "Please input file name: ";
        cin >> temp;
        // 開檔 input1.txt
        fin.open(temp.c_str()); // c_str() : string to char string
    }
    
    //­ 若開檔 input1.txt 失敗,可能是檔案不存在。
    if (fin.fail()){ 
        cout << "Fail to open file\n";
        exit(1); // 非正常結束程式
    } 

    // 建新檔 output1.txt,預設為覆蓋。
    string output_fileName = "output";
    output_fileName = output_fileName + argv[1][5] + ".txt";
    fout.open(output_fileName.c_str()); 

    //­ 若開檔 output1.txt 失敗
    if (fout.fail()){ 
        cout << "Fail to open file\n";
        exit(1); // 非正常結束程式
    }

    // ################### file parse ###################
    char m;
    char cur_operator, next_operator;
    int a, b;
    int polyNumber = 1;
    Polynomial polyResult;
    // string operator = "+";
    
    while (!fin.eof()){  //­ not End-of-file,尚未讀到結尾。
        Polynomial poly;

        // set each Polynomial block
        while(true){
            fin >> a >> b;  // '>>' 等同 get(),character by character
            poly.set(b, a); // Polynomial set()
            fin.get();      // 把換行符號吃掉。
            m = fin.get();  // 嘗試吃一個 character

            // 如果 m 是 operator 
            if( m == '+' || m == '*'){
                next_operator = m;
                break;
            }
            else if( m == EOF ){ // end-of-file
                break;
            }
            else{
                fin.putback(m);  // 呃,吃錯了,吐回去。
            }
        }

        //print every poly 寫進 output file
        fout << "Polynomial " << polyNumber << ":" << poly.getPoly() << endl;    
        fout << "Degree:"<< poly.getDegree() << endl;
        fout << "# of nonzero var: " << poly.getNonZero() << endl<< endl;

        if( polyNumber == 1 ){ 
            polyResult.add(poly);
        }
        else if( cur_operator == '+'){
            polyResult.add(poly);
        }
        else if( cur_operator == '*'){
            polyResult.multiplies(poly);
        }
        cur_operator = next_operator; 
        polyNumber++;
    } 
    //printPolyResult
    fout << "Result Polynomial:" << polyResult.getPoly() << endl;    
    fout << "Degree:"<< polyResult.getDegree() << endl;
    fout << "# of nonzero var: " << polyResult.getNonZero();

    // file close
    fin.close();
    fout.close(); 
}
开发者ID:evenchange4,项目名称:102-1_DS_PA1_Polynomial-calculator,代码行数:94,代码来源:main.cpp


注:本文中的Polynomial::set方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。