#include <iostream>
#include <string>
#include <vector>
// 参赛队的基本信息
struct Team {
int teamID; // 参赛队编号
std::string projectName; // 参赛作品名称
std::string school; // 参赛学校
std::string category; // 赛事类别
std::vector<std::string> participants; // 参赛者
std::string guideTeacher; // 指导老师
};
// 赛事管理系统
class ContestManagementSystem {
private:
std::vector<Team> teams; // 存储所有参赛队的容器
public:
// 添加参赛队伍信息
void addTeam(const Team& team) {
teams.push_back(team);
}
// 删除参赛队伍信息
void deleteTeam(int teamID) {
for (auto it = teams.begin(); it != teams.end(); ++it) {
if (it->teamID == teamID) {
teams.erase(it);
break;
}
}
}
// 修改参赛队伍信息
void modifyTeam(int teamID, const Team& newTeam) {
for (auto& team : teams) {
if (team.teamID == teamID) {
team = newTeam;
break;
}
}
}
// 获取参赛队伍数量
int getTeamCount() const {
return teams.size();
}
// 根据参赛队编号获取参赛队信息
Team getTeamByID(int teamID) const {
for (const auto& team : teams) {
if (team.teamID == teamID) {
return team;
}
}
// 如果找不到对应编号的参赛队,返回一个空的Team结构
return Team();
}
};
int main() {
ContestManagementSystem cms;
// 添加参赛队伍示例
Team team1;
team1.teamID = 1;
team1.projectName = "作品1";
team1.school = "学校1";
team1.category = "类别1";
team1.participants = {"参赛者1", "参赛者2"};
team1.guideTeacher = "指导老师1";
cms.addTeam(team1);
Team team2;
team2.teamID = 2;
team2.projectName = "作品2";
team2.school = "学校2";
team2.category = "类别2";
team2.participants = {"参赛者3", "参赛者4"};
team2.guideTeacher = "指导老师2";
cms.addTeam(team2);
// 输出参赛队伍数量
std::cout << "参赛队伍数量: " << cms.getTeamCount() << std::endl;
// 根据参赛队编号获取参赛队信息示例
int searchTeamID = 2;
Team searchTeam = cms.getTeamByID(searchTeamID);
if (searchTeam.teamID != 0) {
std::cout << "参赛队编号: " << searchTeam.teamID << std::endl;
std::cout << "作品名称: " << searchTeam.projectName << std::endl;
std::cout << "参赛学校: " << searchTeam.school << std::endl;
std::cout << "赛事类别: " << searchTeam.category << std::endl;
std::cout << "参赛者: ";
for (const auto& participant : searchTeam.participants) {
std::cout << participant << " ";
}
std::cout << std::endl;
std::cout << "指导老师: " << searchTeam.guideTeacher << std::endl;
} else {
std::cout << "找不到该参赛队伍" << std::endl;
}
return 0;
}
这个代码展示了如何创建一个赛事管理系统,并实现了添加、删除、修改参赛队伍的功能。
#include <iostream>
#include <string>
#include <vector>
// 参赛队的基本信息
struct Team {
int teamID; // 参赛队编号
std::string projectName; // 参赛作品名称
std::string school; // 参赛学校
std::string category; // 赛事类别
std::vector<std::string> participants; // 参赛者
std::string guideTeacher; // 指导老师
};
// 赛事管理系统
class ContestManagementSystem {
private:
std::vector<Team> teams; // 存储所有参赛队的容器
public:
// 添加参赛队伍信息
void addTeam(const Team& team) {
teams.push_back(team);
}
// 删除参赛队伍信息
void deleteTeam(int teamID) {
for (auto it = teams.begin(); it != teams.end(); ++it) {
if (it->teamID == teamID) {
teams.erase(it);
break;
}
}
}
// 修改参赛队伍信息
void modifyTeam(int teamID, const Team& newTeam) {
for (auto& team : teams) {
if (team.teamID == teamID) {
team = newTeam;
break;
}
}
}
// 获取参赛队伍数量
int getTeamCount() const {
return teams.size();
}
// 根据参赛队编号获取参赛队信息
Team getTeamByID(int teamID) const {
for (const auto& team : teams) {
if (team.teamID == teamID) {
return team;
}
}
// 如果找不到对应编号的参赛队,返回一个空的Team结构
return Team();
}
// 显示所有参赛队伍信息
void displayAllTeams() const {
for (const auto& team : teams) {
displayTeam(team);
}
}
// 显示参赛队伍信息
void displayTeam(const Team& team) const {
std::cout << "参赛队编号: " << team.teamID << std::endl;
std::cout << "作品名称: " << team.projectName << std::endl;
std::cout << "参赛学校: " << team.school << std::endl;
std::cout << "赛事类别: " << team.category << std::endl;
std::cout << "参赛者: ";
for (const auto& participant : team.participants) {
std::cout << participant << " ";
}
std::cout << std::endl;
std::cout << "指导老师: " << team.guideTeacher << std::endl;
std::cout << std::endl;
}
};
int main() {
ContestManagementSystem cms;
// 添加参赛队伍示例
Team team1;
team1.teamID = 1;
team1.projectName = "作品1";
team1.school = "学校1";
team1.category = "类别1";
team1.participants = {"参赛者1", "参赛者2"};
team1.guideTeacher = "指导老师1";
cms.addTeam(team1);
Team team2;
team2.teamID = 2;
team2.projectName = "作品2";
team2.school = "学校2";
team2.category = "类别2";
team2.participants = {"参赛者3", "参赛者4"};
team2.guideTeacher = "指导老师2";
cms.addTeam(team2);
// 输出参赛队伍数量
std::cout << "参赛队伍数量: " << cms.getTeamCount() << std::endl;
// 根据参赛队编号获取参赛队信息示例
int searchTeamID = 2;
Team searchTeam = cms.getTeamByID(searchTeamID);
if (searchTeam.teamID != 0) {
cms.displayTeam(searchTeam);
} else {
std::cout << "找不到该参赛队伍" << std::endl;
}
// 显示所有参赛队伍信息
std::cout << "所有参赛队伍信息:" << std::endl;
cms.displayAllTeams();
// 修改参赛队伍信息示例
int modifyTeamID = 1;
Team newTeam;
newTeam.teamID = modifyTeamID;
newTeam.projectName = "新作品";
newTeam.school = "新学校";
newTeam.category = "新类别";
newTeam.participants = {"新参赛者1", "新参赛者2"};
newTeam.guideTeacher = "新指导老师";
cms.modifyTeam(modifyTeamID, newTeam);
// 删除参赛队伍示例
int deleteTeamID = 2;
cms.deleteTeam(deleteTeamID);
// 显示修改和删除后的参赛队伍信息
std::cout << "修改和删除后的参赛队伍信息:" << std::endl;
cms.displayAllTeams();
return 0;
}
在上面的代码中,新增了以下功能:
displayAllTeams()
:用于显示所有参赛队伍的信息。displayTeam(const Team& team)
:用于显示单个参赛队伍的信息。modifyTeam(int teamID, const Team& newTeam)
:用于修改指定参赛队伍的信息。deleteTeam(int teamID)
:用于删除指定参赛队伍的信息。