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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

完整版C语言毕业课程设计图书管理系统Word文档下载推荐.docx

1、评定报告撰写情况(30分)系统完成情况(30分)答辩情况(40分)总分20分规范程度5分程序测试基本功能20分扩展功能10分自述情况10分答辩情况30分成绩评定教师:1 需求分析经过大一上学期的理论学习,在基础实验的基础上,本学期我们继续开设了C语言程序设计实践课。课程要求我们对已经学习的基础实验进行整合与衔接处理,并最终形成一个系统性质的规模较大的程序。本次课程设计要求我们达到能独立完成一个图书管理系统,完成后要求实现的功能有对图书信息的录入、删除、修改,浏览(即输出), 按某种方式查询(要求至少一种查询方式),按某种方式排序(要求至少一种排序方式)。当然,我们可以根据自己的能力对系统进行完

2、善性的拓展,例如自己加入简单的权限处理,统计功能,模糊查询等,甚至可以拓展为图书借阅系统。通过整个程序的开发过程,最终使我们掌握利用计算机解决实际问题的基本方法,熟悉C语言开发的全过程,提高综合应用C语言的能力、编程和调试能力,为学习计算机和通信专业的后续课程打好专业基础。2 概要设计(1) 图书信息及数据格式图书信息: 图书信息包括图书编号、图书类别、图书书名、作者、出版社、出版时间、图书价格。数据格式: 本系统采用单向链表来对图书信息进行各项操作。其中图书的编号为整型数据,价格为双精度浮点型,其余的类别、书名、作者、出版社与出版时间均为字符串类型struct tushu_node int

3、num; char leibie20; char name30; char author20; char press20; char time20; double price; struct tushu_node*next; 一个结点的示意图如下图所示:numleibienameauthorpresstimepricenext(2)程序的整体框架(3)模块划分1、int quanxian(); 核查权限的函数 2、int inputchioce(); 显示主菜单的函数 3、void save(); 保存链表为文件的函数 覆盖以前的信息 4、void save1(); 保存链表为文件的函数 不覆

4、盖以前的信息 只在创建时调用5、struct tushu_node* wjtolb();从文件中读取数据并建立图书信息的链表的函数 6、int luruxinxi(); 录入学生信息的函数 7、struct tushu_node * luruxinxi_chuangjian(); 创建图书信息的函数 8、struct tushu_node * luruxinxi_charu(); 插入图书信息的函数9、struct tushu_node * luruxinxi_shanchu(); 删除图书信息的函数10、struct tushu_node * luruxinxi_xiugai(); 修改图书

5、信息的函数11、int liulantushu(); 浏览图书信息的函数 12、int chaxuntushu(); 查询图书信息的函数 13、void chaxuntushu_num(); 按编号查询图书 14、void chaxuntushu_name(); 按书名查询图书 15、void chaxuntushu_price(); 按价格查询图书 16、void paixutushu(); 为图书排序的函数 17、struct tushu_node* paixutushu_price(); 为图书按价格排序的函数 18、struct tushu_node* paixutushu_time(

6、); 为图书按出版时间排序的函数 19、void sfjx() ; 写个函数 判断是否继续 排序中使用 20、int tongjitushu_shumu(); 统计图书数目的函数 21、void shiyongshuoming(); 使用说明的函数 3 详细设计程序的主体设计思想是根据结构化程序设计思想分模块进行设计,有一个主函数和多个自定义函数构成。主函数对于本程序来说,主函数很简单,就是定义了一个变量chioce用来接受核查用户是否有使用该管理系统的权限的函数quanxian()函数返回的值,若为1(即用户获得了使用权限),则调出显示主菜单的函数进行具体操作int main()int ch

7、ioce; chioce=quanxian(); 核查用户是否有使用该管理系统的权限的函数 if(chioce=1) 若取得权限 则返回值为1 system(cls);inputchioce(); 用来显示主菜单的函数 exit(0);权限函数核查用户权限的函数使用do-while语句来限制用户输入密码的次数仅为三次,并且为了使界面更具亲切感,会在用户输入密码错误时进行提示引起用户注意及提示剩余输入次数。int quanxian() int m=1,n=3,flag=0; char mima20;do printf(nn 你好,欢迎使本图书信息管理系统!n printf(nn【现在进行权限核查

8、】 n友情提醒:你共有3次输入密码的机会!printf(nn if(n=2|n=1)printf(注意:你已输入错误%d次 剩余输入次数: %d 请输入密码:,3-n,n); if(n=3) printf(剩余输入次数:,n); scanf(%s,mima); 第一次输入和输错密码后再次输入显示的也卖弄不同 if(strcmp(mima,chenbo0916)=0)flag=1; return flag; m+; n-; while(strcmp(mima,)!=0&mnum,p1-leibie,p1- name,p1-author,p1-press,p1-time,p1-price); p1

9、=p1-next; if(fclose(fpp)关闭文件失败!从文件中读出数据并创建链表的函数在调用从文件读取数据创建链表的函数前,先定义head链表指针并赋值为空作为实参 。打开文件后,从文件中读取一组数据赋给已经被动态分配内存的结点指针p第一次head为空时 Head p1第二次以后head (r 打开文件失败 ! elsenn编号 类别 书名 作者 出版社 出版时间 价格n while(!feof(fpp) fscanf(fpp,%d%s%s%s%s%s%lfnum,leibie,name,autho r,press,time,&%d %s %s %s %s %s %lfn ,num,l

10、eibie,name,author,press,time,price); printf( exit(0); if(x=1) system( inputchioce(); if(x=0)=0) system(统计图书数目的函数统计函数简单的实现了对图书数目的统计,其实现思路可以看做在浏览函数的基础上去掉一些不必要的输出而是另外加上一个变量n用在while中执行一次循环就n+一次,就能统计出图书的数目了,不再具体叙述。由于feof()函数本身的原理,如果每次写入一行数据到文件中时最后有换行符号,则会出现n多加一问题或输出时最后一行复制,只要将n减一即为图书实际上的数目。查询函数查询函数算法如下图所

11、示: P!=NULL 不相等 相等 如果found依然为0 ,则输出“未找到某图书” 是 否排序函数排序函数算法叙述如下:排序函数使用冒泡排序的算法,定义了i j两个变量来控制实现双层循环,for(i=1;i辅助 P3 p1 p2比较p1与p2的排序项,如p1比 p2小,上图所有指针的指针均后移一位相反 ,若上图中p1比 p2大,则变为 P3 P3- P2-next p1 p2简单的说始终是p1与p2比较,其中一个为前一次比较中的的大的一个,另一个向后移动内循环源程序p4=(struct tushu_node*)malloc(size);p4-next=-i;j+) if(p2-pricep1

12、-price) p3=p1; p1=p2; p2=p2- else p1-next =NULL;next=p2- p3-next=p2; p2-next =p1; p3=p2; p2=p1- n是否继续操作? system(实现了每次操作完成后,使只显示主菜单可继续进行其他操作问题二 权限系统以前是输入学号后三位(int)进行验证并且只有一次输入机会,一次输入错误就退出系统解决方法 在权限函数中使用字符串变量(char)来作为密码,使用do-while语句来实现对输入次数的控制问题三 录入时以前的思路是想在输入的同时写入文件只有一组数据想存入文件解决方法 将保存文件作为一个独立的函数。在创建函

13、数中有一组另外的参数来接收用户输入的数据,然后再调用保存函数将数据存入文件问题四 文件的保存与读取问题解决方法 由于系统要求结合文件的知识使用户的数据在一次输入之后即使关闭退出系统后在次进入系统时原有数据依然能继续使用。并且在对数据进行创建、删除、修改、排序等相关的操作之后要重新保存,所以将将链表保存到文件和从文件读取数据建立链表都重新写作单独的函数,在进行完相关的操作后都调用save()重新保存,在再次进行操作前就先调用wjtolb()函数从文件中读取数据创建链表,实现了对数据更及时的保存与利用问题五 保存数据时覆盖不覆盖原有数据的问题解决问题 由于以前没有注意细节问题导致虽然数据被修改或是

14、删除后保存成功,但数据不覆盖原来的数据从而出现文件中数据重复保存的问题,解决方法很简单,只要将打开文件的方式由可读可写()改为只写方式打开()就行问题六输入时无法结束输入的问题解决方法由于在输入时时先输入图书的编号,所以在输入时除了输入第一本图书的信息,即在输入第一本图书之后在输入时先输入图书的编号,加上一个判断循环while(num!=0)才继续输入完这本图书的其他信息,即0可以作为输入结束标志问题七 程序漏洞,只有第二本图书信息无法修改的问题解决方法 程序设计思路有问题及对do-while语句了解不充分导致了问题。修改函数的思路是先让用户先输入要修改的图书编号再依次查询,先看头结点的图书编

15、号与要修改的编号是否相等,如果相等继续选择要修改的图书信息成分修改,如果不相等,有个循环语句来使结点后移只带相等再选择要修改的图书信息成分修改。有问题的写法是使用了do p=p- while(p!=NULL&p-num!=numm) 从而导致了如果要修改的图书不是第一本而是第二本时,先执行了后移一个结点直接到第三个结点即无法修改第二本图书的信息。解决后是用while循环while(p!=numm)就不存在上述问题问题八 要对图书的信息进行删除后修改前必须先浏览图书不然不知道要选择哪本图书进行操作的问题解决方法 由于上述修改与删除的操作是通过用户对图书编号的选择来完成的所以在浏览前不知道图书对于

16、的编号就使操作具有盲目性即对图书的信息进行删除后修改前必须先浏览图书。解决时时让修改于删除函数中让用户输入编号前默认直接输出所有图书(遍历所有图书)5测试结果 编号 类别 书名 作者 出版社 出版时间 价格4 传记 让世界因你而不同 李开复 北京工业出版社 2008.3 28.000000 2 英语 四级词汇 俞敏洪 群言出版社 2008.9 32.000000 5 漫画 我兔斯基你 王卯卯 动漫出版社 2009.3 32.000000 3 营销 哈佛市场营销策略 宋海峰 内蒙古出版社 2010.4 28.000000 1 杂志 电脑爱好者 无 cfan杂志社 2010.9 6.000000

17、6 教材 思修 罗国杰 高等教育出版社 2006.8 15.50 7 教材 大学英语 王大伟 外研社 2005.1 34.9 8 教材 高等数学 蒋青 高等教育出版社 2007.6 25.9现在给出一组测试数据来全程展示本图书管理系统的所有功能 功能一之核查用户权限:首先进入系统,你会发现要求对用户使用权限进行核查的界面:(效果图如下)若密码为错误密码,那么你会看到提醒“注意”的界面上图密码正确,则仍然可以顺利进入系统见到主菜单 如下图若三次输入错误 将无法进入系统功能二之浏览全部图书:在主菜单界面选择3则可遍历现有全部图书信息功能三之创建或添加图书: 选择1后进入录入(删除 修改)子菜单继续

18、选择1进入创建添加图书功能 以0结束输入结束后自动返回主菜单 再次选择3(浏览)可查看添加效果(浏览时刚才上图添加的图书信息“9 IT FLASH8 尹浩琼 电子工业出版社 2006.9 41”显示在最后一行说明程序已经实现了添加功能)功能四之为图书按规则排序:选择4后进入排序子菜单进一步选择按何种规则排序(报告只演示按出版时间排序)当选择2按出版时间排序 然后回车键你会看到选1继续返回浏览看到图书已经按出版时间的先后排序完成功能五之按规则查询图书:同排序一样你可以在子菜单选择按何种方式查询(报告只演示按书名查询)选择按书名查询后你可以输入书名查询图书当代大学生的结果是“没有找到这本书”选择1继续按书名查找其他图书查找到图书让世界因你而不同时,这本图书的信息将被全部输出,如图:功能六之修改已有图书信息:从录入子菜单1进入后选择3可以进入修改功能 首先你会看到目前文件中所有图书的信息方便你选择要修改哪本图书上图选择了修改编号为1的图书 现在编号为1的图书的信息单独显示出来 你可以再次根据提示界面选择修改图书1的哪一项成分我们看到图书1的作者为“无” 决定将它改为“陈波”(如下图)完成后可以利用浏览函数同样可以查看到修改后的效果修改成功功能七之按编号删除某本图书:选择要删除图书的编号前你也会看到目前所有图书的信息现在选择删除编号为8的

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

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