能用c++写一篇电影评分系统的代码吗?要求是:本系统要求模拟实现电影评分系统,其中包括电影资源管理、用户注册管理、用户为电影评分等工作。 使用者分为系统管理员和普通用户。系统管理员实现用户信息和电影信息的维护,普通用户实现对电影的评价打分。
时间: 2023-06-20 09:08:49 浏览: 150
好的,下面是一个简单的电影评分系统的 C++ 代码:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 电影类
class Movie {
private:
string title;
string director;
int year;
double rating;
public:
Movie(string t, string d, int y) {
title = t;
director = d;
year = y;
rating = 0.0;
}
string getTitle() { return title; }
string getDirector() { return director; }
int getYear() { return year; }
double getRating() { return rating; }
void setRating(double r) { rating = r; }
};
// 用户类
class User {
private:
string name;
string password;
public:
User(string n, string p) {
name = n;
password = p;
}
string getName() { return name; }
string getPassword() { return password; }
};
// 管理员类
class Admin {
private:
vector<Movie> movies;
vector<User> users;
public:
void addMovie(string title, string director, int year) {
Movie m(title, director, year);
movies.push_back(m);
}
void addUser(string name, string password) {
User u(name, password);
users.push_back(u);
}
void printMovies() {
cout << "Movies:" << endl;
for (int i = 0; i < movies.size(); i++) {
cout << movies[i].getTitle() << " (" << movies[i].getYear() << ") - " << movies[i].getDirector() << " - Rating: " << movies[i].getRating() << endl;
}
}
};
// 普通用户类
class NormalUser {
private:
vector<Movie> watchedMovies;
public:
void watchMovie(Movie& m) {
watchedMovies.push_back(m);
}
void rateMovie(Movie& m, double rating) {
m.setRating((m.getRating() + rating) / 2);
}
};
int main() {
Admin admin;
// 添加电影和用户
admin.addMovie("The Shawshank Redemption", "Frank Darabont", 1994);
admin.addMovie("The Godfather", "Francis Ford Coppola", 1972);
admin.addMovie("The Dark Knight", "Christopher Nolan", 2008);
admin.addUser("Alice", "123456");
admin.addUser("Bob", "654321");
// 打印电影列表
admin.printMovies();
// 用户 Alice 打分
NormalUser alice;
Movie shawshank = admin.getMovies()[0];
alice.watchMovie(shawshank);
alice.rateMovie(shawshank, 9.5);
// 用户 Bob 打分
NormalUser bob;
Movie godfather = admin.getMovies()[1];
bob.watchMovie(godfather);
bob.rateMovie(godfather, 9.0);
// 再次打印电影列表
admin.printMovies();
return 0;
}
```
这个系统模拟了电影评分系统的基本功能,包括电影资源管理、用户注册管理、用户为电影评分等工作。使用者分为系统管理员和普通用户。系统管理员实现用户信息和电影信息的维护,普通用户实现对电影的评价打分。