对电影数据库实现添加、删除、查找、修改等用C++实现不用多文件
时间: 2023-10-26 09:04:51 浏览: 35
当然可以!下面是一个使用C++实现电影数据库的简单示例,包括添加、删除、查找和修改电影信息,而且所有代码都在一个文件中:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Movie {
private:
string title;
string director;
int year;
public:
Movie(string t, string d, int y) {
title = t;
director = d;
year = y;
}
string getTitle() {
return title;
}
string getDirector() {
return director;
}
int getYear() {
return year;
}
void setTitle(string t) {
title = t;
}
void setDirector(string d) {
director = d;
}
void setYear(int y) {
year = y;
}
};
class MovieDatabase {
private:
vector<Movie> movies;
public:
void addMovie(Movie movie) {
movies.push_back(movie);
}
void deleteMovie(string title) {
for (int i = 0; i < movies.size(); i++) {
if (movies[i].getTitle() == title) {
movies.erase(movies.begin() + i);
break;
}
}
}
Movie* findMovie(string title) {
for (int i = 0; i < movies.size(); i++) {
if (movies[i].getTitle() == title) {
return &movies[i];
}
}
return nullptr;
}
void modifyMovie(string title, string newTitle, string newDirector, int newYear) {
Movie* movie = findMovie(title);
if (movie != nullptr) {
movie->setTitle(newTitle);
movie->setDirector(newDirector);
movie->setYear(newYear);
}
}
void displayMovies() {
cout << "----- Movie Database -----" << endl;
for (int i = 0; i < movies.size(); i++) {
cout << "Title: " << movies[i].getTitle() << endl;
cout << "Director: " << movies[i].getDirector() << endl;
cout << "Year: " << movies[i].getYear() << endl;
cout << "--------------------------" << endl;
}
}
};
int main() {
MovieDatabase database;
// 添加电影
Movie movie1("Movie 1", "Director 1", 2000);
Movie movie2("Movie 2", "Director 2", 2005);
Movie movie3("Movie 3", "Director 3", 2010);
database.addMovie(movie1);
database.addMovie(movie2);
database.addMovie(movie3);
// 显示电影
database.displayMovies();
// 查找电影
string searchTitle = "Movie 2";
Movie* foundMovie = database.findMovie(searchTitle);
if (foundMovie != nullptr) {
cout << "Found movie: " << foundMovie->getTitle() << endl;
cout << "Director: " << foundMovie->getDirector() << endl;
cout << "Year: " << foundMovie->getYear() << endl;
} else {
cout << "Movie not found." << endl;
}
// 修改电影
string modifyTitle = "Movie 3";
string newTitle = "Updated Movie";
string newDirector = "Updated Director";
int newYear = 2021;
database.modifyMovie(modifyTitle, newTitle, newDirector, newYear);
// 显示修改后的电影
database.displayMovies();
// 删除电影
string deleteTitle = "Movie 1";
database.deleteMovie(deleteTitle);
// 显示删除后的电影
database.displayMovies();
return 0;
}
```
在上面的示例代码中,我们定义了一个`Movie`类来表示电影,包括标题、导演和上映年份。然后,我们创建了一个`MovieDatabase`类来管理电影数据库,其中包括添加、删除、查找和修改电影信息的功能。
在`main`函数中,我们创建了一个`MovieDatabase`对象,并添加了几部电影。然后,我们展示了如何查找电影、修改电影信息以及删除电影。最后,我们显示了修改和删除后的电影数据库。
这只是一个简单的示例,您可以根据自己的需求进一步扩展和完善该系统。希望对您有所帮助!如果您还有其他问题,请随时提问。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)