学生图书管理系统c++
时间: 2023-09-11 20:09:45 浏览: 163
好的,下面是一个简单的学生图书管理系统的C++代码示例,仅供参考:
```c++
#include<iostream>
#include<cstring>
using namespace std;
const int MAXSIZE = 1000; // 最大记录数
// 书籍信息结构体
struct Book {
string id; // 书籍编号
string name; // 书籍名称
string author; // 作者姓名
string publisher; // 出版社
int total; // 馆藏数量
int remain; // 剩余数量
};
// 学生信息结构体
struct Student {
string id; // 学生编号
string name; // 学生姓名
string department; // 学生所在院系
int borrowed; // 借阅数量
};
// 数据库类
class Library {
private:
Book bookList[MAXSIZE]; // 书籍列表
Student studentList[MAXSIZE];// 学生列表
int bookCount; // 书籍数量
int studentCount; // 学生数量
public:
Library() { bookCount = studentCount = 0; } // 构造函数,初始化数量为0
void addBook(Book book); // 添加书籍
void addStudent(Student student); // 添加学生
void borrowBook(string bookId, string studentId); // 借阅书籍
void returnBook(string bookId, string studentId); // 归还书籍
void displayBooks(); // 显示书籍列表
void displayStudents(); // 显示学生列表
};
// 添加书籍
void Library::addBook(Book book) {
if (bookCount >= MAXSIZE) {
cout << "存储空间已满,无法添加书籍!" << endl;
return;
}
bookList[bookCount++] = book;
cout << "添加书籍成功!" << endl;
}
// 添加学生
void Library::addStudent(Student student) {
if (studentCount >= MAXSIZE) {
cout << "存储空间已满,无法添加学生!" << endl;
return;
}
studentList[studentCount++] = student;
cout << "添加学生成功!" << endl;
}
// 借阅书籍
void Library::borrowBook(string bookId, string studentId) {
bool bookFound = false, studentFound = false;
int bookIndex = -1, studentIndex = -1;
for (int i = 0; i < bookCount; ++i) {
if (bookList[i].id == bookId) {
bookFound = true;
bookIndex = i;
break;
}
}
for (int i = 0; i < studentCount; ++i) {
if (studentList[i].id == studentId) {
studentFound = true;
studentIndex = i;
break;
}
}
if (!bookFound) {
cout << "未找到该书籍!" << endl;
return;
}
if (!studentFound) {
cout << "未找到该学生!" << endl;
return;
}
if (bookList[bookIndex].remain <= 0) {
cout << "该书籍已全部借出!" << endl;
return;
}
if (studentList[studentIndex].borrowed >= 5) {
cout << "该学生已达到借阅数量上限!" << endl;
return;
}
bookList[bookIndex].remain--;
studentList[studentIndex].borrowed++;
cout << "借阅成功!" << endl;
}
// 归还书籍
void Library::returnBook(string bookId, string studentId) {
bool bookFound = false, studentFound = false;
int bookIndex = -1, studentIndex = -1;
for (int i = 0; i < bookCount; ++i) {
if (bookList[i].id == bookId) {
bookFound = true;
bookIndex = i;
break;
}
}
for (int i = 0; i < studentCount; ++i) {
if (studentList[i].id == studentId) {
studentFound = true;
studentIndex = i;
break;
}
}
if (!bookFound) {
cout << "未找到该书籍!" << endl;
return;
}
if (!studentFound) {
cout << "未找到该学生!" << endl;
return;
}
if (bookList[bookIndex].remain >= bookList[bookIndex].total) {
cout << "该书籍已全部归还!" << endl;
return;
}
if (studentList[studentIndex].borrowed <= 0) {
cout << "该学生没有借阅该书籍!" << endl;
return;
}
bookList[bookIndex].remain++;
studentList[studentIndex].borrowed--;
cout << "归还成功!" << endl;
}
// 显示书籍列表
void Library::displayBooks() {
cout << "书籍编号\t书籍名称\t作者姓名\t出版社\t馆藏数量\t剩余数量" << endl;
for (int i = 0; i < bookCount; ++i) {
cout << bookList[i].id << "\t" << bookList[i].name << "\t" << bookList[i].author << "\t"
<< bookList[i].publisher << "\t" << bookList[i].total << "\t" << bookList[i].remain << endl;
}
}
// 显示学生列表
void Library::displayStudents() {
cout << "学生编号\t学生姓名\t学生所在院系\t已借阅数量" << endl;
for (int i = 0; i < studentCount; ++i) {
cout << studentList[i].id << "\t" << studentList[i].name << "\t" << studentList[i].department << "\t"
<< studentList[i].borrowed << endl;
}
}
int main() {
Library library;
int choice;
while (true) {
cout << "请选择操作:" << endl;
cout << "1. 添加书籍" << endl;
cout << "2. 添加学生" << endl;
cout << "3. 借阅书籍" << endl;
cout << "4. 归还书籍" << endl;
cout << "5. 显示书籍列表" << endl;
cout << "6. 显示学生列表" << endl;
cout << "7. 退出" << endl;
cin >> choice;
if (choice == 1) {
Book book;
cout << "请输入书籍编号:";
cin >> book.id;
cout << "请输入书籍名称:";
cin >> book.name;
cout << "请输入作者姓名:";
cin >> book.author;
cout << "请输入出版社:";
cin >> book.publisher;
cout << "请输入馆藏数量:";
cin >> book.total;
book.remain = book.total;
library.addBook(book);
}
else if (choice == 2) {
Student student;
cout << "请输入学生编号:";
cin >> student.id;
cout << "请输入学生姓名:";
cin >> student.name;
cout << "请输入学生所在院系:";
cin >> student.department;
student.borrowed = 0;
library.addStudent(student);
}
else if (choice == 3) {
string bookId, studentId;
cout << "请输入书籍编号:";
cin >> bookId;
cout << "请输入借阅学生编号:";
cin >> studentId;
library.borrowBook(bookId, studentId);
}
else if (choice == 4) {
string bookId, studentId;
cout << "请输入书籍编号:";
cin >> bookId;
cout << "请输入归还学生编号:";
cin >> studentId;
library.returnBook(bookId, studentId);
}
else if (choice == 5) {
library.displayBooks();
}
else if (choice == 6) {
library.displayStudents();
}
else if (choice == 7) {
break;
}
}
return 0;
}
```
这是一个比较简单的代码示例,包括了添加书籍、添加学生、借阅书籍、归还书籍、显示书籍列表和显示学生列表等操作。如果需要扩展功能,可以在此基础上进行修改和完善。