C++實現(xiàn)圖書管理系統(tǒng)課程設計(面向對象)
本文實例為大家分享了C++實現(xiàn)圖書管理系統(tǒng)課程設計,供大家參考,具體內(nèi)容如下
1.題目:
【1】:工作人員登錄后,可以進行的操作
添加學生的信息(學號,姓名,院系,最大借閱的圖書數(shù)量等);
修改學生的信息(學號,姓名,院系,最大借閱的圖書數(shù)量等);
刪除學生的信息(學號,姓名,院系,最大借閱的圖書數(shù)量等);
如果某個學生退學,就要清除他的信息;
查看學生的信息;
添加圖書的信息(圖書號,書名,作者,出版社,數(shù)量等);
修改圖書的信息(圖書號,書名,作者,出版社,數(shù)量等);
刪除圖書的信息(圖書號,書名,作者,出版社,數(shù)量等);
查看圖書的信息;
【2】:學生登錄后,可以進行的操作
查看學生自己借閱的數(shù)目信息;
借閱圖書;
歸還圖書;
備注:要求將學生和圖書信息存放到外存上,每次從外存讀取數(shù)據(jù);
2.代碼
/** ?*項目名稱:圖書管理系統(tǒng) ?*語言:C++ ?**/ #include <iostream> #include <fstream> #include <string> #include <iomanip> #include <vector> #include <stdlib.h> #include <string.h> using namespace std; //構建學生類 class Student { public: ?? ?Student() ?? ?{ ?? ??? ?memset(s_num, 0, sizeof(s_num)); ?? ??? ?memset(s_name,0, sizeof(s_name)); ?? ??? ?memset(s_name, 0, sizeof(college, 0, sizeof(college))); ?? ??? ?borrow_max = 0; ?? ??? ?borrow_quantity = 0; ?? ??? ?memset(borrow_books, 0, sizeof(borrow_books)); ?? ?} ?? ?char s_num[15];?? //學號 ?? ?char s_name[10];??//姓名 ?? ?char college[30];?//院系 ?? ?int borrow_max;?? ??//最大借閱數(shù)量 ?? ?int borrow_quantity;?? ??//借閱數(shù)量 ?? ?char borrow_books[10][30];?//借閱圖書 ?? ?bool S_SetInto();???//設置學生信息 ?? ?friend istream& operator>>(istream& in, Student& cp);??//提取運算符重載 ?? ?friend ostream& operator<<(ostream& out, Student& cp);?//插入運算符重載 ?? ?bool S_If_match(char p[30]);??//判斷學號是否匹配 ?? ?void s_display();??//顯示學生信息 }; //設置學生信息 bool Student::S_SetInto() { ?? ?char temp[15]; ?? ?cout << "請輸入學號:(輸入+退出)"; ?? ?cin >> temp; ?? ?if (temp[0] == '+') ?? ?{ ?? ??? ?return false; ?? ?} ?? ?strcpy(s_num, temp); ?? ?cout << "學生姓名:"; ?? ?cin >> s_name; ?? ?cout << "院系:"; ?? ?cin >> college; ?? ?do ?? ?{ ?? ??? ?cout << "最大借閱數(shù)量(1-10):"; ?? ??? ?cin >> borrow_max; ?? ?} ?? ?while (borrow_max <= 0 || borrow_max > 10); ?? ?return true; } //提取運算符重載 istream& operator>>(istream& in, Student& cp) { ?? ?in >> cp.s_num >> cp.s_name >> cp.college >> cp.borrow_max >> cp.borrow_quantity; ?? ?for (int i = 0; i < cp.borrow_quantity; i++) ?? ?{ ?? ??? ?in >> cp.borrow_books[i]; ?? ?} ?? ?return in; } //插入運算符重載 ostream& operator<<(ostream& out, Student& cp) { ?? ?out << cp.s_num << ' ' << cp.s_name << ' ' << cp.college << ' ' << cp.borrow_max << ' ' << cp.borrow_quantity << ' '; ?? ?for (int i = 0; i < 10; i++) ?? ?{ ?? ??? ?out << cp.borrow_books[i] << ' '; ?? ??? ?if (i == 9) ?? ??? ?{ ?? ??? ??? ?out << '\n'; ?? ??? ?} ?? ?} ?? ?return out; } //判斷學號是否匹配 bool Student::S_If_match(char p[30]) { ?? ?return (!strcmp(s_num, p)||!strcmp(s_name, p)); } //顯示學生信息 void Student::s_display()?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?//顯示 { ?? ?cout << setiosflags(ios::left) << "學號:" << setw(12) << s_num << " ? ?" << setw(10) << s_name << " ? ?" << setw(25) << college << endl ?? ??? ?<< "最大借閱量" << borrow_max << endl; } //構建圖書類 class Book { public: ?? ?char b_num[15];?//圖書號 ?? ?char b_name[30];?//書名 ?? ?char author[20];??//作者 ?? ?char p_house[30];?//Publishing House 出版社 ?? ?int b_quantity;?? //圖書數(shù)量 ?? ?bool B_SetInto();??? ?//設置圖書信息 ?? ?friend istream& operator>>(istream& in, Book& cp);?? //提取運算符重載 ?? ?friend ostream& operator<<(ostream& out, Book& cp);??//插入運算符重載 ?? ?bool B_If_match(char p[30]); ?? ?void b_display();??//圖書信息顯示 }; //設置圖書信息 bool Book::B_SetInto() { ?? ?char temp[15]; ?? ?cout << "請輸入圖書號:(輸入+退出)"; ?? ?cin >> temp; ?? ?if (temp[0] == '+') ?? ??? ?return false; ?? ?strcpy(b_num, temp); ?? ?cout << "書名:"; ?? ?cin >> b_name; ?? ?cout << "作者:"; ?? ?cin >> author; ?? ?cout << "出版社"; ?? ?cin >> p_house; ?? ?cout << "數(shù)量:"; ?? ?cin >> b_quantity; ?? ?return true; } //提取運算符重載 istream& operator>>(istream& in, Book& cp) { ?? ?in >> cp.b_num >> cp.b_name >> cp.author >> cp.p_house >> cp.b_quantity; ?? ?return in; } //插入運算符重載 ostream& operator<<(ostream& out, Book& cp) { ?? ?out << cp.b_num <<' '<< cp.b_name <<' '<< cp.author <<' '<< cp.p_house <<' '<< cp.b_quantity<<'\n'; ?? ?return out; } //判斷圖書號是否匹配 bool Book::B_If_match(char p[30]) { ?? ??? ?return (!strcmp(b_num, p)|| !strcmp(b_name, p)); } //顯示函數(shù) void Book:: b_display() { ?? ?cout << setiosflags(ios::left) << setw(12) << b_num << " ? ?" << setw(30) << b_name << " ? ?" << setw(10) << author << endl ?? ??? ?<< setw(20) << p_house << " ? ?" <<"剩余數(shù)量:"<< setw(3) << b_quantity << endl; } //構建管理類 class management { public: ?? ?int s_sum=0;??//學生數(shù) ?? ?int b_sum=0;??//圖書數(shù) ?? ?string key;??//管理員密碼 ?? ?vector<Student> s_array;??//記錄學生類 ?? ?vector<Book> b_array;?//記錄圖書類 ?? ?void S_clear();??//清理已有學生信息 ?? ?void B_clear();??//清理已有圖書信息 ?? ?void S_Read_file();?//讀取學生文件 ?? ?void S_Save_file();?//保存學生文件 ?? ?void B_Read_file();?//讀取圖書文件 ?? ?void B_Save_file();?//保存圖書文件 ?? ?bool Student_add();?//添加學生信息 ?? ?bool Student_mod();?//修改學生信息 ?? ?bool Student_del();?//刪除學生信息 ?? ?bool Student_scan();??//查看學生信息 ?? ?bool Book_add();??//添加圖書信息 ?? ?bool Book_mod();??//修改圖書信息 ?? ?bool Book_del();??//刪除圖書信息 ?? ?bool Book_scan();?//查看圖書信息 ?? ?bool s_login(Student& cp);?? ?//學生憑學號登錄 ?? ?bool borrow_scan(Student &cp);?? //查看借閱數(shù)目 ?? ?bool borrow_book(Student &cp);?? //借書 ?? ?bool return_book(Student &cp);?? //還書 ?? ?bool Student_System();???//學生登錄 ?? ?bool Personnel_System();?? ?//工作人員登錄 ?? ?void login_init();?? ?//登錄界面初始化 }; //清理已有學生信息 void management::S_clear() { ?? ?s_array.clear(); ?? ?s_sum = 0; } //清理已有圖書信息 void management::B_clear() { ?? ?b_array.clear(); ?? ?b_sum = 0; } //讀取學生文件 void management::S_Read_file() { ?? ?ifstream s_file; ?? ?s_file.open("Student_Information.txt"); ?? ?if (!s_file.is_open()) ?? ?{ ?? ??? ?cerr << "文件\"Student_Information.txt\"無法打開\n"; ?? ??? ?exit(1); ?? ?} ?? ?while (!(s_file.eof())) ?? ?{ ?? ??? ?Student stu; ?? ??? ?s_file >> stu; ?? ??? ?s_array.push_back(stu); ?? ??? ?s_sum++; ?? ?} ?? ?s_sum--; ?? ?s_file.close(); } //保存學生文件 void management::S_Save_file() { ?? ?ofstream s_file("Student_Information.txt"); ?? ?if (!s_file) ?? ?{ ?? ??? ?cerr << "文件\"Student_Information.txt\"無法打開!\n"; ?? ??? ?exit(1); ?? ?} ?? ?int i = -1; ?? ?while (++i < s_sum) ?? ?{ ?? ??? ?s_file << s_array[i]; ?? ?} ?? ?s_file.close(); } //讀取圖書文件 void management::B_Read_file() { ?? ?ifstream b_file; ?? ?b_file.open("Book_Information.txt"); ?? ?if (!b_file.is_open()) ?? ?{ ?? ??? ?cerr << "文件\"Book_Information.txt\"無法打開\n"; ?? ??? ?exit(1); ?? ?} ?? ?while (!b_file.eof()) ?? ?{ ?? ??? ?Book _book; ?? ??? ?b_file >> _book; ?? ??? ?b_array.push_back(_book); ?? ??? ?b_sum++; ?? ?}; ?? ?b_sum--; ?? ?b_file.close(); } //保存圖書文件 void management::B_Save_file() { ?? ?ofstream b_file("Book_Information.txt"); ?? ?if (!b_file) ?? ?{ ?? ??? ?cerr << "文件\"Book_Information.txt\"無法打開!\n"; ?? ??? ?exit(1); ?? ?} ?? ?int i = -1; ?? ?while (++i < b_sum) ?? ?{ ?? ??? ?b_file << b_array[i]; ?? ?} ?? ?b_file.close(); } //添加學生信息 bool management::Student_add() { ?? ?S_Read_file(); ?? ?Student _stu; ?? ?cout << "請進行信息錄入。按“+”結束!\n"; ?? ?do ?? ?{ ?? ??? ?s_array.push_back(_stu); ?? ?} ?? ?while (s_array[s_sum++].S_SetInto()); ?? ?s_sum--; ?? ?s_array.pop_back(); ?? ?return true; } //修改學生信息 bool management::Student_mod() { ?? ?char _s_num[15]; ?? ?S_Read_file(); ?? ?cout << "請輸入您要修改的學生信息的學號或名字:"; ?? ?cin >> _s_num; ?? ?int i = 0; ?? ?for (; i < s_sum; i++) ?? ?{ ?? ??? ?if (s_array[i].S_If_match(_s_num)) ?? ??? ?{ ?? ??? ??? ?cout << "該同學的原信息為:\n"; ?? ??? ??? ?s_array[i].s_display(); ?? ??? ??? ?cout << "請輸入正確信息! \n"; ?? ??? ??? ?s_array[i].S_SetInto(); ?? ??? ??? ?s_sum++;??//保持學生數(shù) ?? ??? ??? ?return true; ?? ??? ?} ?? ??? ?if (i == s_sum) ?? ??? ?{ ?? ??? ??? ?cout << "抱歉!您要修改的信息不存在! " << endl; ?? ??? ??? ?return false; ?? ??? ?} ?? ??? ?break; ?? ?} } //刪除學生信息 bool management::Student_del() { ?? ?char _s_num[15]; ?? ?S_Read_file(); ?? ?cout << "請輸入您要刪除的學生信息的學號:"; ?? ?cin >> _s_num; ?? ?for (int i = 0; i < s_sum; i++) ?? ?{ ?? ??? ?if (s_array[i].S_If_match(_s_num)) ?? ??? ?{ ?? ??? ??? ?cout << "該同學的原信息為:\n"; ?? ??? ??? ?s_array[i].s_display(); ?? ??? ??? ?s_array.erase(s_array.begin() + i); ?? ??? ??? ?s_sum--; ?? ??? ??? ?return true; ?? ??? ?} ?? ??? ?if (i == s_sum) ?? ??? ?{ ?? ??? ??? ?cout << "抱歉!您要刪除的信息不存在! " << endl; ?? ??? ??? ?return false; ?? ??? ?} ?? ?} } //查看學生信息 bool management::Student_scan() { ?? ?S_Read_file(); ?? ?if (s_sum == 0) ?? ?{ ?? ??? ?cout << "暫無信息!請等待管理人員更新!"; ?? ??? ?return false; ?? ?} ?? ?for (int i = 0; i < s_sum; i++) ?? ?{ ?? ??? ?s_array[i].s_display(); ?? ?} ?? ?return true; } //添加圖書信息 bool management::Book_add() { ?? ?B_Read_file(); ?? ?Book _book; ?? ?cout << "請進行信息錄入。按“+”結束!\n"; ?? ?do ?? ?{ ?? ??? ?b_array.push_back(_book); ?? ?} while (b_array[b_sum++].B_SetInto()); ?? ?b_sum--; ?? ?b_array.pop_back(); ?? ?return true; } //修改圖書信息 bool management::Book_mod() { ?? ?char _b_num[30]; ?? ?B_Read_file(); ?? ?cout << "請輸入您要修改的圖書信息的圖書號或書名:"; ?? ?cin >> _b_num; ?? ?for (int i = 0; i < b_sum; i++) ?? ?{ ?? ??? ?if (b_array[i].B_If_match(_b_num)) ?? ??? ?{ ?? ??? ??? ?cout << "該圖書的原信息為:\n"; ?? ??? ??? ?b_array[i].b_display(); ?? ??? ??? ?cout << "請輸入正確信息! \n"; ?? ??? ??? ?b_array[i].B_SetInto(); ?? ??? ??? ?b_sum++;??//保持總航線數(shù)不變 ?? ??? ??? ?return true; ?? ??? ?} ?? ??? ?if (i == b_sum) ?? ??? ?{ ?? ??? ??? ?cout << "抱歉!您要修改的信息不存在! " << endl; ?? ??? ??? ?return false; ?? ??? ?} ?? ??? ?break; ?? ?} } //刪除圖書信息 bool management::Book_del() { ?? ?char _b_num[15]; ?? ?B_Read_file(); ?? ?cout << "請輸入您要刪除的圖書信息的圖書號:"; ?? ?cin >> _b_num; ?? ?for (int i = 0; i < b_sum; i++) ?? ?{ ?? ??? ?if (b_array[i].B_If_match(_b_num)) ?? ??? ?{ ?? ??? ??? ?cout << "該圖書的原信息為:\n"; ?? ??? ??? ?b_array[i].b_display(); ?? ??? ??? ?b_array.erase(b_array.begin() + i); ?? ??? ??? ?b_sum--; ?? ??? ??? ?return true; ?? ??? ?} ?? ??? ?if (i == b_sum) ?? ??? ?{ ?? ??? ??? ?cout << "抱歉!您要刪除的信息不存在! " << endl; ?? ??? ??? ?return false; ?? ??? ?} ?? ?} } //查看圖書信息 bool management::Book_scan() { ?? ?B_Read_file(); ?? ?if (b_sum == 0) ?? ?{ ?? ??? ?cout << "暫無信息!請等待管理人員更新!"; ?? ??? ?return false; ?? ?} ?? ?for (int i = 0; i < b_sum; i++) ?? ?{ ?? ??? ?b_array[i].b_display(); ?? ?} ?? ?return true; } //學生憑學號登錄 bool management::s_login(Student& cp) { ?? ?char _s_num[15]; ?? ?S_Read_file(); ?? ?cout << "請輸入您的學號:"; ?? ?cin >> _s_num; ?? ?for (int i = 0; i < s_sum; i++) ?? ?{ ?? ??? ?if (s_array[i].S_If_match(_s_num)) ?? ??? ?{ ?? ??? ??? ?cp=s_array[i]; ?? ??? ??? ?cout << "歡迎您," << cp.s_name << "同學!" << endl; ?? ??? ??? ?S_clear(); ?? ??? ??? ?return true; ?? ??? ?} ?? ?} ?? ?S_clear(); ?? ?return false; } //查看借閱數(shù)數(shù)目 bool management::borrow_scan(Student& cp) { ?? ?S_Read_file(); ?? ?B_Read_file(); ?? ?cout << "您已借閱圖書" << setw(3) << cp.borrow_quantity << "本" << endl; ?? ?for (int i = 0; i < cp.borrow_quantity; i++) ?? ?{ ?? ??? ?cout << cp.borrow_books[i] << endl; ?? ?} ?? ?S_clear(); ?? ?B_clear(); ?? ?return true; } //借書 bool management::borrow_book(Student& cp) { ?? ?S_Read_file(); ?? ?B_Read_file(); ?? ?char _b_num[30]; ?? ?cout << "請輸入想借圖書的圖書號或書名:"; ?? ?cin >> _b_num; ?? ?for (int i = 0; i < b_sum; i++) ?? ?{ ?? ??? ?if (b_array[i].B_If_match(_b_num)) ?? ??? ?{ ?? ??? ??? ?cout << "該圖書的信息為:\n"; ?? ??? ??? ?b_array[i].b_display(); ?? ??? ??? ?b_array[i].b_quantity--; ?? ??? ??? ?if (cp.borrow_quantity > cp.borrow_max - 1) ?? ??? ??? ?{ ?? ??? ??? ??? ?cout << "抱歉,您已達借書最大上限!" << endl; ?? ??? ??? ??? ?return false; ?? ??? ??? ?} ?? ??? ??? ?strcpy(cp.borrow_books[cp.borrow_quantity++],b_array[i].b_name); ?? ??? ??? ?for (int j = 0; j < s_sum; j++) ?? ??? ??? ?{ ?? ??? ??? ??? ?if (s_array[j].S_If_match(cp.s_num)) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?s_array[j]=cp; ?? ??? ??? ??? ??? ?return true; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ?} ?? ??? ?if (i == b_sum - 1) ?? ??? ?{ ?? ??? ??? ?cout << "抱歉!您想借的圖書未收錄! " << endl; ?? ??? ??? ?return false; ?? ??? ?} ?? ?} } //還書 bool management::return_book(Student& cp) { ?? ?S_Read_file(); ?? ?B_Read_file(); ?? ?char _b_num[30]; ?? ?cout << "請輸入想還圖書的圖書號或書名:"; ?? ?cin >> _b_num; ?? ?for (int i = 0; i < b_sum; i++) ?? ?{ ?? ??? ?if (b_array[i].B_If_match(_b_num)) ?? ??? ?{ ?? ??? ??? ?cout << "該圖書的信息為:\n"; ?? ??? ??? ?b_array[i].b_display(); ?? ??? ??? ?b_array[i].b_quantity++; ?? ??? ??? ?for (int k = 0; k < cp.borrow_quantity; k++) ?? ??? ??? ?{ ?? ??? ??? ??? ?if (!strcmp(cp.borrow_books[k],b_array[i].b_name)) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?for (int m = k; m < cp.borrow_quantity-1; m++) ?? ??? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ??? ?strcpy(cp.borrow_books[m], cp.borrow_books[m+1]); ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?strcpy(cp.borrow_books[--cp.borrow_quantity], ""); //?? ??? ??? ??? ??? ?cp.borrow_quantity--; ?? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?for (int j = 0; j < s_sum; j++) ?? ??? ??? ?{ ?? ??? ??? ??? ?if (s_array[j].S_If_match(cp.s_num)) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?s_array[j] = cp; ?? ??? ??? ??? ??? ?return true; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ?} ?? ??? ?if (i == b_sum) ?? ??? ?{ ?? ??? ??? ?cout << "抱歉!您想還的圖書未收錄! " << endl; ?? ??? ??? ?return false; ?? ??? ?} ?? ?} } //工作人員登錄 bool management::Personnel_System() { ?? ?while (1) ?? ?{ ?? ??? ?int menu_options; ?? ??? ?cout << "請輸入登錄密碼:"; ?? ??? ?cin >> key; ?? ??? ?if (key == "123456")??//登錄密碼 ?? ??? ??? ?while (1) ?? ??? ??? ?{ ?? ??? ??? ??? ?cout << endl ?? ??? ??? ??? ??? ?<< "***** ??? ? 主菜單:?? ??? ??? ??? ??? ??? ??? ??? ? ? ? ? ? ?**********" << endl ?? ??? ??? ??? ??? ?<< "***** ? ?工作人員?? ??? ? ? ? ? ? ? ? ??? ?" << endl ?? ??? ??? ??? ??? ?<< "***** ? ?1——添加學生信息?? ??? ??? ??? ??? ?" ?? ??? ??? ??? ??? ?<< "2——修改學生信息" << endl ?? ??? ??? ??? ??? ?<< "***** ? ?3——刪除學生信息?? ??? ??? ??? ??? ?" ?? ??? ??? ??? ??? ?<< "4——查看學生信息" << endl ?? ??? ??? ??? ??? ?<< endl?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?//區(qū)分學生和圖書 ?? ??? ??? ??? ??? ?<< "***** ? ?5——添加圖書信息?? ??? ??? ??? ??? ?" ?? ??? ??? ??? ??? ?<< "6——修改圖書信息" << endl ?? ??? ??? ??? ??? ?<< "*****?? ? 7——刪除圖書信息?? ??? ??? ??? ??? ?" ?? ??? ??? ??? ??? ?<< "8——查看圖書信息" << endl ?? ??? ??? ??? ??? ?<< "***** ? ?9——退出登錄"<<endl ?? ??? ??? ??? ??? ?<< "你需要做什么?(1-9)" << endl; ?? ??? ??? ??? ?cin >> menu_options; ?? ??? ??? ??? ?switch (menu_options) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ?case 1:Student_add(); break; ?? ??? ??? ??? ?case 2:Student_mod(); break; ?? ??? ??? ??? ?case 3:Student_del(); break; ?? ??? ??? ??? ?case 4:Student_scan(); break; ?? ??? ??? ??? ?case 5:Book_add(); break; ?? ??? ??? ??? ?case 6:Book_mod(); break; ?? ??? ??? ??? ?case 7:Book_del(); break; ?? ??? ??? ??? ?case 8:Book_scan(); break; ?? ??? ??? ??? ?case 9:return false; ?? ??? ??? ??? ?default:cout << "輸入錯誤,請重新選擇" << endl; break; ?? ??? ??? ??? ?} ?? ??? ??? ??? ?if (!(menu_options == 4 || menu_options == 8)) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?cout << "是否確認? ? ? ? ?《確認/(Y/y)》 ? ?《取消/(N/n)》" << endl; ?? ??? ??? ??? ??? ?char yn; ?? ??? ??? ??? ??? ?do ?? ??? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ??? ?cin >> yn; ?? ??? ??? ??? ??? ?} while (!(yn == 'Y' || yn == 'y' || yn == 'N' || yn == 'n')); ?? ??? ??? ??? ??? ?if (yn == 'Y' || yn == 'y') ?? ??? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ??? ?if (menu_options == 1 || menu_options == 2 || menu_options == 3) ?? ??? ??? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ??? ??? ?S_Save_file(); ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?else if (menu_options == 5 || menu_options == 6 || menu_options == 7) ?? ??? ??? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ??? ??? ?B_Save_file(); ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?cout << "操作成功"; ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ?} ?? ??? ??? ??? ?S_clear(); ?? ??? ??? ??? ?B_clear(); ?? ??? ??? ?} ?? ??? ?else ?? ??? ?{ ?? ??? ??? ?cout << "密碼錯誤!" << endl; ?? ??? ??? ?continue; ?? ??? ?} ?? ?} ?? ?return true; } //學生登錄 bool management::Student_System() { ?? ?while (1) ?? ?{ ?? ??? ?Student cp; ?? ??? ?bool key = s_login(cp); ?? ??? ?while (key) ?? ??? ?{ ?? ??? ??? ?int menu_options; ?? ??? ??? ?cout << "*****?? ? 主菜單:?? ??? ??? ??? ??? ??? ??? ??? ? ? ? ? ? ? ? **********" << endl ?? ??? ??? ??? ?<< "*****?? ? 學生:?? ??? ??? ??? ??? ??? ??? ?" << endl ?? ??? ??? ??? ?<< "*****?? ? 1——查看借閱數(shù)目" << endl ?? ??? ??? ??? ?<< "*****?? ? 2——借閱圖書" << endl ?? ??? ??? ??? ?<< "*****?? ? 3——歸還圖書" << endl ?? ??? ??? ??? ?<< "***** ? ?4——退出登錄" << endl ?? ??? ??? ??? ?<< "你需要做什么?(選擇1-4)" << endl; ?? ??? ??? ?cin >> menu_options; ?? ??? ??? ?switch (menu_options) ?? ??? ??? ?{ ?? ??? ??? ?case 1:borrow_scan(cp); break; ?? ??? ??? ?case 2:borrow_book(cp); break; ?? ??? ??? ?case 3:return_book(cp); break; ?? ??? ??? ?case 4:return false; ?? ??? ??? ?} ?? ??? ??? ?if (menu_options == 2 || menu_options == 3) ?? ??? ??? ?{ ?? ??? ??? ??? ?cout << "是否確認? ? ? ? ?《確認/(Y/y)》 ? ?《取消/(N/n)》" << endl; ?? ??? ??? ??? ?char yn; ?? ??? ??? ??? ?do ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?cin >> yn; ?? ??? ??? ??? ?} while (!(yn == 'Y' || yn == 'y' || yn == 'N' || yn == 'n')); ?? ??? ??? ??? ?if (yn == 'Y' || yn == 'y') ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?cout << "操作成功!" << endl; ?? ??? ??? ??? ??? ?S_Save_file(); ?? ??? ??? ??? ??? ?B_Save_file(); ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?S_clear(); ?? ??? ??? ?B_clear(); ?? ??? ?} ?? ??? ?cout << "未找到您的信息!" << endl; ?? ?} ?? ?return true; } //界面初始化函數(shù) void management::login_init() { ?? ?system("cls"); ?? ?cout << "\n>>>>>>>>>>歡迎進入圖書管理系統(tǒng)<<<<<<<<<<" << endl ?? ??? ?<< "請輸入您的登錄方式" << endl ?? ??? ?<< "1——工作人員(需要認證)?? ?2——學生 3——退出系統(tǒng)" << endl; } //主函數(shù) int main() { ?? ?management xiangnan; ?? ?//若文件不存在,則新建文件 ?? ?//存放學生信息 ?? ?ofstream Student_Information("Student_Information.txt", ios::app); ?? ?if (!Student_Information) ?? ?{ ?? ??? ?cerr << "文件\"flight information.dat\"無法打開!\n"; ?? ??? ?exit(1); ?? ?} ?? ?Student_Information.close(); ?? ?//存放圖書信息 ?? ?ofstream Book_Information("Book_Information.txt", ios::app); ?? ?if (!Book_Information) ?? ?{ ?? ??? ?cerr << "文件\"flight information.dat\"無法打開!\n"; ?? ??? ?exit(1); ?? ?} ?? ?Book_Information.close(); ?? ?int dlry;???//登陸人員 ?? ?while (1) ?? ?{ ?? ??? ?xiangnan.login_init();???//界面初始化 ?? ??? ?cin >> dlry; ?? ??? ?if (dlry == 1) ?? ??? ?{ ?? ??? ??? ?xiangnan.Personnel_System(); ?? ??? ?} ?? ??? ?else if (dlry == 2) ?? ??? ?{ ?? ??? ??? ?xiangnan.Student_System(); ?? ??? ?} ?? ??? ?else if (dlry == 3) ?? ??? ?{ ?? ??? ??? ?return 0; ?? ??? ?} ?? ??? ?else ?? ??? ?{ ?? ??? ??? ?cout << "輸入錯誤,請重新選擇!" << endl; ?? ??? ?} ?? ?} ?? ?return 0; }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。