-3

我们的教授分配了这个项目,但我不知道该怎么做。通常我会自己解决,但我在同一天收到了一篇大量的英文论文,我也必须在这个周末完成。该计划将于 2013 年 11 月 12 日到期,但可以在 2013 年 11 月 19 日之前上交,但会被扣 20% 的成绩。

编写并测试一个 C++ 程序以完成以下项目:

生成用于数学问题的数字表。

向用户询问三个数字:

  • 第一个数字表示表中有多少个值(1 到 25)。
  • 第二个数字代表表中的第一个值。(-1000 到 +1000)
  • 第三个数字表示表中连续值之间的增量。(1 到 20)

迭代选定的值,从迭代中的每个值生成并保存以下派生值:

  • 正方形

  • 平方根(仅当值为正或零时,所有其他值显示“N/A”)

  • 立方体
  • 立方根(仅当值为正或零时,对所有其他值显示“N/A”)
  • 数字是偶数还是奇数
  • 数字是否为素数(根据作业 5 中的逻辑准备一个用户定义的函数)。

将计算结果保存在一组数组中,每个计算值一个数组。

计算并保存所有值后,以表格形式显示这些值,每个计算值一列,每组值一行(对应于从用户读取的第一个值)。

请注意,对于第一列中的每个负值,在平方根和立方根的列中显示“N/A”。

显示每个号码的奇/偶状态的“偶”或“奇”。为数字的素数显示“真”或“假”。

重复此过程,直到用户为表中的值数量输入零计数。

奖励:从名为triples.txt 的数据文件中读取一系列三数集,并创建一个对应于每个三数集的数字表。以逗号分隔值格式将生成的数字表保存到名为 numbers.csv 的单个文本文件中。

这是我到目前为止所拥有的:

// TABLEation.cpp : builds a table based on user input.
//


using namespace std;
double square, squareroot,cube,cuberoot;
int initialValue,display,increment;
string even,prime;
const int SIZE=25;
int Value[SIZE];

bool isEven( int integer )
{

  if ( integer % 2== 0 )
     return true;
  else
     return false;
}

bool isPrime(int testValue) {
    int divisor=0, remainder=0;

if (testValue<2) return false;
        for(divisor=2; divisor<=sqrt(testValue);divisor++){
            if((testValue % divisor)==0) return false;
            }
            return true;
        }


int _tmain()
{
    do{
        begining:
        cout<<"Enter how many values to show (1-25)."<<endl;
        cin>>display;
    if((display>0) && (display<=25)){
        cout<<"Enter an initial Value (-1000 to 1000)."<<endl;
        cin>>initialValue;
    }
    else{
        cout<<"ERRROR! INVALID INPUT!TRY AGAIN"<<endl;
        goto begining;
        }
    if ((initialValue>= -1000) && (initialValue<=1000)){
        cout<<"Enter a number to increment by (1-20)"<<endl;
        cin>>increment;
        }
    else{
        cout<<"ERRROR! INVALID INPUT!TRY AGAIN"<<endl;
        goto begining;
        }

    }
    system("pause");
    return 0;
}

我应该从这里去哪里?

4

1 回答 1

4

由于上面没有问题,我猜你希望有人给你答案,或者给你正确方向的提示。我会假装你是后者。这个问题相当简单。

Generate a table of numbers for use in a math problem.

Ask the user for three numbers: 
The first number represents how many values are to be in the table (1 to 25).
he second number represents the first value in the table. (-1000 to +1000)
The third number represents the increment between successive values in the table. (1 to 20) 

由于下面我们看到您将在循环中提出这些问题,直到第一个答案为 0,您可以构建一个函数“bool get_input(int &num_values, int &start_num, int &increment)”如果用户输入一个不在范围内的值,否则为真。现在在一个 while 循环中调用这个函数,如果 num_values 为 0 则退出。

Iterate through the selected values, generating and saving the following derived values from each value in the iteration: 

这是一个 for 循环,其中 i = start_num 并且在每次迭代中增加 i+=increment

对于 for 循环的每次迭代,您应该调用以下六个函数:

Square 

int square(int i) 返回值的平方。

Square Root (only if the value is positive or zero, display “N/A” for all other values)

bool extract_square_root(int i, float &square_root) 如果值为负,则返回 false,否则将平方根放入参考变量。

Cube

int cube(int i) 返回值的立方体。

Cube Root (only if the value is positive or zero, display “N/A” for all other values) 

bool extract_cube_root(int i, float &cube_root) -- 同上

Whether the number is even or odd

bool even_or_odd(int i) 如果值为偶数则返回 true,否则返回 false。

Whether the number is prime or not (Prepare a user-defined function based on the logic in Assignment 5)

bool prime(int i) 如果值为素数,则返回 true。(使用作业 5)。

Save the results of the calculations in a set of arrays, one array for each calculated value. 

对于每个结果,将其存储在一个数组中(square_root_array、cube_root_array 等)

After all values are calculated and saved, display the values in a tabular form with one column for each calculated value and a row for each set of values (corresponding to the first value read from the user).

调用一个函数 void display_values(float square_root_array[], ...) 遍历每个数组并根据下面列出的规则打印值:

Note that for each negative value in the first column, display “N/A” in the columns for square root and cube root.

Display “Even” or “Odd” for each number’s even/odd status.

Display “True” or “False” for the number’s prime-ness.

下一部分已经由我们的 while 循环处理。

Repeat this process until the user enters a count of zero for the number of values in the table.

我将把奖金留给你弄清楚。

Bonus: Read a series of three-number sets from a data file named triples.txt and create a table of numbers corresponding to each three-number set. Save the resulting tables of numbers to a single text file named numbers.csv in comma-separated-value format. 

祝你好运,如果您打算参加大量 CS,请习惯通宵工作。这是课程的标准。

PS 如果您遵循这些指示并查看您不确定的每个步骤如何执行,您可以在几个小时内完成这个项目。

于 2013-11-09T17:19:12.820 回答