@ -0,0 +1,3 @@
|
||||
{
|
||||
"CurrentProjectSetting": "无配置"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
{
|
||||
"ExpandedNodes": [
|
||||
""
|
||||
],
|
||||
"SelectedNode": "\\doc",
|
||||
"PreviewInSolutionExplorer": false
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,45 @@
|
||||
#include "FileManager.h"
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <ctime>
|
||||
#include <cstdlib>
|
||||
#include <direct.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
FileManager::FileManager() {}
|
||||
|
||||
bool FileManager::saveQuestions(const vector<string>& questions, const string& username, const UserType& type) {
|
||||
string filename = username + "_" + getCurrentTimestamp() + ".txt";
|
||||
|
||||
ofstream file(filename.c_str());
|
||||
if (!file.is_open()) {
|
||||
cout << "无法创建文件: " << filename << endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < questions.size(); i++) {
|
||||
file << (i + 1) << ". " << questions[i] << endl;
|
||||
if (i < questions.size() - 1) {
|
||||
file << endl;
|
||||
}
|
||||
}
|
||||
|
||||
file.close();
|
||||
cout << "题目已保存到: " << filename << endl;
|
||||
return true;
|
||||
}
|
||||
|
||||
vector<string> FileManager::loadExistingQuestions(const string& username) {
|
||||
return vector<string>();
|
||||
}
|
||||
|
||||
string FileManager::getCurrentTimestamp() const {
|
||||
time_t now = time(NULL);
|
||||
struct tm* tstruct = localtime(&now);
|
||||
|
||||
char buf[80];
|
||||
strftime(buf, sizeof(buf), "%Y-%m-%d-%H-%M-%S", tstruct);
|
||||
|
||||
return string(buf);
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
#ifndef FILEMANAGER_H
|
||||
#define FILEMANAGER_H
|
||||
|
||||
#include "IFileManager.h"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class FileManager : public IFileManager {
|
||||
public:
|
||||
FileManager();
|
||||
virtual ~FileManager() {}
|
||||
|
||||
virtual bool saveQuestions(const std::vector<std::string>& questions, const std::string& username, const UserType& type);
|
||||
virtual std::vector<std::string> loadExistingQuestions(const std::string& username);
|
||||
|
||||
private:
|
||||
std::string getCurrentTimestamp() const;
|
||||
};
|
||||
|
||||
#endif
|
||||
Binary file not shown.
@ -0,0 +1,15 @@
|
||||
#ifndef IFILEMANAGER_H
|
||||
#define IFILEMANAGER_H
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "UserType.h"
|
||||
|
||||
class IFileManager {
|
||||
public:
|
||||
virtual ~IFileManager() {}
|
||||
virtual bool saveQuestions(const std::vector<std::string>& questions, const std::string& username, const UserType& type) = 0;
|
||||
virtual std::vector<std::string> loadExistingQuestions(const std::string& username) = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,15 @@
|
||||
#ifndef IQUESTIONGENERATOR_H
|
||||
#define IQUESTIONGENERATOR_H
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "UserType.h"
|
||||
|
||||
class IQuestionGenerator {
|
||||
public:
|
||||
virtual ~IQuestionGenerator() {}
|
||||
virtual std::vector<std::string> generateQuestions(const UserType& type, int count, const std::string& username) = 0;
|
||||
virtual void addExistingQuestions(const std::vector<std::string>& questions) = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,18 @@
|
||||
#ifndef IUSERMANAGER_H
|
||||
#define IUSERMANAGER_H
|
||||
|
||||
#include <string>
|
||||
#include "UserType.h"
|
||||
|
||||
class IUserManager {
|
||||
public:
|
||||
virtual ~IUserManager() {}
|
||||
|
||||
virtual bool authenticate(const std::string& username, const std::string& password) = 0;
|
||||
virtual UserType getCurrentUserType() const = 0;
|
||||
virtual std::string getCurrentUsername() const = 0;
|
||||
virtual void logout() = 0;
|
||||
virtual bool isLoggedIn() const = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,49 @@
|
||||
# Project: ÏîÄ¿1
|
||||
# Makefile created by Dev-C++ 5.11
|
||||
|
||||
CPP = g++.exe
|
||||
CC = gcc.exe
|
||||
WINDRES = windres.exe
|
||||
OBJ = QuestionGenerator.o UserManager.o User.o UserType.o FileManager.o main.o QuestionChecker.o SessionManager.o
|
||||
LINKOBJ = QuestionGenerator.o UserManager.o User.o UserType.o FileManager.o main.o QuestionChecker.o SessionManager.o
|
||||
LIBS = -L"D:/³ÌÐòÉè¼Æ/Dev-Cpp/MinGW64/lib" -L"D:/³ÌÐòÉè¼Æ/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc
|
||||
INCS = -I"D:/³ÌÐòÉè¼Æ/Dev-Cpp/MinGW64/include" -I"D:/³ÌÐòÉè¼Æ/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"D:/³ÌÐòÉè¼Æ/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include"
|
||||
CXXINCS = -I"D:/³ÌÐòÉè¼Æ/Dev-Cpp/MinGW64/include" -I"D:/³ÌÐòÉè¼Æ/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"D:/³ÌÐòÉè¼Æ/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"D:/³ÌÐòÉè¼Æ/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++"
|
||||
BIN = test.exe
|
||||
CXXFLAGS = $(CXXINCS)
|
||||
CFLAGS = $(INCS)
|
||||
RM = rm.exe -f
|
||||
|
||||
.PHONY: all all-before all-after clean clean-custom
|
||||
|
||||
all: all-before $(BIN) all-after
|
||||
|
||||
clean: clean-custom
|
||||
${RM} $(OBJ) $(BIN)
|
||||
|
||||
$(BIN): $(OBJ)
|
||||
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
|
||||
|
||||
QuestionGenerator.o: QuestionGenerator.cpp
|
||||
$(CPP) -c QuestionGenerator.cpp -o QuestionGenerator.o $(CXXFLAGS)
|
||||
|
||||
UserManager.o: UserManager.cpp
|
||||
$(CPP) -c UserManager.cpp -o UserManager.o $(CXXFLAGS)
|
||||
|
||||
User.o: User.cpp
|
||||
$(CPP) -c User.cpp -o User.o $(CXXFLAGS)
|
||||
|
||||
UserType.o: UserType.cpp
|
||||
$(CPP) -c UserType.cpp -o UserType.o $(CXXFLAGS)
|
||||
|
||||
FileManager.o: FileManager.cpp
|
||||
$(CPP) -c FileManager.cpp -o FileManager.o $(CXXFLAGS)
|
||||
|
||||
main.o: main.cpp
|
||||
$(CPP) -c main.cpp -o main.o $(CXXFLAGS)
|
||||
|
||||
QuestionChecker.o: QuestionChecker.cpp
|
||||
$(CPP) -c QuestionChecker.cpp -o QuestionChecker.o $(CXXFLAGS)
|
||||
|
||||
SessionManager.o: SessionManager.cpp
|
||||
$(CPP) -c SessionManager.cpp -o SessionManager.o $(CXXFLAGS)
|
||||
@ -0,0 +1,34 @@
|
||||
#include "QuestionChecker.h"
|
||||
#include <iostream>
|
||||
|
||||
QuestionChecker::QuestionChecker(IFileManager* file_manager)
|
||||
: file_manager_(file_manager) {}
|
||||
|
||||
bool QuestionChecker::isDuplicate(const std::string& question, const std::string& username) {
|
||||
// ¼ì²é±¾´Î»á»°ÊÇ·ñÖØ¸´
|
||||
if (current_session_questions_.find(question) != current_session_questions_.end()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
std::vector<std::string> history_questions = file_manager_->loadExistingQuestions(username);
|
||||
for (std::vector<std::string>::iterator it = history_questions.begin();
|
||||
it != history_questions.end(); ++it) {
|
||||
if (*it == question) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void QuestionChecker::addGeneratedQuestion(const std::string& question, const std::string& username) {
|
||||
current_session_questions_.insert(question);
|
||||
}
|
||||
|
||||
void QuestionChecker::clearUserCache(const std::string& username) {
|
||||
current_session_questions_.clear();
|
||||
}
|
||||
|
||||
int QuestionChecker::getUserQuestionCount(const std::string& username) const {
|
||||
return current_session_questions_.size();
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
#ifndef QUESTIONCHECKER_H
|
||||
#define QUESTIONCHECKER_H
|
||||
|
||||
#include <string>
|
||||
#include <set>
|
||||
#include <vector>
|
||||
#include "IFileManager.h"
|
||||
|
||||
class QuestionChecker {
|
||||
public:
|
||||
QuestionChecker(IFileManager* file_manager);
|
||||
|
||||
bool isDuplicate(const std::string& question, const std::string& username);
|
||||
void addGeneratedQuestion(const std::string& question, const std::string& username);
|
||||
void clearUserCache(const std::string& username);
|
||||
int getUserQuestionCount(const std::string& username) const;
|
||||
|
||||
private:
|
||||
IFileManager* file_manager_;
|
||||
std::set<std::string> current_session_questions_;
|
||||
};
|
||||
|
||||
#endif
|
||||
Binary file not shown.
@ -0,0 +1,103 @@
|
||||
#include "QuestionGenerator.h"
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <ctime>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
QuestionGenerator::QuestionGenerator() {
|
||||
srand(static_cast<unsigned int>(time(NULL)));
|
||||
}
|
||||
|
||||
vector<string> QuestionGenerator::generateQuestions(const UserType& type, int count, const string& username) {
|
||||
vector<string> questions;
|
||||
|
||||
for (int i = 0; i < count; ) {
|
||||
string question;
|
||||
|
||||
if (type == UserType::PRIMARY) {
|
||||
question = generatePrimaryQuestion();
|
||||
} else if (type == UserType::JUNIOR) {
|
||||
question = generateJuniorQuestion();
|
||||
} else if (type == UserType::SENIOR) {
|
||||
question = generateSeniorQuestion();
|
||||
}
|
||||
|
||||
// 查重:检查是否已存在
|
||||
if (existingQuestions.find(question) == existingQuestions.end()) {
|
||||
questions.push_back(question);
|
||||
existingQuestions.insert(question);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
return questions;
|
||||
}
|
||||
|
||||
void QuestionGenerator::addExistingQuestions(const vector<string>& questions) {
|
||||
for (size_t i = 0; i < questions.size(); i++) {
|
||||
existingQuestions.insert(questions[i]);
|
||||
}
|
||||
}
|
||||
|
||||
string QuestionGenerator::generatePrimaryQuestion() {
|
||||
int operandCount = 2 + rand() % 3; // 2-4个操作数
|
||||
stringstream ss;
|
||||
|
||||
for (int i = 0; i < operandCount; i++) {
|
||||
ss << (rand() % 100 + 1);
|
||||
if (i < operandCount - 1) {
|
||||
char ops[] = {'+', '-', '*', '/'};
|
||||
ss << " " << ops[rand() % 4] << " ";
|
||||
}
|
||||
}
|
||||
ss << " = ";
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
string QuestionGenerator::generateJuniorQuestion() {
|
||||
stringstream ss;
|
||||
|
||||
// 确保至少有一个平方或开根号
|
||||
if (rand() % 2 == 0) {
|
||||
ss << (rand() % 20 + 1) << "的平方";
|
||||
} else {
|
||||
ss << "根号" << (rand() % 100 + 1);
|
||||
}
|
||||
|
||||
// 可能添加普通运算
|
||||
if (rand() % 2 == 0) {
|
||||
char ops[] = {'+', '-', '*', '/'};
|
||||
ss << " " << ops[rand() % 4] << " " << (rand() % 100 + 1);
|
||||
}
|
||||
|
||||
ss << " = ";
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
string QuestionGenerator::generateSeniorQuestion() {
|
||||
stringstream ss;
|
||||
|
||||
// 确保至少有一个三角函数
|
||||
const char* trig[] = {"sin", "cos", "tan"};
|
||||
ss << trig[rand() % 3] << "(" << (rand() % 100) << "度)";
|
||||
|
||||
// 可能添加普通运算
|
||||
if (rand() % 2 == 0) {
|
||||
char ops[] = {'+', '-', '*', '/'};
|
||||
ss << " " << ops[rand() % 4] << " " << (rand() % 100 + 1);
|
||||
}
|
||||
|
||||
ss << " = ";
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
int QuestionGenerator::getRandomNumber(int min, int max) {
|
||||
return rand() % (max - min + 1) + min;
|
||||
}
|
||||
|
||||
char QuestionGenerator::getRandomOperator() {
|
||||
char operators[] = {'+', '-', '*', '/'};
|
||||
return operators[rand() % 4];
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
#ifndef QUESTIONGENERATOR_H
|
||||
#define QUESTIONGENERATOR_H
|
||||
|
||||
#include "IQuestionGenerator.h"
|
||||
#include <set>
|
||||
#include <string>
|
||||
|
||||
class QuestionGenerator : public IQuestionGenerator {
|
||||
public:
|
||||
QuestionGenerator();
|
||||
virtual ~QuestionGenerator() {}
|
||||
|
||||
virtual std::vector<std::string> generateQuestions(const UserType& type, int count, const std::string& username);
|
||||
virtual void addExistingQuestions(const std::vector<std::string>& questions);
|
||||
|
||||
private:
|
||||
std::string generatePrimaryQuestion();
|
||||
std::string generateJuniorQuestion();
|
||||
std::string generateSeniorQuestion();
|
||||
int getRandomNumber(int min, int max);
|
||||
char getRandomOperator();
|
||||
|
||||
std::set<std::string> existingQuestions;
|
||||
};
|
||||
|
||||
#endif
|
||||
Binary file not shown.
@ -0,0 +1,30 @@
|
||||
#ifndef SESSIONMANAGER_H
|
||||
#define SESSIONMANAGER_H
|
||||
|
||||
#include <string>
|
||||
#include "UserType.h"
|
||||
#include "IUserManager.h"
|
||||
#include "IQuestionGenerator.h"
|
||||
#include "QuestionChecker.h"
|
||||
|
||||
class SessionManager {
|
||||
public:
|
||||
SessionManager(IUserManager* user_manager, IQuestionGenerator* question_generator, QuestionChecker* question_checker);
|
||||
|
||||
bool switchUserType(const std::string& target_type);
|
||||
UserType getCurrentUserType() const;
|
||||
std::string getCurrentUsername() const;
|
||||
bool isLoggedIn() const;
|
||||
bool login(const std::string& username, const std::string& password);
|
||||
void logout();
|
||||
std::vector<std::string> generateQuestions(int count);
|
||||
|
||||
private:
|
||||
IUserManager* user_manager_;
|
||||
IQuestionGenerator* question_generator_;
|
||||
QuestionChecker* question_checker_;
|
||||
UserType current_type_;
|
||||
bool type_switched_;
|
||||
};
|
||||
|
||||
#endif
|
||||
Binary file not shown.
@ -0,0 +1,8 @@
|
||||
#include "User.h"
|
||||
|
||||
User::User(const std::string& username, const std::string& password, const UserType& type)
|
||||
: username(username), password(password), type(type) {}
|
||||
|
||||
bool User::authenticate(const std::string& inputPassword) const {
|
||||
return password == inputPassword;
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
#ifndef USER_H
|
||||
#define USER_H
|
||||
|
||||
#include <string>
|
||||
#include "UserType.h"
|
||||
|
||||
class User {
|
||||
public:
|
||||
User(const std::string& username, const std::string& password, const UserType& type);
|
||||
|
||||
std::string getUsername() const { return username; }
|
||||
std::string getPassword() const { return password; }
|
||||
UserType getType() const { return type; }
|
||||
|
||||
bool authenticate(const std::string& inputPassword) const;
|
||||
|
||||
private:
|
||||
std::string username;
|
||||
std::string password;
|
||||
UserType type;
|
||||
};
|
||||
|
||||
#endif
|
||||
Binary file not shown.
@ -0,0 +1,53 @@
|
||||
#include "UserManager.h"
|
||||
#include <iostream>
|
||||
|
||||
UserManager::UserManager() : currentUser(NULL), loggedIn(false) {
|
||||
initializeUsers();
|
||||
}
|
||||
|
||||
void UserManager::initializeUsers() {
|
||||
presetUsers.push_back(User("张三1", "123", UserType::PRIMARY));
|
||||
presetUsers.push_back(User("张三2", "123", UserType::PRIMARY));
|
||||
presetUsers.push_back(User("张三3", "123", UserType::PRIMARY));
|
||||
presetUsers.push_back(User("李四1", "123", UserType::JUNIOR));
|
||||
presetUsers.push_back(User("李四2", "123", UserType::JUNIOR));
|
||||
presetUsers.push_back(User("李四3", "123", UserType::JUNIOR));
|
||||
presetUsers.push_back(User("王五1", "123", UserType::SENIOR));
|
||||
presetUsers.push_back(User("王五2", "123", UserType::SENIOR));
|
||||
presetUsers.push_back(User("王五3", "123", UserType::SENIOR));
|
||||
}
|
||||
|
||||
bool UserManager::authenticate(const std::string& username, const std::string& password) {
|
||||
for (size_t i = 0; i < presetUsers.size(); i++) {
|
||||
if (presetUsers[i].getUsername() == username &&
|
||||
presetUsers[i].authenticate(password)) {
|
||||
currentUser = &presetUsers[i];
|
||||
loggedIn = true;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
UserType UserManager::getCurrentUserType() const {
|
||||
if (currentUser) {
|
||||
return currentUser->getType();
|
||||
}
|
||||
return UserType::PRIMARY;
|
||||
}
|
||||
|
||||
std::string UserManager::getCurrentUsername() const {
|
||||
if (currentUser) {
|
||||
return currentUser->getUsername();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
void UserManager::logout() {
|
||||
currentUser = NULL;
|
||||
loggedIn = false;
|
||||
}
|
||||
|
||||
bool UserManager::isLoggedIn() const {
|
||||
return loggedIn;
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
#ifndef USERMANAGER_H
|
||||
#define USERMANAGER_H
|
||||
|
||||
#include "IUserManager.h"
|
||||
#include <vector>
|
||||
#include "User.h"
|
||||
|
||||
class UserManager : public IUserManager {
|
||||
public:
|
||||
UserManager();
|
||||
virtual ~UserManager() {}
|
||||
|
||||
virtual bool authenticate(const std::string& username, const std::string& password);
|
||||
virtual UserType getCurrentUserType() const;
|
||||
virtual std::string getCurrentUsername() const;
|
||||
virtual void logout();
|
||||
virtual bool isLoggedIn() const;
|
||||
|
||||
private:
|
||||
std::vector<User> presetUsers;
|
||||
const User* currentUser;
|
||||
bool loggedIn;
|
||||
|
||||
void initializeUsers();
|
||||
};
|
||||
|
||||
#endif
|
||||
Binary file not shown.
@ -0,0 +1,5 @@
|
||||
#include "UserType.h"
|
||||
|
||||
const UserType UserType::PRIMARY(0, "小学");
|
||||
const UserType UserType::JUNIOR(1, "初中");
|
||||
const UserType UserType::SENIOR(2, "高中");
|
||||
@ -0,0 +1,28 @@
|
||||
#ifndef USERTYPE_H
|
||||
#define USERTYPE_H
|
||||
|
||||
#include <string>
|
||||
|
||||
class UserType {
|
||||
public:
|
||||
static const UserType PRIMARY;
|
||||
static const UserType JUNIOR;
|
||||
static const UserType SENIOR;
|
||||
|
||||
UserType() : value(-1), name("δ֪") {} // Ìí¼ÓĬÈϹ¹Ô캯Êý
|
||||
UserType(const UserType& other) : value(other.value), name(other.name) {}
|
||||
|
||||
std::string getName() const { return name; }
|
||||
int getValue() const { return value; }
|
||||
|
||||
bool operator==(const UserType& other) const { return value == other.value; }
|
||||
bool operator!=(const UserType& other) const { return value != other.value; }
|
||||
|
||||
private:
|
||||
UserType(int val, const std::string& n) : value(val), name(n) {}
|
||||
|
||||
int value;
|
||||
std::string name;
|
||||
};
|
||||
|
||||
#endif
|
||||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,232 @@
|
||||
[Project]
|
||||
FileName=test.dev
|
||||
Name=ÏîÄ¿1
|
||||
Type=1
|
||||
Ver=2
|
||||
ObjFiles=
|
||||
Includes=
|
||||
Libs=
|
||||
PrivateResource=
|
||||
ResourceIncludes=
|
||||
MakeIncludes=
|
||||
Compiler=
|
||||
CppCompiler=
|
||||
Linker=
|
||||
IsCpp=1
|
||||
Icon=
|
||||
ExeOutput=
|
||||
ObjectOutput=
|
||||
LogOutput=
|
||||
LogOutputEnabled=0
|
||||
OverrideOutput=0
|
||||
OverrideOutputName=
|
||||
HostApplication=
|
||||
UseCustomMakefile=0
|
||||
CustomMakefile=
|
||||
CommandLine=
|
||||
Folders=
|
||||
IncludeVersionInfo=0
|
||||
SupportXPThemes=0
|
||||
CompilerSet=0
|
||||
CompilerSettings=0000000000000000000000000
|
||||
UnitCount=18
|
||||
|
||||
[VersionInfo]
|
||||
Major=1
|
||||
Minor=0
|
||||
Release=0
|
||||
Build=0
|
||||
LanguageID=1033
|
||||
CharsetID=1252
|
||||
CompanyName=
|
||||
FileVersion=
|
||||
FileDescription=Developed using the Dev-C++ IDE
|
||||
InternalName=
|
||||
LegalCopyright=
|
||||
LegalTrademarks=
|
||||
OriginalFilename=
|
||||
ProductName=
|
||||
ProductVersion=
|
||||
AutoIncBuildNr=0
|
||||
SyncProduct=1
|
||||
|
||||
[Unit8]
|
||||
FileName=UserType.h
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit7]
|
||||
FileName=UserType.cpp
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit6]
|
||||
FileName=User.h
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit5]
|
||||
FileName=User.cpp
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit4]
|
||||
FileName=UserManager.h
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit3]
|
||||
FileName=UserManager.cpp
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit2]
|
||||
FileName=QuestionGenerator.h
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit1]
|
||||
FileName=QuestionGenerator.cpp
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit9]
|
||||
FileName=FileManager.h
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit10]
|
||||
FileName=FileManager.cpp
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit11]
|
||||
FileName=main.cpp
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit12]
|
||||
FileName=IQuestionGenerator.h
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit13]
|
||||
FileName=IFileManager.h
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit14]
|
||||
FileName=IUserManager.h
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit15]
|
||||
FileName=QuestionChecker.h
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit16]
|
||||
FileName=QuestionChecker.cpp
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit17]
|
||||
FileName=SessionManager.h
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
[Unit18]
|
||||
FileName=SessionManager.cpp
|
||||
CompileCpp=1
|
||||
Folder=
|
||||
Compile=1
|
||||
Link=1
|
||||
Priority=1000
|
||||
OverrideBuildCmd=0
|
||||
BuildCmd=
|
||||
|
||||
Binary file not shown.
@ -0,0 +1,93 @@
|
||||
[Editors]
|
||||
Order=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
|
||||
Focused=17
|
||||
[Editor_0]
|
||||
CursorCol=5
|
||||
CursorRow=61
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_1]
|
||||
CursorCol=7
|
||||
CursorRow=26
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_2]
|
||||
CursorCol=2
|
||||
CursorRow=53
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_3]
|
||||
CursorCol=7
|
||||
CursorRow=27
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_4]
|
||||
CursorCol=2
|
||||
CursorRow=8
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_5]
|
||||
CursorCol=7
|
||||
CursorRow=23
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_6]
|
||||
CursorCol=44
|
||||
CursorRow=5
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_7]
|
||||
CursorCol=3
|
||||
CursorRow=26
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_8]
|
||||
CursorCol=7
|
||||
CursorRow=20
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_9]
|
||||
CursorCol=76
|
||||
CursorRow=33
|
||||
TopLine=3
|
||||
LeftChar=1
|
||||
[Editor_10]
|
||||
CursorCol=2
|
||||
CursorRow=190
|
||||
TopLine=158
|
||||
LeftChar=1
|
||||
[Editor_11]
|
||||
CursorCol=7
|
||||
CursorRow=15
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_12]
|
||||
CursorCol=7
|
||||
CursorRow=15
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_13]
|
||||
CursorCol=7
|
||||
CursorRow=18
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_16]
|
||||
CursorCol=7
|
||||
CursorRow=30
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_17]
|
||||
CursorCol=1
|
||||
CursorRow=12
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_15]
|
||||
CursorCol=1
|
||||
CursorRow=23
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
[Editor_14]
|
||||
CursorCol=7
|
||||
CursorRow=23
|
||||
TopLine=1
|
||||
LeftChar=1
|
||||
Binary file not shown.
Loading…
Reference in new issue