c语言图书管理系统Word文档下载推荐.docx

上传人:b****5 文档编号:20382287 上传时间:2023-01-22 格式:DOCX 页数:15 大小:18.16KB
下载 相关 举报
c语言图书管理系统Word文档下载推荐.docx_第1页
第1页 / 共15页
c语言图书管理系统Word文档下载推荐.docx_第2页
第2页 / 共15页
c语言图书管理系统Word文档下载推荐.docx_第3页
第3页 / 共15页
c语言图书管理系统Word文档下载推荐.docx_第4页
第4页 / 共15页
c语言图书管理系统Word文档下载推荐.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

c语言图书管理系统Word文档下载推荐.docx

《c语言图书管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言图书管理系统Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。

c语言图书管理系统Word文档下载推荐.docx

}reader;

reader*elem;

}readerlist;

inti=0,r=0;

statusinitbooklist(booklist&

st){//初始化表

st.elem=(book*)malloc(list_init_size*sizeof(book));

if(!

st.elem)exit(overflow);

st.length=0;

st.listsize=list_init_size;

returnok;

}

statusinitlist_reader(readerlist&

rd,booklist&

st){//初始化读者表

rd.elem=(reader*)malloc(list_init_size*sizeof(reader));

rd.elem)exit(overflow);

rd.length=0;

rd.listsize=list_init_size;

statussearchbook1(booklistst,charnam[20],int&

n){//按书名查找,书名相同的第一个记录号

for(intj=1;

j<

=st.length;

j++){

if(EQ(st.elem[j].nam,nam)){

n=j;

returntrue;

}

}

returnfalse;

}

statussearchbook2(booklistst,charnum[7],int&

n){//按书号查找的函数

if(EQ(st.elem[j].num,num)){

statussearchbook3(booklistst,charnam[20]){//返回同一书名书的数目

intm=0;

if(EQ(st.elem[j].nam,nam))m++;

returnm;

statussearchbook4(booklistst,charnam[20]){//返回可借书的数目

if(EQ(st.elem[j].nam,nam)&

&

st.elem[j].truefalse==1)m++;

voidchange(booklist&

st,charc[20],intm,intn){//改变库存量和现存量的,将书名想通的记录改为相同的库存量和现存量

for(intj=1;

j<

=st.length+1;

if(EQ(st.elem[j].nam,c)){

st.elem[j].nownum=m;

st.elem[j].sumnum=n;

voidaddbook(booklist&

st){//实现添加记录功能的函数

intm=0,n=0;

//m表示本次输入的书的次序,n用作返回记录号

booka,*newbase;

printf("

------------------------------------追加记录-----------------------------------\n"

);

charp='

1'

;

do{

if(st.length>

=st.listsize){//如果空间不够,分配空间

newbase=(book*)realloc(st.elem,(st.listsize+listincrement)*sizeof(book));

if(!

newbase)exit(overflow);

st.elem=newbase;

st.listsize+=listincrement;

请你输入本次第%d本书的序号\n"

m+1);

scanf("

%s"

a.num);

if(searchbook2(st,a.num,n)==1){

printf("

书本序号已存在,请重新输入!

\n"

continue;

请你输入书名\n"

a.nam);

请你输入书的作者\n"

a.author);

i++;

st.elem[i]=a;

st.elem[i].truefalse=1;

if(searchbook1(st,a.nam,n)==1){//判断书名是否存在,若存在,追加记录,改变库存量和现存量

st.elem[n].nownum++;

st.elem[n].sumnum++;

change(st,st.elem[n].nam,st.elem[n].nownum,st.elem[n].sumnum);

else{//书名不存在,追加记录,库存量和现存量均置一

st.elem[i].nownum=1;

st.elem[i].sumnum=1;

m++;

st.length++;

printf("

\t\t\t请选择:

1.继续输入2.返回\n"

scanf("

&

p);

if(p!

='

&

p!

2'

)printf("

\t\t\t\t输入错误,请重新输入!

}while(p!

}while(p!

voidsearchbook(booklistst){//实现按书号,书名,著作者关键字中的任意一个查找

intk;

s='

------------------------------------查找记录-----------------------------------\n"

booka;

k=0;

//k标示是否找到

if(st.length<

1){

记录表为空,无法查找,请先添加记录.\n"

break;

请选择进行查找的关键字:

1.书号2.书名3.著作者\n"

scanf("

s);

if(s=='

)//按书号查找

{

请输入书号:

"

a.num);

for(intj=1;

j<

=st.length;

j++)

{

if(EQ(st.elem[j].num,a.num)){

printf("

\t\t\t\t书号:

%s\n"

st.elem[j].num);

\t\t\t\t书名:

st.elem[j].nam);

\t\t\t\t著作者:

st.elem[j].author);

\t\t\t\t现存量:

%d\n"

st.elem[j].nownum);

\t\t\t\t库存量:

st.elem[j].sumnum);

k=1;

if(st.elem[j].truefalse==0)printf("

\t\t\t\t该书已借出\n"

}

}

elseif(s=='

)//按书名查找

请输入书名:

a.nam);

j++){

if(EQ(st.elem[j].nam,a.nam))

{

3'

){//按作者查找

请输入著作者:

a.author);

if(EQ(st.elem[j].author,a.author))

else{

\t\t\t\t输入错误,请重新输入:

continue;

if(k==0)printf("

要查找的记录不存在\n"

do{

\t\t\t\t请选择:

1.继续查找2.返回\n"

if(p!

}while(p!

voiddeletebook(booklist&

st){//按查找关键字删除记录

chars='

chart='

booka;

intl=st.length;

book*m;

------------------------------------删除记录-----------------------------------\n"

intk=0;

//k为是否找到的标示

请查找你需要删除的记录\n"

)//按书号删除;

if(st.length<

1)printf("

\t\t记录表为空,无法查找,请先添加记录.\n"

if(st.length<

break;

if(st.elem[j].truefalse==0){

printf("

书已经借出,无法删除!

continue;

}

书号:

书名:

著作者:

现存量:

库存量:

%d\n\n"

do{

\t\t确定要删除吗?

1.删除2.取消\n"

scanf("

t);

if(t=='

{

m=&

(st.elem[j]);

for(m;

m<

=st.elem+l-1;

m++)*(m)=*(m+1);

--st.length;

st.elem[j].nownum--;

st.elem[j].sumnum--;

change(st,st.elem[j].nam,st.elem[j].nownum,st.elem[j].sumnum);

printf("

\t\t\t\t记录已删除\n"

j--;

}

elseif(t=='

\t\t\t\t删除已取消\n"

else

\t\t\t输入错误,请重新输入\n"

}while(t!

t!

){//按书名删除

if(EQ(st.elem[j].nam,a.nam)){

){//按著作者删除

if(EQ(st.elem[j].author,a.author)){

do{

\t\t\t\t输入错误,请重新输入\n"

\t\t\t要查找的记录不存在\n"

1.继续删除2.返回\n"

if(s!

s!

}while(s!

}while(s!

voidlendbook(booklist&

st,readerlist&

rd){//实现借书的函数

readera,*newbase;

------------------------------------借阅图书-----------------------------------\n"

intn=0;

intk=0;

if(rd.length>

=rd.listsize){

newbase=(reader*)realloc(rd.elem,(rd.listsize+listincrement)*sizeof(reader));

if(!

rd.elem=newbase;

rd.listsize+=listincrement;

}

请输入书证号:

a.readernum);

请输入书名:

请输入书号:

请输入归还日期:

a.backtime);

if(sea

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

当前位置:首页 > 总结汇报 > 实习总结

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

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