0

这是类广场和主要功能。

const int max_size = 9;
class Square {
   public:
      void read();     //the square data is read
      bool is_magic();     // determin if the given square is a magic square
   private:
      int sum_row(int i);     // returns the row sum of the ith row
      int sum_col(int i);      // returns the col sum of the ith row
      int sum_maindiag();   // returns the main the main diagonal sum
      int sum_other();     // returns the non-main diagonal sum
      int size;
      int grid[max_size][max_size];
};
void main()
{
      cout << "Magic Square Program" << endl << endl;
      cout << "Enter a square of integers:" << endl;
      Square s;
      s.read();
      if (s.is_magic()) cout << "That square is magic!" << endl;
      else cout << "That square is not magic." << endl;
}
4

2 回答 2

1

所以基本上你必须编写和实现 Square 类。您详细介绍的那个有两个公共方法,这意味着可以在任何地方调用这些方法。因此,在您的 main 中,您调用 s.read() 方法和 s.is_magic() 来访问该类。因此,您声明 Square 的一个实例并将其称为 s,然后使用 s.read() 在 s 中调用 read() 方法,该方法是 square 类的实例。

您在 square 类中有一堆私有函数来帮助编写它。私有函数是只能在该类中调用的函数。因此,首先在 square 类中创建 read 方法。您应该使用 sum_row() 和 sum_col() 等辅助函数来帮助编写读取函数。此外,像大小这样的私有类变量也可以在类内的函数中使用。

如果您有任何问题,请发表评论。但是,如果您想摆脱自己编写代码的束缚,那么这里没有人会为您编写代码。顺便说一句,我在这里交替使用了方法/函数,如果你愿意,你可以看看有什么区别。

于 2011-02-10T20:53:19.940 回答
0

处理软件的一个好方法是分为 4 个阶段:需求、设计、编码、测试。

  1. 要求。你真正想做的是什么?在您的情况下,请检查 Magic Squares。
  2. 设计。你想怎么做?在编写代码之前规划您的软件。用简单的英语(或任何语言)写出来。
  3. 编码。现在你有了一个计划,写你的代码。
  4. 测试。测试您的软件以确保它完成您的计划。

您可以一次完成小迭代,关于如何执行此操作有很多变化,但这是处理编写程序任务的好方法。

在你的情况下,你已经到了第 2 阶段。所以花点时间想想什么是魔方想想如何去检查它。然后尝试采用您的算法并将其写入代码。

于 2011-02-10T20:55:42.103 回答