图书管理系统
来源:互联网 发布:apache storm 源码 编辑:程序博客网 时间:2024/06/05 11:14
/****************************************************************广东海洋大学图书管理系统******************************************************************/#include<iostream>#include<string>#include<iomanip.h>class book // book(书)类{ private: static int n; //静态成员 char number[15]; //书的编号 char name[30]; // 书的名字 char author[20]; //书的作者 char fenlei[15]; //书的种类 char language[15]; // 书的语言 char zhuangtai[5]; //书的状态 public: book(); //构造函数 book(char a[],char b[],char c[],char d[],char e[],char f[]); //构造函数 void setbook(); //设置输入函数 void outcom(); //输出函数 friend class arry; //有元类};class arry //arry类{ private: book *a; //子成员 int len; //长度public: arry(int s){len=s;a=new book[len];book::book(); } ~arry(){ delete []a;} //析构函数 void add(); //添加函数 void del(); //删除函数 void find(); //查找函数 void modify(); //修改函数 void sort(); //排序函数 void Count(); //统计函数 void get(); //借书函数 void back(); //还书函数 void print(); //显示函数 int menu(); //菜单函数};int book::n=0;book::book() //构造函数 { strcpy(number,"-");strcpy(name,"-"); strcpy(author,"-");strcpy(fenlei,"-"); strcpy(language,"-");strcpy(zhuangtai,"-");}book::book(char a[],char b[],char c[],char d[],char e[],char f[]) //构造函数{ strcpy(number,a);strcpy(name,b); strcpy(author,c);strcpy(fenlei,d); strcpy(language,e);strcpy(zhuangtai,f); n++;}void book::setbook() //设置输入函数{ cout<<"请输入书籍数据"<<endl; cout<<"编号"<<setw(20)<<"书名"<<setw(15)<<"作者"<<setw(15)<<"分类"<<setw(10) <<"语言"<<setw(10)<<"状态"<<endl; cin>>ws>>number>>name>>author>>fenlei>>language>>zhuangtai;cout<<endl; n++;}void book::outcom() //输出函数{ if(strlen(number)!=0)cout<<number<<setw(21)<<name<<setw(16)<<author<<setw(14)<<fenlei<<setw(13)<<language<<setw(11)<<zhuangtai<<endl;}void arry::add() //添加函数{ if(book::n!=0){ for(int i=book::n-1;i<len;i++){ a[i+1].book::setbook(); cout<<"还要继续添加吗?确定(y)/取消(n):"; char c; cin>>c; if(c=='y'||c=='Y') continue; else if(c=='n'||c=='N') { cout<<"退出添加!"<<endl; return; } else { cout<<"选者错误,默认退出添加!"<<endl; return; } }} else { for(int i=0;i<len;i++){ a[i].book::setbook(); cout<<"还要继续添加吗?确定(y)/取消(n):"; char c; cin>>c; if(c=='y'||c=='Y') continue; else if(c=='n'||c=='N') { cout<<"退出添加!"<<endl; return; } else { cout<<"选者错误,默认退出添加!"<<endl; return; } } } } void arry::del() //删除函数{ cout<<"请选择删除方式(路径)"<<endl; cout<<"1.按编号删除"<<endl; cout<<"2.按书名删除"<<endl; cout<<"请输入你选择方式的编号:"; int i,j,k; char c; cin>>k; if (k==1) { char n[15]; cout<<" 请输入编号:"; cin>>n; { for( i=0;i<book::n;i++) if(!strcmp(a[i].number,n)) { j=i; cout<<"将要删除的信息:"<<endl; cout<<"编号"<<setw(20)<<"书名"<<setw(15)<<"作者"<<setw(15)<<"分类"<<setw(15) <<"语言"<<setw(10)<<"状态"<<endl; a[j].book::outcom(); cout<<"确定要删除吗?确定(y)/取消(n)"; cin>>c; if(c=='y'||c=='Y') {for( i=j;i<book::n-1;i++) a[i]=a[i+1]; cout<<"已删除该信息:"<<endl; book::n--;return; } else if(c=='n'||c=='N') { cout<<"取消删除 !"<<endl; return; } else { cout<<"选择错误,默认退出!"<<endl; return; } } } cout<<"你要删除的内容不存在!"<<endl;return; }if (k==2) { char m[40]; cout<<" 请输入书名:"; cin>>m; { for( i=0;i<book::n;i++) if(!strcmp(a[i].name,m)) { j=i; cout<<"将要删除的信息:"<<endl; cout<<"编号"<<setw(20)<<"书名"<<setw(15)<<"作者"<<setw(15)<<"分类"<<setw(15) <<"语言"<<setw(10)<<"状态"<<endl; a[j].book::outcom(); cout<<"确定要删除吗?确定(y)/取消(n)"; cin>>c; if(c=='y'||c=='Y') { for( i=j;i<book::n-1;i++) a[i]=a[i+1]; cout<<"已删除该信息"<<endl; book::n--;return; } else if(c=='n'||c=='N') { cout<<"取消删除 !"<<endl; return; } else { cout<<"选择错误,默认退出!"<<endl;return;} } } cout<<"你要删除的内容不存在!"<<endl;return; }}void arry::find() { cout<<"请选择查找方式"<<endl; cout<<" 1.按编号查找"<<endl; cout<<" 2.按书名查找加作者查找"<<endl; cout<<" 请输入方式: "; int i,j ,k; cin>>k; if(k==1) { char n[15]; cout<<" 请输入编号: "; cin>>n; for(i=0;i<book::n;i++) if(!strcmp(a[i].number,n)) { j=i; cout<<"你要查找的书信息:"<<endl; cout<<"编号"<<setw(20)<<"书名"<<setw(15)<<"作者"<<setw(15)<<"分类"<<setw(15) <<"语言"<<setw(10)<<"状态"<<endl; a[j].book::outcom(); return; } else { cout<<"馆内未藏此书!"<<endl;break; } } else if(k==2) { char n[40];char m[20]; cout<<"请输入书名和作者:"; cin>>n>>m; for(i=0;i<book::n;i++) if(!strcmp(a[i].name,n)&&!strcmp(a[i].author,m)) { j=i; cout<<"你要查找的书信息:"<<endl; cout<<"编号"<<setw(20)<<"书名"<<setw(15)<<"作者"<<setw(15)<<"分类"<<setw(15) <<"语言"<<setw(10)<<"状态"<<endl; a[j].book::outcom(); return; } else { cout<<"馆内未藏此书!"<<endl;return; } }}void arry::modify() //修改函数{ cout<<" 请选择修改的方式 "<<endl; cout<<"1.按编号修改方式:"<<endl; cout<<"2.按书名修改方式:"<<endl; cout<<"3.按作者修改方式:"<<endl; cout<<"4.按分类修改方式:"<<endl; cout<<"5.按语言修改方式:"<<endl; cout<<"6.按状态修改方式:"<<endl; cout<<" 请输入方式 :"; int k,i,j; char A[15]; char b[50]; char c[20]; char d[15]; char e[10]; char f[5]; cin>>k; if(k==1) { cout<<"请输入编号:"; cin>>A; } else if(k==2) { cout<<"请输入书名:"; cin>>b; } else if(k==3) { cout<<"请输入作者名:"; cin>>c; } else if(k==4) { cout<<"请输入分类名:"; cin>>d; } else if(k==5) { cout<<"请输入语言(中文、英文或其他)名:"; cin>>e; } else if(k==6) { cout<<"请输入状态(借出(n)/未借出(y):"; cin>>f; } else { cout<<"输入错误,默认退出修改!"<<endl; return; } for(i=0;i<book::n;i++) if(!strcmp(a[i].number,A)||!strcmp(a[i].name,b)||!strcmp(a[i].author,c)||!strcmp(a[i].fenlei,d)||!strcmp(a[i].language,e)||!strcmp(a[i].zhuangtai,f)) { j=i; cout<<"你将要修改的信息:"<<endl; cout<<"编号"<<setw(20)<<"书名"<<setw(15)<<"作者"<<setw(15)<<"分类"<<setw(15) <<"语言"<<setw(10)<<"状态"<<endl; a[j].book::outcom(); cout<<"确定是否真的要修改?确定(y)/取消(n):"<<endl; char c; cin>>c; if(c=='y') { a[j].book::setbook(); book::n--; return; } else if(c=='n') {cout<<"取消修改"<<endl;return;} } else cout<<"你要修改的内容不存在!"<<endl;}void arry::sort() { cout<<"请选择排序方式"<<endl; cout<<"1.按编号排序"<<endl; cout<<"2.按书名排序"<<endl; cout<<"3.按作者排序"<<endl; cout<<" 输入方式:"; int k; int i,j; book s; cin>>k; if(book::n>1) { if(k==1) for( i=0;i<book::n-1;i++) { for (j=0;j<book::n-1-i;j++) if(strcmp(a[j].number,a[j+1].number)>0) { s=a[j];a[j]=a[j+1];a[j+1]=s; } }else if(k==2) for( i=0;i<book::n-1;i++) { for (j=0;j<book::n-1-i;j++) if( strcmp(a[j].name,a[j+i].name)>0) { s=a[j];a[j]=a[j+1];a[j+1]=s; } } else if(k==3) for( i=0;i<book::n-1;i++) { for (j=0;j<book::n-1-i;j++) if(strcmp(a[j].author,a[j+1].author)>0) { s=a[j];a[j]=a[j+1];a[j+1]=s; } } else cout<<"选择错误,默认退出排序!"<<endl; } else if(book::n==0) cout<<"无法比较!"<<endl; else if(book::n==1) ; }void arry::Count() //借书函数{ cout<<"馆内目前藏书:"<<book::n<<"册"<<endl;}void arry::get(){ char s[40]; int i; cout<<"请输入你要借的书名"<<endl; cin>>s; { for(i=0;i<book::n;i++) if(!strcmp(a[i].name,s)&&(strcmp(a[i].zhuangtai ,"y")==0||strcmp(a[i].zhuangtai,"Y")==0)) { cout<<"你要借书的信息:"<<endl; cout<<"编号"<<setw(20)<<"书名"<<setw(15)<<"作者"<<setw(15)<<"分类"<<setw(15) <<"语言"<<setw(10)<<"状态"<<endl; a[i].book::outcom(); cout<<"可借阅,是否借阅? 确定(y)/取消(n),请输入:"<<endl; char c; cin>>c; if(c=='y') { strcpy(a[i].zhuangtai,"n"); return; }else { cout<<"取消借阅!"<<endl;return; } } else if(!strcmp(a[i].name,s)&&(strcmp(a[i].zhuangtai ,"n")==0||strcmp(a[i].zhuangtai,"n")==0)) { cout<<"此书已借出"<<endl;return; } } cout<<"馆内未藏此书!"<<endl;}void arry::back() //还书函数{ char n[15]; int i; cout<<"请输入你要还书的编码:"; cin>>n; { for(i=0;i<book::n;i++) if(!strcmp(a[i].number,n)&&strcmp(a[i].zhuangtai ,"y")!=0) { cout<<"你要还书的信息:"<<endl; cout<<"编号"<<setw(20)<<"书名"<<setw(15)<<"作者"<<setw(15)<<"分类"<<setw(15) <<"语言"<<setw(10)<<"状态"<<endl; a[i].book::outcom(); cout<<" 是否确认还书 :确定(y)/否(n)"<<endl; char c; cin>>c; if(c=='y') { strcpy(a[i].zhuangtai,"y"); cout<<"还书成功"<<endl; return; } else if(c=='n') { cout<<"取消还书"<<endl; return;} else{ cout<<"输入错误,默认退出!"<<endl; return;} } } cout<<"馆内未藏你要退还的书或此书为借出!"<<endl;}void arry::print() //显示函数{ cout<<"编号"<<setw(20)<<"书名"<<setw(15)<<"作者"<<setw(15)<<"分类"<<setw(15) <<"语言"<<setw(10)<<"状态"<<endl; for(int i=0;i<book::n;i++) a[i].book::outcom();}int arry::menu() //菜单函数{ int i; cout<<" 欢迎进入广东海洋大学图书管理系统 "<<endl; cout<<" 1.添加 "<<endl; cout<<" 2.删除 "<<endl; cout<<" 3.查找 "<<endl; cout<<" 4.修改 "<<endl; cout<<" 5.排序 "<<endl; cout<<" 6.统计 "<<endl; cout<<" 7.借书 "<<endl; cout<<" 8.还书 "<<endl; cout<<" 9.显示 "<<endl; cout<<" 10.退出并结束此程序"<<endl; cout<<" 请选择 1~10 运行程序:\t "; for(;;) { cin>>i; if(i<1||i>10) cout<<"输入错误,请选择 1~10 重新输入 ,谢谢合作 !:"<<endl; else break; }return i;}void main() //主函数{ char c='y'; int n; cout<<"请输入你想建立的藏书数目:\t"; cin>>n; arry a(n); while(c=='y'||c=='Y') { switch(a.menu()) { case 1: a.add();break; case 2: a.del();break; case 3: a.find();break; case 4: a.modify();break; case 5: a.sort();a.print();break; case 6: a.Count();a.print();break; case 7: a.get();break; case 8: a.back();break; case 9: a.print();break; case 10: cout<<"退出程序,谢谢使用!"<<endl; } cout<<"是否继续返回首页?(y/n):"; cin>>c; }}
0 0
- 图书管理系统论文
- 图书管理系统(1)
- 图书管理系统(2)
- 图书管理系统(3)
- java-图书管理系统
- 图书管理系统
- 图书管理系统
- 简单图书管理系统
- 图书管理系统
- 图书管理系统
- 图书仓库管理系统
- 《图书管理系统》毕业论文
- 图书管理系统
- 图书管理系统
- 图书管理系统
- 图书管理系统
- 图书管理系统
- 图书管理系统
- C++十六进制宏的用法
- oracle中rownum详解
- CF 443B(253B)Kolya and Tandem Repeat
- winform 实现选择城市列表
- adb在安卓avd安装apk文件
- 图书管理系统
- Android中的TabHost
- Unity3d之生命槽设置
- WildFly角色分配
- 查找字符
- 点击PopupWindow之外的区域让其消失
- USB HID Report Descriptor 报告描述符详解(节选自HID1.11协议)
- 什么是出色的员工
- Android开发历程_1(从1个activity跳转到另一个activity)