如何编写一个读取正方形整数数组的程序,并确定它是否为魔方?

时间:2011-02-10 20:21:04

标签: c++ magic-square

这是班级广场和主要功能。

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;
}

2 个答案:

答案 0 :(得分:1)

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

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

如果您有任何疑问,请发表评论。但是,如果你想要自己编写代码,那么这里没有人会为你编写代码。顺便说一下,我在这里可以互换使用方法/功能,你可以查看你想要的差异。

答案 1 :(得分:0)

关于软件的一个好方法分为四个阶段:需求,设计,编码,测试。

  1. 要求。你真的想做什么?在您的情况下,请检查Magic Squares。
  2. 设计。你想怎么做?在编写代码之前规划软件。用简单的英语(或任何语言)写出来。
  3. 编码。现在你有了一个计划,写下你的代码。
  4. 测试。测试您的软件,确保它完成您的目标。
  5. 你可以在一次小的迭代中做到这一点,关于如何解决这个问题有很多变化,但这是一个很好的方式来完成编写程序的任务。

    在你的情况下,你可以进入第2阶段。所以请花点时间思考一下Magic Square 是什么,并考虑如何去检查它。然后尝试使用您的算法并将其写入代码。