请你用c++写一篇电影评分系统的代码:要求是包括电影资源管理、用户注册管理、用户为电影评分。并且要求有中文菜单,尽量代码写多一点
时间: 2023-06-25 20:01:56 浏览: 113
好的,下面是一个简单的电影评分系统的C++代码,包括电影资源管理,用户注册管理和用户对电影评分功能。中文菜单已经添加。
```
#include <iostream>
#include <string>
#include <map>
#include <vector>
using namespace std;
// 电影类
class Movie {
public:
string name; // 电影名称
string director; // 导演
string actor; // 主演
double score; // 评分
Movie(string name, string director, string actor) {
this->name = name;
this->director = director;
this->actor = actor;
this->score = 0; // 初始评分为0
}
};
// 用户类
class User {
public:
string name; // 用户名
string password; // 密码
vector<double> scores; // 所有电影的评分
User(string name, string password) {
this->name = name;
this->password = password;
}
// 添加电影评分
void addScore(double score) {
scores.push_back(score);
}
};
// 电影评分系统类
class MovieRatingSystem {
private:
map<string, Movie> movies; // 所有电影
map<string, User> users; // 所有用户
public:
// 添加电影
void addMovie(string name, string director, string actor) {
Movie movie(name, director, actor);
movies[name] = movie;
}
// 注册用户
void addUser(string name, string password) {
User user(name, password);
users[name] = user;
}
// 显示所有电影
void showAllMovies() {
cout << "所有电影:" << endl;
for (auto it = movies.begin(); it != movies.end(); it++) {
cout << "电影名称:" << it->second.name << endl;
cout << "导演:" << it->second.director << endl;
cout << "主演:" << it->second.actor << endl;
cout << "评分:" << it->second.score << endl;
cout << endl;
}
}
// 显示所有用户
void showAllUsers() {
cout << "所有用户:" << endl;
for (auto it = users.begin(); it != users.end(); it++) {
cout << "用户名:" << it->second.name << endl;
cout << "密码:" << it->second.password << endl;
cout << "评分:" << endl;
for (int i = 0; i < it->second.scores.size(); i++) {
cout << it->second.scores[i] << " ";
}
cout << endl << endl;
}
}
// 用户为电影评分
void rateMovie(string userName, string movieName, double score) {
if (users.find(userName) == users.end()) {
cout << "用户不存在!" << endl;
} else if (movies.find(movieName) == movies.end()) {
cout << "电影不存在!" << endl;
} else {
users[userName].addScore(score);
double sum = 0;
for (int i = 0; i < users[userName].scores.size(); i++) {
sum += users[userName].scores[i];
}
double avg = sum / users[userName].scores.size();
movies[movieName].score = avg;
cout << "评分成功!" << endl;
}
}
};
int main() {
MovieRatingSystem system;
int choice = 0;
string name, password, movieName, director, actor;
double score;
while (true) {
cout << "欢迎使用电影评分系统,请选择操作:" << endl;
cout << "1. 添加电影" << endl;
cout << "2. 注册用户" << endl;
cout << "3. 显示所有电影" << endl;
cout << "4. 显示所有用户" << endl;
cout << "5. 为电影评分" << endl;
cout << "6. 退出系统" << endl;
cin >> choice;
switch (choice) {
case 1:
cout << "请输入电影名称:";
cin >> movieName;
cout << "请输入导演:";
cin >> director;
cout << "请输入主演:";
cin >> actor;
system.addMovie(movieName, director, actor);
cout << "添加成功!" << endl;
break;
case 2:
cout << "请输入用户名:";
cin >> name;
cout << "请输入密码:";
cin >> password;
system.addUser(name, password);
cout << "注册成功!" << endl;
break;
case 3:
system.showAllMovies();
break;
case 4:
system.showAllUsers();
break;
case 5:
cout << "请输入用户名:";
cin >> name;
cout << "请输入电影名称:";
cin >> movieName;
cout << "请输入评分:";
cin >> score;
system.rateMovie(name, movieName, score);
break;
case 6:
cout << "谢谢使用!" << endl;
return 0;
default:
cout << "输入有误,请重新输入!" << endl;
break;
}
}
return 0;
}
```