diff --git a/Graph/DoAddBook.drawio.svg b/Graph/DoAddBook.drawio.svg deleted file mode 100644 index 439f356..0000000 --- a/Graph/DoAddBook.drawio.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - DoAddBook - - - - - - DoAddBook - - - - - - - - - - - - - - - 数据库满? - - - - - - 数据库满? - - - - - - - - - - - - - 显示:数据库满 - - - - - - 显示:数据库满 - - - - - - - - - - - - - 输入图书编号 - - - - - - 输入图书编号 - - - - - - - - - - - - - 输入图书名 - - - - - - 输入图书名 - - - - - - - - - - - - - 输入图书数量 - - - - - - 输入图书数量 - - - - - - - - - - - - - 显示图书信息 - - 和***Added*** - - - - - - 显示图书信息 -和***Added*** - - - - - - - - - - - N - - - - - - N - - - - - - - - - - - Y - - - - - - Y - - - - - - - - - - Text is not SVG - cannot display - - - - \ No newline at end of file diff --git a/Graph/DoBorrowBook.drawio.svg b/Graph/DoBorrowBook.drawio.svg deleted file mode 100644 index eb89e67..0000000 --- a/Graph/DoBorrowBook.drawio.svg +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - - - - - - - DoBorrowBook - - - - - - - - DoBorrowBook - - - - - - - - - - - - - - 是否存在该图书 - - - - - - - 是否存在该图书 - - - - - - - - - - - - - - - - - - 提示:Books data empty - - - - - - - - 提示:Books data empty - - - - - - - - - - - - 显示:输入图书编号 - - - - - - - 显示:输入图书编号 - - - - - - - - - - - - - - - - - - - - 图书存在? - - - - - - - 图书存在? - - - - - - - - - - - - 显示OK - - - - - - - 显示OK - - - - - - - - - - - - - - 显示:Book empty - - - - - - - 显示:Book empty - - - - - - - - - - - - - - - - 数量不小于0 - - - - - - - 数量不小于0 - - - - - - - - - - - - - - 显示 - - - Not Found This Book - - - - - - - 显示 Not Found This Book - - - - - - - - - - - - Y - - - - - - Y - - - - - - - - - - - N - - - - - - N - - - - - - - - - Text is not SVG - cannot display - - - - \ No newline at end of file diff --git a/Graph/DoDeleteBook.drawio.svg b/Graph/DoDeleteBook.drawio.svg deleted file mode 100644 index fcce719..0000000 --- a/Graph/DoDeleteBook.drawio.svg +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - - - - - - - DoDeleteBook - - - - - - DoDeleteBook - - - - - - - - - - - - - - 输入图书编号 - - - - - - 输入图书编号 - - - - - - - - - - - - - - - 是否存在该图书 - - - - - - 是否存在该图书 - - - - - - - - - - - - - - 显示:Not found - - - - - - 显示:Not found - - - - - - - - - - - N - - - - - - N - - - - - - - - - - - - - 显示图书信息 - - - - - - 显示图书信息 - - - - - - - - - - - - - 显示:Deleted - - - - - - 显示:Deleted - - - - - - - - - - - Y - - - - - - Y - - - - - - - - - - Text is not SVG - cannot display - - - - \ No newline at end of file diff --git a/Graph/DoFindBook.drawio.svg b/Graph/DoFindBook.drawio.svg deleted file mode 100644 index e11edcc..0000000 --- a/Graph/DoFindBook.drawio.svg +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - - - - - - - DoFindBook - - - - - - DoFindBook - - - - - - - - - - - - - - - 图书库空? - - - - - - 图书库空? - - - - - - - - - - - - - 显示:图书库空 - - - - - - 显示:图书库空 - - - - - - - - - - - - - 输入图书编号 - - - - - - 输入图书编号 - - - - - - - - - - - - - - - 图书存在? - - - - - - 图书存在? - - - - - - - - - - - - - 显示Not Found - - - - - - 显示Not Found - - - - - - - - - - - - - 显示图书信息 - - 提示Found - - - - - - 显示图书信息 -提示Found - - - - - - - - - - Text is not SVG - cannot display - - - - \ No newline at end of file diff --git a/Graph/DoPrintBook.drawio.svg b/Graph/DoPrintBook.drawio.svg deleted file mode 100644 index 0b48974..0000000 --- a/Graph/DoPrintBook.drawio.svg +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - DoPrintBook - - - - - - DoPrintBook - - - - - - - - - - - - - - 提示输出所有书籍 - - - - - - 提示输出所有书籍 - - - - - - - - - - - - - 显示所有书籍信息 - - - - - - 显示所有书籍信息 - - - - - - - - - - - - - 显示总书籍个数 - - - - - - 显示总书籍个数 - - - - - - - - - - Text is not SVG - cannot display - - - - \ No newline at end of file diff --git a/Graph/DoRepaidBook.drawio.svg b/Graph/DoRepaidBook.drawio.svg deleted file mode 100644 index bf1c42a..0000000 --- a/Graph/DoRepaidBook.drawio.svg +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - DoRepaidBook - - - - - - DoRepaidBook - - - - - - - - - - - - - - 提示输入图书ID - - - - - - 提示输入图书ID - - - - - - - - - - - 显示还书 - - - - - - 显示还书 - - - - - - - - - - - - - - - 图书存在? - - - - - - 图书存在? - - - - - - - - - - - - - - DoAddBook - - - - - - DoAddBook - - - - - - - - - - - N - - - - - - N - - - - - - - - - - - - - - 图书数量加1 - - - - - - 图书数量加1 - - - - - - - - - - Text is not SVG - cannot display - - - - \ No newline at end of file diff --git a/Graph/DoReviseBook.svg b/Graph/DoReviseBook.svg deleted file mode 100644 index 5c0e763..0000000 --- a/Graph/DoReviseBook.svg +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - DoReviseBook - - - - - - End - - - - - - - - - - - Input - 显示修改图书和修改哪本书? - - - - - - Input 图书ID - - - - - - - - - - - - - - - 图书ID存在 - - - - - - - - - - - Output 原图书数量 - - - - - - Input 需要修改的图书数量 - - - - - - Output Revised number - :3 - ********************** - - - - - - - Output No such book - - - - - True - - - False - - - - - diff --git a/Graph/DoSortBook.svg b/Graph/DoSortBook.svg deleted file mode 100644 index c65936f..0000000 --- a/Graph/DoSortBook.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - DoSortBook - - - - - - End - - - - - - - - - - - Output Sort Books - - - - - - - - - - - - - 没有图书ID - - - - - - - - Output Book data empty - - - - - True - - - False - - - - - - Output - ***************************** - - Sort - success - - ***************************** - - - - - diff --git a/Graph/MAIN.drawio.svg b/Graph/MAIN.drawio.svg deleted file mode 100644 index 5991129..0000000 --- a/Graph/MAIN.drawio.svg +++ /dev/null @@ -1,864 +0,0 @@ - - - - - - - - - - - - - - - main - - - - - - main - - - - - - - - - - - - - - init - - - - - - init - - - - - - - - - - - - - - display_menu - - - - - - display_menu - - - - - - - - - - - - - - c=display_menu - - - - - - c=display_menu - - - - - - - - - - - - - - - - c=CMD_QUERY - - - - - - - c=CMD_QUERY - - - - - - - - - - - - - - - - c= - - - CMD_BOOROW - - - - - - - c=CMD_BOOROW - - - - - - - - - - - N - - - - - - N - - - - - - - - - - - - - - - - c= - - - CMD_REPAID - - - - - - - c=CMD_REPAID - - - - - - - - - - - - - - - - c= - - - CMD_PRINT - - - - - - - c=CMD_PRINT - - - - - - - - - - - - - - - - c= - - - CMD_INSERT - - - - - - - c=CMD_INSERT - - - - - - - - - - - - - - - - c=CMD_DELETE - - - - - - - c=CMD_DELETE - - - - - - - - - - - - - - - - c=CMD_UPDATE - - - - - - - c=CMD_UPDATE - - - - - - - - - - - - - - - - c=CMD_SORT - - - - - - - c=CMD_SORT - - - - - - - - - - - - - - - - c=CMD_QUIT - - - - - - - c=CMD_QUIT - - - - - - - - - - - - - - - - 确定退出 - - - - - - - 确定退出 - - - - - - - - - - - N - - - - - - N - - - - - - - - - - - N - - - - - - N - - - - - - - - - - - N - - - - - - N - - - - - - - - - - - N - - - - - - N - - - - - - - - - - - N - - - - - - N - - - - - - - - - - - N - - - - - - N - - - - - - - - - - - N - - - - - - N - - - - - - - - - - - Y - - - - - - Y - - - - - - - - - - - - - - quit - - - - - - quit - - - - - - - - - - - - - - DoFindBook - - - - - - DoFindBook - - - - - - - - - - - - - DoBoorowBook - - - - - - DoBoorowBook - - - - - - - - - - - - - DoRepaidBook - - - - - - DoRepaidBook - - - - - - - - - - - - - DoPrintBook - - - - - - DoPrintBook - - - - - - - - - - - - - DoAddBook - - - - - - DoAddBook - - - - - - - - - - - - - DoDeleteBook - - - - - - DoDeleteBook - - - - - - - - - - - - - DoReviseBook - - - - - - DoReviseBook - - - - - - - - - - - - - DoSortBook - - - - - - DoSortBook - - - - - - - - - - - - - 命令错误 - - 请重新选择 - - - - - - 命令错误 -请重新选择 - - - - - - - - - - - N - - - - - - N - - - - - - - - - - - - Y - - - - - - Y - - - - - - - - - - - - Y - - - - - - Y - - - - - - - - - - - - Y - - - - - - Y - - - - - - - - - - - - Y - - - - - - Y - - - - - - - - - - - - Y - - - - - - Y - - - - - - - - - - - - Y - - - - - - Y - - - - - - - - - - - - Y - - - - - - Y - - - - - - - - - - - - Y - - - - - - Y - - - - - - - - - - - N - - - - - - N - - - - - - - - - Text is not SVG - cannot display - - - - \ No newline at end of file diff --git a/Graph/Outline.drawio.svg b/Graph/Outline.drawio.svg deleted file mode 100644 index bdfb53f..0000000 --- a/Graph/Outline.drawio.svg +++ /dev/null @@ -1,526 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - main - - - - - - - main - - - - - - - - - - - - - - make_choice - - - - - - - make_choice - - - - - - - - - - - - - - display_menu - - - - - - - display_menu - - - - - - - - - - - - - - init - - - - - - - init - - - - - - - - - - - - - - confirm - - - - - - - confirm - - - - - - - - - - - - - - quit - - - - - - - quit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - print - - - - - - - - print - - - - - - - - - - - - - - - find - - - - - - - - find - - - - - - - - - - - - - - - input - - - - - - - - input - - - - - - - - - - - - - DoAddBook - - - - - - DoAddBook - - - - - - - - - - - - - DoFindBook - - - - - - DoFindBook - - - - - - - - - - - - - - DoDeleteBook - - - - - - - DoDeleteBook - - - - - - - - - - - - - DoPrintBook - - - - - - DoPrintBook - - - - - - - - - - - - - - DoRepaidBook - - - - - - - DoRepaidBook - - - - - - - - - - - - - - DoBoorowBook - - - - - - - DoBoorowBook - - - - - - - - - - - - - - DoReviseBook - - - - - - - DoReviseBook - - - - - - - - - - - - - DoSortBook - - - - - - DoSortBook - - - - - - - - - - - - - bookempty - - - - - - bookempty - - - - - - - - - Text is not SVG - cannot display - - - - \ No newline at end of file diff --git a/README.md b/README.md index 4e46874..43ebca0 100644 --- a/README.md +++ b/README.md @@ -9,15 +9,15 @@ 项目开发过程中采用 Kanban(看板)进行任务管理和分工协作,并使用 Git 对程序代码和文档进行版本管理。任务分工情况如下: |任务 |设计 |开发 |测试 |文档 | |------ |-------|-------|--------|-------| -|Ca-Cb | | | | 孙英皓 | -|C0-C2 | | | | 杨腾泽 | -|C3-C5 | | | | 刘彩月 | -|C6-C8 | | | | 李聪颖 | +|Ca-Cb | 孙英皓 | 孙英皓 | 孙英皓 | 孙英皓 | +|C0-C2 | 杨腾泽 | 杨腾泽 | 杨腾泽 | 杨腾泽 | +|C3-C5 | 刘彩月 | 刘彩月 | 刘彩月 | 刘彩月 | +|C6-C8 | 李聪颖 | 李聪颖 | 李聪颖 | 李聪颖 | 每个成员的工作量(百分比): |杨腾泽|孙英皓|李聪颖|刘彩月| |-----|----|-----|-----| -| 0 | 0 | 0 | 0 | +| 25% | 25% | 25% | 25% | ## 关于图书管理系统 设计一个图书管理系统,要求采用命令行菜单界面进行交互,具备查书、借书、还书、打印书籍 、添加、删除等基本功能,能够以表格和图表形式展示数据,采用 CSV 格式保存数据。 @@ -31,7 +31,7 @@ ## 需求分析 分析系统的功能需求和界面需求,编制用户手册如下。 -### Ca: 启动程序 +### Ca:启动程序 命令行中执行命令,系统启动,显示提示信息,然后显示功能菜单,等待用户输入命令。 ``` *******图书管理系统启动******* @@ -41,7 +41,7 @@ ———————————————————————————————————————————— 请选择: ``` -### Cb: 显示命令菜单 +### Cb:显示命令菜单 ``` ———————————————————————————————————————————— | 1 查书 | 2 借书 | 3 还书 | 4 打印 | 5 添加 | @@ -49,7 +49,7 @@ ———————————————————————————————————————————— 请选择: ``` -### C0: 退出程序 +### C0:退出程序 选择菜单命令:0 再输入:y,确认,则退出程序。若输入:n,则继续程序。 ``` 请选择:0 @@ -61,20 +61,18 @@ 确定要退出吗?(Y/N): n 程序退出 ``` -### C1: 查找图书 +### C1:查找图书 选择菜单命令: 1 ,提示Find Book 和 Enter book ID: 字样,若本身书籍库为空,则提示Book data empty。继续输入图书编号。若没找到,提示Not found;若找到,提示Found 并 打印书籍信息。 ``` 请选择:1 Find Book - Book data empty ``` ``` 请选择:1 Find Book - Enter book ID: 1 Not found ``` @@ -82,7 +80,6 @@ Not found 请选择:1 Find Book - Enter book ID: 1 Found ************ @@ -92,22 +89,19 @@ Book **** title: 《 2 》**** ************** Number: 3 ************** ``` -### C2:借用图书 +### C2:借用图书 选择菜单命令:2,提示 Boorow Book,若本身书籍库为空,则提示Book data empty。提示 Which book you wanna boorow ?,则继续输入图书编号。若该书本身不存在,则提示NOT FOUND THIS BOOK;如图书存在,则提示OK。 ``` 请选择:2 Boorow Book - Book data empty ``` ``` 请选择:2 Boorow Book - -Which book you wanna boorow ? -2 +Enter book ID:2 NOT FOUND THIS BOOK ``` @@ -115,33 +109,29 @@ NOT FOUND THIS BOOK 请选择:2 Boorow Book - -Which book you wanna boorow ? -1 +Enter book ID:1 ********* OK ********* ``` -### C3:归还图书 +### C3:归还图书 选择菜单命令:3,提示归还图书 和 你想要归还哪一本书?输入图书编号,若在系统中没有该图书,则添加图书并输入图书的编号,数量和数目,显示相关信息并归还成功,否则直接退出。 ````` 请选择:3 Repaid Book - -Which book you wanna repaid ? -2 +Enter book ID:2 Add Book -ID : 1 +ID : 2 TITLE : 1 Number : 1 Book -**************** id: 1 **************** +**************** id: 2 **************** **** title: 《 1 》**** ************** Number: 1 ************** ````` @@ -151,9 +141,7 @@ Book 请选择:3 Repaid Book - -Which book you wanna repaid ? -1 +Enter book ID:1 ````` ### C4:打印书籍 @@ -179,8 +167,12 @@ Book Total: 1 books ``` -### C5:添加图书 -选择菜单命令:5 提示添加图书,提示输入想添加的图书编号,标题和数目并输出Book,输出添加完后图书的相关信息和“Added”。 +### C5:添加图书 +选择菜单命令:5 提示添加图书,若图书库满,提示Books full.提示输入想添加的图书编号,标题和数目并输出Book,输出添加完后图书的相关信息和“Added”。 +``` +请选择:5 +Books full +``` ``` 请选择:5 @@ -204,8 +196,6 @@ Book 请选择:6 Delete Book - -Which book you wanna delelet? Enter book ID: 4 Book @@ -215,13 +205,12 @@ Book ************************ Deleted +************************ ``` ``` 请选择:6 Delete Book - -Which book you wanna delelet? Enter book ID: 5 Not found ``` @@ -231,9 +220,7 @@ Not found 请选择:7 Revise Book - -Which book you wanna revise ? -1 +Enter book ID : 1 Original book number : 1 Revised number :2 ********************** @@ -245,12 +232,24 @@ Revise success 请选择:7 Revise Book - -Which book you wanna revise ? -2 +Enter book ID : 2 No such book `````` +### C8:排序图书 +选择菜单命令:8,提示Sort Books,若图书库为空,则提示Book data empty;否则提示Sort success。 +``` +请选择:8 + +Sort Books +Book data empty +``` +``` +请选择:8 +Sort Books +***************************** +Sort success +``` # 概要设计 系统主要分为用户界面和数据处理两大模块。 @@ -260,17 +259,8 @@ No such book 其中查询、添加、修改和删除数据还会用到根据编号查询数据的方法(find)。 上述各模块通过主程序(main)进行调用,系统模块图如下。 -``` - - - - - - - - -``` 各模块的主要功能如下: + ## main 系统主函数模块,显示菜单,根据用户选择的菜单命令,执行相关操作。 ## init @@ -285,64 +275,84 @@ Step 1: 初始化 Step 2: 根据用户选择的命令执行对应的操作 Step 2.1: 显示菜单 Step 2.2: 选择菜单命令 c -Step 2.3: if c == CMD_PRINT then 打印数据 -Step 2.4: -``` -``` - - - - - - - - - - - - - - - - - - -``` - - +Step 2.3: if c == CMD_QUERY then 查找书籍 +Step 2.4: if c == CMD_BOOROW then 借用书籍 +Step 2.5: if c == CMD_REPAID then 归还书籍 +Step 2.6: if c == CMD_PRINT then 打印书籍 +Step 2.7: if c == CMD_INSERT then 添加书籍 +Step 2.8: if c == CMD_DELETE then 删除书籍 +Step 2.9: if c == CMD_UPDATE then 修改书籍 +Step 2.10: if c == CMD_SORT then 排序书籍 +Step 2.11: if c == CMD_QUIT then 选择退出 +``` + ## DoAddBook ``` -Step 1: if 数据库满 then 提示数据库满并结束 +Step 1: if 图书库满 then 提示图书库满 Step 2: 输入图书编号 -Step 3: 输入图书名和书籍数量 +Step 3: 输入图书名 +Step 4: 输入图书数量 Step 4: 添加新书籍 Step 5: 提示添加成功 ``` + +## DoFindBook ``` +Step 1: 提示添加书籍 +Step 2: if 图书库空 then 提示库空 +Step 3: 提示输入图书编号 +Step 4: 输入图书编号 +Step 5: if 找到图书 then 输出图书信息 并提示Found +Step 6: if 没找到 then 提示Not found +``` + +## DoDeleteBook +``` +Step 1: 提示删除图书 +Step 2: 输入图书编号 +Step 3: if 存在此图书 then 输出图上述信息 并提示 Deleted +Step 4: if 不存在此图书 then 提示 Not found +``` + +## DoPrintBook +``` +Step 1: 提示输出所有书籍 +Step 2: 输出所有书籍 +Step 3: 显示总书籍个数 +``` + +## DoRepaidBook +``` +Step 1: 提示归还图书 +Step 2: 输入图书编号 +Step 3: if 存在该书 then 图书数量变化 1 +Step 4: if 不存在该书 then 添加此图书 +``` + +## DoBoorowBook +``` +Step 1: 提示借用图书 +Step 2: if 图书库为空 then 提示 Books data empty +Step 3: 输入图书编号 +Step 4: if 此书存在 if 数量不小于0 then 进行程序并提示 OK 以表示完成 else 提示 Book empty +Step 5: if 此书不存在 then 提示 NOT FOUND THIS BOOK +``` + +## DoReviseBook +``` +Step 1: 提示修改图书 +Step 2: 输入图书编号 +Step 3: if 图书编号不存在,输出没有那样的书 +Step 4: if 图书编号存在,提示原图书数量,输出需要修改的图书数量并输出修改成功信息 +``` + - - - - - - - - - - - - - - - - - - - - - - - -``` \ No newline at end of file +## DoSortBook +``` +Step 1: 提示排序图书 +Step 2: if 没有图书编号 输出图书为空并输出排序成功 +Step 3: if 有图书编号 直接输出排序成功 +``` + \ No newline at end of file diff --git a/code/data.h b/code/data.h index 813dc33..cbd9d6e 100644 --- a/code/data.h +++ b/code/data.h @@ -49,7 +49,7 @@ void input(Book& b) // 打印一本书的信息 void print(const Book& b) { - cout << "Book " << endl << endl + cout << endl << "Book " << endl <<"**************** id: " << b.id << " ****************" << endl << "**** title: 《 " << b.title << " 》****" << endl << "************** Number: " << b.number << " **************" << endl << endl; @@ -85,41 +85,50 @@ bool bookempty() void DoAddBook() { cout << endl << "Add Book"<< endl<> id; Book book; if (find(id) == 0) - cout << "Not found" << endl; + { + cout << "************" << endl; + cout << "Not found" << endl; + cout << "************" << endl; + } else { book = books.elem[find(id)]; + cout << "************" << endl; cout << "Found" << endl; cout << "************" << endl; print(book); } + } } // 删除图书 void DoDeleteBook() { - cout << endl << "Delete Book" << endl << endl; + cout << endl << "Delete Book" << endl; int id; - cout << "Which book you wanna delelet?"<> id; Book e; @@ -136,6 +145,7 @@ void DoDeleteBook() --books.length; cout << "************************" << endl; cout << "Deleted" << endl; + cout << "************************" << endl; } } @@ -143,26 +153,25 @@ void DoDeleteBook() void DoPrintBook() { cout << endl << "Print All Books" << endl <> id; cout << endl; if (find(id)){ @@ -170,6 +179,7 @@ void DoRepaidBook() e = books.elem[find(id)]; ++books.elem[find(id)].number; }else{ + cout << "Add Book" << endl; DoAddBook(); } } @@ -177,13 +187,12 @@ void DoRepaidBook() // 借用图书 void DoBoorowBook() { - cout << endl << "Boorow Book" << endl <> id; - cout << endl; if (find(id)){ if (books.elem[find(id)].number>0) { Book e; @@ -192,25 +201,26 @@ void DoBoorowBook() --books.elem[find(id)].number; }else cout << "***************************"<< endl << "Book empty" << endl << "***************************" << endl; - }else cout<< "NOT FOUND THIS BOOK"<> id; if ( find(id)!=0 ) { - printf ( "Original book number : %d\n", books.elem[id].number ); + printf ( "Original book number : %d\n", books.elem[find(id)].number ); printf ( "Revised number :" ); int xiugai; scanf ( "%d", &xiugai ); - books.elem[id].number+=xiugai; + books.elem[id].number=xiugai; cout << "**********************" << endl; printf ( "Revise success \n" ); + cout << "**********************" << endl; } else printf ( "No such book\n"); } @@ -218,12 +228,12 @@ void DoReviseBook() // 排序图书 void DoSortBook() { - cout << endl << "Sort Books" << endl << endl; + cout << endl << "Sort Books" << endl; int a=0; if (bookempty()) cout << "Book data empty"<< endl; else { - for (int i=1;i0;j--) + for (int i=1;ibooks.elem[j].id) { Book temp=books.elem[i];books.elem[i]=books.elem[j];books.elem[j]=temp;} @@ -231,5 +241,6 @@ void DoSortBook() } cout << "*****************************" <