• 大小: 275KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: C/C++
  • 标签:

资源简介

一个用运用数据结构编的图书馆管理系统,开发语言是C++

资源截图

代码片段和文件信息

#include
#include
#include
#define MAXSIZE 300        //最大值定义为300
#define LIST_INIT_SIZE 300  


typedef struct Boro          
{
 char BNum[50];             //书号
 char RetDate[50];           //归还日期
 struct Boro *next;
}Bor;


typedef struct linkBook   
{
    Bor *next;             //该图书证的借书
 char CNum[50];              //卡号
 int Total;                //借书的数量
}lend[LIST_INIT_SIZE];       //借书人


typedef struct LNode
{
 char CardNum[50];         //图书证号
 struct LNode *next;
}linkList;                //借书人


typedef struct book
{ char num[10];              //书号
 char name[10];              //书名
 char auth[10];             //作者
 char pub[10];                  //出版社
 int TotNum;                  //总库存
    int NowNum;                //现库存
    linkList *next;            //借了该书的人
}ook[MAXSIZE];
int Retotal;               //读者数量
int total;              //定义外部变量.书的种类数


void InitBo(ook &boo)   //初始化图书信息
{
 for(int i=0;i {
  boo[i].NowNum=0;
  boo[i].TotNum=0;
     boo[i].next=NULL;
 }
}


void InitRe(lend &Lin)  //初始化借阅者信息
{
 for(int i=0;i  Lin[i].next=NULL;
}
int mid=0;         //外部函数mid,用来返回查找到的位置
bool BinarySearch(ook boochar SearchNum[])  //二分法查找比较书号
{
int low=0high=total-1;
 int found=0;
 while(low<=high)
{
         mid=(low+high)/2; //中间点
         if(strcmp(boo[mid].numSearchNum)==0)   //书号相同
{
        found=1;
        return true;
}                                           //查找成功
         if(strcmp(boo[mid].numSearchNum)!=0) //书号不同
            high=mid-1;
         else  low=mid+1;
}
     if(found==0)
   return false; //查找失败
}



void Buy(ook &boo char BuyNum[])
{
if(BinarySearch(booBuyNum))   //如果书库中有此书
 {
  boo[mid].TotNum++;              //总库存加1
  boo[mid].NowNum++;              //现库存加1
  cout<<“入库成功.\n“;
  cout<<“已更改书库中该书的信息:“<  cout<<“  编号:“< }
 if(!BinarySearch(booBuyNum))
 {
    int i;
  for(i=total;i>mid&&total;i--)  //插在适合位置 保持有序
  boo[i]=boo[i-1];                //空出插入位置

cout<<“该书在书库中不存在。设立新书目,请补全书的详细信息。\n“;
  strcpy(boo[i].numBuyNum);
  cout<<“该书新存入的数量是:“;
  cin>>boo[i].NowNum;
  boo[i].TotNum=boo[i].NowNum;
  cout<<“该书的名字是:“;
  cin>>boo[i].name;
  cout<<“该书的作者是:“;
  cin>>boo[i].auth;
  cout<<“该书的出版社是:“;
  cin>>boo[i].pub;//补全信息
  boo[i].next=NULL;
  total++;//总量+1
  cout<<“已增加该书的信息:“<  cout<<“  编号:“<  cout<<“入库成功.\n“;
  }
}


void Delete(ook &boochar DeleteNum[])
{
if(BinarySearch(booDeleteNum)==false||total==0)   //如果无此书
        cout<<“书库中没有该书.\n“;
 if(BinarySearch(booDeleteNum))                //若有
 {
  if(!boo[mid].next)
  {
    int j;
  for( j=

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      41984  2011-04-03 01:38  图书管理系统\Debug\vc60.idb

     文件      61440  2011-04-03 01:38  图书管理系统\Debug\vc60.pdb

     文件     225351  2011-04-03 01:38  图书管理系统\Debug\图书管理系统.exe

     文件     262548  2011-04-03 01:38  图书管理系统\Debug\图书管理系统.ilk

     文件      44020  2011-04-03 01:38  图书管理系统\Debug\图书管理系统.obj

     文件     265824  2011-04-02 23:44  图书管理系统\Debug\图书管理系统.pch

     文件     541696  2011-04-03 01:38  图书管理系统\Debug\图书管理系统.pdb

     文件      13393  2011-04-03 02:55  图书管理系统\图书管理系统.cpp

     文件       3377  2011-04-02 23:44  图书管理系统\图书管理系统.dsp

     文件        516  2011-04-03 01:40  图书管理系统\图书管理系统.dsw

     文件      41984  2012-05-09 17:10  图书管理系统\图书管理系统.ncb

     文件      48640  2012-05-09 17:10  图书管理系统\图书管理系统.opt

     文件        738  2011-04-03 01:38  图书管理系统\图书管理系统.plg

     文件        330  2012-03-15 22:03  图书管理系统\图书管理系统.sln

    ..A..H.      6144  2012-03-15 22:03  图书管理系统\图书管理系统.suo

     目录          0  2011-08-28 19:21  图书管理系统\Debug

     目录          0  2012-05-09 17:10  图书管理系统

----------- ---------  ---------- -----  ----

              1557985                    17


评论

共有 条评论

相关资源