#include "MovieManager_Gxy.h" void MovieManager::loadMovies_Gxy() { ifstream file(movieFile_Gxy); if (file.is_open()) { movies.clear(); int id; string name; float rating; while (file >> id >> name >> rating) { movies.emplace_back(id, name, rating); } file.close(); } } void MovieManager::saveMovies_Gxy() { ofstream file(movieFile_Gxy); if (file.is_open()) { for (const Movie_Gxy& movie : movies) { file << movie.id_Gxy << " " << movie.name_Gxy << " " << movie.rating_Gxy << endl; } file.close(); } } void MovieManager::addMovie_Gxy(int id, string name, float rating) { movies.emplace_back(id, name, rating); saveMovies_Gxy(); } void MovieManager::editMovie_Gxy(int id, string name, float rating) { for (Movie_Gxy& movie : movies) { if (movie.id_Gxy == id) { movie.name_Gxy = name; movie.rating_Gxy = rating; saveMovies_Gxy(); return; } } cout << "电影编号" << id << " 没有找到." << endl; }
时间: 2024-04-19 21:30:11 浏览: 61
这是一个MovieManager类的一些函数实现,用于加载、保存、添加和编辑电影信息。loadMovies_Gxy函数从文件中读取电影信息,并将其存储在movies向量中。saveMovies_Gxy函数将movies向量中的电影信息写入到文件中。addMovie_Gxy函数用于添加新的电影信息到movies向量,并调用saveMovies_Gxy函数保存到文件中。editMovie_Gxy函数用于编辑指定id的电影信息,并更新到movies向量和文件中。如果找不到指定id的电影,则输出错误信息。
注意,上述代码只是函数的定义,可能还有其他代码文件与之对应,如类的声明和其他成员函数的实现。
相关问题
#pragma once #include <iostream> #include <vector> #include <fstream> #include <algorithm> using namespace std; class Movie_Gxy { public: int id_Gxy; string name_Gxy; float rating_Gxy; Movie_Gxy(int _id, string _name, float _rating) : id_Gxy(_id), name_Gxy(_name), rating_Gxy(_rating) {} }; class MovieManager { private: vector<Movie_Gxy> movies; string movieFile_Gxy; public: MovieManager(string _movieFile) : movieFile_Gxy(_movieFile) {} void loadMovies_Gxy(); void saveMovies_Gxy(); void addMovie_Gxy(int id, string name, float rating); void editMovie_Gxy(int id, string name, float rating); void searchMovie_Gxy(int id); void deleteMovie_Gxy(int id); void displayMoviesByRating_Gxy(); }; 代码解释
这段代码是一个简单的电影管理系统,其中包含两个类:Movie_Gxy和MovieManager。
Movie_Gxy类表示一个电影,具有id_Gxy(电影ID),name_Gxy(电影名称)和rating_Gxy(电影评分)属性。构造函数用于初始化这些属性。
MovieManager类用于管理电影,包含一个私有的movies向量和一个movieFile_Gxy字符串。movies向量用于存储电影对象,而movieFile_Gxy字符串用于指定电影数据的文件路径。构造函数用于初始化movieFile_Gxy。
MovieManager类具有以下成员函数:
- loadMovies_Gxy(): 从指定的文件中加载电影数据到movies向量中。
- saveMovies_Gxy(): 将movies向量中的电影数据保存到指定的文件中。
- addMovie_Gxy(): 添加一部新电影到movies向量中。
- editMovie_Gxy(): 编辑指定id的电影的名称和评分。
- searchMovie_Gxy(): 根据指定id查找电影。
- deleteMovie_Gxy(): 删除指定id的电影。
- displayMoviesByRating_Gxy(): 按评分显示所有电影。
这些函数的具体实现需要根据需求进一步完成。
void MovieManager::searchMovie_Gxy(int id) { for (Movie_Gxy& movie : movies) { if (movie.id_Gxy == id) { cout << "电影编号 " << id << " 电影名称 " << movie.name_Gxy << " 电影评分" << movie.rating_Gxy << endl; return; } } cout << "电影编号 " << id << " 没有找到." << endl; } void MovieManager::deleteMovie_Gxy(int id) { movies.erase(remove_if(movies.begin(), movies.end(), [id](const Movie_Gxy& movie) { return movie.id_Gxy == id; }), movies.end()); saveMovies_Gxy(); } void MovieManager::displayMoviesByRating_Gxy() { sort(movies.begin(), movies.end(), [](const Movie_Gxy& a, const Movie_Gxy& b) { return a.rating_Gxy > b.rating_Gxy; }); cout << "按评分排序的电影:" << endl; for (const Movie_Gxy& movie : movies) { cout << "编号: " << movie.id_Gxy << ",名称: " << movie.name_Gxy << ",评分: " << movie.rating_Gxy << endl; } } 代码解释
这段代码是一个电影管理系统的一部分,其中包含了三个函数:searchMovie_Gxy、deleteMovie_Gxy和displayMoviesByRating_Gxy。
首先,searchMovie_Gxy函数接收一个电影编号作为参数,并在电影列表中查找相应的电影。如果找到了匹配的电影,它将打印出电影的编号、名称和评分,并返回。如果没有找到匹配的电影,它将打印出相应的提示信息。
deleteMovie_Gxy函数接收一个电影编号作为参数,并使用erase和remove_if函数从电影列表中删除匹配该编号的电影。然后,它调用saveMovies_Gxy函数保存更新后的电影列表。
displayMoviesByRating_Gxy函数对电影列表按照评分进行排序,并打印出排序后的电影信息。它使用了一个lambda表达式作为排序的比较函数,按照评分从高到低排序。
这些函数是MovieManager类的成员函数,可能是用于实现电影管理系统的一部分功能。
阅读全文