C++面向对象课设——观影网站影评信息管理程序

main.cpp

#include <iostream>
#include"User.h"
#include"Review.h"
#include"Film.h"
#include<vector>
#include<bits/stdc++.h>
using namespace std;
void userMenu();
void filmMenu();
void reviewMenu();
int main()
{
    while(1)
    {
        system("cls");
        cout<<"*********************************"<<endl;
        cout<<"*        影评信息管理系统       *"<<endl;
        cout<<"*       1.用户信息操作          *"<<endl;
        cout<<"*       2.影片信息操作          *"<<endl;
        cout<<"*       3.影评                  *"<<endl;
        cout<<"请输入你的选择项[ ]\b\b";
        int opt;
        cin>>opt;
        switch(opt)
        {
        case 1:
            system("cls");
            userMenu();
            break;
        case 2:
            system("cls");
            filmMenu();
            break;
        case 3:
            system("cls");
            reviewMenu();
            break;
        }
    }
    return 0;
}
void userMenu()
{
    while(1)
    {
        system("cls");
        cout<<"*********************************"<<endl;
        cout<<"*        用户信息操作           *"<<endl;
        cout<<"*       1.浏览用户信息          *"<<endl;
        cout<<"*       2.查询用户信息          *"<<endl;
        cout<<"*       3.添加用户信息          *"<<endl;
        cout<<"*       4.删除用户信息          *"<<endl;
        cout<<"*       5.修改用户信息          *"<<endl;
        cout<<"请输入你的选择项[ ]\b\b";
        int opt;
        string searchName;
        cin>>opt;
        User u("no name",0,0,"no name","no name","no name");
        switch(opt)
        {
        case 1:
            u.userBrowse();
            break;
        case 2:
            cout<<"输入要查询的用户姓名:";
            cin>>searchName;
            u.userQuery(searchName);
            break;
        case 3:
            u.userAdd();
            break;
        case 4:
            u.userDel();
            break;
        case 5:
            u.userUpdate();
            break;
        }
    }
}
void filmMenu()
{
    while(1)
    {
        system("cls");
        cout<<"*********************************"<<endl;
        cout<<"*        影片信息操作           *"<<endl;
        cout<<"*       1.浏览影片信息          *"<<endl;
        cout<<"*       2.查询影片信息          *"<<endl;
        cout<<"*       3.添加影片信息          *"<<endl;
        cout<<"*       4.删除影片信息          *"<<endl;
        cout<<"*       5.修改影片信息          *"<<endl;
        cout<<"请输入你的选择项[ ]\b\b";
        int opt;
        string searchName;
        cin>>opt;
        Film f("no name",0,"no name","no name","no name",0);
        switch(opt)
        {
        case 1:
            f.filmBrowse();
            break;
        case 2:
            cout<<"输入要查询的影片名字:";
            cin>>searchName;
            f.filmQuery(searchName);
            break;
        case 3:
            f.filmAdd();
            break;
        case 4:
            f.filmDel();
            break;
        case 5:
            f.filmUpdate();
            break;
        }
    }

}
void reviewMenu()
{
    while(1)
    {
        system("cls");
        cout<<"*************************************"<<endl;
        cout<<"*        影评信息管理系统           *"<<endl;
        cout<<"*       1.浏览影评信息操作          *"<<endl;
        cout<<"*       2.查询影评信息操作          *"<<endl;
        cout<<"*       3.进行影评操作              *"<<endl;
        cout<<"请输入你的选择项[ ]\b\b";
        int opt;
        string s="no name";
        Review r(s,s,0.0,s,0);
        cin>>opt;
        switch(opt)
        {
        case 1:
            r.reviewBrowse();
            break;
        case 2:
            r.reviewQuery();
            break;
        case 3:
            r.addNewReview();
        }
    }

}

Film.h 

#ifndef FILM_H
#define FILM_H
#include<string>
using namespace std;
class Film//影片类
{
private:
    string filmName;//电影名字
    int filmYear;//电影上映年份
    string filmDirector;//电影导演
    string filmPerformer;//电影主演
    string filmCompany;//电影出品公司
    int filmGrade;//电影等级
public:
    Film(string,int,string,string,string,int);//构造函数
    Film(string name):filmName(name) {}//用于实现影评信息的重载构造函数
    string getFilmName();//获取电影名字
    int getFilmYear();//获取电影上映年份
    string getFilmDirector();//获取电影导演
    string getFilmPerformer();//获取电影主演
    string getFilmCompany();//获取电影出品公司
    int getFilmGrade();//获取电影等级
    void filmBrowse();//浏览影片信息
    void filmAdd();//增加影评信息
    int filmQuery(string name);//查询影评信息
    void filmDel();//删除影评信息
    void filmUpdate();//修改影评信息
};
#endif // FILM_H

Film.cpp

#include "Film.h"
#include<bits/stdc++.h>
using namespace std;
Film::Film(string name,int year, string director,string performer,string company,int grade):
    filmName(name),filmYear(year),filmDirector(director),filmPerformer(performer),filmCompany(company),filmGrade(grade) {}
string Film::getFilmName()
{
    return filmName;
}
int Film::getFilmYear()
{
    return filmYear;
}
string Film::getFilmDirector()
{
    return filmDirector;
}
string Film::getFilmPerformer()
{
    return filmPerformer;
}
string Film::getFilmCompany()
{
    return filmCompany;
}
int Film::getFilmGrade()
{
    return filmGrade;
}
void Film::filmBrowse()
{
    ifstream fin;
    fin.open("film.txt");
    if(!fin.is_open())
        cout<<"文件打开失败!";
    else
    {
        string name,director,proformer,company;
        int grade,year;
        cout<<setiosflags(ios::left)<<setw(20)<<"电影名称"<<setw(20)<<"上映年份"<<setw(20)<<"导演"<<setw(20)<<"主演"<<setw(25)<<"出品公司"<<setw(20)<<"电影等级"<<endl;
        while(fin>>name>>year>>director>>proformer>>company>>grade)
            cout<<setiosflags(ios::left)<<setw(20)<<name<<setw(20)<<year<<setw(20)<<director<<setw(20)<<proformer<<setw(25)<<company<<setw(20)<<grade<<endl;
    }
    fin.close();
    cout<<"请按回车键继续操作"<<endl;
    system("pause");
}
int Film::filmQuery(string searchName)
{
    ifstream fin;
    int flag =1;
    fin.open("film.txt");
    if(!fin.is_open())
        cout<<"文件打开失败";
    else
    {
        string name,director,proformer,company;
        int grade,year;
        while(fin>>name>>year>>director>>proformer>>company>>grade)
        {
            if(searchName==name)
            {
                flag=0;
                cout<<"电影信息"<<endl;
                cout<<setiosflags(ios::left)<<setw(20)<<"电影名称"<<setw(20)<<"上映年份"<<setw(20)<<"导演"<<setw(20)<<"主演"<<setw(25)<<"出品公司"<<setw(20)<<"电影等级"<<endl;
                cout<<setiosflags(ios::left)<<setw(20)<<name<<setw(20)<<year<<setw(20)<<director<<setw(20)<<proformer<<setw(25)<<company<<setw(20)<<grade<<endl;
                break;
            }
        }
    }
    if(flag!=0)
    {
        cout<<"没有发现你输入的电影名字\n";
        fin.close();
        cout<<"请按回车键继续操作"<<endl;
        system("pause");
        return 0;
    }
    fin.close();
    cout<<"请按回车键继续操作"<<endl;
    system("pause");
    return 1;
}

void Film::filmUpdate()
{
    int  gps;
    ifstream fin;
    fin.open("film.txt",ios_base::in|ios_base::binary);
    if(!fin.is_open())
        cout<<"文件打开失败";
    else
    {
        string searchName;
        cout<<"输入要修改的影片名字:";
        cin>>searchName;
        string name,director,proformer,company;
        int grade,year;
        while(!fin.eof())
        {
            gps=fin.tellg();
            fin>>name>>year>>director>>proformer>>company>>grade;
            if(name==searchName)
            {
                cout<<"当前电影信息"<<endl;
                cout<<setiosflags(ios::left)<<setw(20)<<"电影名称"<<setw(20)<<"上映年份"<<setw(20)<<"导演"<<setw(20)<<"主演"<<setw(25)<<"出品公司"<<setw(20)<<"电影等级"<<endl;
                cout<<setiosflags(ios::left)<<setw(20)<<name<<setw(20)<<year<<setw(20)<<director<<setw(20)<<proformer<<setw(25)<<company<<setw(20)<<grade<<endl;
                fin.close();
                break;
            }
        }
        if(fin.is_open())
        {
            cout<<"没有找到此影片!";
            fin.close();
        }
        else
        {
            cout<<"输入修改后的影片信息:"<<endl;
            cout<<"当前电影信息"<<endl;
            cout<<setiosflags(ios::left)<<setw(20)<<"电影名称"<<setw(20)<<"上映年份"<<setw(20)<<"导演"<<setw(20)<<"主演"<<setw(25)<<"出品公司"<<setw(20)<<"电影等级"<<endl;
            cin>>name>>year>>director>>proformer>>company>>grade;
            fstream fout;
            fout.open("film.txt",ios_base::in|ios_base::out|ios_base::binary);
            if(!fout.is_open())
                cout<<"文件打开失败!";
            else
            {
                if(gps!=0)
                    fout.seekp(gps);//设置写入的位置
                fout<<name<<" "<<year<<" "<<director<<" "<<proformer<<" "<<company<<" "<<grade<<endl;
                cout<<"修改成功!";
                fout.close();
            }
        }
    }
    cout<<"请按回车键继续操作"<<endl;
    system("pause");
}

void Film::filmDel()
{
    vector<Film> film;
    ifstream fin;
    fin.open("film.txt");
    if(!fin.is_open())
        cout<<"文件打开失败";
    else
    {
        string name,director,proformer,company;
        int grade,year;
        while(fin>>name>>year>>director>>proformer>>company>>grade)
            film.push_back(Film(name,year,director,proformer,company,grade));
        fin.close();
        string delName;
        cout<<"输入要删除的影片名称:";
        cin>>delName;
        if(filmQuery(delName))
        {
            vector<Film>::iterator it=film.begin();
            for(; it!=film.end(); it++)
            {
                if(it->getFilmName()==delName)
                {
                    film.erase(it);
                    cout<<"删除成功!";
                    break;
                }
            }
            ofstream fout;
            fout.open("film.txt",ios_base::binary);
            if(!fout.is_open())
                cout<<"文件打开失败!";
            else
            {
                for(auto it=film.begin(); it!=film.end(); it++)
                    fout<<it->getFilmName()<<" "<<it->getFilmYear()<<" "<<it->getFilmDirector()<<" "<<it->getFilmPerformer()<<" "<<it->getFilmCompany()<<" "<<it->getFilmGrade()<<endl;
                fout.close();
            }
        }
        else
            cout<<"影片不存在!\n";
    }
    cout<<"请按回车键继续操作"<<endl;
    system("pause");
}
void Film::filmAdd()
{
    ofstream fout;
    fout.open("film.txt",ios::app);
    if(!fout.is_open())
        cout<<"文件打开失败";
    else
    {
        cout<<"输入要添加的影片信息:";
        string name,director,proformer,company;
        int grade,year;
        cout<<"当前电影信息"<<endl;
        cout<<setiosflags(ios::left)<<setw(20)<<"电影名称"<<setw(20)<<"上映年份"<<setw(20)<<"导演"<<setw(20)<<"主演"<<setw(25)<<"出品公司"<<setw(20)<<"电影等级"<<endl;
        cin>>name>>year>>director>>proformer>>company>>grade;
        int flag=filmQuery(name);
        if(!flag){
            cout<<"可以添加该影片"<<endl;
            fout<<name<<" "<<year<<" "<<director<<" "<<proformer<<" "<<company<<" "<<grade<<endl;
            cout<<"添加成功"<<endl;
        }
        else
            cout<<"该影片已存在!\n";
        fout.close();
    }
    cout<<"请按回车键继续操作"<<endl;
    system("pause");
}

User.h

#ifndef USER_H
#define USER_H
#include<string>
using namespace std;
class User//用户类
{
private:
    string userName;//用户姓名
    int userGrade;//用户等级
    int userYear;//用户年龄
    string userProfession;//用户职业
    string userInterest;//用户兴趣
    string userEmail;//用户邮箱
public:
    User(string,int,int,string,string,string);//构造函数
    User(string name):userName(name) {} //用于影评信息存储的重载构造函数
    string getUserName();//获取用户姓名
    int getUserGrade();//获取用户等级
    int getUserYear();//获取用户年龄
    string getUserProfession();//获取用户职业
    string getUserInterest();//获取用户兴趣爱好
    string getUserEmail();//获取用户邮箱
    void userBrowse();//浏览用户信息
    void userAdd();//增加用户信息
    int userQuery(string name);//查询用户信息,
    void userDel();//删除用户信息
    void userUpdate();//修改用户信息
};

#endif // USER_H

 User.cpp

#include "User.h"
#include<cstring>
#include<bits/stdc++.h>
using namespace std;
User::User(string name,int year,int grade,string profession,string interest,string email):
userName(name),userYear(year),userGrade(grade),userProfession(profession),userInterest(interest),userEmail(email){}
string User::getUserName(){
    return userName;
}
int User::getUserGrade(){
    return userGrade;
}
int User::getUserYear(){
    return userYear;
}
string User::getUserProfession(){
    return userProfession;
}
string User::getUserInterest(){
    return userInterest;
}
string User::getUserEmail(){
    return userEmail;
}
void User::userBrowse()
{
    ifstream fin;
    fin.open("user.txt");
    if(!fin.is_open())
        cout<<"文件打开失败!";
    else
    {
        string name,profession,email,interest;
        int grade,year;
        cout<<setiosflags(ios::left)<<setw(10)<<"用户名"<<setw(10)<<"用户等级"<<setw(10)<<"用户年龄"<<setw(20)<<"用户职业"<<setw(20)<<"用户兴趣爱好"<<setw(20)<<"用户电子邮箱"<<endl;
        while(fin>>name>>grade>>year>>profession>>interest>>email)
            cout<<setiosflags(ios::left)<<setw(10)<<name<<setw(10)<<grade<<setw(10)<<year<<setw(20)<<profession<<setw(20)<<interest<<setw(20)<<email<<endl;
    }
    fin.close();
    cout<<"请按回车键继续操作"<<endl;
    system("pause");
}
int User::userQuery(string searchName)
{
    ifstream fin;
    int flag =1;
    fin.open("user.txt");
    if(!fin.is_open())
        cout<<"文件打开失败";
    else
    {
        string name,profession,email,interest;
        int grade,year;
        while(fin>>name>>grade>>year>>profession>>interest>>email)
        {
            if(searchName==name)
            {
                flag=0;
                cout<<setiosflags(ios::left)<<setw(10)<<"用户名"<<setw(10)<<"用户等级"<<setw(10)<<"用户年龄"<<setw(20)<<"用户职业"<<setw(20)<<"用户兴趣爱好"<<setw(20)<<"用户电子邮箱"<<endl;
                cout<<setiosflags(ios::left)<<setw(10)<<name<<setw(10)<<grade<<setw(10)<<year<<setw(20)<<profession<<setw(20)<<interest<<setw(20)<<email<<endl;
                break;
            }
        }
    }
    if(flag!=0)
    {
        cout<<"没有发现你输入的用户姓名\n";
        cout<<"请按回车键继续操作"<<endl;
        system("pause");
        fin.close();
        return 0;
    }
    cout<<"请按回车键继续操作"<<endl;
    system("pause");
    fin.close();
    return 1;
}
void User::userUpdate()
{
    int  gps;
    ifstream fin;
    fin.open("user.txt",ios_base::in|ios_base::binary);
    if(!fin.is_open())
        cout<<"文件打开失败";
    else
    {
        string searchName;
        cout<<"输入要修改的用户姓名:";
        cin>>searchName;
        string name,profession,email,interest;
        int grade,year;
        while(!fin.eof())
        {
            gps=fin.tellg();
            fin>>name>>grade>>year>>profession>>interest>>email;
            if(name==searchName)
            {
                cout<<"当前用户信息:"<<endl;;
                cout<<setiosflags(ios::left)<<setw(10)<<"用户名"<<setw(10)<<"用户等级"<<setw(10)<<"用户年龄"<<setw(20)<<"用户职业"<<setw(20)<<"用户兴趣爱好"<<setw(20)<<"用户电子邮箱"<<endl;
                cout<<setiosflags(ios::left)<<setw(10)<<name<<setw(10)<<grade<<setw(10)<<year<<setw(20)<<profession<<setw(20)<<interest<<setw(20)<<email<<endl;
                fin.close();
                break;
            }
        }
        if(fin.is_open())
        {
            cout<<"没有找到此用户!";
            fin.close();
        }
        else
        {
            cout<<"输入修改后的用户信息:"<<endl;
            cout<<setiosflags(ios::left)<<setw(10)<<"用户名"<<setw(10)<<"用户等级"<<setw(10)<<"用户年龄"<<setw(20)<<"用户职业"<<setw(20)<<"用户兴趣爱好"<<setw(20)<<"用户电子邮箱"<<endl;
            cin>>name>>grade>>year>>profession>>interest>>email;
            fstream fout;
            fout.open("user.txt",ios_base::in|ios_base::out|ios_base::binary);
            if(!fout.is_open())
                cout<<"文件打开失败!";
            else
            {
                if(gps!=0) fout.seekp(gps);//设置写入的位置
                fout<<name<<" "<<grade<<" "<<year<<" "<<profession<<" "<<interest<<" "<<email<<endl;
                cout<<"修改成功!";
                fout.close();
            }
        }
    }
    cout<<"请按回车键继续操作"<<endl;
    system("pause");
}
void User::userDel()
{
    vector<User> user;
    ifstream fin;
    fin.open("user.txt");
    if(!fin.is_open())
        cout<<"文件打开失败";
    else
    {
        string name,profession,email,interest;
        int grade,year;
        while(fin>>name>>grade>>year>>profession>>interest>>email)
            user.push_back(User(name,grade,year,profession,interest,email));
        fin.close();
        string delName;
        cout<<"输入要删除的用户名字:";
        cin>>delName;
        if(userQuery(delName))
        {
            vector<User>::iterator  it=user.begin();
            for(; it!=user.end(); it++)
            {
                if(it->getUserName()==delName)
                {
                    user.erase(it);
                    cout<<"删除成功!";
                    break;
                }
            }
            ofstream fout;
            fout.open("user.txt",ios_base::binary);
            if(!fout.is_open())
                cout<<"文件打开失败!";
            else
            {
                for(auto it=user.begin(); it!=user.end(); it++)
                    fout<<it->getUserName()<<" "<<it->getUserGrade()<<" "<<it->getUserYear()<<" "<<it->getUserProfession()<<" "<<it->getUserInterest()<<" "<<it->getUserEmail()<<endl;
                fout.close();
            }
        }
        else cout<<"用户不存在!\n";
    }
    cout<<"请按回车键继续操作"<<endl;
    system("pause");
}
void User::userAdd()
{
    cout<<"输入要添加的用户信息:"<<endl;
    string addName,addProfession,addEmail,addInterest;
    int addGrade,addYear;
     cout<<setiosflags(ios::left)<<setw(10)<<"用户名"<<setw(10)<<"用户等级"<<setw(10)<<"用户年龄"<<setw(20)<<"用户职业"<<setw(20)<<"用户兴趣爱好"<<setw(20)<<"用户电子邮箱"<<endl;
    cin>>addName>>addGrade>>addYear>>addProfession>>addInterest>>addEmail;
    ifstream fin;
    int flag=1;
    string name,profession,email,interest;
    int grade,year;
    fin.open("user.txt");
    if(!fin.is_open())
        cout<<"文件打开失败";
    else
    {
        while(fin>>name>>grade>>year>>profession>>interest>>email)
        {
            if(name==addName)
            {
                flag=0;
                break;
            }
        }
    }
    fin.close();
    if(flag)
    {
        ofstream fout;
        fout.open("user.txt",ios::app);
        if(!fout.is_open())
            cout<<"文件打开失败";
        else
        {
            fout<<addName<<" "<<addGrade<<" "<<addYear<<" "<<addProfession<<" "<<addInterest<<" "<<addEmail<<endl;
            cout<<"用户信息添加成功"<<endl;
        }
        fout.close();
    }
    else
        cout<<"用户已存在!\n";
    cout<<"请按回车键继续操作"<<endl;
    system("pause");
}

Review.h

#ifndef REVIEW_H
#define REVIEW_H
#include"User.h"
#include"Film.h"
class Review//影评类
{
public:
    Review(User,Film,double,string,int);//构造函数
    string getUserName();//获取用户名字
    string getFilmName();//获取电影名字
    string getLink();//获取影评链接
    int getTimes();//获取评价次数
    void setTimes(int);//设置评价次数
    void setScore(double);//设置评价分数
    double getScore();//获取评价分数
    void reviewBrowse();//浏览影评信息
    void reviewQuery();//查询影评信息
    void addNewReview();//进行影评
private:
    string userName;//用户名字
    string filmName;//电影名字
    double score;//电影评分
    string link;//影评链接
    int times;//电影评价次数
};
#endif // REVIEW_H

 Review.cpp

#include "Review.h"
#include"User.h"
#include"Film.h"
#include<string>
#include<vector>
#include<bits/stdc++.h>
using namespace std;
Review::Review(User user,Film film,double score,string link,int times):
    score(score),link(link),times(times)
{
    Review::userName=user.getUserName();
    Review::filmName=film.getFilmName();
}
double Review::getScore()
{
    return score;
}
string Review::getLink()
{
    return link;
}
int Review::getTimes()
{
    return times;
}
string Review::getUserName()
{
    return userName;
};
string Review::getFilmName()
{
    return filmName;
};
void Review::setTimes(int val)
{
    times=val;
}
void Review::setScore(double val)
{
    score=val;
}
void Review::reviewBrowse()
{
    vector<Review> review;
    ifstream fin;
    fin.open("review.txt");
    if(!fin.is_open())
        cout<<"文件打开失败!";
    else
    {
        string filmName,userName,link;
        double score;
        int times;
        while(fin>>userName>>filmName>>score>>link>>times)
            review.push_back(Review(userName,filmName,score,link,times));
        cout<<setiosflags(ios::left)<<setw(20)<<"用户名字"<<setw(20)<<"电影名称"<<setw(20)<<"电影评分"<<setw(40)<<"影评链接"<<" "<<setw(20)<<"评价次数"<<endl;
        for(auto it=review.begin(); it!=review.end(); it++)
            cout<<setw(20)<<it->getUserName()<<setw(20)<<it->getFilmName()<<setw(20)<<it->getScore()<<setw(40)<<it->getLink()<<" "<<setw(20)<<it->getTimes()<<endl;
    }
    fin.close();
    system("pause");
}
void Review::reviewQuery()
{
    vector<Review> review;
    int flag=1;
    ifstream fin;
    fin.open("review.txt");
    if(!fin.is_open())
        cout<<"文件打开失败";
    else
    {
        string userName,filmName;
        double score;
        int times;
        string link;
        string searchFilmName;
        cout<<"请输入你要查询电影的名字:"<<endl;
        cin>>searchFilmName;
        while(fin>>userName>>filmName>>score>>link>>times)
            review.push_back(Review(userName,filmName,score,link,times));
        cout<<"当前影评信息"<<endl;
        cout<<setiosflags(ios::left)<<setw(20)<<"用户名字"<<setw(20)<<"电影名称"<<setw(20)<<"电影评分"<<setw(40)<<"影评链接"<<"  "<<setw(5)<<"评价次数"<<endl;
        for(auto it=review.begin(); it!=review.end(); it++)
            if(it->getFilmName()==searchFilmName)
            {
                flag=0;
               cout<<setw(20)<<it->getUserName()<<setw(20)<<it->getFilmName()<<setw(20)<<it->getScore()<<setw(40)<<it->getLink()<<"  "<<setw(5)<<it->getTimes()<<endl;
            }

    }
    if(flag!=0)
    {
        cout<<"没有发现你输入的电影名字\n";
        system("pause");
        fin.close();
    }
    system("pause");
    fin.close();
}
void Review::addNewReview()
{
    vector<Review> review;
    string userName,filmName,link;
    double score;
    cout<<"请输入你的用户名字"<<endl;
    cin>>userName;
    cout<<"请输入进行影评的电影名称"<<endl;
    cin>>filmName;
    cout<<"请输入你评价的分数"<<endl;
    cin>>score;
    cout<<"请输入影评链接"<<endl;
    cin>>link;
    ifstream fin;
    fin.open("review.txt");
    if(!fin.is_open())
        cout<<"文件打开失败";
    else
    {
        string curUserName,curFilmName,curLink;
        double curScore;
        int curTimes;
        while(fin>>curUserName>>curFilmName>>curScore>>curLink>>curTimes)
            review.push_back(Review(curUserName,curFilmName,curScore,curLink,curTimes));
        fin.close();
    }
    ofstream fout;
    fout.open("review.txt");
    int flag=1;
    int tot=1;
    for(auto it=review.begin(); it!=review.end(); it++){
        if(it->getFilmName()==filmName)
        {
            if(it->getUserName()==userName&&it->getLink()==link)//同一个用户评价同一个电影两次,且影评链接相同,只需要改变评分和该电影评价次数
                it->setScore(score),flag=0;
            tot=it->getTimes()+1;
            it->setTimes(it->getTimes()+1);
        }
    }
    if(flag) review.push_back(Review(userName,filmName,score,link,tot));
    for(auto it=review.begin(); it!=review.end(); it++)
        fout<<it->getUserName()<<" "<<it->getFilmName()<<" "<<it->getScore()<<" "<<it->getLink()<<" "<<it->getTimes()<<endl;
    fout.close();
    system("pause");
}
发布了342 篇原创文章 · 获赞 220 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43472263/article/details/103895124