图书管理系统

来源:互联网 发布: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
原创粉丝点击