1、创建魔方类。

2、类内定义公式结构体Formula,成员有公式编号、所属层及转动公式。
公式是这样来组织的,比如:ahdhda 对应的公式为ahd-h–d–a-
或简化为: ahd-hda- ,你也可以采用其他的方式来组织你的数据结构。

3、魔方类的构造函数要能够根据formula.txt文件中的公式个数动态分配指定的内存空间并将公式信息读入到分配的内存中,析构函数要在销毁对象时释放该动态分配的内存空间。

4、编写如下成员函数,显示帮助信息,当参数为0时,使用文件操作读取文件help.txt的内容并显示帮助;当参数为1、2、3时,可使用函数system()分别直接显示help1.html、help2.html、help3.html文件的内容,注意要包含头文件<stdlib.h>。如:system(“help2.html”);
void Help(int layer=0);

5、编写如下成员函数,返回已提供的某层的公式个数,参数取值1、2、3,当为0时表示所有层的公式个数。
int getFormulaNumbers(int layer=0);

6、编写如下成员函数,返回给定公式编号的转动式,若参数为0,返回所有公式的详细信息字符串。
char *getFormula(int number=0);

7、编写如下成员函数,返回魔方向左右上下转动后的新的转动式。

原面 b h a p d g
左转 b h g d a p
右转 b h d g p a
上转 a p h b d g
下转 p a b h d g

假设:左转:1 右转:2 上转:3 下转:4,则:
Rotate(8,”113″)表示将公式8在“魔方向左转180度,向上90度”后的新的转动式。
char *Rotate(char *formula,int direction);  //函数将直接对原字符串进行修改
char *Rotate(char *formula,char* direction); //函数将直接对原字符串进行修改
char *Rotate(int number,int direction);   // 要避免破坏原转动式
char *Rotate(int number,char* direction);  // 要避免破坏原转动式

8、编写如下成员函数,返回所给公式的逆转式
char *Reverse(int number);  // 要避免破坏原转动式
char *Reverse(char *formula);// 将直接对原字符串进行修改,要有足够空间存放新的转动式

9、编写主程序,对所写魔方类进行测试,测试数据要合理完善,测试结果正确。

程序的样子看起来大致如下:

#include<iostream.h>
#include<string.h>
#include<strstrea.h>
#include<fstream.h>
#include<stdlib.h>
// 仅是参考的类原型
class mf
{
private:
char buff[500];               // 内部使用的字符数组空间
struct Formula               // 魔方类内部使用的结构体
{
int number,layer;            // 公式编号、公式所属层号
char formula[50];            // 存放具体的格式化的公式
};
Formula *p;                 // 指向转动公式数组的指针
public:
void Help(int layer=0);           // 显示指定层的转动帮助信息
int getFormulaNumbers(int layer=0);     // 返回已某层的公式个数
char *getFormula(int number=0);       // 根据公式编号返回转动式
char *Rotate(char *formula,int direction); // 所给公式在指定转动方向下的新的转动式
char *Rotate(char *formula,char* direction);// 所给公式在指定转动方向下的新的转动式
char *Rotate(int number,int direction);   // 根据公式编号及转动方向返回新的转动式
char *Rotate(int number,char* direction);  // 根据公式编号及转动方向返回新的转动式
char *Reverse(int number);         // 根据公式编号返回其相反的转动式
char *Reverse(char *formula);        // 返回所给公式相反的转动式
mf(char* file=”formula.txt”);        // 从文件中读取信息构造对象
~mf();                   // 析构函数
};

void main()
{
}