C语言程序设计报告-图书管理系统PDF.pdf

上传人:荣*** 文档编号:5941611 上传时间:2022-01-23 格式:PDF 页数:50 大小:265.09KB
返回 下载 相关 举报
C语言程序设计报告-图书管理系统PDF.pdf_第1页
第1页 / 共50页
C语言程序设计报告-图书管理系统PDF.pdf_第2页
第2页 / 共50页
点击查看更多>>
资源描述

《C语言程序设计报告-图书管理系统PDF.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计报告-图书管理系统PDF.pdf(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言程序设计总结页脚内容 1南京航空航天大学金城学院C 语言程序设计课程设计报告图书信息管理系统学号 : 姓名:学号:姓名:日期:C语言程序设计总结页脚内容 2目录一、需求分析:3二、程序的主要功能:.3三、程序运行平台:.3四、系统总框架图:.6五、程序类的说明:.6六、模块分析:.8C语言程序设计总结页脚内容 3七、比较有特色的函数:.9八、存在的不足与编程体会10九、程序源代码:.10一、需求分析设计与分析一个图书信息管理系统,能够对图书的根据书名、价格或出版社进行统计、处理和更新,并且可以方便学校老师和领导对图书进行整体分析。二、程序的主要功能图书信息界面美观、简洁,采用菜单式显示功

2、能选择;能够从磁盘文件输入和输出数据;能够对图书信息进行检索操作;具有增、删、改信息的功能;使用结构体 链表数据类型对图书信息进行描述和存储。C语言程序设计总结页脚内容 4三、程序运行平台VC6.0运行程序“ library.exe ” ,进入登录界面如下* 欢迎光临 * 图书信息管理系统*=1-用户登录 =0-退出系统 =请输入您的选择 :一、输入 1进行登录-*图书信息管理系统 *-C语言程序设计总结页脚内容 5*| 1-添加图书2-删除图书 | 3- 图书列表4-图书排序 | 5- 查询图书6-修改图书 | 7- 录入数据0-退出系统 |*请输入所选择的序号 :C语言程序设计总结页脚内容

3、 6选择 1进入添加图书模块:请输入您要添加的图书的编号:选择 2进入删除图书信息模块:请输入要删除的图书编号:选择 3进入显示图书列表模块图书信息列表如下=编号图书名作者名出版社类别出版时间价格2 2 2 2 2 2 2.003 3 3 3 3 3 3.0033 15 5 2 5 52 5.005 5 5 5 5 5 5.00=:选择 4.进入修改个人信息模块C语言程序设计总结页脚内容 71-按姓名修改请输入您的数字选择 :选择 5.进入图书排序模块=* 1-按图书编号排序2-按出版时间排序* 3-按图书价格排序4-按图书名排序* 5-按作者名排序0-取消排序操作*=请输入您选择的编号 :选

4、择 6.进入修改图书模块*请输入要修改的图书编号 :选择 7.进入录入信息模块注意 :输入图书编码为0 时结束!请输入图书编号 :选择 0.退出系统C语言程序设计总结页脚内容 8四、 系统总框架图五、程序类的说明struct bookint num;char bname50;char wname20;char press50;char sort50;int time;float price;主函数写文件用户操作读文件添加信息删除信息查询信息修改信息C语言程序设计总结页脚内容 9struct book *next;/ 定义文件头指针;六、模块分析1. 添加模块系统将提示用户输入新添加的图书的信息

5、,插入在链表中2. 删除模块首先由用户输入图书的编号, 然后由删除模块判断p-num和用户输入的编号是否相同, 相同则从链表中删除。3. 图书列表模块传递一个头指针给print_book函数,若头指针不为空,则将整个链表的数据输出。4. 图书排序模块首先由用户判断由什么关键词进行排序,然后运行相应的运行模块。5. 查询图书模块系统将会把所有航班的信息显示出来。由用户输入图书的编号, 判断是 p-num 和用户输入的编号是否相同,相同则输出。6. 修改图书模块C语言程序设计总结页脚内容 10按照编号检索,然后修改相应的内容。7. 录入模块用 while 循环批量录入图书信息。0. 退出系统七、比

6、较有特色的函数void num_paixu(struct book *head)struct book *a1000,*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p-next)n+;for(i=0;inext;C语言程序设计总结页脚内容 11for(k=0;kn-1;k+)index=k;for(i=k+1;inumnum)index=i;temp=aindex;aindex=ak;ak=temp;printf( 排序成功 !n);printf( 是否显示排序结果 ?(y/n)n);scanf(%s,&b);getc

7、har();switch(b)case n:break;C语言程序设计总结页脚内容 12case y:printf( =n);printf( * 编号图书名作者名出版社类别出版时间价格*n);for(i=0;inum,ai-bname,ai-wname,ai-press,ai-sort,ai-time,ai-price);printf( =n);break;default:printf(您的输入有误 !n);break;C语言程序设计总结页脚内容 13八、存在的不足与对策、编程体会。排序的方式过于复杂,有待改进。九、参考文献百度文库十、程序源代码#include#include#include

8、struct bookint num;char bname50;char wname20;char press50;char sort50;int time;float price;C语言程序设计总结页脚内容 14struct book *next;/ 定义文件头指针;struct book *creatbook(); / 创建链表struct book *addbook(struct book *head); / 添加图书int yanzheng(struct book *head,int m); / 验证新添加的图书编码是否已存在void deletebook(struct book *h

9、ead); / 删除图书void fprint(struct book *head); / 将链表写入文件struct book *load(); / 从文件中读取信息并建成链表void print_book(struct book *head); / 将链表信息输出void chaxun(struct book *head); / 查询图书信息void num_chaxun(struct book *head); / 按图书编号查询图书void wname_chaxun(struct book *head); / 按作者名查询图书void sort_chaxun(struct book *h

10、ead); / 按类别查询图书void time_chaxun(struct book *head); / 按出版时间查询图书void bname_chaxun(struct book *head); / 按图书名查询图书void xiugai(struct book *head); / 修改图书信息void paixu(struct book *head); / 对图书进行排序C语言程序设计总结页脚内容 15void num_paixu(struct book *head); / 按图书编号排序void time_paixu(struct book *head); / 按图书出版时间排序vo

11、id price_paixu(struct book *head); / 按图书价格排序void bname_paixu(struct book *head); / 按图书名排序void wname_paixu(struct book *head); / 按作者名排序int main()int choice,n,x,y=1,c,c1=1234;char a,d,b10,b110=yjk;struct book *head=NULL;while(y)system(cls);printf(nnnnnnn);printf( * 欢迎光临 *nn);printf( * 图书信息管理系统*nnn);pr

12、intf(nn);C语言程序设计总结页脚内容 16printf( =1-用户登录 =n);printf( =0-退出系统 =n);printf( 请输入您的选择 :);scanf(%d,&n);printf(n);getchar();switch(n)case 0:y=0;break;case 1:printf( 请输入您的用户名 :);gets(b);printf(n);printf( 请输入您的密码 :);scanf(%d,&c);printf(n);C语言程序设计总结页脚内容 17if(strcmp(b,b1)!=0|c!=c1)printf( 验证失败 ,请重新输入 !n);scanf

13、(%c,&d);getchar();system(cls); elseprintf( 验证通过 !请按 Enter键进入 !n);scanf(%c,&d);getchar();x=1;while(x)system(cls);printf( -n);printf( * 图书信息管理系统 *n);printf( -nn);C语言程序设计总结页脚内容 18printf( *nn);printf( *nn);printf( | 1-添加图书2-删除图书 |nn);printf( | 3- 图书列表4-图书排序 |nn);printf( | 5- 查询图书6-修改图书 |nn);printf( | 7-

14、 录入数据0-退出系统 |nn); printf( *nn);printf( *nn);printf( 请输入所选择的序号 :);scanf(%d,&choice);getchar();system(cls);switch(choice)case 0:x=0;break;case 1:C语言程序设计总结页脚内容 19head=load();if(head=NULL)printf( 文件为空 ,请先录入数据 !n);getchar();break;elsehead=addbook(head);printf( 添加成功 !n);printf(是否将新信息保存到文件?(y/n)n);scanf(%c

15、,&a);getchar();switch(a)case n:break;case y:fprint(head);C语言程序设计总结页脚内容 20printf( 保存成功 !n);getchar();break;break;case 2:head=load();if(head=NULL)printf( 文件为空 ,请先录入数据 !n);getchar();break;elsedeletebook(head);getchar();C语言程序设计总结页脚内容 21break;break;case 3:head=load();if(head=NULL)printf( 文件为空 ,请先录入数据 !n)

16、;getchar();break;elseprint_book(head);getchar();break;case 4:head=load();C语言程序设计总结页脚内容 22if(head=NULL)printf( 文件为空 ,请先录入数据 !n);getchar();break;elsepaixu(head);getchar();break;case 5:head=load();if(head=NULL)printf( 文件为空 ,请先录入数据 !n);getchar();break;C语言程序设计总结页脚内容 23elsechaxun(head);getchar();break;cas

17、e 6:head=load();if(head=NULL)printf( 文件为空 ,请先录入数据 !n);getchar();break;elsexiugai(head);getchar();break;C语言程序设计总结页脚内容 24break;case 7:printf( 注意:输入图书编码为0时结束 !n);head=creatbook();printf(是否将输入的信息保存到文件以覆盖文件中已存在的信息?(y/n)n);getchar();scanf(%c,&a);getchar();switch(a)case n:break;case y:fprint(head);printf(

18、保存成功 !n);getchar();break;C语言程序设计总结页脚内容 25break;default:printf( 您的输入有误 ,请重新输入 !n);getchar();break;break;default:printf( 您的输入有误 ! 请重新输入 !n);getchar();break; C语言程序设计总结页脚内容 26/ 录入数据并形成链表struct book *creatbook()struct book *head,*tail,*p;int num,time,n;char bname50,wname20,press50,sort50;float price;int

19、size=sizeof(struct book);head=tail=NULL;printf( 请输入图书编号 :);scanf(%d,&num);printf( 请输入图书名 :);scanf(%s,bname);getchar();printf( 请输入作者名 :);scanf(%s,wname);getchar();C语言程序设计总结页脚内容 27printf( 请输入出版社 :);scanf(%s,press);getchar();printf( 请输入类别 :);scanf(%s,sort);getchar();printf( 请输入出版时间 :);scanf(%d,&time);g

20、etchar();printf( 请输入价格 :);scanf(%f,&price);getchar();while(1)p=(struct book *)malloc(size);p-num=num;strcpy(p-bname,bname);strcpy(p-wname,wname);C语言程序设计总结页脚内容 28strcpy(p-press,press);strcpy(p-sort,sort);p-time=time;p-price=price;p-next=NULL;if(head=NULL)head=p;elsetail-next=p;tail=p;doprintf( 请输入图书编

21、号 :);scanf(%d,&num);n=yanzheng(head,num);if(n=0)break;elseC语言程序设计总结页脚内容 29printf( 您输入的编号已存在 ,请重新输入 !n);while(1);if(num=0)break;else printf( 请输入图书名 :);scanf(%s,bname);getchar();printf( 请输入作者名 :);scanf(%s,wname);getchar();printf( 请输入出版社 :);scanf(%s,press);getchar();printf( 请输入类别 :);scanf(%s,sort);C语言程

22、序设计总结页脚内容 30getchar();printf( 请输入出版时间 :);scanf(%d,&time);getchar();printf( 请输入价格 :);scanf(%f,&price);getchar();return head;/ 插入结点,并且插入后仍按一定顺序struct book *addbook(struct book *head)struct book *ptr,*p1,*p2,*p;char bname50,wname20,press50,sort50;C语言程序设计总结页脚内容 31int size=sizeof(struct book);int num,tim

23、e,n=1;float price;doprintf( 请输入图书编号 :);scanf(%d,&num);n=yanzheng(head,num);if(n=0)break;elseprintf( 您输入的编号已存在 ,请重新输入 !n);while(1);printf( 请输入图书名 :);scanf(%s,bname);getchar();printf( 请输入作者名 :);scanf(%s,wname);C语言程序设计总结页脚内容 32getchar();printf( 请输入出版社 :);scanf(%s,press);getchar();printf( 请输入类别 :);scanf

24、(%s,sort);getchar();printf( 请输入出版时间 :);scanf(%d,&time);getchar();printf( 请输入价格 :);scanf(%f,&price);getchar();p=(struct book *)malloc(size);p-num=num;strcpy(p-bname,bname);strcpy(p-wname,wname);C语言程序设计总结页脚内容 33strcpy(p-press,press);strcpy(p-sort,sort);p-time=time;p-price=price;p2=head;ptr=p;while(ptr

25、-nump2-num)&(p2-next!=NULL)p1=p2;p2=p2-next;if(ptr-numnum)if(head=p2)head=ptr;elsep1-next=ptr;p-next=p2;C语言程序设计总结页脚内容 34elsep2-next=ptr;p-next=NULL;return head;/ 验证添加的图书编号是否已存在int yanzheng(struct book *head,int m)struct book *p;p=head;while(p!=NULL)if(p-num=m)break;p=p-next;C语言程序设计总结页脚内容 35if(p=NULL

26、)return 0;elsereturn 1;/ 将新链表写入文件中void fprint(struct book *head)FILE *fp;char ch=1;struct book *p1;if(fp=fopen(f1.txt,w)=NULL)printf(File open error!n);exit(0);fputc(ch,fp);C语言程序设计总结页脚内容 36for(p1=head;p1;p1=p1-next)fprintf(fp,%d %s %s %s %s %d %fn,p1-num,p1-bname,p1-wname,p1-press,p1-sort,p1-time,p1

27、-price);fclose(fp);/ 从文件中读取图书信息struct book *load()FILE *fp;char ch;struct book *head,*tail,*p1;head=tail=NULL;if(fp=fopen(f1.txt,r)=NULL)printf(File open error!n);exit(0);C语言程序设计总结页脚内容 37ch=fgetc(fp);if(ch=1)while(!feof(fp)p1=(struct book *)malloc(sizeof(struct book);fscanf(fp,%d%s%s%s%s%d%fn,&p1-nu

28、m,p1-bname,p1-wname,p1-press,p1-sort,&p1-time,&p1-price);if(head=NULL)head=p1;elsetail-next=p1;tail=p1;tail-next=NULL;fclose(fp);return head;C语言程序设计总结页脚内容 38elsereturn NULL;/ 将整个链表的信息输出void print_book(struct book *head)struct book *ptr;if(head=NULL)printf(n 没有信息 !n);return;printf( 图书信息列表如下 n);printf

29、( =n);printf( 编号图书名作者名出版社类别出版时间价格n);for(ptr=head;ptr;ptr=ptr-next)C语言程序设计总结页脚内容 39printf( %d %s %s %s %s %d %.2fn,ptr-num,ptr-bname,ptr-wname,ptr-press,ptr-sort,ptr-time,ptr-price);printf( =n);/ 删除图书信息void deletebook(struct book *head)int a;char b,ch=1;struct book *p1,*p2;FILE *fp;printf( 请输入要删除的图书编

30、号:);scanf(%d,&a);p1=head;if(p1-num=a&p1-next=NULL) / 对于文件中只有一组数据printf(是否清空文件 !(y/n)n);getchar();C语言程序设计总结页脚内容 40scanf(%c,&b);getchar();switch(b)case n:break;case y:if(fp=fopen(f1.txt,w)=NULL)printf(File open error!n);exit(0);fclose(fp);printf( 文件已清空 !n);elsewhile(p1-num!=a&p1-next!=NULL)C语言程序设计总结页脚

31、内容 41p2=p1;p1=p1-next;if(p1-next=NULL)if(p1-num=a)p2-next=NULL;printf( 是否确定从文件中彻底删除该图书?(y/n)n);getchar();scanf(%c,&b);switch(b)case n:break;case y:fprint(head);printf( 删除成功 !n);getchar();C语言程序设计总结页脚内容 42break;elseprintf( 没有找到要删除的数据 !n);getchar();else if(p1=head)head=p1-next;printf( 是否确定从文件中彻底删除该图书?(

32、y/n)n);getchar();scanf(%c,&b);switch(b)case n:break;C语言程序设计总结页脚内容 43case y:fprint(head);printf( 删除成功 !n);getchar();break;elsep2-next=p1-next;printf( 是否确定从文件中彻底删除该图书?(y/n)n);getchar();scanf(%c,&b);switch(b)case n:break;case y:C语言程序设计总结页脚内容 44fprint(head);printf( 删除成功 !n);getchar();break;/ 图书查询void ch

33、axun(struct book *head)int a;printf( =n);printf( * 1-按图书编号查询2-按图书名查询*n);printf( * 3- 按图书类别查询4-按作者名查询*n);printf( * 5- 按出版时间查询0-退出查询*n);C语言程序设计总结页脚内容 45printf( =n);printf( 请输入所选择的编号 :);scanf(%d,&a);getchar();switch(a)case 0:break;case 1:num_chaxun(head);break;case 2:bname_chaxun(head);break;case 3:sor

34、t_chaxun(head);break;C语言程序设计总结页脚内容 46case 4:wname_chaxun(head);break;case 5:time_chaxun(head);break;default:printf(您的输入有误 !n);break;/ 按编号查询图书信息void num_chaxun(struct book *head)int a;struct book *p; printf( 请选择您要查询的图书编号:);C语言程序设计总结页脚内容 47scanf(%d,&a);getchar();p=head;while(p!=NULL)if(p-num=a)break;p

35、=p-next;if(p=NULL)printf(没有找到该编号的图书!n);elseprintf( 你所查询的图书信息如下 n);printf( =n);printf( * 编号图书名作者名出版社类别出版时间价格*n);C语言程序设计总结页脚内容 48printf( * %d %s %s %s %s %d %.2f *n,p-num,p-bname,p-wname,p-press,p-sort,p-time,p-price);printf( =n);/ 按图书名查询图书信息void bname_chaxun(struct book *head)char a50;int flag=0;stru

36、ct book *p; printf( 请选择您要查询的图书名:);gets(a);p=head;while(p!=NULL)if(strcmp(p-bname,a)=0)C语言程序设计总结页脚内容 49flag=1;break;p=p-next;if(flag=0)printf(没有找到该图书名的图书!n);elseprintf( 你所查询的图书信息如下n);printf( =n);printf( * 编号图书名作者名出版社类别出版时间价格*n);while(p!=NULL)if(strcmp(p-bname,a)=0)printf( * %d %s %s %s %s %d %.2f C语言程序设计总结页脚内容 50*n,p-num,p-bname,p-wname,p-press,p-sort,p-time,p-price);p=p-next;printf( =n);/ 按作者名查询图书信息void wname_chaxun(struct book *head)char a50;int flag=0;struct book *p; printf( 请选择您要查询的图书作者名:);gets(a);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 施工组织

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁