设为首页 加入收藏

TOP

C++项目实战之演讲比赛流程管理系统(七)
2023-08-26 21:10:35 】 浏览:290
Tags:项目实 程管理
:endl; system("pause"); system("cls"); }

至此本案例结束!

源代码及文件结构

├─头文件
│      speaker.h
│      speechManager.h
│
├─源文件
│      main.cpp
│      speechManager.cpp

1. 演讲者类 - Speaker

speaker.h

#pragma once
#include <iostream>

class Speaker
{
public:
	std::string m_Name;		//选手姓名
	double m_Score[2];		//选手分数,至多存放两轮
};

2. 演讲比赛管理类 - SpeechManager

speechManager.h

#pragma once
#include <iostream>
#include <vector>
#include <map>
#include <deque>
#include <algorithm>
#include <numeric>
#include <functional>
#include <fstream>
#include "speaker.h"

class SpeechManager
{
public:
	//容器1: 存放12位选手的编号
	std::vector<int> v1;

	//容器2: 存放6位选手的编号
	std::vector<int> v2;

	//容器3: 存放3位选手的编号
	std::vector<int> v_Victory;

	//容器4: 存放Speaker的编号和对应的选手
	std::map<int, Speaker> m_Speaker;

	//文件为空的标志
	bool fileIsEmpty;

	//往届记录
	std::map<int, std::vector<std::string>> m_Record;

	//比赛轮数
	int m_Round;

	//构造函数
	SpeechManager();

	//菜单界面
	void show_Menu();

	//初始化容器
	void initSpeaker();

	//创建选手
	void createSpeaker();

	//抽签
	void speechDraw();

	//打分
	void speechContest();

	//显示分数
	void showScore();

	//保存比赛分数
	void saveRecord();

	//读取记录
	void loadRecord();

	//读取往届信息
	void showRecord();

	//开始比赛
	void startSpeech();

	//清空文件
	void clearRecord();

	//退出界面
	void exitSystem();

	//析构函数
	~SpeechManager();
};

speechManager.cpp

#include "speechManager.h"

SpeechManager::SpeechManager()
{
	//初始化
	this->initSpeaker();

	//创建选手
	this->createSpeaker();

	//查看往届记录
	this->loadRecord();
}

void SpeechManager::show_Menu()
{
	std::cout << "********************************************" << std::endl;
	std::cout << "*************  欢迎参加演讲比赛 ************" << std::endl;
	std::cout << "*************  1.开始演讲比赛  *************" << std::endl;
	std::cout << "*************  2.查看往届记录  *************" << std::endl;
	std::cout << "*************  3.清空比赛记录  *************" << std::endl;
	std::cout << "*************  0.退出比赛程序  *************" << std::endl;
	std::cout << "********************************************" << std::endl;
	std::cout << std::endl;
}

void SpeechManager::initSpeaker()
{
	//清空容器
	this->v1.clear();
	this->v2.clear();
	this->v_Victory.clear();
	this->m_Speaker.clear();
	this->m_Record.clear();

	//第一轮比赛
	this->m_Round = 1;
}

void SpeechManager::exitSystem()
{
	std::cout << "~欢迎下次使用~" << std::endl;
	system("pause");
	exit(0);
}

void SpeechManager::createSpeaker()
{
	std::string nameSeed = "ABCDEFGHIJKL";
	for (int i = 0; i < nameSeed.size(); i++)
	{
		//初始化选手中的属性
		Speaker sp;
		sp.m_Name = "选手";
		sp.m_Name += nameSeed[i];
		for (int j = 0; j < 2; j++)
		{
			sp.m_Score[j] = 0;
		}

		//将初始化后的选手放入容器中
		this->v1.push_back(i + 1000);
		this->m_Speaker.insert(std::pair<int, Speaker>(i + 1000, sp));
	}
}

void SpeechManager::speechDraw()
{
	std::cout << "第" <<
首页 上一页 4 5 6 7 8 9 下一页 尾页 7/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇【Qt6】QWidgetAction 的使用 下一篇9.1 C++ STL 排序、算数与集合

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目