#ifndef DATA_H_INCLUDED #define DATA_H_INCLUDED #include #include "sqlist.h" // 函数声明 void print_book(void); // 打印 void query_book(void); // 查询 void add_book(void); // 添加 void delete_book(void); // 删除 void boorow_book(void); // 借书 void repaid_book(void); // 还书 void DoAddBook(); // 添加图书 void DoFindBook(); // 查找图书 void DoDeleteBook(); // 删除图书 void DoPrintBook(); // 打印所有图书 void DoRepaidBook(); // 归还图书 void DoBoorowBook(); // 借用图书 void repaid_book(void) // 还书 { printf("还书\n"); } void boorow_book(void) // 借书 { printf("借书\n"); } void query_book(void) // 查询 { printf("查书\n"); } void print_book(void) // 打印 { printf("打印\n"); } void add_book(void) // 添加 { puts("添加"); } void delete_book(void) // 删除 { puts("删除"); } struct Book { int id; // 编号 string title; // 标题 int number; // 数量 }; SqList books; // 输入一本书的信息 void input(Book& b) { cout << "ID : "; cin >> b.id; cin.ignore(1024, '\n'); // skip rest chars of the line cout << "TITLE : "; getline(cin, b.title); cout << "Number : "; while (1){ cin >> b.number; if (b.number>0) break; cout << "Number ERROR" << endl; cout << "Input again" << endl; } } // 打印一本书的信息 void print(const Book& b) { cout << "Book " << endl << endl <<"**************** id: " << b.id << " ****************" << endl << "**** title: 《 " << b.title << " 》****" << endl << "************** Number: " << b.number << " **************" << endl << endl; } // 根据 id 查找图书 // 若找到,返回元素的位序,找不到时返回 0 int find(int id) { for (int i = 1; i <= books.length; i++) { if (id == books.elem[i].id){ return i; } } return 0; // not found } // 添加图书 void DoAddBook() { Book book; input(book); //输入图书 books.elem[books.length + 1] = book; books.length++; print(book); cout << "*******Added********" << endl; } // 查找图书 void DoFindBook() { int id; cout << "Enter book ID: "; cin >> id; Book book; if (find(id) == 0) cout << "Not found" << endl; else { book = books.elem[find(id)]; cout << "Found" << endl; cout << "************" << endl; print(book); } } // 删除图书 void DoDeleteBook() { int id; cout << "Which book you wanna delelet?"<> id; Book e; if (find(id) == 0) cout << "Not found" << endl; else { e = books.elem[find(id)]; print(e); for (int i = find(id); i < books.length; i++) { books.elem[i] = books.elem[i + 1]; } --books.length; cout << "************************" << endl; cout << "Deleted" << endl; } } // 打印所有图书 void DoPrintBook() { int flag = 0; for (int i = 0; i < books.length; i++) { Book e; e = books.elem[i + 1]; print(e); flag++; } cout << "Total: "; cout << flag; cout << " books" << endl; } // 归还图书 void DoRepaidBook() { int id; cout << "Which book you wanna repaid ? " << endl; cin >> id; cout << endl; if (find(id)){ Book e; e = books.elem[find(id)]; ++books.elem[find(id)].number; }else{ DoAddBook(); } } // 借用图书 void DoBoorowBook() { int id; cout << "Which book you wanna boorow ? " << endl; cin >> id; cout << endl; if (find(id)){ if (books.elem[find(id)].number>0) { Book e; e = books.elem[find(id)]; cout<< "*********"<< endl << "OK" << endl << "*********"<