用c++写一个具有账号申请注册以及登录功能的图书管理系统
时间: 2023-12-04 09:02:30 浏览: 38
好的,以下是一个简单的图书管理系统的实现,包括账号申请注册和登录功能。
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 用户类
class User {
public:
User(const string& name, const string& password)
: name_(name), password_(password) {}
// 获取用户名
string GetName() const { return name_; }
// 验证密码是否正确
bool CheckPassword(const string& password) const { return password == password_; }
private:
string name_; // 用户名
string password_; // 密码
};
// 图书类
class Book {
public:
Book(const string& name, const string& author)
: name_(name), author_(author) {}
// 获取书名
string GetName() const { return name_; }
// 获取作者
string GetAuthor() const { return author_; }
private:
string name_; // 书名
string author_; // 作者
};
// 图书管理系统类
class Library {
public:
// 注册新用户
void Register() {
string name, password;
cout << "请输入用户名:";
cin >> name;
cout << "请输入密码:";
cin >> password;
users_.push_back(User(name, password));
cout << "注册成功!" << endl;
}
// 用户登录
bool Login() {
string name, password;
cout << "请输入用户名:";
cin >> name;
cout << "请输入密码:";
cin >> password;
for (const auto& user : users_) {
if (user.GetName() == name && user.CheckPassword(password)) {
cout << "登录成功!" << endl;
return true;
}
}
cout << "用户名或密码错误,请重新登录!" << endl;
return false;
}
// 添加新书
void AddBook() {
string name, author;
cout << "请输入书名:";
cin >> name;
cout << "请输入作者:";
cin >> author;
books_.push_back(Book(name, author));
cout << "添加成功!" << endl;
}
// 显示所有图书
void ShowBooks() {
cout << "所有图书:" << endl;
for (const auto& book : books_) {
cout << book.GetName() << " " << book.GetAuthor() << endl;
}
}
private:
vector<User> users_; // 所有用户
vector<Book> books_; // 所有图书
};
int main() {
Library library;
int choice;
while (true) {
cout << endl << "请选择操作:" << endl;
cout << "1. 注册" << endl;
cout << "2. 登录" << endl;
cout << "3. 添加新书" << endl;
cout << "4. 显示所有图书" << endl;
cout << "5. 退出" << endl;
cin >> choice;
switch (choice) {
case 1:
library.Register();
break;
case 2:
if (library.Login()) {
// 登录成功,可以进行其他操作
int sub_choice;
while (true) {
cout << endl << "请选择操作:" << endl;
cout << "1. 添加新书" << endl;
cout << "2. 显示所有图书" << endl;
cout << "3. 返回上一级菜单" << endl;
cin >> sub_choice;
switch (sub_choice) {
case 1:
library.AddBook();
break;
case 2:
library.ShowBooks();
break;
case 3:
break;
default:
cout << "无效操作!" << endl;
}
if (sub_choice == 3) {
break;
}
}
}
break;
case 3:
cout << "请先登录!" << endl;
break;
case 4:
library.ShowBooks();
break;
case 5:
return 0;
default:
cout << "无效操作!" << endl;
}
}
return 0;
}
```
注意,这只是一个简单的示例代码,实际情况下,需要根据具体需求进行修改和完善。