图书管理系统课程设计C语言Word文件下载.docx

上传人:b****4 文档编号:8186896 上传时间:2023-05-10 格式:DOCX 页数:33 大小:55.67KB
下载 相关 举报
图书管理系统课程设计C语言Word文件下载.docx_第1页
第1页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第2页
第2页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第3页
第3页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第4页
第4页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第5页
第5页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第6页
第6页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第7页
第7页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第8页
第8页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第9页
第9页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第10页
第10页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第11页
第11页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第12页
第12页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第13页
第13页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第14页
第14页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第15页
第15页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第16页
第16页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第17页
第17页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第18页
第18页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第19页
第19页 / 共33页
图书管理系统课程设计C语言Word文件下载.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

图书管理系统课程设计C语言Word文件下载.docx

《图书管理系统课程设计C语言Word文件下载.docx》由会员分享,可在线阅读,更多相关《图书管理系统课程设计C语言Word文件下载.docx(33页珍藏版)》请在冰点文库上搜索。

图书管理系统课程设计C语言Word文件下载.docx

------------------------------------------------------------------------\n"

#defineN100

typedefstructbook

{

charnum[10];

/*书号*/

charname[15];

/*书名*/

intprice;

/*定价*/

charauthor[15];

/*作者*/

charpub[20];

/*出版社*/

intnumber;

/*数量*/

intbnumber;

/*借出次数*/

};

typedefstructMember

charmnum[10];

/*会员号*/

charmname[15];

/*会员姓名*/

chartel[15];

/*联系电话*/

typedefstructborrow

/*书号*/

/*书名*/

typedefstructnode/*定义图书信息链表的结点结构*/

structbookdata;

/*数据域*/

structnode*next;

/*指针域*/

}Node,*Link;

/*定义node类型的结构变量及指针变量*/

typedefstructmnode/*定义会员信息链表的结点结构*/

structMemberinf;

structmnode*next;

}Mnode,*Mlink;

typedefstructbnode/*定义借书信息链表的结点结构*/

structborrowbinf;

structbnode*next;

}Bnode,*Blink;

voidmenu()/*主菜单*/

system("

cls"

);

/*清屏*/

printf("

图书管理系统\n"

\t*************************菜单**********************************\n"

\t*1添加图书信息2删除图书信息*\n"

\t*3查询图书信息4修改图书信息*\n"

\t*5添加会员6借书*\n"

\t*7还书8按借出次数查看图书*\n"

\t*9按入馆时间查看图书0退出系统*\n"

\t***************************************************************\n"

}

voidprintheader()/*格式化输出表头*/

printf(HEADER1);

printf(HEADER2);

printf(HEADER3);

voidprintdata(Node*pp)/*格式化输出表中数据*/

Node*p;

p=pp;

printf(FORMAT,DATA);

voidprintbdata(Node*pp)

voidWrong()/*输出按键错误信息*/

\n\n\n\n\n***********Error:

inputhaswrong!

pressanykeytocontinue**********\n"

getchar();

voidNofind()/*输出未查找此学生的信息*/

\n=====>

Notfindthisrecord!

\n"

voidSavemember(Mlinkm)

FILE*fp;

Mnode*p;

intcount=0;

fp=fopen("

f:

\\member.txt"

"

wb"

/*以只写方式打开二进制文件*/

if(fp==NULL)/*打开文件失败*/

{

printf("

openfileerror!

getchar();

return;

}

p=m->

next;

while(p)

if(fwrite(p,sizeof(Mnode),1,fp)==1)/*写记录到磁盘文件中*/

{

p=p->

count++;

}

else

break;

if(count>

0)

\n\n\n\t保存文件完成,总共保存的数量是:

%d\n"

count);

else

{system("

fclose(fp);

voidSave(Linkl)/*将数据存盘*/

Node*p;

\\book.txt"

p=l->

if(fwrite(p,sizeof(Node),1,fp)==1)/*写记录到磁盘文件中*/

\n\n\n\t=====>

保存文件完成,保存的图书信息数量是:

thecurrentlinkisempty,nostudentrecordissaved!

voidDisp(Linkl)/*显示单链表l中存储的图书记录*/

if(!

p)/*p==NULL则说明暂无记录*/

Notrecord!

return;

\n\n"

while(p)/*逐条输出链表中存储图书信息*/

printf(FORMAT,DATA);

p=p->

printf(HEADER3);

voidDisp1(Linkl)/*显示单链表l中存储的图书记录*/

{system("

pressanykeytomenu"

fflush(stdin);

return;

voidMdisp(Mlinkm)/*显示单链表中存储的会员信息*/

p)/*p==NULL证明没有会员记录*/

printf(HEADER4);

printf(HEADER5);

printf(HEADER6);

while(p)/*逐条输出链表中存储的会员信息*/

printf(FORMAT1,p->

inf.mnum,p->

inf.mname,p->

inf.tel);

printf(HEADER6);

Node*Locate(Linkl,charfindmess[],charnameornum[])

Node*r;

if(strcmp(nameornum,"

num"

)==0)/*按书号查询*/

r=l->

while(r)

if(strcmp(r->

data.num,findmess)==0)

returnr;

/*返回与输入内容相匹配的结点*/

r=r->

elseif(strcmp(nameornum,"

name"

)==0)/*按书名查询*/

data.name,findmess)==0)

return0;

/*若未找到,返回一个空指针*/

voidstringinput(char*t,intlens,char*notice)/*输入字符串,并进行长度验证*/

charn[50];

do{

printf(notice);

/*显示提示信息*/

scanf("

%s"

n);

/*输入字符串*/

if(strlen(n)>

lens)printf("

\n超过长度规定值!

\n"

/*进行长度是否超过规定值*/

}while(strlen(n)>

lens);

strcpy(t,n);

/*将输入的字符串拷贝到字符串t中*/

intnumberinput(char*notice)

intt=0;

%d"

&

t);

/*输入图书数量*/

if(t<

0)printf("

\npricemust>

0!

}while(t<

0);

returnt;

voidAdd(Linkl)/*增加图书记录*/

Node*p,*r,*s;

charch,flag=0,num[10];

r=l;

s=l->

/*清屏*/

Disp(l);

/*先输出已有的图书信息*/

while(r->

next!

=NULL)

r=r->

/*将指针移至于链表最末尾,准备添加记录*/

while

(1)/*可输入多条记录,输入0时退出添加操作*/

while

(1)

stringinput(num,10,"

输入新增图书编号(输入'

0'

returnmenu):

"

/*输入书号*/

flag=0;

if(strcmp(num,"

0"

)==0)/*输入0退出操作,返回菜单界面*/

{Save(l);

return;

s=l->

while(s)/*查询输入的书号是否已经存在*/

{

if(strcmp(s->

data.num,num)==0)

{

flag=1;

break;

}

s=s->

}

if(flag==1)/*提示用户是否重新输入*/

{getchar();

printf("

=====>

输入的书号%s错误,是否重新输入?

(y/n):

num);

scanf("

%c"

ch);

if(ch=='

y'

||ch=='

Y'

continue;

else

return;

{break;

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

/*申请内存空间*/

if(!

p)

\nallocatememoryfailure"

/*如没有申请到,输出提示信息*/

return;

/*返回菜单界面*/

strcpy(p->

data.num,num);

/*将字符串拷贝到p->

data.num中*/

stringinput(p->

data.name,15,"

书名:

/*输入图书名称到p->

data.name中*/

p->

data.price=numberinput("

价格:

/*输入定价到p->

data.price中*/

data.author,15,"

作者:

/*输入作者名到p->

data.author中*/

data.pub,20,"

出版社:

/*输入出版社名称到p->

data.pub中*/

data.number=numberinput("

数量:

/*输入图书数量到p->

data.number中*/

data.bnumber=0;

next=NULL;

r->

next=p;

/*将新结点插入链表中*/

r=p;

return;

voidAddmember(Mlinkm)

{

Mnode*p,*r,*s,*q;

charch,qu,flag=0,num[10];

r=m;

s=m->

Mdisp(m);

/*将原有记录输出*/

输入新增会员编号(press'

/*输入会员号*/

)==0)/*输入为0,则退出添加操作,返回菜单界面*/

{Savemember(m);

s=m->

while(s)/*查询该会员号是否已经存在*/

inf.mnum,num)==0)

输入的这个编号%s错误,是否重新输入?

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

/*返回主界面*/

inf.mnum,num);

/*将会员号拷贝到p->

inf.mname,15,"

姓名:

inf.tel,15,"

电话:

voidsearchbnum(Linkl)

intcount1=0;

intbnum[100];

intmaxnum=0;

intthismax=0;

l->

next)/*若链表为空*/

system("

Norecord!

|借出次数|编号|书名|价格|作者|出版社|数量|\n"

{

if(p->

data.bnumber>

=maxnum){

//bnum[i]=p->

data.bnumber;

maxnum=p->

}

count1++;

while(true)

p=l->

while(p)

if(p->

data.bnumber==maxnum){

|%-8d|%-10s|%-15s|%-5d|%-11s|%-16s|%-6d|\n"

p->

data.bnumber,p->

data.number);

data.bnumber<

maxnum&

&

p->

thismax)

thismax=p->

if(count==count1)

break;

maxnum=thismax;

thismax=0;

|--------|----------|---------------|-----|-----------|----------------|------|\n"

pressanykeytoreturn"

voidsearch(Linkl)/*图书查询*/

intselect;

charsearchinput[20];

\n\t1按书号查询\n\t2按书

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

当前位置:首页 > 工程科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2