使用c加加来制作一个排行榜,每次修改其数据时都会在文件中进行对应操作,该排行榜可以展示名色,昵称,积分三个属性,每次用户可以输入昵称和积分来向排行榜中加入数据,加入数据时,如果排行榜中存储数量超过十个,则删除最后一名的数据。
时间: 2024-04-17 19:28:12 浏览: 141
Wireshark视频教程.zip
下面是一个使用C++编写的示例程序,实现了一个简单的排行榜功能,可以根据用户的输入更新排行榜数据,并将数据存储在文件中。请注意,这只是一个基本示例,你可以根据自己的需求进行修改和扩展。
```cpp
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
struct Player {
std::string name;
int score;
};
bool comparePlayers(const Player& p1, const Player& p2) {
return p1.score > p2.score;
}
void addToLeaderboard(const std::string& name, int score, std::vector<Player>& leaderboard) {
Player player;
player.name = name;
player.score = score;
leaderboard.push_back(player);
std::sort(leaderboard.begin(), leaderboard.end(), comparePlayers);
if (leaderboard.size() > 10) {
leaderboard.pop_back();
}
}
void saveLeaderboardToFile(const std::vector<Player>& leaderboard, const std::string& filename) {
std::ofstream file(filename);
if (file.is_open()) {
for (const Player& player : leaderboard) {
file << player.name << " " << player.score << std::endl;
}
file.close();
std::cout << "排行榜数据已保存到文件 " << filename << " 中。" << std::endl;
} else {
std::cout << "无法打开文件 " << filename << " 进行写入操作。" << std::endl;
}
}
void displayLeaderboard(const std::vector<Player>& leaderboard) {
std::cout << "排行榜:" << std::endl;
for (const Player& player : leaderboard) {
std::cout << "昵称:" << player.name << " 积分:" << player.score << std::endl;
}
}
int main() {
std::vector<Player> leaderboard;
std::string filename = "leaderboard.txt";
// 从文件中读取排行榜数据
std::ifstream file(filename);
if (file.is_open()) {
std::string name;
int score;
while (file >> name >> score) {
addToLeaderboard(name, score, leaderboard);
}
file.close();
}
while (true) {
std::string name;
int score;
std::cout << "请输入昵称和积分(用空格分隔),输入'q'退出:";
std::cin >> name;
if (name == "q") {
break;
}
std::cin >> score;
addToLeaderboard(name, score, leaderboard);
displayLeaderboard(leaderboard);
saveLeaderboardToFile(leaderboard, filename);
}
return 0;
}
```
这个程序使用了一个 `Player` 结构体来表示玩家的信息,包括昵称和积分。`addToLeaderboard` 函数用于将玩家数据加入到排行榜中,并根据积分排序和删除超出范围的数据。`saveLeaderboardToFile` 函数用于将排行榜数据保存到文件中,`displayLeaderboard` 函数用于显示当前排行榜的内容。
在主函数中,我们首先从文件中读取已有的排行榜数据,然后进入一个循环,让用户输入昵称和积分,将数据加入排行榜,并显示当前排行榜内容,并将数据保存到文件中。用户输入'q'时退出程序。
请注意,你需要在同一目录下创建一个名为 "leaderboard.txt" 的文件来保存排行榜数据。
阅读全文