【问题标题】:Creating a fraction list array in a class | C++在类中创建分数列表数组 | C++
【发布时间】:2014-10-01 19:53:46
【问题描述】:

我需要帮助在类中创建一个分数列表数组。 所以假设我已经有一个带有私有的分数类:分子和代姆。

所以我想在这个分数列表类中做的是

  1. 我应该能够读取包含这样一个列表的文件。 “ 22 51 3 5 11 43 34 54 ” 第一个是分子,第二个是分号,依此类推。所以它有4个分数。我希望将这 4 个分数存储在作为私有成员的数组中。最多为 20 个分数。

  2. 我应该能够将以下内容打印到输出文件或标准输出: a) 所有分数。 b)分数形式的所有分数之和(例如:分子:55,分母:82)

我真正想知道的是我的私有数据成员应该是什么?

这就是我所拥有的。

class Fractionlist
{
Private:
    Fractionlist [] Max;
    const static int MaxFraction = 30;

}

要设置哪些私有成员函数,所以我按要求做。所以基本上我需要允许我输入分数的数据成员。

【问题讨论】:

  • 写一个分数类并将分数存储在任何一个标准库容器中不是更有意义吗?此外,您显示的代码不是 C++。
  • 既然您知道每个列表有 4 个分数,请使用 Fractionlist Max[4]
  • 那么分数列表是在不同的.h 中完成的,它们都在不同的文件中,例如.cpp/.h。我不知道,那是我的任务,在不同的 .h 文件中创建一个 Fractionlist 类。

标签: c++ arrays class


【解决方案1】:

扩展 juanchopanza 的评论,您可能想要创建一个类似于这个的类:

class MyFraction
{
public:
    MyFraction(int numerator, int denominator)
    {
        _numerator = numerator;
        _denominator = denominator;
    }

    void Print()
    {
        // ...
    }

private:
    int _numerator;
    int _denominator;
};

然后从文件中读取数字并将它们存储在向量中

std::vector<MyFraction> fractionList;

最后实现两个函数

void PrintFractions(std::vector<MyFraction> fractionList);
MyFraction SumFractions(std::vector<MyFraction> fractionList);

分别打印和求和向量的内容。

【讨论】:

    【解决方案2】:

    根据你的描述,我很想用这样的东西:

    class Fraction
    {
        int numerator;
        int denominator;
    };
    
    class Fractionlist
    {
        const static int MaxFraction = 20;
    
        int number_of_fractions; // how many are in the array?
    
    private:
        Fraction list[MaxFraction]; // array of Fraction objects
    
    public:
        Fractionlist(): number_of_fractions(0) {} // list is empty when created
    
        bool add(const Fraction& f) { /* add fraction return false if too may */ }
        Fraction sum() { /* add up fractions and return */ }
    };
    

    假设您不能使用标准库容器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 2011-04-18
      • 1970-01-01
      相关资源
      最近更新 更多