ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:55.67KB ,
资源ID:8186896      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8186896.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图书管理系统课程设计C语言Word文件下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

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

1、 -n#define N 100typedef struct book char num10; /*书号*/ char name15; /*书名*/ int price; /*定价*/ char author15; /*作者*/ char pub20; /*出版社*/ int number;/*数量*/ int bnumber;/*借出次数*/;typedef struct Member char mnum10;/*会员号*/ char mname15;/*会员姓名*/ char tel15;/*联系电话*/typedef struct borrow/*书号*/*书名*/typedef str

2、uct node/*定义图书信息链表的结点结构*/ struct book data; /*数据域*/ struct node *next; /*指针域*/Node,*Link; /*定义node类型的结构变量及指针变量*/typedef struct mnode/*定义会员信息链表的结点结构*/ struct Member inf; struct mnode *next;Mnode,*Mlink;typedef struct bnode/*定义借书信息链表的结点结构*/ struct borrow binf; struct bnode *next;Bnode,*Blink;void menu

3、() /*主菜单*/ system(cls); /*清屏*/ printf( 图书管理系统nt*菜单*nt* 1 添加图书信息 2 删除图书信息 *nt* 3 查询图书信息 4 修改图书信息 *nt* 5 添加会员 6 借书 *nt* 7 还书 8 按借出次数查看图书 *nt* 9 按入馆时间查看图书 0 退出系统 *nt*nvoid printheader() /*格式化输出表头*/ printf(HEADER1); printf(HEADER2); printf(HEADER3);void printdata(Node *pp) /*格式化输出表中数据*/ Node* p; p=pp; p

4、rintf(FORMAT,DATA);void printbdata(Node *pp)void Wrong() /*输出按键错误信息*/nnnnn*Error:input has wrong! press any key to continue*n getchar();void Nofind() /*输出未查找此学生的信息*/n=Not find this record!nvoid Savemember(Mlink m) FILE *fp; Mnode *p; int count=0; fp=fopen(f:member.txt,wb/*以只写方式打开二进制文件*/ if(fp=NULL)

5、/*打开文件失败*/ printf(open file error! getchar(); return ; p=m-next; while(p) if(fwrite(p,sizeof(Mnode),1,fp)=1)/*写记录到磁盘文件中*/ p=p- count+; else break; if(count0)nnnt保存文件完成,总共保存的数量是:%dn,count); else system( fclose(fp);void Save(Link l)/*将数据存盘*/ Node *p;book.txt p=l- if(fwrite(p,sizeof(Node),1,fp)=1)/*写记录

6、到磁盘文件中*/nnnt=保存文件完成,保存的图书信息数量是:the current link is empty,no student record is saved!void Disp(Link l) /*显示单链表l中存储的图书记录*/ if(!p) /*p=NULL则说明暂无记录*/Not record! return;nn while(p) /*逐条输出链表中存储图书信息*/ printf(FORMAT,DATA); p=p- printf(HEADER3);void Disp1(Link l) /*显示单链表l中存储的图书记录*/ system(press any key to me

7、nu fflush(stdin); return;void Mdisp(Mlink m) /*显示单链表中存储的会员信息*/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(Link l,char findmess,char nameornum) Node *r; if(strcmp(na

8、meornum,num)=0) /*按书号查询*/ r=l- while(r) if(strcmp(r-data.num,findmess)=0) return r;/*返回与输入内容相匹配的结点*/ r=r- else if(strcmp(nameornum,name)=0) /*按书名查询*/data.name,findmess)=0) return 0; /*若未找到,返回一个空指针*/void stringinput(char *t,int lens,char *notice)/*输入字符串,并进行长度验证*/ char n50; do printf(notice); /*显示提示信息

9、*/ scanf(%s,n); /*输入字符串*/ if(strlen(n)lens)printf(n 超过长度规定值! n /*进行长度是否超过规定值*/ while(strlen(n)lens); strcpy(t,n); /*将输入的字符串拷贝到字符串t中*/int numberinput(char *notice) int t=0;%d,&t); /*输入图书数量*/ if (t0! while(t/*清屏*/ Disp(l); /*先输出已有的图书信息*/ while(r-next!=NULL) r=r- /*将指针移至于链表最末尾,准备添加记录*/ while(1) /*可输入多条

10、记录,输入0时退出添加操作*/ while(1) stringinput(num,10,输入新增图书编号(输入 0return menu): /*输入书号*/ 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);

11、 scanf(%cch); if(ch=y|ch=Y) continue; else return; break; p=(Node *)malloc(sizeof(Node); /*申请内存空间*/ if(!p)n allocate memory failure /*如没有申请到,输出提示信息*/ return ; /*返回菜单界面*/ strcpy(p-data.num,num); /*将字符串拷贝到p-data.num中*/ stringinput(p-data.name,15,书名:/*输入图书名称到p-data.name中*/ p-data.price=numberinput(价格:/

12、*输入定价到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 ;void Addmember(Mlink m) Mnode *p,*r,*s,*q; char ch,qu,flag=0,num10; r=m; s=m- Mdisp

13、(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,电话:void searchbnum(Link l) int count1=0; int bnum100;

14、int maxnum=0; int thismax=0;l-next) /*若链表为空*/ system(No record! |借出次数| 编号 | 书名 | 价格| 作者 | 出版社 |数量 |n if(p-data.bnumber=maxnum) /bnumi=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.bnumberthismax) thismax=p- if(count=count1) break; maxnum=thismax; thismax=0; |-|-|-|-|-|-|-|npress any key to returnvoid search(Link l) /*图书查询*/ int select; char searchinput20;nt1 按书号查询 nt2 按书

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

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