⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 简易图书管理系统.cpp

📁 初学者…… 很简单的东西…… ……
💻 CPP
📖 第 1 页 / 共 3 页
字号:
					 cout<<endl;
					}

				}while(f.tellg()!=posEnd);
			  
			    if(flag==0)
				{
					cout<<"查无此书!"<<endl;
                    cout<<endl;
			        continue;
				}
			  break;
			}

		case 4://组合查询
			{
                cout<<"请键入操作选择:"<<endl;
                cout<<"1:按图书名称+作者信息查询"<<endl;
            	cout<<"2:按图书名称+出版社名称查询"<<endl;
            	cout<<"3:按作者信息+出版社名称查询"<<endl;
            	cout<<"4:按图书名称+作者信息查询+出版社名称查询"<<endl;
            	cout<<"0:退出\n";
                cin>>choice;

               switch(choice)
			   {   case 1://按图书名称+作者信息查询

			   {         f.seekg(0,ios::beg);
	                     cout<<"请输入要查找的图书名称:";
		            	 cin>>bName;
                         cout<<"请输入要查找的作者名称:";
			             cin>>writerName;
		         	  do
					  {   flag=1;
						  f.read((char*)&book,sizeof(bookData));
                          if(strcmp(book.bookName,bName)==0
						    &&(strcmp(book.writerName1,writerName)==0
				             ||strcmp(book.writerName2,writerName)==0
				             ||strcmp(book.writerName3,writerName)==0))
						  {  cout<<"图书编号:"<<book.TP<<endl;
                             cout<<"图书名称:"<<book.bookName<<endl;
                             cout<<"作者编号:"<<book.writerNumber1<<endl;
                             cout<<"作者姓名:"<<book.writerName1<<endl;
                             cout<<"        :"<<book.writerNumber2<<endl;
                             cout<<"        :"<<book.writerName2<<endl;
                             cout<<"        :"<<book.writerNumber3<<endl;
                             cout<<"        :"<<book.writerName3<<endl;
                             cout<<"出版社编号:"<<book.publishNumber<<endl;
			                 cout<<"出版社名称:"<<book.publish<<endl;
                             cout<<"库存量:"<<book.balance<<endl;
                             cout<<"剩余量:"<<book.balanceleave<<endl;
					    	 cout<<endl;
						  }
					  
					  }while(f.tellg()!=posEnd);
			          
			          if(flag==0)
					  {cout<<"查无此书!"<<endl;
                       cout<<endl;
			           continue;
					  }
			          break;
			   
			   }
			   case 2://按图书名称+出版社名称查询
				   {
					    f.seekg(0,ios::beg);
	                     cout<<"请输入要查找的图书名称:";
		            	 cin>>bName;
                         cout<<"请输入要查找的出版社名称:";
			             cin>>bpublish;
		         	  do
					  {f.read((char*)&book,sizeof(bookData));
                        if(  strcmp(book.bookName,bName)==0
						    &&strcmp(book.publish,bpublish)==0)
						{ flag=1;   
						 cout<<"图书编号:"<<book.TP<<endl;
                         cout<<"图书名称:"<<book.bookName<<endl;
                         cout<<"作者编号:"<<book.writerNumber1<<endl;
                         cout<<"作者姓名:"<<book.writerName1<<endl;
                         cout<<"        :"<<book.writerNumber2<<endl;
                         cout<<"        :"<<book.writerName2<<endl;
                         cout<<"        :"<<book.writerNumber3<<endl;
                         cout<<"        :"<<book.writerName3<<endl;
                         cout<<"出版社编号:"<<book.publishNumber<<endl;
			             cout<<"出版社名称:"<<book.publish<<endl;
                         cout<<"库存量:"<<book.balance<<endl;
                         cout<<"剩余量:"<<book.balanceleave<<endl;
						 cout<<endl;
						}

					  }while( strcmp(book.bookName,bName)!=0
						    &&strcmp(book.publish,bpublish)!=0
				            &&f.tellg()!=posEnd);
			          
					  
			          if(flag==0)
					  {cout<<"查无此书!"<<endl;
                       cout<<endl;
			           continue;
					  }
			          break;
			   
				   }
			   case 3://按作者信息+出版社名称查询
				   

					{    f.seekg(0,ios::beg);
	                     cout<<"请输入要查找的出版社名称:";
		            	 cin>>bpublish;
                         cout<<"请输入要查找的作者名称:";
			             cin>>writerName;
		         	  do
					  { f.read((char*)&book,sizeof(bookData));
	                       
			            if(strcmp(book.publish,bpublish)==0
						  &&(strcmp(book.writerName1,writerName)==0
				           ||strcmp(book.writerName2,writerName)==0
				           ||strcmp(book.writerName3,writerName)==0))
					  {  
						 flag=1;
						 cout<<"图书编号:"<<book.TP<<endl;
                         cout<<"图书名称:"<<book.bookName<<endl;
                         cout<<"作者编号:"<<book.writerNumber1<<endl;
                         cout<<"作者姓名:"<<book.writerName1<<endl;
                         cout<<"        :"<<book.writerNumber2<<endl;
                         cout<<"        :"<<book.writerName2<<endl;
                         cout<<"        :"<<book.writerNumber3<<endl;
                         cout<<"        :"<<book.writerName3<<endl;
                         cout<<"出版社编号:"<<book.publishNumber<<endl;
			             cout<<"出版社名称:"<<book.publish<<endl;
                         cout<<"库存量:"<<book.balance<<endl;
                         cout<<"剩余量:"<<book.balanceleave<<endl;
						 cout<<endl;
					  }


					  }while(f.tellg()!=posEnd);
					
			          if(flag==0)
					  {cout<<"查无此书!"<<endl;
                       cout<<endl;
			           continue;
					  }
			          break;
			   
				   }
			   case 4://按图书名称+作者信息查询+出版社名称查询
				   {
                        f.seekg(0,ios::beg);
				       	cout<<"请输入要查找的图书名称:";
		            	 cin>>bName;
	                     cout<<"请输入要查找的出版社名称:";
		            	 cin>>bpublish;
                         cout<<"请输入要查找的作者名称:";
			             cin>>writerName;
		         	  do
					  {f.read((char*)&book,sizeof(bookData));
                       if(strcmp(book.publish,bpublish)==0
						  &&strcmp(book.bookName,bName)!=0
						  &&(strcmp(book.writerName1,writerName)==0
				          ||strcmp(book.writerName2,writerName)==0
				          ||strcmp(book.writerName3,writerName)==0))
					  {  flag=1;
						 cout<<"图书编号:"<<book.TP<<endl;
                         cout<<"图书名称:"<<book.bookName<<endl;
                         cout<<"作者编号:"<<book.writerNumber1<<endl;
                         cout<<"作者姓名:"<<book.writerName1<<endl;
                         cout<<"        :"<<book.writerNumber2<<endl;
                         cout<<"        :"<<book.writerName2<<endl;
                         cout<<"        :"<<book.writerNumber3<<endl;
                         cout<<"        :"<<book.writerName3<<endl;
                         cout<<"出版社编号:"<<book.publishNumber<<endl;
			             cout<<"出版社名称:"<<book.publish<<endl;
                         cout<<"库存量:"<<book.balance<<endl;
                         cout<<"剩余量:"<<book.balanceleave<<endl;
						 cout<<endl;
					  }


					  }while(f.tellg()!=posEnd);
			          
			          if(flag==0)
					  {cout<<"查无此书!"<<endl;
                       cout<<endl;
			           continue;
					  }
			          break;
			   
				   }
				   
				   }
           break;
				   
		}		   

	   case 5://浏览图书信息
	{

			{
				bookData *c;
				bookData books;
                int m,i;
				f.close();
				f.open("bookFile.dat",ios::binary|ios::in|ios::out);

				if(!f)
				{
					cerr<<"error!";
	                abort();
	            }
                
				f.seekg(0,ios::end);
                long posEnd=f.tellg();
	            m=posEnd/sizeof(bookData);
	            c=new bookData[m];
	            f.seekg(0,ios::beg);
	            i=0;
    
	            while (f.tellp()!=posEnd)
	            {
		            f.read((char *)&c[i],sizeof(bookData));
		            i++;
	            }
	                        	  
				int work;
				for(int pass=1;pass<m;pass++)
				{
					work=1;
					for(i=pass;i>0;i--)
					{   
						if(c[i].TP>c[i-1].TP)
						{
							books=c[i];
							c[i]=c[i-1];
							c[i-1]=books;
											   									   
							work=0; 
						}
					}
										   
					if(work) break;
				}
								

                i=m-1;	  
				do 
	            {
		            cout<<"图书编号:"<<c[i].TP<<endl;
                    cout<<"图书名称:"<<c[i].bookName<<endl;
                    cout<<"作者编号:"<<c[i].writerNumber1<<endl;
                    cout<<"作者姓名:"<<c[i].writerName1<<endl;
                    cout<<"        :"<<c[i].writerNumber2<<endl;
                    cout<<"        :"<<c[i].writerName2<<endl;
                    cout<<"        :"<<c[i].writerNumber3<<endl;
                    cout<<"        :"<<c[i].writerName3<<endl;
                    cout<<"出版社编号:"<<c[i].publishNumber<<endl;
			        cout<<"出版社名称:"<<c[i].publish<<endl;
                    cout<<"库存量:"<<c[i].balance<<endl;
                    cout<<"剩余量:"<<c[i].balanceleave<<endl;
					cout<<endl;
		                        	  
					i--;

	                }while (i>=0);


			   break;
			  } 


			  }

  case 6://用户编号查询
	{
		f4.seekg(0,ios::beg);
	    cout<<"用户编号";
		cin>>key;
		do
		{
			f4.read((char*)&people,sizeof(userInfo));
            if(people.userNumber==key)
			{   
				flag=1;
				cout<<"用户编号:"<<people.userNumber<<"  借出书籍"<<people.bbookName<<endl;
				cout<<"数量"<<people.balance<<"本   "<<"借书日期"<<people.bDate<<"期限:一个月"<<endl;
				cout<<endl;

			}

		}while(f4.tellg()!=posEnd2);
			  
		if(flag==0)
		{
			cout<<"用户编号输入错误\n";
            cout<<endl;
			continue;
		}
			  break;
	}


	    case 7://浏览用户信息
			{
				userInfo *c;
				userInfo user;
                int m,i;
				f4.close();
				f4.open("userbookFile.dat",ios::binary|ios::in|ios::out);

				if(!f4)
				{
					cerr<<"error!";
	                abort();
	            }
                
				f4.seekg(0,ios::end);
                long posEnd2=f4.tellg();
	            m=posEnd2/sizeof(userInfo);
	            c=new userInfo[m];
	            f4.seekg(0,ios::beg);
	            i=0;
    
	            while (f4.tellp()!=posEnd2)
	            {
		            f4.read((char *)&c[i],sizeof(userInfo));
		            i++;
	            }
	                        	  
				int work;
				for(int pass=1;pass<m;pass++)
				{
					work=1;
					for(i=pass;i>0;i--)
					{   
						if(c[i].userNumber>c[i-1].userNumber)
						{
							user=c[i];
							c[i]=c[i-1];
							c[i-1]=user;
											   									   
							work=0; 
						}
					}
										   
					if(work) break;
				}
								

                i=m-1;	  
				do 
	            {
		            cout<<"用户编号:"<<c[i].userNumber<<"  借出书籍"<<c[i].bbookName<<endl;
				    cout<<"数量"<<c[i].balance<<"本   "<<"借书日期"<<c[i].bDate<<"期限:一个月"<<endl;
				    cout<<endl;
		                        	  
					i--;

	                }while (i>=0);


			   break;
			  } 

		case 0:return;
	}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -