运行环境
操作系统:Windows 11 家庭版
运行软件:Dev-C++6.5
源代码结构总览
源代码文件
1、见本人上传的资源
2、网盘链接
链接:https://share.weiyun.com/wHmbW3YX
密码:36h9p7
源代码示例
main.cpp
#include <iostream>
#include"Manager.h"
#include"User.h"
#include"Review.h"
#include"Film.h"
#include<vector>
#include<bits/stdc++.h>
using namespace std;
void managerMenu();
void userMenu();
int managerSign(int searNumber, string searName);
int userSign(int searNumber, string searName);
void userNew(int searNumber, string searName, string searPermission);
int main() {
while (1) {
system("cls");
cout << "*****************************************" << endl;
cout << "* 影评信息管理系统 *" << endl;
cout << "*****************************************" << endl;
cout << "* 1.管理员登录 *" << endl;
cout << "* 2.用户登录 *" << endl;
cout << "* 3.用户注册 *" << endl;
cout << "*****************************************" << endl;
cout << "请输入你的选择项[ ]\b\b";
int opt;
cin >> opt;
int numberM = 0;
int numberU = 0;
int numberS = 0;
string nameM = "0";
string nameU = "0";
string nameS = "0";
string permissionS = "0";
switch (opt) {
case 1:
cout << "请输入你的编号:";
cin >> numberM;
cout << "请输入你的姓名:";
cin >> nameM;
managerSign(numberM, nameM) ;
break;
case 2:
cout << "请输入你的编号:";
cin >> numberU;
cout << "请输入你的姓名:";
cin >> nameU;
userSign(numberU, nameU) ;
break;
case 3:
cout << "请输入你要注册的信息" << endl;
userNew(numberS, nameS, permissionS);
break;
}
}
return 0;
}
void managerMenu() {
while (1) {
system("cls");
cout << "*****************************************************************************" << endl;
cout << "* 管理员菜单栏 *" << endl;
cout << "*****************************************************************************" << endl;
cout << "* 用户信息操作 * 影片信息操作 *" << endl;
cout << "*****************************************************************************" << endl;
cout << "* 1.浏览用户信息 * 6.浏览影片信息 *" << endl;
cout << "* 2.查询用户信息 * 7.查询影片信息 *" << endl;
cout << "* 3.添加用户信息 * 8.添加影片信息 *" << endl;
cout << "* 4.删除用户信息 * 9.删除影片信息 *" << endl;
cout << "* 5.修改用户信息 * 0.修改影片信息 *" << endl;
cout << "*****************************************************************************" << endl;
cout << "请输入你的选择项[ ]\b\b";
int opt;
string searchName;
cin >> opt;
Manager m(0, "no name", "no name");
Film f(0, "no name", 0.0);
switch (opt) {
case 1:
m.managerBrowse();
break;
case 2:
cout << "输入要查询的用户姓名:";
cin >> searchName;
m.managerQuery(searchName);
break;
case 3:
m.managerAdd();
break;
case 4:
m.managerDel();
break;
case 5:
m.managerUpdate();
break;
case 6:
f.filmBrowse();
break;
case 7:
cout << "输入要查询的影片名称:";
cin >> searchName;
f.filmQuery(searchName);
break;
case 8:
f.filmAdd();
break;
case 9:
f.filmDel();
break;
case 0:
f.filmUpdate();
break;
}
}
}
void userMenu() {
while (1) {
system("cls");
cout << "*****************************************************************************" << endl;
cout << "* 用户菜单栏 *" << endl;
cout << "*****************************************************************************" << endl;
cout << "* 信息操作 * 影评操作 *" << endl;
cout << "*****************************************************************************" << endl;
cout << "* * 2.浏览影评 *" << endl;
cout << "* 1.修改信息 * 3.查询影评 *" << endl;
cout << "* * 4.进行影评 *" << endl;
cout << "*****************************************************************************" << endl;
cout << "请输入你的选择项[ ]\b\b";
int opt;
string searchName;
cin >> opt;
User u(0, "no name", "no name");
Review r("no name", "no name", 0.0);
switch (opt) {
case 1:
u.userUpdate();
break;
case 2:
r.reviewBrowse();
break;
case 3:
r.reviewQuery(searchName);
break;
case 4:
r.addNewReview();
break;
}
}
}
int managerSign(int searchNumber, string searchName) {
ifstream fin;
int flag = 1;
fin.open("manager.txt");
string name;
int number;
while (fin >> number >> name) {
if (searchName == name && searchNumber == number) {
flag = 0;
cout << "登陆成功!" << endl;
managerMenu();
}
}
if (flag != 0) {
cout << "输入信息错误" << endl;
cout << "登录失败!" << endl;
system("pause");
fin.close();
return 0;
}
system("pause");
fin.close();
return 1;
}
int userSign(int searchNumber, string searchName) {
ifstream fin;
int flag = 1;
fin.open("user.txt");
string name;
int number;
while (fin >> number >> name) {
if (searchName == name && searchNumber == number) {
flag = 0;
cout << "登陆成功!" << endl;
userMenu();
}
}
if (flag != 0) {
cout << "输入信息错误" << endl;
cout << "登录失败!" << endl;
system("pause");
fin.close();
return 0;
}
system("pause");
fin.close();
return 1;
}
void userNew(int searNumber, string searName, string searPermission) {
string addName, addPermission;
int addNumber;
cout << setiosflags(ios::left) << setw(10) << "用户编号";
cin >> addNumber;
cout << setiosflags(ios::left) << setw(10) << "用户姓名";
cin >> addName;
cout << setiosflags(ios::left) << setw(10) << "用户权限";
cin >> addPermission;
ifstream fin;
int flag = 1;
string name, permission;
int number;
fin.open("user.txt");
if (!fin.is_open())
cout << "注册失败,请重试!" << endl;
else {
while (fin >> number >> name >> permission) {
if (name == addName) {
flag = 0;
break;
}
}
}
fin.close();
if (flag) {
ofstream fout;
fout.open("user.txt", ios::app);
if (!fout.is_open())
cout << "注册失败,请重试" << endl;
else {
fout << '\n' << addNumber << setw(10) << addName << setw(10) << addPermission << endl;
cout << "注册成功,请登录!" << endl;
}
fout.close();
} else
cout << "用户已存在!" << endl;
system("pause");
}
运行结果截图
注意事项
1、输入信息时要按照提示输入,string类型就输入字符串,int类型就输入整数,double类型就输入小数。
2、管理员信息这些在相应的txt文件里,输入时需要注意,因为课程要求不能使用数据库,使用数据库效果更好
3、程序比较简单,仅作为期末专周提交,如遇问题关闭运行窗口或者在txt文件中删除错误,作产生的数据即可
4、把所有文件放在一个文件夹或者桌面上