对于图书管理系统,用C++写一段两种不同登录系统的代码,一种为图书内部管理人员,登录后可添加图书,另一种为顾客,登录系统仅图书基本操作,代码加入保密,即顾客无法访问管理人员的信息
时间: 2024-03-03 21:47:07 浏览: 56
基于C++的控制台图书管理系统,可提供管理员登录和用户登录两种模式,管理员模式登录后可对图书的相关信息进行管理
我理解你的要求并且会尽力满足。下面是一份简单的C++代码,实现了两种不同的登录系统,一种是图书内部管理人员,另一种是顾客,保证了顾客无法访问管理人员的信息。
```
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 定义图书结构体
struct Book {
string name; // 书名
string author; // 作者
int price; // 价格
};
// 定义管理员账号和密码
const string ADMIN_NAME = "admin";
const string ADMIN_PASSWORD = "password";
// 定义图书馆管理员类
class Librarian {
public:
// 构造函数
Librarian(string name, string password) : name(name), password(password) {}
// 添加书籍
void addBook(vector<Book>& books, Book book) {
books.push_back(book);
}
// 删除书籍
void deleteBook(vector<Book>& books, int index) {
books.erase(books.begin() + index);
}
// 显示所有书籍
void showAllBooks(vector<Book>& books) {
cout << "所有图书:" << endl;
for (int i = 0; i < books.size(); i++) {
cout << "书名:" << books[i].name << ",作者:" << books[i].author << ",价格:" << books[i].price << endl;
}
}
private:
string name; // 管理员姓名
string password; // 管理员密码
};
// 定义图书馆顾客类
class Customer {
public:
// 构造函数
Customer() {}
// 显示所有书籍
void showAllBooks(vector<Book>& books) {
cout << "所有图书:" << endl;
for (int i = 0; i < books.size(); i++) {
cout << "书名:" << books[i].name << ",作者:" << books[i].author << ",价格:" << books[i].price << endl;
}
}
};
int main() {
// 定义管理员和顾客对象
Librarian librarian(ADMIN_NAME, ADMIN_PASSWORD);
Customer customer;
// 定义图书数组
vector<Book> books;
// 添加一些图书
Book book1 = {"C++程序设计", "谭浩强", 59};
Book book2 = {"Java编程思想", "Bruce Eckel", 78};
Book book3 = {"Python基础教程", "Magnus Lie Hetland", 46};
librarian.addBook(books, book1);
librarian.addBook(books, book2);
librarian.addBook(books, book3);
// 登录系统
string username;
string password;
cout << "请输入用户名:";
cin >> username;
cout << "请输入密码:";
cin >> password;
// 管理员登录
if (username == ADMIN_NAME && password == ADMIN_PASSWORD) {
cout << "管理员登录成功!" << endl;
// 显示管理员操作菜单
while (true) {
cout << "请选择操作:" << endl;
cout << "1. 添加书籍" << endl;
cout << "2. 删除书籍" << endl;
cout << "3. 显示所有书籍" << endl;
cout << "4. 退出" << endl;
int choice;
cin >> choice;
if (choice == 1) {
// 添加书籍
string name;
string author;
int price;
cout << "请输入书名:";
cin >> name;
cout << "请输入作者:";
cin >> author;
cout << "请输入价格:";
cin >> price;
Book book = {name, author, price};
librarian.addBook(books, book);
cout << "添加成功!" << endl;
} else if (choice == 2) {
// 删除书籍
int index;
cout << "请输入要删除的书籍编号:";
cin >> index;
if (index >= 0 && index < books.size()) {
librarian.deleteBook(books, index);
cout << "删除成功!" << endl;
} else {
cout << "书籍编号不正确!" << endl;
}
} else if (choice == 3) {
// 显示所有书籍
librarian.showAllBooks(books);
} else if (choice == 4) {
// 退出
break;
} else {
cout << "输入不正确,请重新输入!" << endl;
}
}
} else {
// 顾客登录
cout << "顾客登录成功!" << endl;
// 显示顾客操作菜单
while (true) {
cout << "请选择操作:" << endl;
cout << "1. 显示所有书籍" << endl;
cout << "2. 退出" << endl;
int choice;
cin >> choice;
if (choice == 1) {
// 显示所有书籍
customer.showAllBooks(books);
} else if (choice == 2) {
// 退出
break;
} else {
cout << "输入不正确,请重新输入!" << endl;
}
}
}
return 0;
}
```
在这份代码中,我们定义了一个`Book`结构体表示一本书,包括书名、作者和价格。我们还定义了一个`Librarian`类表示图书馆管理员,包括添加书籍、删除书籍和显示所有书籍等操作;定义了一个`Customer`类表示顾客,包括显示所有书籍等操作。在`main`函数中,我们首先创建了一个管理员对象和一个顾客对象,并且添加了一些初始的图书。然后让用户输入用户名和密码,如果是管理员,则显示管理员的操作菜单,如果是顾客,则显示顾客的操作菜单。通过这种方式,我们保证了顾客无法访问管理员的信息,实现了保密的要求。
阅读全文