#ifndef DATA_H_INCLUDED #define DATA_H_INCLUDED #include #include "sqlist.h" struct Book { int id; // 编号 string title; // 标题 int number; // 数量 }; SqList books; // 函数声明 bool bookempty(); // 书籍库判空 void input(Book& b); // 输入一本书的信息 void print(const Book& b);// 打印一本书的信息 int find(int id); // 根据 id 查找图书 || 若找到,返回元素的位序,找不到时返回 0 void DoAddBook(); // 添加图书 void DoFindBook(); // 查找图书 void DoDeleteBook(); // 删除图书 void DoPrintBook(); // 打印所有图书 void DoRepaidBook(); // 归还图书 void DoBoorowBook(); // 借用图书 void DoReviseBook(); // 修改图书 void DoSortBook(); // 排序图书 // 输入一本书的信息 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 << endl << "Book " << 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 } // 书籍库判空 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; Book book; if (find(id) == 0) { 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; int id; cout << "Enter book ID: "; cin >> 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; cout << "************************" << endl; } } // 打印所有图书 void DoPrintBook() { cout << endl << "Print All Books" << endl <> id; cout << endl; if (find(id)){ Book e; e = books.elem[find(id)]; ++books.elem[find(id)].number; }else{ cout << "Add Book" << endl; DoAddBook(); } } // 借用图书 void DoBoorowBook() { cout << endl << "Boorow Book" << endl ; int id; if (bookempty()) cout << "Books data empty"<< endl; else{ cout << "Enter book ID :"; cin >> id; if (find(id)){ if (books.elem[find(id)].number>0) { Book e; e = books.elem[find(id)]; cout<< "*********"<< endl << "OK" << endl << "*********"<> id; if ( find(id)!=0 ) { printf ( "Original book number : %d\n", books.elem[find(id)].number ); printf ( "Revised number :" ); int xiugai; scanf ( "%d", &xiugai ); books.elem[id].number=xiugai; cout << "**********************" << endl; printf ( "Revise success \n" ); cout << "**********************" << endl; } else printf ( "No such book\n"); } // 排序图书 void DoSortBook() { cout << endl << "Sort Books" << endl; int a=0; if (bookempty()) cout << "Book data empty"<< endl; else { for (int i=1;ibooks.elem[j].id) { Book temp=books.elem[i];books.elem[i]=books.elem[j];books.elem[j]=temp;} } } cout << "*****************************" <