C++做图书馆管理系统Windows
时间: 2024-06-09 07:07:05 浏览: 16
实现一个图书馆管理系统,需要以下几个步骤:
1. 确定系统功能:图书信息的录入、查询、删除、修改等基本操作,还需要实现借书和还书功能。同时,还需要实现管理员登录和普通用户登录功能。
2. 设计系统界面:可以使用Windows窗体应用程序进行设计,设计好系统的主界面和各个子界面。
3. 编写代码:根据系统功能和界面设计,编写代码实现各个功能。
4. 数据库设计:使用SQL Server等数据库软件设计图书馆的数据库,将图书信息、用户信息、借书记录等数据存储在数据库中。
5. 进行测试:完成代码编写后,进行系统测试,测试系统的各个功能是否正常运行。
以下是一个简单的C++图书馆管理系统的代码示例:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 图书类
class Book
{
public:
Book(string name, string author, string publish, string ISBN, int num)
{
this->name = name;
this->author = author;
this->publish = publish;
this->ISBN = ISBN;
this->num = num;
}
string GetName()
{
return name;
}
string GetAuthor()
{
return author;
}
string GetPublish()
{
return publish;
}
string GetISBN()
{
return ISBN;
}
int GetNum()
{
return num;
}
void SetNum(int num)
{
this->num = num;
}
private:
string name; // 书名
string author; // 作者
string publish; // 出版社
string ISBN; // ISBN号
int num; // 数量
};
// 用户类
class User
{
public:
User(string name, string password, bool isAdmin)
{
this->name = name;
this->password = password;
this->isAdmin = isAdmin;
}
string GetName()
{
return name;
}
string GetPassword()
{
return password;
}
bool IsAdmin()
{
return isAdmin;
}
private:
string name; // 用户名
string password; // 密码
bool isAdmin; // 是否是管理员
};
// 图书馆类
class Library
{
public:
// 添加图书
void AddBook(Book book)
{
books.push_back(book);
}
// 删除图书
void RemoveBook(string ISBN)
{
for (int i = 0; i < books.size(); i++)
{
if (books[i].GetISBN() == ISBN)
{
books.erase(books.begin() + i);
break;
}
}
}
// 修改图书数量
void ModifyBookNum(string ISBN, int num)
{
for (int i = 0; i < books.size(); i++)
{
if (books[i].GetISBN() == ISBN)
{
books[i].SetNum(num);
break;
}
}
}
// 查询图书
vector<Book> QueryBook(string name)
{
vector<Book> result;
for (int i = 0; i < books.size(); i++)
{
if (books[i].GetName() == name)
{
result.push_back(books[i]);
}
}
return result;
}
// 添加用户
void AddUser(User user)
{
users.push_back(user);
}
// 删除用户
void RemoveUser(string name)
{
for (int i = 0; i < users.size(); i++)
{
if (users[i].GetName() == name)
{
users.erase(users.begin() + i);
break;
}
}
}
// 验证用户
bool VerifyUser(string name, string password)
{
for (int i = 0; i < users.size(); i++)
{
if (users[i].GetName() == name && users[i].GetPassword() == password)
{
return true;
}
}
return false;
}
// 获取用户类型
bool GetUserType(string name)
{
for (int i = 0; i < users.size(); i++)
{
if (users[i].GetName() == name)
{
return users[i].IsAdmin();
}
}
return false;
}
private:
vector<Book> books; // 图书列表
vector<User> users; // 用户列表
};
int main()
{
// 初始化图书馆
Library library;
// 添加图书
library.AddBook(Book("C++ Primer", "Lippman", "China Machine Press", "978-7-121-33863-8", 5));
library.AddBook(Book("Effective C++", "Scott Meyers", "China Machine Press", "978-7-111-24827-4", 3));
library.AddBook(Book("Thinking in Java", "Bruce Eckel", "China Machine Press", "978-7-115-20130-5", 2));
// 添加用户
library.AddUser(User("admin", "admin", true));
library.AddUser(User("user", "user", false));
// 登录
string name, password;
cout << "请输入用户名和密码:" << endl;
cout << "用户名:";
cin >> name;
cout << "密码:";
cin >> password;
if (library.VerifyUser(name, password))
{
bool isAdmin = library.GetUserType(name);
if (isAdmin)
{
cout << "管理员登录成功!" << endl;
// TODO:管理员操作
}
else
{
cout << "普通用户登录成功!" << endl;
// TODO:普通用户操作
}
}
else
{
cout << "用户名或密码错误!" << endl;
}
return 0;
}
```
以上代码只是一个简单的示例,可以根据需要进行修改和扩展。同时,需要注意对异常情况进行处理,例如输入非法数据、数据库连接失败等情况。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)