diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..36f10cd --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "files.associations": { + "iostream": "cpp", + "ostream": "cpp", + "stdexcept": "cpp" + } +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..ccfcfb2 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,28 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: g++.exe build active file", + "command": "C:\\mingw64\\bin\\g++.exe", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}\\${fileBasenameNoExtension}.exe" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/data.h b/data.h index 0955567..61b738f 100644 --- a/data.h +++ b/data.h @@ -5,15 +5,19 @@ #include "sqlist.h" -// 函数声明 +struct Book { + int id; // 编号 + string title; // 标题 + int number; // 数量 + }; -void print_book(void); // 打印 -void query_book(void); // 查询 -void add_book(void); // 添加 -void delete_book(void); // 删除 -void boorow_book(void); // 借书 -void repaid_book(void); // 还书 +SqList books; +// 函数声明 +bool bookempty(); // 书籍库判空 +void input(Book& b); // 输入一本书的信息 +void print(const Book& b);// 打印一本书的信息 +int find(int id); // 根据 id 查找图书 || 若找到,返回元素的位序,找不到时返回 0 void DoAddBook(); // 添加图书 void DoFindBook(); // 查找图书 @@ -21,54 +25,11 @@ void DoDeleteBook(); // 删除图书 void DoPrintBook(); // 打印所有图书 void DoRepaidBook(); // 归还图书 void DoBoorowBook(); // 借用图书 +void DoReviseBook(); // 修改图书 +void DoSortBook(); // 排序图书 - - -void repaid_book(void) // 还书 - { - printf("还书\n"); - DoRepaidBook(); - } -void boorow_book(void) // 借书 - { - printf("借书\n"); - DoBoorowBook(); - } -void query_book(void) // 查询 - { - printf("查书\n"); - DoFindBook(); - } -void print_book(void) // 打印 - { - printf("打印\n"); - DoPrintBook(); - } -void add_book(void) // 添加 - { - puts("添加"); - DoAddBook(); - } -void delete_book(void) // 删除 - { - puts("删除"); - DoDeleteBook(); - } - - - - - -struct Book { - int id; // 编号 - string title; // 标题 - int number; // 数量 - }; - -SqList books; - - // 输入一本书的信息 +// 输入一本书的信息 void input(Book& b) { cout << "ID : "; @@ -108,10 +69,22 @@ int find(int id) return 0; // not found } +// 书籍库判空 +bool bookempty() +{ + int a=0; + for (int i=1;i<=books.length;i++) + { + if (find(i)==0) a++; + } + if (a==books.length) return true; + else return false; +} // 添加图书 void DoAddBook() { + cout << endl << "Add Book"<< endl<> id; @@ -142,6 +116,7 @@ void DoFindBook() // 删除图书 void DoDeleteBook() { + cout << endl << "Delete Book" << endl << endl; int id; cout << "Which book you wanna delelet?"<> id; @@ -198,6 +175,7 @@ void DoRepaidBook() // 借用图书 void DoBoorowBook() { + cout << endl << "Boorow Book" << endl <> id; @@ -210,9 +188,35 @@ void DoBoorowBook() --books.elem[find(id)].number; }else cout << "***************************"<< endl << "Book empty" << endl << "***************************" << endl; - }else throw "NOT FOUND THIS BOOK"; + }else cout<< "NOT FOUND THIS BOOK"<> id; + if ( find(id)!=0 ) { + printf ( "Original book number : %d\n", books.elem[id].number ); + printf ( "Revised number :" ); + int xiugai; + scanf ( "%d", &xiugai ); + books.elem[id].number+=xiugai; + cout << "**********************" << endl; + printf ( "Revise success \n" ); + } + else printf ( "No such book\n"); +} + +// 排序图书 +void DoSortBook() +{ + cout << endl << "Sort Books" << endl << endl; + int a=0; + if (bookempty()) cout << "Book data empty"<< endl; +} #endif // DATA_H_INCLUDED \ No newline at end of file diff --git a/title.cpp b/title.cpp index 0e3f6d7..007ba69 100644 --- a/title.cpp +++ b/title.cpp @@ -10,11 +10,13 @@ enum { CMD_QUIT, // 退出程序 CMD_QUERY, // 查书(数量) - CMD_BOOROW, // 借书 - CMD_REPAID, // 还书 + CMD_BOOROW, // 借用书籍 + CMD_REPAID, // 归还书籍 CMD_PRINT, // 打印书籍 CMD_INSERT, // 添加书籍 CMD_DELETE, // 删除书籍 + CMD_UPDATE, // 修改书籍 + CMD_SORT, // 排序书籍 }; @@ -40,22 +42,28 @@ int c = make_choice(); switch(c) { case CMD_REPAID:// 还书 - {repaid_book(); + {DoRepaidBook(); break;} case CMD_BOOROW:// 借书 - {boorow_book(); + {DoBoorowBook(); break;} case CMD_PRINT:// 打印所有书籍 - {print_book(); + {DoPrintBook(); break;} case CMD_QUERY:// 查找书籍 - {query_book(); + {DoFindBook(); break;} case CMD_INSERT:// 添加书籍 - {add_book(); + {DoAddBook(); break;} case CMD_DELETE:// 删除书籍 - {delete_book(); + {DoDeleteBook(); + break;} + case CMD_UPDATE:// 修改书籍 + {DoReviseBook(); + break;} + case CMD_SORT: // 排序书籍 + {DoSortBook(); break;} case CMD_QUIT:// 退出程序 {if (confirm("确定要退出吗?")) quit(); // 仅在确认后退出 @@ -90,8 +98,8 @@ void display_menu(void) { cout << "————————————————————————————————————————————————————————————————"<