图书管理系统 |
|
|
/。吧南阳理工学院·计算机与软件学院课程设计报告课程名称:面向对象程序设计(课程设计)课题名称:图书信息管理系统姓名:学号:专业:年 级:指导教师:职称:2021年01月17日目录1.课题来源12.任务描述12.1.课题的总体结构12.2.核心功能模块与类设 计13.程序(系统)详细设计24.程序(系统)实现与测试35.结束语4课题来源随着计算机与网络技术的飞速发展,当今社会正想着信息化 方向前进,信息系统的作用越来越大。图书管理系统是智能办公系统的重要部分,编写也是为了更加全面的了解软件开发的过程,同时此过程的开展 也能更好地了解面向对象设计的三大特征:多态,封装,继承。任务描述课题基本内容包括:管理员和会员管理员:1:新进图书基本信息的录入, 并实现查重功能。2:图书基本信息的增加。3:图书基本信息的删除。4:图书基本信息的修改。5:图书基本信息的查询6:图书基本信息的排 序(按序号)会员:1:图书状态的查询2:借书与还书功能。课题的总体结构图书管理系统的基本框架核心功能模块与类设计程序(系统)详细设 计程序(系统)实现与测试#include#include#include>#include#includeusingnamespacestd;constintm ima=123456789;classbooks{public:stringname;intid;intprice;st ringwriter;stringcategory;stringstate;booksnext;};classsuff er{public:voidone();voidtwo();voidthrid();voidfore();voidex ist();//退出private:charg,m;};classLinklist{public:voidaddList ();voidprintfList(inth);voidcreatList();voidinsertlist();void deleteList();voidreviseList();voidrankList();voidlendbook();v oidforms();voidreturnbook();private:fstreamifi,ofi;bookshead ;suffersurm;};structmember{stringmember;stringcode;stringnu m;stringname;stringsex;stringphone;structmembernext0;};clas suser{public:voidzc();voidland();protected:fstreamifile,ofil e;suffersurf;structmemberhead1;};classmanager{public:voidz c2();voidland2();private:fstreamm,w;suffersurf;};voidchoise(c harm);voidchoise2(charf);voidchoise3(charh);voidLinklist::f orms(){booksp;p=head=newbooks;ifi.open("books.txt",ios::in);w hile(ifi>>p->id>>p->name>>p->writer>>p->category>>p->state>>p->pr ice){p->next=newbooks;p->next->next=NULL;p=p->next;}p->next=NUL L;ifi.close();}voidLinklist::returnbook(){intw=0;intm;intbor row;booksp;p=head=newbooks;ifi.open("books.txt",ios::in);if(!i fi.is_open()){cout<<"打开失败";}ifi>>m;ifi.close();while(1){{cout< <"请输入想要借出的编号:";cin>>borrow;p=head;while(p->next!=NULL){if(p->id= =borrow){w=1;if(p->state=="借出"){p->state="在馆";cout<<"归还成功";ofi. open("books.txt",ios::out);p=head;while(p->next!=NULL){ofi<i d<<""<name<<""<writer<<""<category<<""<state< <""<price<<""<next;}ofi.close();break;}else{co ut<<"此书以在馆,归还失败";break;}}p=p->next;}break;}}system("pause");syste m("cls");Sleep(1000);deletep;surm.fore();}voidLinklist::lendboo k(){intw=0;intm;intborrow;booksp;p=head=newbooks;ifi.open( "books.txt",ios::in);if(!ifi.is_open()){cout<<"打开失败";}ifi>>m;ifi .close();while(1){{cout<<"请输入想要借出的编号:";cin>>borrow;p=head;while (p->next!=NULL){if(p->id==borrow){w=1;if(p->state=="在馆"){p->st ate="借出";cout<<"借出成功";ofi.open("books.txt",ios::out);p=head;while (p->next!=NULL){ofi<id<<""<name<<""<writer<<""<->category<<""<state<<""<price<<""<next;}of i.close();break;}else{cout<<"此书以借出,借出失败";break;}}p=p->next;}bre ak;}system("pause");}Sleep(1000);deletep;system("cls");surm.fore ();}voidLinklist::creatList(){booksp,q,w;intm,n=0;intflag =0;cout<<"请输入需要录入书的个数:"<>m;ofi.open("books.txt",ios::ou t);ifi.open("books.txt",ios::in);p=head=newbooks;for(inti=0;i< m;i++){p->next=newbooks;p->next->next=NULL;cout<<"请输入编号:"<l;cin>>p->id;cout<<"请输入图书名称"<>p->name;cout<<"请输入图书作者"<< endl;cin>>p->writer;cout<<"请输入图书类别"<>p->category;p->sta te="在馆";cout<<"请输入图书价格"<>p->price;system("cls");w=head; if(i!=0){while(!ifi.eof()){w->next=newbooks;w->next->next=NULL; ifi>>w->id>>w->name>>w->writer>>w->category>>w->state>>w->price;i f(w->id==p->id){flag=1;break;}w=w->next;}}if(flag==1){cout<<"已 录入,录入失败"<id<<""<name <<""<writer<<""<category<<""<state<<""<price< <""<next;}ofi.close() ;ifi.close();system("cls");deletep;surm.thrid();}voidLinklist:: addList(){booksp,q;ifi.open("books.txt",ios::in);if(!ifi.is_o pen()){cout<<"打开失败";}ofi.open("books.txt",ios::app);head=newboo ks;p=newbooks;head->next=NULL;p=head;while(ifi>>p->id>>p->name>> p->writer>>p->category>>p->state>>p->price){p->next=newbooks;p- >next->next=NULL;cout<<" "<id<<""<name<<""<writer<<""<category<<" "<state<<""<price<next;}p->next=NULL;q=newb ooks;q->next=p->next;q->next=NULL;cout<<"编号名称作者类别状态价格"<;cout<<"请输入想要增加的数据:"<>q->id;cout<<"图书 名称:"<>q->name;cout<<"作者:"<>q->writer;cout<<"类 别:"<>q->category;cout<<"价格:"<>q->price;q->sta te="在馆";ofi<id<<""<name<<""<writer<<""<categor y<<""<state<<""<price<close();Sleep(1000);system("cls");surm.thrid();}voidLinklist::pr intfList(inth){booksp;ifi.open("books.txt",ios::in);if(!ifi.i s_open()){cout<<"打开失败"<head=newbooks;while(ifi>>p->id>>p->name>>p->writer>>p->category> >p->state>>p->price){p->next=newbooks;p->next->next=NULL;cout<< ""<id<<""<>name<<""<writer<<""<category<<""<state<<""<p rice<next;}p->next=NULL;deletep;ifi.close();Sleep(100 0);system("cls");if(h==1){surm.thrid();}else{surm.fore();}}voi dLinklist::deleteList(){booksp,q;intm;intn=0;ifi.open("boo ks.txt",ios::in);if(!ifi.is_open()){cout<<"打开失败"<号名称作者类别状态价格"<>p->id>>p->nam e>>p->writer>>p->category>>p->state>>p->price){p->next=newbooks ;p->next->next=NULL;cout<<" "<id<<""<name<<""<writer<<""<category <<""<state<<""<price<next;}p->next=NULL;q=ne wbooks;cout<<"请输入想要删除的编号:"<>m;p=head;ofi.open("books.t xt",ios::out);while(p->id=m){q=p;if(p->next!=NULL){p=p->next;} else{cout<<"nofound"<id){head=p->ne xt;cout<<"删除成功"<next=p->next;cout<<"删除成 功"<next!=NULL){ofi<id<<""<< p->name<<""<writer<<""<category<<""<state<<""<>price<next;}deletep;Sleep(1000);system("cls");ifi.cl ose();ofi.close();surm.thrid();}voidLinklist::insertlist(){book sp,q,n;intm,w=0;ifi.open("books.txt",ios::in);p=head=newboo ks;while(ifi>>p->id>>p->name>>p->writer>>p->category>>p->state>>p ->price){p->next=newbooks;p->next->next=NULL;cout<<" "<id<<""<name<<""<< p->writer<<""<category<<""<state<<""<price<=p->next;}ifi.close();cout<<"请输入你想要查找的编号:"<>m;p=head;n= newbooks;q=newbooks;if(head==NULL){head=q;q->next=NULL;return ;}else{p=head;while(p!=NULL){if(m==p->id){cout<<""<id<<" "<name<<""<writer<<""<category<<""<state<<""< price<next;}}if(w==0){cout<<"输入有误"<dl;}system("cls");Sleep(1000);deletep;surm.thrid();}voidLinklis t::reviseList(){booksp,q;intm,flag=0,lag=0;ifi.open("books.t xt",ios::in);if(!ifi.is_open()){cout<<"打开失败"<ooks;while(ifi>>p->id>>p->name>>p->writer>>p->category>>p->state> >p->price){p->next=newbooks;p->next->next=NULL;cout<<" "<id<<""<name<<"" <writer<<""<category<<""<state<<""<price<;p=p->next;}ifi.close();cout<<"请输入想要修改的编号:"<>m;p=head;w hile(p!=NULL){if(p->id==m){cout<<"请输入修改后的编号:"<>p->id; cout<<"请输入修改后的名称:"<>p->name;cout<<"请输入修改后的作者:"<n>>p->writer;cout<<"请输入修改后的类别:"<>p->category;cout<<"请输入 修改后的价格:"<>p->price;ifi.open("books.txt",ios::in);while (!ifi.eof()){q->next=newbooks;q->next->next=NULL;q=q->next;ifi> >q->id>>q->name>>q->category>>q->writer>>q->state>>q->price;if(p- >id==q->id||p->name==q->name){system("cls");cout<<"\t\t\t\t\t\t该 书已存在!"<next;}ifi.close();i f(lag==0){cout<<"输入有误"<s.txt",ios::out);p=head;while(p->next!=NULL){ofi<id<<""<>name<<""<writer<<""<category<<""<state<<""<p rice<next;}cout<<"修改成功"<}system("cls");deletep;surm.thrid();}voidLinklist::rankList(){ booksq,p;inta,b;stringc,d,e,f;ifi.open("books.txt",ios::in); if(!ifi.is_open()){cout<<"打开失败"<oks;while(ifi>>p->id>>p->name>>p->writer>>p->category>>p->state>> p->price){p->next=newbooks;p->next->next=NULL;cout<<" "<id<<""<name<<""< writer<<""<category<<""<state<<""<price<p=p->next;}p->next=NULL;ifi.close();p=head;q=newbooks;q=head;for (q=head;q->next!=NULL;q=q->next){for(p=head;p->next!=NULL;p= p->next){if(p->id>p->next->id){a=p->id;p->id=p->next->id;p->nex t->id=a;b=p->price;p->price=p->next->price;p->next->price=b;c=p-> name;p->name=p->next->name;p->next->name=c;d=p->state;p->state=p- >next->state;p->next->state=d;e=p->category;p->category=p->next-> category;p->next->category=e;f=p->writer;p->writer=p->next->write r;p->next->writer=f;}}}ofi.open("books.txt",ios::out);p=head->nex t;while(p!=NULL){ofi<id<<""<name<<""<writer<<""<< p->category<<""<state<<""<price<"<id<<""<name<<""< writer<<""<category<<""<state<<""<price<p=p->next;}deletep;ofi.close();system("cls");Sleep(1000);surm.th rid();}voidmanager::zc2(){intz;cout<<"请输入管理员验证码:"<>z ;chars[20];chard;intnum;if(z==mima){m.open("manager.txt",ios: :out);intq,w;cout<<"请输入您的账号:"<>q;cout<<"请输入您的密码:"<l;cin>>w;m<ls");surf.two();}else{cout<<"验证失败,请重新选择"<rf.two();}}voidmanager::land2(){intq,t,e,r;w.open("manager.txt ",ios::in);if(!w.is_open()){cout<<"打开失败"<>q;w>>t;while( 1){cout<<"请输入您的账号:"<>e;cout<<"请输入您的密码:"<>r;i f(q==e&&t==r){cout<<"登录成功"<t<<"登录失败"<hrid(){cout<<" "<ndl;cout<<"1. 基本图书的录入"<2.图书信息的删除"<3.图书信息的修改"<4.图书信息的查看"<"<6.图书信息的增加"<7.查看图书库存"< "<cin>>g;choise2(g);}voidsuffer::one(){cout<<"
"<<" "<0);}voidsuffer::two(){cout<<"
"<1.管理员注册"<2.管理员登录"<3.会员注册"<4.会员登录"<0.退出"< "<>m;choise( m);}voidsuffer::thrid(){cout<<"
"<1.图书信息的查看"<2.图书借出"<out<<"4.返回"<< endl;cout<<" "<;cout<<"请输入您的选泽:";cin>>g;choise3(g);}voidsuffer::exist(){system ("cls");cout<<"欢迎下次使用。"<em("color7c");Sleep(1000);system("color7b");Sleep(1000);system( "color7d");Sleep(1000);system("color7e");Sleep(1000);system("co lor71");Sleep(2000);exit(0);}voiduser::zc(){ofile.open("user.t xt",ios::out);stringa,b;cout<<"请输入你的账号:"<>a;cout<<"请输入 你的密码:"<>b;ofile<(1000);ifile.close();ofile.close();system("cls");surf.two();}void user::land(){stringm,n,a,b;memberT;T=head1=newmember;T->nex t0=NULL;ifile.open("user.txt",ios::in);if(!ifile.is_open()){cout <<"打开失败";exit(0);}ifile>>m;ifile>>n;while(1){cout<<"请输入您的账号:"<ndl;cin>>a;cout<<"请输入您的密码:"<ch;intcount=0;while((ch=getch())!=''\r''){if(ch!=''\b''&&count<14) {pw[count++]=ch;cout<<"";}else{if(count>0){cout<<"\b"<<""<< "\b";count--;}}}pw_swap=pw;pw[count]=''\0'';if(m==a&&n==pw){cout<< "登录成功"<member=a;T->code=b;break;}else{co ut<<"登录失败"<("member.txt",ios::out);ifile>>T->member>>T->code;ifile.close();d eleteT;}voidchoise2(charh){suffersur3;Linklistlink;intw=1; switch(h){case''1'':system("cls");link.creatList();break;case''2'' :system("cls");link.deleteList();break;case''3'':system("cls");lin k.reviseList();break;case''4'':system("cls");link.insertlist();bre ak;case''5'':system("cls");link.rankList();break;case''6'':system(" cls");link.addList();break;case''7'':system("cls");link.printfList (w);break;case''8'':system("cls");sur3.show2();break;default:fflus h(stdin);cout<<"输入有误。"<();}}voidchoise3(charh){suffersur4;Linklistlink;intw=2;int f=0;switch(h){case''1'':system("cls");link.printfList(w);break;ca se''2'':system("cls");link.lendbook();break;case''3'':link.returnbo ok();break;case''4'':system("cls");sur4.show2();default:fflush(std in);cout<<"输入有误。"<voidchoise(charm){suffersur2;userur1;managerma2;switch(m){ case''1'':system("cls");ma2.zc2();break;case''2'':system("cls");ma2 .land2();break;case''3'':system("cls");ur1.zc();break;case''4'':sys tem("cls");ur1.land();break;case''0'':system("cls");sur2.exist();b reak;default:fflush(stdin);cout<<"输入有误。"<(stdin);system("cls");suffersur;sur.show2();}}voidmeau(){suffe rsur;sur.one();system("cls");sur.two();}intmain(){meau();}#inc lude#include#include#include>#includeusingnamespacestd;constintmima=123456789;cl assbooks{public:stringname;intid;intprice;stringwriter;stri ngcategory;stringstate;booksnext;};classsuffer{public:void one();voidtwo();voidthrid();voidfore();voidexist();//退出priva te:charg,m;};classLinklist{public:voidaddList();voidprintfLi st(inth);voidcreatList();voidinsertlist();voiddeleteList();vo idreviseList();voidrankList();voidlendbook();voidforms();void returnbook();private:fstreamifi,ofi;bookshead;suffersurm;};s tructmember{stringmember;stringcode;stringnum;stringname;st ringsex;stringphone;structmembernext0;};classuser{public:v oidzc();voidland();protected:fstreamifile,ofile;suffersurf;st ructmemberhead1;};classmanager{public:voidzc2();voidland2( );private:fstreamm,w;suffersurf;};voidchoise(charm);voidchoi se2(charf);voidchoise3(charh);voidLinklist::forms(){booksp ;p=head=newbooks;ifi.open("books.txt",ios::in);while(ifi>>p->id> >p->name>>p->writer>>p->category>>p->state>>p->price){p->next=ne wbooks;p->next->next=NULL;p=p->next;}p->next=NULL;ifi.close();}v oidLinklist::returnbook(){intw=0;intm;intborrow;booksp;p=h ead=newbooks;ifi.open("books.txt",ios::in);if(!ifi.is_open()){c out<<"打开失败";}ifi>>m;ifi.close();while(1){{cout<<"请输入想要借出的编号:";c in>>borrow;p=head;while(p->next!=NULL){if(p->id==borrow){w=1;if (p->state=="借出"){p->state="在馆";cout<<"归还成功";ofi.open("books.txt" ,ios::out);p=head;while(p->next!=NULL){ofi<id<<""<name< <""<writer<<""<category<<""<state<<""<price<< ""<next;}ofi.close();break;}else{cout<<"此书以在馆,归还失败" ;break;}}p=p->next;}break;}}system("pause");system("cls");Sleep(1 000);deletep;surm.fore();}voidLinklist::lendbook(){intw=0;int m;intborrow;booksp;p=head=newbooks;ifi.open("books.txt",ios: :in);if(!ifi.is_open()){cout<<"打开失败";}ifi>>m;ifi.close();while(1 ){{cout<<"请输入想要借出的编号:";cin>>borrow;p=head;while(p->next!=NULL) {if(p->id==borrow){w=1;if(p->state=="在馆"){p->state="借出";cout<<" 借出成功";ofi.open("books.txt",ios::out);p=head;while(p->next!=NULL) {ofi<id<<""<name<<""<writer<<""<category<<""< state<<""<price<<""<next;}ofi.close();break; }else{cout<<"此书以借出,借出失败";break;}}p=p->next;}break;}system("paus e");}Sleep(1000);deletep;system("cls");surm.fore();}voidLinklis t::creatList(){booksp,q,w;intm,n=0;intflag=0;cout<<"请输入需要录 入书的个数:"<>m;ofi.open("books.txt",ios::out);ifi.open("boo ks.txt",ios::in);p=head=newbooks;for(inti=0;inext =newbooks;p->next->next=NULL;cout<<"请输入编号:"<>p->id;cou t<<"请输入图书名称"<>p->name;cout<<"请输入图书作者"<>p->wri ter;cout<<"请输入图书类别"<>p->category;p->state="在馆";cout<<"请 输入图书价格"<>p->price;system("cls");w=head;if(i!=0){while(! ifi.eof()){w->next=newbooks;w->next->next=NULL;ifi>>w->id>>w->n ame>>w->writer>>w->category>>w->state>>w->price;if(w->id==p->id) {flag=1;break;}w=w->next;}}if(flag==1){cout<<"已录入,录入失败"<leep(1000);}if(flag==0){ofi<id<<""<name<<""<writer <<""<category<<""<state<<""<price<<""<<"录入成功"<next;}ofi.close();ifi.close();sys tem("cls");deletep;surm.thrid();}voidLinklist::addList(){books p,q;ifi.open("books.txt",ios::in);if(!ifi.is_open()){cout<<"打 开失败";}ofi.open("books.txt",ios::app);head=newbooks;p=newbooks;h ead->next=NULL;p=head;while(ifi>>p->id>>p->name>>p->writer>>p->ca tegory>>p->state>>p->price){p->next=newbooks;p->next->next=NULL ;cout<<""<id<<""<name<<""<writer<<""<category <<""<state<<""<price<next;}p->next=NULL;q=ne wbooks;q->next=p->next;q->next=NULL;cout<<"编号名称作者类别状态价格"<ndl;cout<<"请输入想要增加的数据:"<>q->id;cout<< "图书名称:"<>q->name;cout<<"作者:"<>q->writer;cout< <"类别:"<>q->category;cout<<"价格:"<>q->price;q-> state="在馆";ofi<id<<""<name<<""<writer<<""<cate | | | |