C++实现图书管理系统
闲来无事,用C++做了一个图书管理系统,主要有借书、还书、图书管理、用户管理等功能,主要用到的技术有容器和文件,以及类的封装
#include#include #include
#include #include #include usingnamespacestd; classMybook; classBook; classBook{ public: intid;//书号 charbook_name[20];//书名 intstate;//图书状态 charplace[20];//图书所在位置 charstu_number[20];//学号 charstu_name[20];//学生姓名 public: Book(); friendclassMybook; }; classUser{ public: charstu_number[20];//学号 charstu_name[20];//学生姓名 public: User() { strcpy(stu_number,"000"); strcpy(stu_name,"0"); } friendclassMybook; }; classMybook{ private: list link_book;//保存书本信息 list link_user;//保存用户信息 public: intmain_menu();//主菜单 voidgetmenu();//获取菜单 intmenu();//图书管理菜单 voidgetchoice();//输入选择 voidadd_book();//添加图书 voiddisplay_book();//显示图书信息 voiddel_book();//删除图书信息 voidsearch_book();//搜索图书信息 voidupdate_book();//修改图书信息 voidborrow_book();//借书 voidreturn_book();//还书 intmenu_user();//管理用户菜单 voidadd_user();//添加用户 voiddel_user();//删除用户 voiddisplay_user();//查看用户 voidupdate_user();//修改用户 voidlook_borrow();//查看借阅图书情况 voidget_user();//用户管理 voidrecv_file();//将数据保存到文件中 voidread_file();//将数据从文件中读取 voidrecv_user();//将用户信息保存到文件 voidread_user();//将用户信息从文件读取 }; Book::Book() { state=0; strcpy(stu_number,"000"); strcpy(stu_name,"0"); } //保存图书信息到文件 voidMybook::recv_file() { ofstreamoutfile("library.txt",ios::out); if(!outfile) { cout<<"文件打开失败"< ::iteratorp=link_book.begin(); while(p!=link_book.end()) { outfile< id< book_name< state< place< stu_number< stu_name< ::iteratorp=link_user.begin(); while(p!=link_user.end()) { outfile< stu_number< stu_name< >choice; while(!(choice>=0&&choice<=4)) { cout<<"输入错误,请重新输入:"; cin>>choice; } returnchoice; } //执行主菜单 voidMybook::getmenu() { intchoice=0; read_user(); read_file(); while(1) { system("clear"); choice=main_menu(); switch(choice) { case1: { borrow_book(); break; } case2: { return_book(); break; } case3: { getchoice(); break; } case4: { get_user(); break; } case0: { cout<<"正在保存,请稍后....."< >id; list ::iteratorit=link_user.begin(); while(it!=link_user.end()) { if(strcmp(it->stu_number,id)==0) { strcpy(name,it->stu_name); flag2=1; break; } it++; } if(flag2==0) { cout<<"你没有借书权限!借书失败"< >book_name; list ::iteratorp=link_book.begin(); while(p!=link_book.end()) { if(strcmp(p->book_name,book_name)==0) { cout<<"======================================="< id< book_name< state==0) { cout<<"图书状态:未借阅!"< place< >book_id; while(p!=link_book.end()) { if(strcmp(p->book_name,book_name)==0&&p->id==book_id&&p->state==0) { strcpy(p->stu_number,id); strcpy(p->stu_name,name); p->state=1; cout<<"借书成功!"< >stu_id; intflag=0; intflag1=0; list ::iteratorp=link_book.begin(); while(p!=link_book.end()) { if(strcmp(p->stu_number,stu_id)==0) { cout<<"==========================================="< id< book_name< >id; p=link_book.begin(); while(p!=link_book.end()) { if(strcmp(p->stu_number,stu_id)==0&&p->id==id) { strcpy(p->stu_name,"000"); strcpy(p->stu_number,"0"); p->state=0; cout<<"还书成功!"< >choice; while(!(choice>=1&&choice<=6)) { cout<<"输入错误,请重新输入:"; cin>>choice; } returnchoice; } //执行用户管理 voidMybook::get_user() { intchoice=0; while(1) { system("clear"); choice=menu_user(); system("clear"); switch(choice) { case1: { add_user(); break; } case2: { display_user(); break; } case3: { del_user(); break; } case4: { update_user(); break; } case5: { look_borrow(); break; } case6: { recv_user(); return; } } cout< >new_user.stu_number; cout<<"请输入姓名:"; cin>>new_user.stu_name; link_user.push_back(new_user); cout<<"添加成功!"; cout<<"是否继续添加(y/n)"; charch; cin>>ch; while(!(ch=='Y'||ch=='y'||ch=='N'||ch=='n')) { cout<<"输入有误,请重新输入:"; cin>>ch; } if(ch=='Y'||ch=='y') { system("clear"); add_user(); } } //显示用户 voidMybook::display_user() { list ::iteratorit=link_user.begin(); while(it!=link_user.end()) { cout<<"====================================="< stu_number< stu_name< >id; intflag=0; list ::iteratorit=link_user.begin(); while(it!=link_user.end()) { if(strcmp(it->stu_number,id)==0) { link_user.erase(it); flag=1; break; } it++; } if(flag==1) { cout<<"删除成功!"< >number; intflag=0; list ::iteratorit=link_user.begin(); while(it!=link_user.end()) { if(strcmp(it->stu_number,number)==0) { cout<<"请更新学号:"; cin>>it->stu_number; cout<<"请更新姓名:"; cin>>it->stu_name; flag=1; break; } it++; } if(flag==1) { cout<<"修改成功!"< ::iteratorp=link_book.begin(); while(p!=link_book.end()) { if(p->state==1) { cout<<"==================================================="< stu_name< stu_number< book_name< place< >choice; while(!(choice>=1&&choice<=6)) { cout<<"输入错误,请重新输入:"; cin>>choice; } returnchoice; } //实行图书管理 voidMybook::getchoice() { intchoice=0; while(1) { system("clear"); choice=menu(); system("clear"); switch(choice) { case1: { add_book(); break; } case2: { display_book(); break; } case3: { del_book(); break; } case4: { search_book(); break; } case5: { update_book(); break; } case6: { return; } } cout< >new_book.id; cout<<"请输入书名:"; cin>>new_book.book_name; cout<<"请输入图书书架:"; cin>>new_book.place; link_book.push_back(new_book); cout<<"添加成功!"; cout<<"是否继续添加(y/n)"; charch; cin>>ch; while(!(ch=='Y'||ch=='y'||ch=='N'||ch=='n')) { cout<<"输入有误,请重新输入:"; cin>>ch; } if(ch=='Y'||ch=='y') { system("clear"); add_book(); } } //显示书本信息 voidMybook::display_book() { list ::iteratorp=link_book.begin(); while(p!=link_book.end()) { cout<<"======================================="< id< book_name< state==0) { cout<<"图书状态:未借阅!"< place< ::iteratorp=link_book.begin(); intnum=0; intflag=0; cout<<"请输入你要删除的书号:"; cin>>num; while(p!=link_book.end()) { if(p->id==num) { link_book.erase(p); flag=1; break; } p++; } if(flag==1) { cout<<"\n\n删除完成!"; } else { cout<<"\n\n该书不存在,删除失败!"< ::iteratorp=link_book.begin(); charbook_name[20]; intflag=0; cout<<"请输入你要查找的书名:"; cin>>book_name; while(p!=link_book.end()) { if(strcmp(p->book_name,book_name)==0) { cout<<"======================================="< id< book_name< state==0) { cout<<"图书状态:未借阅!"< place< ::iteratorp=link_book.begin(); intnum=0; intflag=0; cout<<"请输入你要更新的书号:"; cin>>num; while(p!=link_book.end()) { if(p->id==num) { cout<<"请输入书名"; cin>>p->book_name; cout<<"请输入图书书架号:"; cin>>p->place; flag=1; } p++; } if(flag==1) { cout<<"\n\n更新完成!"; } else { cout<<"\n\n该书不存在,更新失败!"< 更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。