利用C++实现功能要求: (1)电影管理:实现电影信息和用户信息维护的基本操作。如 电影的增加、修改、删除、查找、显示等。 (2)用户管理:实现用户维护的基本操作。如用户的注册、登 录、部分信息的修改等。 (3)电影评分:用户登录后,通过输入电影编号或者电影名称, 对电影评分。
时间: 2024-04-08 16:30:09 浏览: 96
根据您的要求,以下是使用C++实现电影评分系统的基本功能的示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
class Movie {
private:
int movieId;
string movieName;
float rating;
public:
Movie(int id, string name) : movieId(id), movieName(name), rating(0.0) {}
void setRating(float value) {
rating = value;
}
void displayMovieInfo() {
cout << "Movie ID: " << movieId << endl;
cout << "Movie Name: " << movieName << endl;
cout << "Rating: " << rating << endl;
cout << endl;
}
};
class User {
private:
int userId;
string userName;
vector<int> ratedMovies;
public:
User(int id, string name) : userId(id), userName(name) {}
void addRatedMovie(int movieId) {
ratedMovies.push_back(movieId);
}
bool hasRatedMovie(int movieId) {
for (int id : ratedMovies) {
if (id == movieId) {
return true;
}
}
return false;
}
void displayUserInfo() {
cout << "User ID: " << userId << endl;
cout << "User Name: " << userName << endl;
cout << endl;
}
};
class MovieManager {
private:
vector<Movie> movies;
public:
void addMovie(int id, string name) {
Movie movie(id, name);
movies.push_back(movie);
}
Movie* findMovieById(int id) {
for (int i = 0; i < movies.size(); i++) {
if (movies[i].getMovieId() == id) {
return &movies[i];
}
}
return nullptr;
}
Movie* findMovieByName(string name) {
for (int i = 0; i < movies.size(); i++) {
if (movies[i].getMovieName() == name) {
return &movies[i];
}
}
return nullptr;
}
void displayAllMovies() {
for (int i = 0; i < movies.size(); i++) {
movies[i].displayMovieInfo();
}
}
};
class UserManager {
private:
vector<User> users;
public:
void registerUser(int id, string name) {
User user(id, name);
users.push_back(user);
}
User* findUserById(int id) {
for (int i = 0; i < users.size(); i++) {
if (users[i].getUserId() == id) {
return &users[i];
}
}
return nullptr;
}
User* loginUser(int id) {
User* user = findUserById(id);
if (user != nullptr) {
cout << "User " << user->getUserName() << " logged in successfully." << endl;
return user;
} else {
cout << "Invalid user ID." << endl;
return nullptr;
}
}
};
int main() {
MovieManager movieManager;
UserManager userManager;
// Add movies
movieManager.addMovie(1, "Movie 1");
movieManager.addMovie(2, "Movie 2");
movieManager.addMovie(3, "Movie 3");
// Register users
userManager.registerUser(1, "User 1");
userManager.registerUser(2, "User 2");
// Login user
User* user = userManager.loginUser(1);
// Rate a movie
if (user != nullptr) {
int movieId;
cout << "Enter movie ID: ";
cin >> movieId;
Movie* movie = movieManager.findMovieById(movieId);
if (movie != nullptr) {
if (user->hasRatedMovie(movieId)) {
cout << "You have already rated this movie." << endl;
} else {
float rating;
cout << "Enter rating (0-10): ";
cin >> rating;
if (rating >= 0 && rating <= 10) {
movie->setRating(rating);
user->addRatedMovie(movieId);
cout << "Rating submitted successfully." << endl;
} else {
cout << "Invalid rating. Rating should be between 0 and 10." << endl;
}
}
} else {
cout << "Movie not found." << endl;
}
}
// Display all movies
cout << "All movies:" << endl;
movieManager.displayAllMovies();
return 0;
}
```
这是一个简单的电影评分系统的示例代码,实现了电影管理、用户管理和电影评分的基本功能。您可以根据需要进行进一步的扩展和完善。希望这能满足您的要求!