当前位置:编程学习 > C/C++ >>

求图书馆管理系统C++源代码

图书管理系统(功能如下)

1. 新书入库:图书信息包括书名、书号、库存量、现存量。首先输入3本书的信息,并将其存入“book.dat”中。当有新书入库时,先判断文件中是否有此书(即比较书名),若有则修改库存量,现存量信息;若无则将该书信息添加到文件中。

2. 图书查询:输入一个书号,在文件中查找此书,若找到则输出此书的全部信息;若找不到则输出查找失败的信息。

3. 借阅管理

(1)每个读者的信息包括姓名、编号、一张借书卡(限借一本),输入3个读者的信息存入文件“reader.dat”中。

(2)借书登记:输入读者的姓名,所接图书书号,先判断姓名是否在文件“reader.dat”中,若有则将书号存入借书卡上(注:初始时借书卡的信息都为零,借书后借书卡的信息改为所借书的书号),并修改文件“reader.dat”的相应内容,同时修改文件“book.dat”中此书的现存量。若“reader.dat”中无此姓名,则提示错误。

(3)还书管理:输入读者的姓名,所还书的书号,将借书卡的信息置为零,并修改文件“reader.dat”的相应信息,同时修改文件“book.dat”中此书的现存量。

4. 输出全部图书和读者信息

5. 退出系统

答案:#include<iostream>
#include<fstream>
#include<windows.h>
#include<stdlib.h>
using namespace std;
void mainmenu();
void Manage_Book();
void input_Book();
void input_Reader();
void New_Book();
void Seek_Book();
void Borrow_Manage();
void Borrow_Book();
void Return_Book();
void Output_Message();
void Exit_System();
int u,v=3,k=0;
struct Book
    {
        char name[20];
        int booknumber;
        int num_present;
        int num_all;
    }book[1000];
struct Reader
    {
        char name[20];
        int readernumber;
        int card;
    }reader[3];
void mainmenu()
{
 int Num_Choice1,flag=1;
    system("color E");
 for(;k<=0;k++)
 {
  input_Book();
  input_Reader();
 }
 while(flag==1)
 {
  system("cls");
  cout<<"\t\t\t◆◆◆◆◆主菜单◆◆◆◆◆"<<endl
   <<"\t\t\t☆      1.图书管理      ☆"<<endl
   <<"\t\t\t☆      2.借阅管理      ☆"<<endl
   <<"\t\t\t☆      3.输出信息      ☆"<<endl
   <<"\t\t\t☆      4.退出系统      ☆"<<endl
   <<"\t\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl;
  cout<<"请输入所需要的服务编码"<<endl;
  cin>>Num_Choice1;
  switch(Num_Choice1)
  {
   case 1:
    Manage_Book();
    break;
   case 2:
    Borrow_Manage();
    break;
   case 3:
    Output_Message();
    break;
   case 4:
    Exit_System();
    flag=0;
    break;
   default:
    flag=0;
    cout<<"输入有误!!"<<endl;
  }
 }
}
void Manage_Book()

 int flag1=1,Num_Choice2;
 system("cls");

 while(flag1==1)
 {
  cout<<"\t\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl
   <<"\t\t\t☆      1.新书入库      ☆"<<endl
   <<"\t\t\t☆      2.图书查询      ☆"<<endl
   <<"\t\t\t☆      3.返回主菜单    ☆"<<endl
   <<"\t\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl;
  cin>>Num_Choice2;
  switch(Num_Choice2)
  {
   case 1:
    flag1=2;
    New_Book();
    break;
   case 2:
    flag1=2;
    Seek_Book();    
    break;
   case 3:
    mainmenu();
   default:
    flag1=1;
    cout<<"输入有误!"<<endl;
    system("pause");
    system("cls");
  }
 }

}
void input_Book()

 cout<<"请依照提示输入现有的三本图书的信息:"<<endl;
    for(int i=0;i<3;i++)
        {
            cout<<"书名:"<<endl;
            cin>>book[i].name;
            cout<<"书号:"<<endl;
            cin>>book[i].booknumber;
            cout<<"库存量:"<<endl;
            cin>>book[i].num_all;
            cout<<"现存量:"<<endl;
            cin>>book[i].num_present;          
        }
}


void New_Book()
{
 system("cls");
    int j;
    char newbook_name[20];
    cout<<"请输入新书书名:"<<endl;
    cin>>newbook_name;
    for(j=0;j<1000;j++)
        {
            if(strcmp(newbook_name,book[j].name)==0)
    {
     book[j].num_all++;
     book[j].num_present++;
     break;
    }
  }
    if(j==1000)
        {
            cout<<"请为此新书编号:"<<endl;
   v++;
            cin>>book[v].booknumber;
   strcpy(book[v].name,newbook_name);
   book[v].num_all=1;
            book[v].num_present=1;
        }
 else cout<<"已有此书,库存量加一"<<endl;
   system("pause");
}


void Seek_Book()

 system("cls");
    int k,booknumber;
    cout<<"请输入所要查询的书号:"<<endl;
    cin>>booknumber;
    for(k=0;k<1000;k++)
        {
            if(book[k].booknumber==booknumber)
   {
    cout<<"书号:"<<booknumber<<endl;
                cout<<"书名:"<<book[k].name<<endl;
                cout<<"库存量:"<<book[k].num_all<<endl;
                cout<<"现存量:"<<book[k].num_present<<endl;
    system("pause");
                break;
   }
        }
    if(k==1000)
 {
  cout<<"未找到此书!!"<<endl;
  system("pause");
 }
}


void Borrow_Manage()

 int flag=1;
 system("cls");
 int Num_Choice3; 
 while(flag==1)
 {<

上一个:c++中窗口过程的问题
下一个:ping的C++代码及释义

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,