C++基础编程部分知识总结应用–图书管理系统
文章目录
1. 代码结构和预处理命令
首先,代码中包含了必要的头文件iostream
,它用于C++的标准输入输出流。
#include "iostream"
using namespace std;
2. 定义图书结构体
接下来,代码定义了一个名为book
的结构体,用于存储图书的信息。这个结构体包含四个字段:name
(图书名称)、author
(图书作者)、publisher
(图书出版社)和price
(图书价格)。
struct book {
string name; // 图书名称
string author; // 图书作者
string publisher; // 图书出版社
int price{}; // 图书价格
};
3. 定义图书列表结构体
然后,代码定义了一个名为bookList
的结构体,用于存储图书列表。这个结构体包含两个字段:一个book
类型的数组book
,用于存储多本书的信息;一个整数bookNum
,用于记录图书的数量。
struct bookList {
book book[100]; // 图书数组
int bookNum{}; // 图书数量
};
4. 后台控制函数
backCtrl()
函数是一个后台控制函数,用于在操作成功后返回菜单。它提示用户输入0返回菜单或1继续操作,并根据用户的输入返回相应的布尔值。
bool backCtrl() {
cout << "操作成功,按0返回菜单,按1继续操作" << endl;
int flag;
cin >> flag;
switch (flag) {
case 0:
return false;
case 1:
return true;
default:
cout << "输入错误,请重新输入" << endl;
return backCtrl();
}
}
5. 显示主菜单
showMenu()
函数用于显示主菜单,列出了系统提供的所有功能,并提示用户输入相应的选择。
void showMenu() {
cout << "欢迎使用图书管理系统" << endl;
cout << "1.添加图书" << endl;
cout << "2.查询图书" << endl;
cout << "3.显示图书" << endl;
cout << "4.修改图书" << endl;
cout << "5.删除图书" << endl;
cout << "0.退出系统" << endl;
}
6. 添加图书函数
addBook()
函数用于添加一本新书到图书列表中。它首先提示用户输入图书的信息,然后将这些信息存储到bookList
的相应字段中,并将图书数量加1。最后,它调用backCtrl()
函数以确定是否继续添加图书。
void addBook(bookList *bookList) {
// 输入图书信息
do{
cout << "请输入图书名称:";
cin>>bookList->book[bookList->bookNum].name;
cout << "请输入图书作者:";
cin>>bookList->book[bookList->bookNum].author;
cout << "请输入图书出版社:";
cin>>bookList->book[bookList->bookNum].publisher;
cout << "请输入图书价格:";
cin>>bookList->book[bookList->bookNum].price;
cout << "添加成功" << endl;
bookList->bookNum++;
} while (backCtrl());
}
7. 查询图书函数
searchBook()
函数用于查询图书列表中指定的图书。它提示用户输入要查询的图书名称,然后在图书列表中遍历查找匹配的图书信息并输出。最后,它调用backCtrl()
函数以确定是否继续查询其他图书。
oid searchBook(bookList *bookList) {
do {
cout << "请输入图书名称:";
string name;
cin >> name;
// 遍历查找并输出匹配的图书信息
for ( int i = 0;i < bookList->bookNum; ++i) {
if (bookList->book[i].name == name) {
cout << "图书名称:" << bookList->book[i].name << '\t';
cout << "图书作者:" << bookList->book[i].author << '\t';
cout << "图书出版社:" << bookList->book[i].publisher << '\t';
cout << "图书价格:" << bookList->book[i].price << endl;
}
}
} while (backCtrl());
}
8. 显示所有图书函数
showBook()
函数用于显示图书列表中的所有图书信息。它首先检查图书列表是否为空,如果不为空,则遍历输出所有图书的信息。最后,它调用backCtrl()
函数以确定是否继续显示其他图书。
void showBook(bookList *bookList) {
// 遍历输出所有图书信息
do {
if (bookList->bookNum == 0){
cout << "图书列表为空" << endl;
} else {
cout << "图书列表" << endl;
for (int i = 0; i < bookList->bookNum; ++i) {
cout << "图书名称:";
cout << bookList->book[i].name << '\t';
cout << "图书作者:";
cout << bookList->book[i].author << '\t';
cout << "图书出版社:";
cout << bookList->book[i].publisher << '\t';
cout << "图书价格:";
cout << bookList->book[i].price << endl;
}
}
} while (backCtrl());
// 调用后台控制函数
}
9. 修改图书信息函数
modifyBook()
函数用于修改图书列表中指定图书的信息。它首先提示用户输入要修改的图书名称,然后在图书列表中遍历查找匹配的图书信息并进行修改。最后,它调用backCtrl()
函数以确定是否继续修改其他图书的信息。
void modifyBook(bookList *bookList) {
do {
cout << "请输入要修改的图书名称:";
string name;
cin >> name;
// 遍历查找并修改匹配的图书信息
for ( int i = 0;i < bookList->bookNum; ++i) {
if (bookList->book[i].name == name) {
int select;
cout << "修改的图书项目" << endl;
cout << "1.修改图书名称" << endl;
cout << "2.修改图书作者" << endl;
cout << "3.修改图书出版社" << endl;
cout << "4.修改图书价格" << endl;
cin >> select;
switch (select) {
case 1: {
cout << "图书名称:" ;
cin >> bookList->book[i].name;
break;
}
case 2: {
cout << "图书作者:" ;
cin >> bookList->book[i].author;
break;
}
case 3: {
cout << "图书出版社:" ;
cin >> bookList->book[i].publisher;
break;
}
case 4: {
cout << "图书价格:" ;
cin >> bookList->book[i].price;
break;
}
default: {
cout << "输入错误" << endl;
break;
}
}
}
}
} while (backCtrl());
// 调用后台控制函数
}
10. 删除图书函数
deleteBook()
函数用于删除图书列表中指定的图书。它首先提示用户输入要删除的图书名称,然后在图书列表中遍历查找匹配的图书信息并删除。最后,它调用backCtrl()
函数以确定是否继续删除其他图书。
void deleteBook(bookList *bookList) {
do {
cout << "请输入要删除的图书名称:";
string name;
cin >> name;
// 遍历查找并删除匹配的图书信息
for (int i = 0; i < bookList->bookNum; ++i) {
if (bookList->book[i].name == name){
for (int j = i; j < bookList->bookNum; ++j) {
bookList->book[j] = bookList->book[j + 1];
}
}
}
bookList->bookNum--;
} while (backCtrl());
// 调用后台控制函数
}
11. 主函数
最后,代码定义了主函数main()
,它是程序的入口点。在这个函数中,首先创建了一个bookList
对象,然后进入一个无限循环,不断显示主菜单并获取用户的选择。根据用户的选择,执行相应的功能函数。如果用户选择退出系统(输入0),则跳出循环并结束程序。
int main() {
bookList bookList;
while(true){
showMenu(); // 显示主菜单
int choice;
cout << "请输入你的选择:";
cin >> choice;
switch (choice) {
case 1:
addBook(&bookList);
break;
case 2:
searchBook(&bookList);
break;
case 3:
showBook(&bookList);
break;
case 4:
modifyBook(&bookList);
break;
case 5:
deleteBook(&bookList);
break;
case 0:
cout << "欢迎下次使用" << endl;
break;
default:
cout << "输入错误,请重新输入" << endl;
break;
}
if(choice == 0){
break; // 选择退出系统时结束程序
}
}
return 0;
}
这段C++代码实现了一个简单的命令行界面的图书管理系统,具有添加、查询、显示、修改和删除图书的功能。虽然它的界面和功能都比较基础,但仍然是一个很好的学习示例,可以帮助初学者理解C++编程和面向对象编程的基本概念。
标签:cout,--,编程,C++,name,bookList,book,图书,函数 From: https://blog.csdn.net/weixin_73497355/article/details/139363525