请打开考生文件夹下的解决方案文件proj3,此工程包含一个源程序文件proj3.epp,其功能是从文本文件in.dat中读取全部整数,将整数序列存放到intArray类的对象myArray中,然后对整数序列按非递减排序,最后由函数writeToFile选择

admin2019-04-24  49

问题 请打开考生文件夹下的解决方案文件proj3,此工程包含一个源程序文件proj3.epp,其功能是从文本文件in.dat中读取全部整数,将整数序列存放到intArray类的对象myArray中,然后对整数序列按非递减排序,最后由函数writeToFile选择序列中的部分数据输出到文件out.dat中。文件in.dat中的整数个数不大于300个。
    要求:
    补充编制的内容写在“//************333************”与“//************666************”两行之间。实现对整数序列按非递减排序,并将排序结果在屏幕上输出。不得修改程序的其他部分。
    注意:程序最后已将结果输出到文件out.dat中。输出函数writeToFile已经给出并且调用。
    1  //proj3.cpp
    2  #include
    3  #include
    4  #include
    5  using namespace std;
    6
    7  class intArray
    8  {
    9 private:
    10    int * array;//整数序列首地址
    11    int length;//序列中的整数个数
    12 public:
    13    //构造函数,从文件中读取数据用于初始化新对象。参数是文件名
    14    intArray(char*ilename);
    15  void sort();//对整数序列按非递减排序
    16    ~intArray();
    17    void writeToFi le(char  *  filename);
    18    };
    19
    20  intArray::intArray(char  *  filename)
    2l  {
    22    ifstream myFile(filename);
    23    int len=300;
    24  array=new int[len];
    25  length=0;
    26  while(myFile>>array[length++]);
    27  length--;
    28    myFile.close();
    29  }
    30
    31 void intArray::sort(){
    32    //*************** 333***************
    33
    34    //***************666***************
    35    }
    36  intArray::~intArray()
    37  {
    38 delete[]array;
    39  }
    40
    41  void  intArray::writeToFile
    42  (char * filename)
    43    {
    44    int step=0;
    45    ofstream outFile(filename);
    46    for(int i=0;i    47    {
    48    outFile<<    49    step++;
    50    }
    5l    outFile.close();
    52    }
    53
    54  void main()
    55  {
    56    intArray myArray("in.dat");
    57  myArray.sort();
    58    myArray.writeToFile("out.dat");
    59  }

选项

答案1 for (int i=0 ; iarray[j]) //如果arrag[i]>array[j],把array[i]与array[i]进行对换 4 { 5 int temp; //定义一个临时变量temp 6 temp=array[i]; //把 array[i]值放到变量temp 7 array [i]=array[j]; //把array[j]值赋给array[i] 8 array[j]=temp; //把变量temp存放在值array[j]中 9 } 10 for(int a=0;a
解析 题目要求对整数序列按非递减排序,要排序就必须要有比较,因此定义两个下标i和j,按题目非递减排序要求,当array比array[j]大时就交换其值,利用中间变量temp来实现。
转载请注明原文地址:https://jikaoti.com/ti/jst0FFFM
0

最新回复(0)