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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

图书管理数据结构课程设计.docx

1、图书管理数据结构课程设计潍坊学院计算机工程学院课程设计说明书课程名称:_设计项目:_学生姓名:_学 号:_专 业:_班 级:_指导教师:_年_月一、任务与具体要求1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);2)会员管理(增加会员、查询会员、删除会员、借书信息);二、设计说明书包括的内容三、 应完成的图纸四、 评语及成绩指导教师(签字)_年_月_日目录1.问题描述 12.需求分析 43.结构设计 44.算法设计 44-1概要设计 54-2详细设计 65.测试分析 46.总结 47.参考文献 48. 附录 :带注释的源程序 41.问题描述 我们本着自己的兴趣及挑战自己的态度,也为

2、检验我们理论知识的熟练度,锻炼我们动手实践能力,我们选择了小型图书管理系统的编写。因为我们生活在大学,图书馆是我们学习的天堂,借书和还书又是必不可少的,一个好的图书管理系统对于我们学生和管理人员都会为大家提供很多便利。本着挑战和创新的思想,我们进行了此次课程设计程序编写及报告撰写。我们本次实验的要求是1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);2)会员管理(增加会员、查询会员、删除会员、借书信息);2.需求分析 图书数据类型:typedef struct bookinfo char number15;/*图书编号*/ char name30;/*图书名称*/ float pr

3、ice;/*单价*/ char auther20;/*作者*/ int isExit;/*存在状态*/BOOKINFO; 会员数据类型: typedef struct memberinfo char lendername20;/*会员姓名*/ char lendersex2;/*会员性别*/ char lendernum15;/*会员编号*/ BOOKINFO borrowbook;/*所借图书*/MEMBERINFO; 系统主要分为两大部分:一. 图书管理1) 增加图书:输入图书信息,写到外部文件中。2) 查询图书:从外部文件中获取到图书信息,存入到数组中,输入书名在数组中,进行查找,如果找

4、到输出详细信息。如果没有找到输出“没有查找该书的任何信息”。3) 删除图书:输入图书进行查找,如果找到进行重写。如果没有找到输出“书库中没有任何信息”4) 借阅图书:先找到图书返回结构体,修改图书数量,删除图书,添加修改后的图书;5) 归还图书:找到图书,修改图书数量,删除图书,添加修改后的图书6) 显示全部:遍历数组,输出所有图书信息二. 会员管理 1) 增加会员:输入会员信息,写到外部文件中。2) 查询会员:从外部文件中获取到图书信息,存入到数组中,输入会员名在数组中,进行查找,如果找到输出详细信息。如果没有找到返回菜单。3) 删除会员:输入会员名,将信息从外部文件获取到数组中,找到会员进

5、行重写。4) 借书信息:利用查找图书和查找会员输出图书信息和会员信息5) 退出系统3数据结构设计 讲数据存储到结构体中,讲结构体存储到外部文件中; 取数据时,建立结构体数组; 将数据存储到结构体数组中在结构体数组中进行查找;4算法设计 4-1概要设计函数功能调用关系void menu()显示菜单void deletebook(char search20)从文件中删除图书BOOKINFO searchbook(char search20)查找图书void addbook(BOOKINFO book)将图书写到文件中MEMBERINFO searchmember(char search20)在文件

6、中查找会员并返回会员信息void deletemember(char search20)从文件中删除会员void addmember(MEMBERINFO member)把会员信息写入文件中void choice_1_addnewbook()得到图书信息保存图书addbookvoid choice_2_search_according_name()得到图书书名查找图书searchbookvoid choice_3_delete_according_name()得到图书名删除图书deletebookvoid choice_4_borrow()得到图书名借阅图书1.searchbook 2.sea

7、rchmember3.deletemember 4.deletebook5.addbook 6.addmembervoid choice_5_return()得到图书名归还图书1. searchmember2.searchbook3. deletebook 4. addbookchoice_6_display_all()输出所有图书信息void choice_7_addmember()得到会员信息保存会员信息addmembervoid choice_8_searchmember()得到会员姓名查找会员searchmembervoid choice_9_deletemember()得到会员姓名删

8、除会员deletemembervoid choice_0_borrowinf()得到会员名输出会员借书信息searchmembersearchbookvoid main()主函数4-2详细设计5.测试分析 6.总结 在编写这个图书管理系统中,遇到的最大问题是,对数据库文件信息的定向修改。原本试图通过文件指针的飘移与写入覆盖来实现数据库文件的定位修改,但是不能成功。后来还是采用的全文覆盖的方法;程序编写过程中多次存在无限循环的情况,后来通过检查解决问题。遗憾的是在本次编写程序中没有很好的学会动态链表的使用,而是采用的结构体数组,以后需加强对链表的学习。通过这次实践,我体会到了c语言学习的实用性。

9、将理论和实践结合在一起,用先进的计算机工具方便人们的生活。C语言程序的编写首先要从大局考虑,把自己编写整个程序的思想都写在草稿上,这样有助于自己编写程序,在编写时要完善注释,方便其他人理解程序。编写的程序从理论上来说并没有错,但以上机就问题不断。甚至有些课本上的知识照搬不变,也不能得到正确的结果。有时一个程序改了一遍又一遍,但就是不能成功,编程显得枯燥乏味,看似简单的程序题,在调试 时却屡屡出错。经反复的修改后,结果正确了,这时所有的乏味都显得那么无力,一切都是值得的。 我认为,开发一套系统,最重要的是细心,并且思考要全面,结合实际,充分考虑到客户的需求和现实意义。不管什么系统,只用运用到实际

10、应用中,才具有先现实意义。所以c语言程序的实用性很强,我们以后还要更加努力认真地学习编程语言。7.参考文献c语言程序设计-理论、方法与实践8.附录:带注释的源程序/*1.增加 查询 借阅 还书*/*2.会员管理 增加 查询 删除 借书信息*/#include #include #include #include typedef struct bookinfo char number15;/*产品编号*/ char name30;/*产品名称*/ float price;/*单价*/ char auther20;/*作者*/ int isExit;/*存在状态*/BOOKINFO;typedef

11、 struct memberinfo char lendername20;/*会员姓名*/ char lendersex2;/*会员性别*/ char lendernum15;/*会员编号*/ BOOKINFO borrowbook;/*所借图书*/MEMBERINFO;void menu() printf(tt-n); printf(tttt图书管理系统n); printf(tt*n); printf(tt|ttt一.图书管理 |n); printf(tt|tt1:新增图书 |n); printf(tt|tt2:查询图书 |n); printf(tt|tt3:删除图书 |n); printf

12、(tt|tt4:借阅图书 |n); printf(tt|tt5:归还图书 |n); printf(tt|tt6:显示全部 |n); printf(tt|ttt二.会员管理 |n); printf(tt|tt7:增加会员 |n); printf(tt|tt8:查询会员 |n); printf(tt|tt9:删除会员 |n); printf(tt|tt0:借书信息 |n); printf(tt|ttq:退出系统 |n); printf(tt*n);/*/*图书辅助功能*/ 1.删除图书 deletebook/ 2.查找图书 searchbook/ 3.添加图书 addbook/*/void del

13、etebook(char search20)/*根据图书名称对图书信息进行删除*/ int n,i; FILE *p; BOOKINFO bookinfo100; int booknumber; p=fopen(c:bookinfo.txt,rb); booknumber=0; while(!feof(p) fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p); booknumber+; booknumber-;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/ fclose(p); if(booknumbe

14、r=0) printf(书库中没有任何信息!nn); printf(按任意键回到主菜单!nn); getch(); /*if结束*/ else for(n=0;n=booknumber) printf(没有查找该书的任何信息!n); else for(i=n;ibooknumber-1;i+) bookinfoi=bookinfoi+1; booknumber-; p=fopen(c:bookinfo.txt,wb); for(n=0;nbooknumber;n+) fwrite(&bookinfon,sizeof(BOOKINFO),1,p); fclose(p); printf(成功获取图

15、书!n); /*else结束*/ /*查找图书*/BOOKINFO searchbook(char search20)/*根据图书名称显示图书的信息*/ FILE *p; BOOKINFO bookinfo100; BOOKINFO book; int n; int booknumber=0; p=fopen(c:bookinfo.txt,rb); while(!feof(p) fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p); booknumber+; booknumber-;/*使用feof()函数会多读一行,因此需要booknumber自减一

16、次,使书目的数量正确*/ fclose(p); if(booknumber=0) printf(书库中没有任何信息!nn); printf(按任意键回到主菜单!nn); getch(); /*if结束*/ else for(n=0;n=booknumber) printf(没有查找该书的任何信息!n); /*else结束*/ return book; /*添加图书*/void addbook(BOOKINFO book)/*输入新进的图书信息*/ FILE *p; p=fopen(c:bookinfo.txt,ab); fwrite(&book,sizeof(BOOKINFO),1,p); f

17、close(p); /*/*会员辅助*/ 1.查找会员 searchmember/ 2.删除会员 deletemember/ 3.添加会员 addmember/*/查找会员MEMBERINFO searchmember(char search20)/*根据姓名查找*/ FILE *p; MEMBERINFO memberinfo100; MEMBERINFO member; int membernumber=0; int n; p=fopen(c:memberinfo.txt,rb); while(!feof(p) fread(&memberinfomembernumber,sizeof(ME

18、MBERINFO),1,p); membernumber+; membernumber-;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/ fclose(p); if(membernumber=0) printf(没有该会员信息!nn); printf(按任意键回到主菜单!nn); getch(); /*if结束*/ else for(n=0;n=membernumber) printf(没有查找该书的任何信息!n); /*else结束*/ return member; void deletemember(char search20)/*删除会员*

19、/ int n,i; FILE *p; MEMBERINFO memberinfo100; int membernumber; p=fopen(c:memberinfo.txt,rb); membernumber=0; while(!feof(p) fread(&memberinfomembernumber,sizeof(MEMBERINFO),1,p); membernumber+; membernumber-;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/ fclose(p); if(membernumber=0) printf(数据中没有任

20、何信息!nn); printf(按任意键回到主菜单!nn); getch(); /*if结束*/ else for(n=0;n=membernumber) printf(没有查找会员信息!n); else for(i=n;imembernumber-1;i+) memberinfoi=memberinfoi+1; membernumber-; p=fopen(c:memberinfo.txt,wb); for(n=0;nmembernumber;n+) fwrite(&memberinfon,sizeof(MEMBERINFO),1,p); fclose(p); /*else结束*/ /*添加

21、会员*/void addmember(MEMBERINFO member)/*输入新进的图书信息*/ FILE *p; p=fopen(c:memberinfo.txt,ab); fwrite(&member,sizeof(MEMBERINFO),1,p); fclose(p); void choice_1_addnewbook()/*输入新进的图书信息*/ char choice; BOOKINFO newbook; system(cls); while(1) printf(输入图书编号:); gets(newbook.number); printf(输入图书名称:); gets(newbo

22、ok.name); printf(输入图书单价:); scanf(%f,&newbook.price); /printf(%f,newbook.price); while(getchar()!=n); printf(输入图书的作者:); gets(newbook.auther); printf(是否保存该条书目?(Y/N)n); choice=getch(); while(choice!=Y&choice!=y&choice!=N&choice!=n) choice=getch(); if(choice=Y|choice=y) newbook.isExit=1;/*将图书状态设置成1,表示没有借出*/ addbook(newbook); printf(n该信息已保存!n); else printf(n本条书目未保存!n); printf(n是否继续添加书目?(Y/N)n); choice=getch(); while(choice!=Y&choice!=y&choice!=N&choice!=n) choice=getch(); if(choice=

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

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