程序开发===》图书馆的借阅系统------开发源代码---雏形设计——经典C++的完全应用
2019-06-24 23:20
1321 查看
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
初步学习了C++这门面向对象的语言后,我们学以致用,利用最简朴的VC2010编译环境在源文件出进行代码开发,收获颇丰。
图书馆的借阅系统
建立两个类:
- 书籍类
- 图书馆类
书籍类:
class Book//书籍类 { public: Book()//无参构造函数,对对象的成员进行初始化。 { borrow_flag = false; } Book(string name, string num, string auther):name(name), num(num), auther(auther)//有参构造函数 { borrow_flag = false; } void setReader(string reader, int lcn, string data); //设置读者 void setInfo(string name, string num, string auther); //设置书籍信息 //书籍信息: string getName() { return name; } string getNum() { return num; } string getAuther() { return auther; } //读者信息: bool getBorrow_flag() { return borrow_flag; } string getReader() { return reader; } int getLcn() { return lcn; } string getData() { return data; } bool isBorrow(){ return borrow_flag; } //判断书籍是否借出 void setBorrow_flag(bool b){ borrow_flag = b; }//返还书籍 void showInfo(); //显示数据信息 private: string name; //书名 string num; //编号(唯一标示) string auther; //作者 bool borrow_flag; string reader; //读者 int lcn; //借书证号 string data; //借书日期 };
图书馆类:
class Library//图书馆类 { public: Library(){ currentNum = 0; brrowNum = 0; } void addBook(); //向图书馆里加书籍 void addBook(string name, string num, string auther);//有参构造函数 void deleteBook(); //删除无用书籍 void brrowBook(); //借书,之前先判断书籍是否存在 void returnBook(); //还书 void getReader(); //查询某编号的书是谁借了 int indexOfNum(string num); //根据编号得到书在数组中的下标 vector<Book> getBooks()//等于声明一个Book类的类getBook(); { return books; } friend void read();//友元函数访问,类外定义read()函数 void showInfo(); int getTotalBooks()//书籍总和 { return currentNum + brrowNum; } private: vector<Book> books;//所有书籍 map<string, int> readers; //存储读者及其所借的书籍数目 int currentNum; //库存书籍数目(不包括借出的) int brrowNum; //借出书籍数目 };
读者及书籍信息的设置:
void Book::setReader(string reader, int lcn, string data)//设置读者 { borrow_flag = true; this->reader.assign(reader); this->lcn = lcn; this->data.assign(data); } void Book::setInfo(string name, string num, string auther)//设置书籍信息 { this->name.assign(name); this->num.assign(num); this->auther.assign(auther); }
对图书的添、删、借、还、查:
void Library::addBook()//向图书馆里增添书籍 { Book b; int temp; string name, num, auther; cout<<" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"; cout<<" ┃*****************************增加界面*****************************┃\n"; cout<<" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n"; do{ cout << "输入书籍名称,编号,作者:"; cin >> name >> num >> auther; b.setInfo(name, num, auther);//设置图书信息 if (indexOfNum(num) == -1){ books.push_back(b);//栈压入数据 currentNum++; cout << "\n添加成功。" << endl; cout << "输入1继续增加:"; cin >> temp; } else{ cout << "已存在该编号的书籍,添加失败。" << endl; cout << "输入1继续重新增加:"; cin >> temp; } } while (temp==1); system("pause"); system("cls"); } void Library::addBook(string name, string num, string auther)//添上书籍的信息 { Book b; b.setInfo(name, num, auther);//设置图书信息 books.push_back(b);//以栈压入 } void Library::deleteBook()//删除书籍 { int index,temp; string num; cout << " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"; cout << " ┃*****************************删除界面*****************************┃\n"; cout << " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n"; do{ cout << "输入要删除的书籍的编号:"; cin >> num; index = indexOfNum(num);//赋值于index编号 if (index != -1){ if (!books[index].getBorrow_flag()){ cout << "删除的书籍的信息:\n"; books[index].showInfo();//显示图书编号 books.erase(books.begin() + index);//清除数组空间 currentNum--; cout << "删除成功。" << endl; cout << "输入1继续继续删除:"; cin >> temp; } else{ cout << "删除失败!书籍已经被借出。" << endl; cout << "输入1继续继续删除:"; cin >> temp; } } else { cout << "删除失败。未找到编号为" << num << "的书籍。\n"; cout << "输入1继续继续删除:"; cin >> temp; } } while (temp==1); system("pause"); system("cls"); } void Library::brrowBook()//图书的借阅 { string num; int index; cout << " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"; cout << " ┃*****************************借阅界面*****************************┃\n"; cout << " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n"; cout << "输入要借阅的书籍的编号:"; cin >> num; index = indexOfNum(num); if (index != -1){ if (books[index].isBorrow()){ cout << "借阅失败,书籍以及被借出。\n"; system("pause"); system("cls"); } else { cout << "要借的书籍的信息:\n"; books[index].showInfo(); string reader, data; int lcn; cout << "输入读者姓名,借书证号,借书日期:"; cin >> reader >> lcn >> data; if (readers[reader] != 2){ books[index].setReader(reader, lcn, data); cout << "借书完成。\n"; currentNum--; brrowNum++; readers[reader]++; system("pause"); system("cls"); } else { cout << "借书失败,该读者以借超过两本书籍。\n"; system("pause"); system("cls"); } } } else { cout << "借书失败。未找到编号为" << num << "的书籍.\n"; system("pause"); system("cls"); } } void Library::returnBook()//返还图书 { string num; cout << " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"; cout << " ┃*****************************还书界面*****************************┃\n"; cout << " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n"; cout << "输入要还的书籍的编号:"; cin >> num; int index; index = indexOfNum(num); if (index != -1) { cout << "要还的书籍的信息为:\n"; books[index].showInfo(); books[index].setBorrow_flag(false); readers[books[index].getReader()]--;//减1标记 cout << "还书成功。\n"; system("pause"); system("cls"); } else { cout << "还书失败,请检查书籍编号是否输入错误!\n"; system("pause"); system("cls"); } } void Library::getReader()//查找书籍 { string num; cout << " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"; cout << " ┃*****************************查询界面*****************************┃\n"; cout << " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n"; cout << "输入要查找的书籍编号:"; cin >> num; int index; index = indexOfNum(num); if (index != -1) { if (books[index].getBorrow_flag()) cout << "读者为:" << books[index].getReader() << endl; else{ cout << "无读者。" << endl; } system("pause"); system("cls"); } else { cout << "查询失败,请检查书籍编号是否输入错误!\n"; system("pause"); system("cls"); } }Library l;
文件操作:
void read()//文件的读入 { int i, temp; ifstream my1("num.txt");//对文件的操作 my1 >> temp; ifstream my("book.txt"); for (i = 0; i<temp; i++) { string name, num, auther, reader, data; int lcn; bool borrow_flag; my >> name >> num >> auther >> borrow_flag; l.addBook(name, num, auther); if (borrow_flag) { my >> reader >> lcn >> data; l.books[i].setReader(reader, lcn, data); } } } void save()//文件的输出 { ofstream my("book.txt"); int i; for (i = 0; i<l.getBooks().size(); i++){ Book b; b = l.getBooks()[i]; if (b.getBorrow_flag()) my << b.getName() << "\t" << b.getNum() << "\t" << b.getAuther() << "\t" << b.getBorrow_flag() << "\t" << b.getReader() << "\t" << b.getLcn() << "\t" << b.getData() << "\n"; else my << b.getName() << "\t" << b.getNum() << "\t" << b.getAuther() << "\t" << b.getBorrow_flag() << "\n"; } ofstream my1("num.txt"); my1 << l.getBooks().size(); }
显示信息:
void Book::showInfo()//显示数据信息 { cout<< "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓" << endl; cout<< "┃书籍名称:" << setiosflags(ios_base::left)<<setw(56)<<name <<"┃"<< endl//默认左对齐,全局设置,sew()控制输出长度。 << "┃书籍编号:" << setw(56) << num << "┃" << endl << "┃书籍作者:" << setw(56) << auther << "┃" << endl; if (borrow_flag) { cout <<"┃书籍被借出。 ┃\n" << "┃读者姓名:" << setw(56) << reader << "┃" << endl << "┃借书证号:" << setw(56) << lcn << "┃" << endl << "┃借书日期:" << setw(56) << data << "┃" << endl << "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"; } else{ cout << "┃书籍未被借出。 ┃\n"; cout << "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"; } void Library::showInfo()//显示每本书的信息 { cout << " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"; cout << " ┃***************************所有图书信息***************************┃\n"; cout << " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n"; for (int i = 0; i<books.size(); i++) { cout << "第"<<i+1<<"本书籍的信息。" << endl; books[i].showInfo();//显示第i+1本书。 } system("pause"); system("cls"); } void menu()//显示菜单 { int temp; cout << "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n"; cout << "■ ■\n"; cout << "■ ■\n"; cout << "■ ┏━━━━━━━━━━━━━━━━━━━━━━━┓ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ 制作者:yyx ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ 制作日期:2019.06 ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ 学校:sq university ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ 班级:软嵌1803 ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ 版本:图书馆管理系统 ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ Weclome to use it! ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ All Ringhts Reserved! ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┗━━━━━━━━━━━━━━━━━━━━━━━┛ ■\n"; cout << "■ ■\n"; cout << "■ ■\n"; cout << "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n"; Sleep(2000);//执行挂起一段时间,也就是等待一段时间再继续执行。 system("cls"); while (1) { cout << "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n"; cout << "■___________________________ 图书馆管理系统______________________________■\n"; cout << "■ ┏━━━━━━━━━━━━━━┓ ■\n"; cout << "■ ┃ ●[0]退出系统。 ┃ ■\n"; cout << "■ ┣━━━━━━━━━━━━━━┫ ■\n"; cout << "■ ┃ ●[1]增加图书。 ┃ ■\n"; cout << "■ ┣━━━━━━━━━━━━━━┫ ■\n"; cout << "■ ┃ ●[2]删除图书。 ┃ ■\n"; cout << "■ ┣━━━━━━━━━━━━━━┫ ■\n"; cout << "■ ┃ ●[3]借阅图书。 ┃ ■\n"; cout << "■ ┣━━━━━━━━━━━━━━┫ ■\n"; cout << "■ ┃ ●[4]归还图书。 ┃ ■\n"; cout << "■ ┣━━━━━━━━━━━━━━┫ ■\n"; cout << "■ ┃ ●[5]显示图书信息。 ┃ ■\n"; cout << "■ ┣━━━━━━━━━━━━━━┫ ■\n"; cout << "■ ┃ ●[6]查询图书。 ┃ ■\n"; cout << "■ ┗━━━━━━━━━━━━━━┛ ■\n"; cout << "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n"; cout << "输入要进行的操作:" ; cin >> temp; switch (temp){ case 1: system("cls"); l.addBook(); save();//将数据写入一个临时文件。 break; case 2:system("cls"); l.deleteBook(); save(); break; case 3:system("cls"); l.brrowBook(); save(); break; case 4:system("cls"); l.returnBook(); save(); break; case 5:system("cls"); l.showInfo(); break; case 6:system("cls"); l.getReader(); break; case 0: save(); exit(1); break; default: cout << "输入错误!" << endl; system("cls"); } } }
------》源代码:
#include<iostream> #include<string> #include<vector> /*vector是一种顺序容器,事实上和数组差不多,但它比数组更优越。 一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。 而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。 用.at()访问的话,也可以做越界检查。*/ #include<map>//自动建立key - value的对应。key 和 value可以是任意你需要的类型。 #include<fstream> /*在C++中,对文件的操作是通过stream的子类fstream(filestream)来实现的 所以,要用这种方式操作文件,就必须加入头文件fstream.h*/ #include<windows.h>//sleep()函数的头文件 #include<iomanip>//参数的格式化输入/输出,sew()函数的头文件。 using namespace std; class Book//书籍类 { public: Book()//无参构造函数,对对象的成员进行初始化。 { borrow_flag = false; } Book(string name, string num, string auther):name(name), num(num), auther(auther)//有参构造函数 { borrow_flag = false; } void setReader(string reader, int lcn, string data); //设置读者 void setInfo(string name, string num, string auther); //设置书籍信息 //书籍信息: string getName() { return name; } string getNum() { return num; } string getAuther() { return auther; } //读者信息: bool getBorrow_flag() { return borrow_flag; } string getReader() { return reader; } int getLcn() { return lcn; } string getData() { return data; } bool isBorrow(){ return borrow_flag; } //判断书籍是否借出 void setBorrow_flag(bool b){ borrow_flag = b; }//返还书籍 void showInfo(); //显示数据信息 private: string name; //书名 string num; //编号(唯一标示) string auther; //作者 bool borrow_flag; string reader; //读者 int lcn; //借书证号 string data; //借书日期 }; void Book::setReader(string reader, int lcn, string data)//设置读者 { borrow_flag = true; this->reader.assign(reader); this->lcn = lcn; this->data.assign(data); } void Book::setInfo(string name, string num, string auther)//设置书籍信息 { this->name.assign(name); this->num.assign(num); this->auther.assign(auther); }void Book::showInfo()//显示数据信息 { cout<< "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓" << endl; cout<< "┃书籍名称:" << setiosflags(ios_base::left)<<setw(56)<<name <<"┃"<< endl//默认左对齐,全局设置,sew()控制输出长度。 << "┃书籍编号:" << setw(56) << num << "┃" << endl << "┃书籍作者:" << setw(56) << auther << "┃" << endl; if (borrow_flag) { cout <<"┃书籍被借出。 ┃\n" << "┃读者姓名:" << setw(56) << reader << "┃" << endl << "┃借书证号:" << setw(56) << lcn << "┃" << endl << "┃借书日期:" << setw(56) << data << "┃" << endl << "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"; } else{ cout << "┃书籍未被借出。 ┃\n"; cout << "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"; } } class Library//图书馆类 { public: Library(){ currentNum = 0; brrowNum = 0; } void addBook(); //向图书馆里加书籍 void addBook(string name, string num, string auther);//有参构造函数 void deleteBook(); //删除无用书籍 void brrowBook(); //借书,之前先判断书籍是否存在 void returnBook(); //还书 void getReader(); //查询某编号的书是谁借了 int indexOfNum(string num); //根据编号得到书在数组中的下标 vector<Book> getBooks()//等于声明一个Book类的类getBook(); { return books; } friend void read();//友元函数访问,类外定义read()函数 void showInfo(); int getTotalBooks()//书籍总和 { return currentNum + brrowNum; } private: vector<Book> books;//所有书籍 map<string, int> readers; //存储读者及其所借的书籍数目 int currentNum; //库存书籍数目(不包括借出的) int brrowNum; //借出书籍数目 }; void Library::showInfo()//显示每本书的信息 { cout << " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"; cout << " ┃***************************所有图书信息***************************┃\n"; cout << " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n"; for (int i = 0; i<books.size(); i++) { cout << "第"<<i+1<<"本书籍的信息。" << endl; books[i].showInfo();//显示第i+1本书。 } system("pause"); system("cls"); } int Library::indexOfNum(string num)//图书编号 { int i; for (i = 0; i<books.size(); i++) { if (books[i].getNum() == num) return i; } return -1; } void Library::addBook()//向图书馆里增添书籍 { Book b; int temp; string name, num, auther; cout<<" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"; cout<<" ┃*****************************增加界面*****************************┃\n"; cout<<" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n"; do{ cout << "输入书籍名称,编号,作者:"; cin >> name >> num >> auther; b.setInfo(name, num, auther);//设置图书信息 if (indexOfNum(num) == -1){ books.push_back(b);//栈压入数据 currentNum++; cout << "\n添加成功。" << endl; cout << "输入1继续增加:"; cin >> temp; } else{ cout << "已存在该编号的书籍,添加失败。" << endl; cout << "输入1继续重新增加:"; cin >> temp; } } while (temp==1); system("pause"); system("cls"); } void Library::addBook(string name, string num, string auther)//添上书籍的信息 { Book b; b.setInfo(name, num, auther);//设置图书信息 books.push_back(b);//以栈压入 } void Library::deleteBook()//删除书籍 { int index,temp; string num; cout << " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"; cout << " ┃*****************************删除界面*****************************┃\n"; cout << " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n"; do{ cout << "输入要删除的书籍的编号:"; cin >> num; index = indexOfNum(num);//赋值于index编号 if (index != -1){ if (!books[index].getBorrow_flag()){ cout << "删除的书籍的信息:\n"; books[index].showInfo();//显示图书编号 books.erase(books.begin() + index);//清除数组空间 currentNum--; cout << "删除成功。" << endl; cout << "输入1继续继续删除:"; cin >> temp; } else{ cout << "删除失败!书籍已经被借出。" << endl; cout << "输入1继续继续删除:"; cin >> temp; } } else { cout << "删除失败。未找到编号为" << num << "的书籍。\n"; cout << "输入1继续继续删除:"; cin >> temp; } } while (temp==1); system("pause"); system("cls"); } void Library::brrowBook()//图书的借阅 { string num; int index; cout << " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"; cout << " ┃*****************************借阅界面*****************************┃\n"; cout << " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n"; cout << "输入要借阅的书籍的编号:"; cin >> num; index = indexOfNum(num); if (index != -1){ if (books[index].isBorrow()){ cout << "借阅失败,书籍以及被借出。\n"; system("pause"); system("cls"); } else { cout << "要借的书籍的信息:\n"; books[index].showInfo(); string reader, data; int lcn; cout << "输入读者姓名,借书证号,借书日期:"; cin >> reader >> lcn >> data; if (readers[reader] != 2){ books[index].setReader(reader, lcn, data); cout << "借书完成。\n"; currentNum--; brrowNum++; readers[reader]++; system("pause"); system("cls"); } else { cout << "借书失败,该读者以借超过两本书籍。\n"; system("pause"); system("cls"); } } } else { cout << "借书失败。未找到编号为" << num << "的书籍.\n"; system("pause"); system("cls"); } } void Library::returnBook() { string num; cout << " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"; cout << " ┃*****************************还书界面*****************************┃\n"; cout << " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n"; cout << "输入要还的书籍的编号:"; cin >> num; int index; index = indexOfNum(num); if (index != -1) { cout << "要还的书籍的信息为:\n"; books[index].showInfo(); books[index].setBorrow_flag(false); readers[books[index].getReader()]--;//减1标记 cout << "还书成功。\n"; system("pause"); system("cls"); } else { cout << "还书失败,请检查书籍编号是否输入错误!\n"; system("pause"); system("cls"); } } void Library::getReader()//查找书籍 { string num; cout << " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"; cout << " ┃*****************************查询界面*****************************┃\n"; cout << " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n"; cout << "输入要查找的书籍编号:"; cin >> num; int index; index = indexOfNum(num); if (index != -1) { if (books[index].getBorrow_flag()) cout << "读者为:" << books[index].getReader() << endl; else{ cout << "无读者。" << endl; } system("pause"); system("cls"); } else { cout << "查询失败,请检查书籍编号是否输入错误!\n"; system("pause"); system("cls"); } }Library l; void read()//文件的读入 { int i, temp; ifstream my1("num.txt");//对文件的操作 my1 >> temp; ifstream my("book.txt"); for (i = 0; i<temp; i++) { string name, num, auther, reader, data; int lcn; bool borrow_flag; my >> name >> num >> auther >> borrow_flag; l.addBook(name, num, auther); if (borrow_flag) { my >> reader >> lcn >> data; l.books[i].setReader(reader, lcn, data); } } } void save()//文件的输出 { ofstream my("book.txt"); int i; for (i = 0; i<l.getBooks().size(); i++){ Book b; b = l.getBooks()[i]; if (b.getBorrow_flag()) my << b.getName() << "\t" << b.getNum() << "\t" << b.getAuther() << "\t" << b.getBorrow_flag() << "\t" << b.getReader() << "\t" << b.getLcn() << "\t" << b.getData() << "\n"; else my << b.getName() << "\t" << b.getNum() << "\t" << b.getAuther() << "\t" << b.getBorrow_flag() << "\n"; } ofstream my1("num.txt"); my1 << l.getBooks().size(); } void menu()//显示菜单 { int temp; cout << "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n"; cout << "■ ■\n"; cout << "■ ■\n"; cout << "■ ┏━━━━━━━━━━━━━━━━━━━━━━━┓ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ 制作者:yyx ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ 制作日期:2019.06 ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ 学校:sq university ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ 班级:软嵌1803 ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ 版本:图书馆管理系统 ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ Weclome to use it! ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┃ All Ringhts Reserved! ┃ ■\n"; cout << "■ ┃ ┃ ■\n"; cout << "■ ┗━━━━━━━━━━━━━━━━━━━━━━━┛ ■\n"; cout << "■ ■\n"; cout << "■ ■\n"; cout << "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n"; Sleep(2000);//执行挂起一段时间,也就是等待一段时间再继续执行。 system("cls"); while (1) { cout << "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n"; cout << "■___________________________ 图书馆管理系统______________________________■\n"; cout << "■ ┏━━━━━━━━━━━━━━┓ ■\n"; cout << "■ ┃ ●[0]退出系统。 ┃ ■\n"; cout << "■ ┣━━━━━━━━━━━━━━┫ ■\n"; cout << "■ ┃ ●[1]增加图书。 ┃ ■\n"; cout << "■ ┣━━━━━━━━━━━━━━┫ ■\n"; cout << "■ ┃ ●[2]删除图书。 ┃ ■\n"; cout << "■ ┣━━━━━━━━━━━━━━┫ ■\n"; cout << "■ ┃ ●[3]借阅图书。 ┃ ■\n"; cout << "■ ┣━━━━━━━━━━━━━━┫ ■\n"; cout << "■ ┃ ●[4]归还图书。 ┃ ■\n"; cout << "■ ┣━━━━━━━━━━━━━━┫ ■\n"; cout << "■ ┃ ●[5]显示图书信息。 ┃ ■\n"; cout << "■ ┣━━━━━━━━━━━━━━┫ ■\n"; cout << "■ ┃ ●[6]查询图书。 ┃ ■\n"; cout << "■ ┗━━━━━━━━━━━━━━┛ ■\n"; cout << "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n"; cout << "输入要进行的操作:" ; cin >> temp; switch (temp){ case 1: system("cls"); l.addBook(); save();//将数据写入一个临时文件。 break; case 2:system("cls"); l.deleteBook(); save(); break; case 3:system("cls"); l.brrowBook(); save(); break; case 4:system("cls"); l.returnBook(); save(); break; case 5:system("cls"); l.showInfo(); break; case 6:system("cls"); l.getReader(); break; case 0: save(); exit(1); break; default: cout << "输入错误!" << endl; system("cls"); } } } int main() { read();//文件读入 menu();//菜单输出 return 0; }
实验效果图:
相关文章推荐
- 程序开发===》航空订票系统设计------开发源代码---雏形设计——经典C的完全应用
- 软件系统开发中的组件框架技术研究、设计和应用
- 从架构设计到系统实施-基于.NET 3.0的全新企业应用之开发基于MMC 3.0的管理工具
- 读-《c++设计新思维-泛型编程与设计模式之应用》经典记录(英文书名:《modern c++ design》)
- 软件系统开发中的组件框架技术研究、设计和应用【转自lrn资源网】
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第19讲_js运行原理_js开发工具介绍_js程序(hello)_js基本语法_学习笔记_源代码图解_PPT文档整理
- 应用系统基础构建设计开发实践(一)
- 企业应用开发——OJ系统数据库设计
- 软件系统开发中的组件框架技术研究、设计和应用【转】
- Oracle平台应用数据库系统的设计与开发
- 图解应用集成开发环境设计GUI程序-4
- android应用完全退出,并且从最近运行程序以及系统正在运行列表中完全抹除。
- 基于云计算和大数据的图书馆 应用系统建设设计
- java应用软件开发之多物料管理系统--登录界面设计
- Linux系统与应用------一句话问答(网络无关篇+网络相关篇+程序开发篇+经典图书)
- 掌握C/C++之后,如何在Windows系统下开发有界面的程序?
- Android应用开发完全退出程序的通用方法!!! (转)
- C++第十五周【任务2】 设计分数类,开发一个窗口式程序
- Oracle平台应用数据库系统的设计与开发
- Unix/Linux C++应用开发-文件系统编程