parent
5b33e7ca29
commit
8f57d59dbd
@ -0,0 +1,212 @@
|
||||
#ifndef DATA_H_INCLUDED
|
||||
#define DATA_H_INCLUDED
|
||||
|
||||
#include <stdio.h>
|
||||
#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 <Book> 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?"<<endl;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
// 打印所有图书
|
||||
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 << "*********"<<endl;
|
||||
--books.elem[find(id)].number;
|
||||
}else cout << "***************************"<< endl
|
||||
<< "Book empty" << endl << "***************************" << endl;
|
||||
}else throw "NOT FOUND THIS BOOK";
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif // DATA_H_INCLUDED
|
Loading…
Reference in new issue