魔方花样谜解,C++程序编写
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()
{
}
C++简单测试题共享
C++主要教学内容
章节 教学内容
1 面向对象及C++语言概述
2 C++表达式
3 程序结构
4 数组
5 指针
6 函数
7 类与对象
8 基类与派生类
9 多态性
10 流与文件
考试题型及分值
1、选择 15 * 2 共 30 分
2、填空 15 * 2 共 30 分
3、分析理解 4 * 4 共 16 分 查看更多...
简单程序上机运行及用户交互
1、利用Visual C++集成开发环境进行简单程序设计
启动 Microsoft Visual C++ 6.0 ,此时编辑区是空白的,接着可进行下面的操作:
①创建C++项目
通过文件(File)菜单的新建(New...)命令,出现下面的对话框,可用来创建一项目。此例中项目名为 Hello
②创建C++源程序文件
③输入源程序并运行
④查看生成的项目文件
⑤对项目重新编辑的方法
2、利用C++的流对象进行输入和输出
程序和用户进行交互很重要,此处进行简单的交互,对大家今后的学习很有帮助。首先看 查看更多...