⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.h

📁 设计模式:工厂模式、单例模式的基本实现
💻 H
字号:
#ifndef _TEST_H
#define _TEST_H

#include <string>
#include <vector>
using namespace std;

#include "FileOpt.h"

const int TEST_NUM = 10; // 每套试卷最多10道题
const int TITLE_NUM = 50;
// 试题类
class CTest
{
protected:
	string m_strTitle;// 题干
	vector<string> m_arrOpt;// 选项
	vector<char> m_arrAns; // 答案
	int m_nScore; // 分数

public:
	CTest();
	~CTest();
	string GetTitle();
	int SetTitle(string strTitle);
	int GetScore();
	int SetScore(int nScore);
	int GetOpt(vector<string>& vtOpt);
	int SetOpt(vector<string>& vtOpt);
	int GetAns(vector<char>& vtAns);
	int SetAns(vector<char>& vtAns);

	void Serialize(CFileOpt& ar);
	void WriteUserFile(CFileOpt& ar); // 写入用户定义的文件
};

typedef vector<CTest*> CTestVT;

// 试卷类
class CPaper
{
protected:
	CTestVT m_vtTest;	// 最多10道题
	CTestVT::iterator m_nCurTest;		// 当前所在试题
public:
	CPaper();
	~CPaper();
	int GetTestNum();	// 获取该试卷题目数量
	int GetTotalScore();// 获取试卷题目总分数
	int IsValid();
	int AddTest();
	int DelTest();
	int MovePrev();
	int MoveNext();
	int MoveFirst();
	int MoveLast();
	int Edit(string strTitle, string strAns, string strScore, string strOptA,
		string strOptB, string strOptC, string strOptD, string strOptE, string strOptF, string strOptG);
	int GetContext(string &strTitle, string &strAns, string &strScore, string &strOptA,
		string &strOptB, string &strOptC, string &strOptD, string &strOptE, string &strOptF, string& strOptG);
	int GetTestIndex(int& nIndex);
	void Serialize(CFileOpt& ar);
	void WriteUserFile(CFileOpt& ar); // 写入用户定义的文件
};
typedef vector<CPaper*> CPaperVT;

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -