图书管理系统代码.docx

上传人:b****3 文档编号:24823219 上传时间:2023-06-01 格式:DOCX 页数:18 大小:16.80KB
下载 相关 举报
图书管理系统代码.docx_第1页
第1页 / 共18页
图书管理系统代码.docx_第2页
第2页 / 共18页
图书管理系统代码.docx_第3页
第3页 / 共18页
图书管理系统代码.docx_第4页
第4页 / 共18页
图书管理系统代码.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

图书管理系统代码.docx

《图书管理系统代码.docx》由会员分享,可在线阅读,更多相关《图书管理系统代码.docx(18页珍藏版)》请在冰豆网上搜索。

图书管理系统代码.docx

图书管理系统代码

图书管理系统代码

//***********************

//图书馆管理系统

//***********************

#include

#include

#include

#definenull0

#definemax65536

staticintn;

//*********************

//图书结构体

//*********************

typedefstruct

{

charnum[10];//书号

charname[9];//书名

charaddr[31];//作者

intNowcounter;//现存量

intAllcounter;//总库存量

}datatype;

datatype*x[max];//定义两个指针数组

datatype*p;

//*****************************

//图书功能函数列表

//*****************************

voidredo();//主递归函数

voidcreatlist(datatype*x[]);//图书建立函数

intmenu_select();//功能菜单函数

voidfind(datatype*x[],intn);//查找函数

voiddelnode(datatype*x[]);//插入函数

voidprintlist(datatype*x[]);//显示函数

voidjieyue(datatype*x[],intn);//借阅函数

voidguihuan(datatype*x[],intn);//归还函数

//*****************************

//主递归函数程序

//*****************************

voidredo()

{

inti=0,j,n1,k=0,flage;

for(;;)

{

switch(menu_select())

{

case1:

//选项1的实现

printf("***********************\n");

printf("*图书的建立*\n");

printf("***********************\n");

creatlist(x);

break;

case2:

//选项2的实现

printf("***********************\n");

printf("*新图书信息的添加*\n");

printf("***********************\n");

printf("插入的个数:

");

scanf("%d",&n1);//输入插入新图书的个数

for(i=0;i

{

flage=0;

p=(datatype*)malloc(sizeof(datatype));//分配一个节点空间

printf("书名:

");

scanf("%s",p->name);//输入插入书的书名

if(flage==0)

{

for(j=0;j

{

if(strcmp(x[j]->name,p->name)==0)//调用比较函数查看书名是否已知

{

x[j]->Allcounter++;

x[j]->Nowcounter++;

flage=1;

}

}

if(flage==0)

{

n++;

printf("第%d个图书数据:

\n",n);//插入新的图书

p=(datatype*)malloc(sizeof(datatype));

x[n-1]=p;

printf("书名:

");

scanf("%s",x[n-1]->name);//输入书名

printf("编号:

");

scanf("%s",x[n-1]->num);//输入书号

printf("作者:

");

scanf("%s",x[n-1]->addr);//输入作者名

printf("总库存量:

");

scanf("%d",&x[n-1]->Allcounter);//输入总库存量

x[n-1]->Nowcounter=x[n-1]->Allcounter;

}

}

}

break;

case3:

printf("***********************\n");

printf("*图书信息的查询*\n");

printf("***********************\n");

find(x,n);

break;

case4:

printf("************************\n");

printf("*图书信息的删除*\n");

printf("************************\n");

delnode(x);

break;

case5:

printf("************************\n");

printf("*图书信息的显示*\n");

printf("************************\n");

printlist(x);

break;

case6:

printf("************************\n");

printf("图书的借阅\n");

printf("************************\n");

jieyue(x,n);

break;

case7:

printf("************************\n");

printf("图书的归还\n");

printf("************************\n");

guihuan(x,n);

break;

case0:

printf("\t谢谢使用,再见!

\n");

return;

}

}

}

//*************************

//主函数程序

//*************************

voidmain()

{

redo();//调用主递归函数

}

//*************************

//功能菜单函数

//*************************

intmenu_select()

{

inti;

printf("欢迎进入图书管理系统!

\n");

printf("===========================\n");

printf("1.图书信息的采集\n");

printf("2.新图书的插入\n");

printf("3.图书信息的查询\n");

printf("4.图书的删除\n");

printf("5.图书的显示\n");

printf("6.图书的借阅\n");

printf("7.图书的归还\n");

printf("0.退出管理系统\n");

printf("===========================\n");

printf("请选择0-7:

");

scanf("%d",&i);

while(i<0||i>7)

{

printf("\n\t输入出错,重选0-7:

");

scanf("%d",&i);

}

returni;

}

//********************************

//建立链表图书建造函数

//********************************

voidcreatlist(datatype*x[])

{

inti;

printf("请输入要建立图书的个数:

");

scanf("%d",&n);

for(i=0;i

{

printf("第%d个图书数据:

\n",i+1);

p=(datatype*)malloc(sizeof(datatype));//分配一个节点空间

x[i]=p;

printf("书名:

");//输入图书各项内容

scanf("%s",x[i]->name);

printf("编号:

");

scanf("%s",x[i]->num);

printf("作者:

");

scanf("%s",x[i]->addr);

printf("总库存量:

");

scanf("%d",&x[i]->Allcounter);

x[i]->Nowcounter=x[i]->Allcounter;

}

}

//**********************************

//查找函数程序

//*********************************

voidfind(datatype*x[],intn)

{

charnum[10];

charname[9];

intt,i;

printf("=================\n");//输出查找方式

printf("1.按编号查询\n");

printf("2.按书名查询\n");

printf("=================\n");

printf("请选择:

");

scanf("%d",&t);//输入选择信息

if(t==1)

{

printf("请输入要查找者的编号:

");

scanf("%s",num);//输入书号

for(i=0;i

{

if(strcmp(x[i]->num,num)==0)//调用strcmp函数

{

printf("编号书名作者现库存量总库存量\n");//输出要查询书的信息

printf("%-10s%-10s%-10s%-10d%-10d\n",x[i]->num,x[i]->name,x[i]->addr,x[i]->Nowcounter,x[i]->Allcounter);

}

else

continue;

}

}

else

{

printf("请输入要查询的书名:

");

scanf("%s",name);//输入书名

for(i=0;i

{

if(strcmp(x[i]->name,name)==0)

{

printf("编号书名作者现库存量总库存量\n");//输出要查询书的信息

printf("%-10s%-10s%-10s%-10d%-10d\n",x[i]->num,x[i]->name,x[i]->addr,x[i]->Nowcounter,x[i]->Allcounter);

}

else

continue;

}

}

}

//******************************

//删除函数程序

//******************************

voiddelnode(datatype*x[])

{

charnum1[10],name1[10];//定义两个字符数组

inti,j,m=1,p;

printf("1.按编号删除\n");//输出选择方式

printf("2.按书名删除\n");

printf("3.返回\n");

printf("请选择:

\n");

scanf("%d",&p);//输入选择信息

if(p>3||p<1)

{

printf("您的输入有误,请重新输入!

\n");

scanf("%d",&p);//重新输入选择信息

}

switch(p)//实现删除程序

{

case1:

printf("输入要删除书的编号:

\n");

scanf("%s",num1);

for(i=0;i

{

if(strcmp(x[i]->num,num1)==0)//调用strcmp函数

{

m=0;

n--;

for(j=i;j

x[j]=x[j+1];//将该书信息删除

printf("该书已删除!

\n");

}

}

if(m==1)

printf("没有这样的的图书\n");

break;

case2:

printf("输入要删除书的名字:

\n");

scanf("%s",&name1);

for(i=0;i

{

if(strcmp(x[i]->name,name1)==0)//调用strcmp函数

{

m=0;

n--;

for(j=i;j

x[j]=x[j+1];

printf("该书已删除!

\n");

}

}

if(m==1)

printf("没有这样的的图书\n");

break;

case3:

break;

}

}

//////////////////////////

////借阅函数程序

/////////////////////////

voidjieyue(datatype*x[],intn)

{

inti,m=1,p;

charname1[10],num1[10];//定义两个字符数组

printf("1.按名字借阅\n");//输出选择方式

printf("2.按编号借阅\n");

printf("3.返回\n");

printf("请选择\n");

scanf("%d",&p);//输入选择信息

if(p>3||p<1)

{

printf("您的输入有误!

\n");

scanf("%d",&p);//重新输入选择信息

}

switch(p)//实现查询程序

{

case1:

printf("请输入你要的书的名字!

\n");

scanf("%s",&name1);//输入书名

for(i=0;i

{

if(strcmp(x[i]->name,name1)==0)//调用strcmp函数

{

m=0;

if(x[i]->Nowcounter!

=0)

x[i]->Nowcounter--;

printf("借书成功!

\n");

if(x[i]->Nowcounter==0)

printf("这本书已经没有了\n");

}

}

if(m==1)

printf("您要的书不存在!

\n");

break;

case2:

printf("请输入你要的书的编号!

\n");

scanf("%s",&num1);//输入书号

for(i=0;i

{

if(strcmp(x[i]->num,num1)==0)//调用strcmp函数

{

m=0;

if(x[i]->Nowcounter!

=0)

x[i]->Nowcounter--;//现存书数量减1

printf("借书成功!

\n");

if(x[i]->Nowcounter==0)

printf("这本书已经没有了\n");

}

}

if(m==1)

printf("您要的书不存在!

\n");

break;

case3:

break;

}

}

///////////////////////

/////归还程序

//////////////////////

voidguihuan(datatype*x[],intn)

{

inti,q,m=1;

charname1[10],num1[10];//定义两个字符数组

printf("1.按书名归还\n");//输出可选择方式

printf("2.按书号归还\n");

printf("3.返回\n");

printf("请选择\n");

scanf("%d",&q);//输入选择信息

if(q>3||q<1)

{

printf("您的输入有误!

\n");

scanf("%d",&q);//重新输入选择信息

}

switch(q)//实现归还程序

{

case1:

printf("输入归还书的书名:

");

scanf("%s",&name1);//输入书名

for(i=0;i

{

if(strcmp(x[i]->name,name1)==0)

{

m=0;

x[i]->Nowcounter++;

printf("此书归还成功!

\n");

printf("此书的存储情况\n");

printf("编号书名作者现存量总存量\n");

printf("===============================================\n");

printf("%-10s%-10s%-10s%-10d%-10d\n",x[i]->num,x[i]->name,x[i]->addr,x[i]->Nowcounter,x[i]->Allcounter);

printf("===============================================\n");

}

if(strcmp(x[i]->name,name1)==0)

continue;

}

if(m==1)

printf("此书不是图书馆的!

\n");

break;

case2:

printf("输入归还书的书号\n");

scanf("%s",&num1);//输入书号

for(i=0;i

{

if(strcmp(x[i]->num,num1)==0)

{

m=0;

x[i]->Nowcounter++;//显存书增加1

printf("此书归还成功!

\n");

printf("此书的存储情况\n");

printf("编号书名作者现存量总存量\n");

printf("==============================================\n");

printf("%-10s%-10s%-10s%-10d%-10d\n",x[i]->num,x[i]->name,x[i]->addr,x[i]->Nowcounter,x[i]->Allcounter);

printf("==============================================\n");

}

if(strcmp(x[i]->num,num1)==0)//调用strcmp函数

continue;

}

if(m==1)

printf("此书不是图书馆的!

\n");

break;

case3:

break;

}

}

//**************************************

//输出程序

//**************************************

voidprintlist(datatype*x[])

{

inti;

printf("编号书名作者现存量总存量\n");//输出图书各项信息

for(i=0;i

{

printf("%-10s%-10s%-10s%-10d%-10d\n",x[i]->num,x[i]->name,x[i]->addr,x[i]->Nowcounter,x[i]->Allcounter);

}

printf("===============================================\n");

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1