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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

图书信息管理系统高质量C语言程序.docx

1、图书信息管理系统 高质量C语言程序课程设计总体要求: 采用模块儿化程序设计; 鼓励可视化编程; 源程序中有足够的注释; 学生可自行增加新功能模块儿; 必须上机调试通过; 注重算法运用,优化存储效率与运算效率; 需提交源程序及相关文件;目录:1 课程任务书2 系统设计3 模块设计3.1 总体结构 3.2 流程图3.3 使用的主要函数4 调试及测试 1、调试过程中的问题 2、调试结果5 设计总结6 心得体会及致谢7 答辩记录8 教师意见一、课程设计任务书图书信息管理系统设计图书信息包括:登录名、书名、作者名、分类号、出版单位、出版时间、价格等。提供以下功能:1. 系统以菜单方式工作2. 图书信息录

2、入功能(图书信息用文本文件形式保存)3. 图书信息浏览功能4. 查询和排序功能: 按书名查询按作者名查询5. 图书信息删除功能6. 图书信息修改功能 二、 系统设计总体结构:在主函数中以菜单清单的形式进入各个模块(显示、追加、修改、删除、查询、排序、退出)即对子函数的调用,并运用switch语句实现操作。在设计程序时,实现程序的模块化、结构化在数据库处理过程中采用文件进行存储,并将处理过后的数据信息存储到新的文件中实施对原库的保护。流程图:使用的主要函数:Disp显示函数Appe追加函数Modi修改函数Dele删除函数Query查询函数Sort排序函数Quit退出函数三、模块设计(主要模块功能

3、、源代码及注释)负责模块:数据结构和数据文件,显示模块,追加模块,修改模块。一、 数据结构和数据文件:本程序中,运用了数据结构。首先对于图书中各项详细信息的记录用了结构数组的形式。在整个过程中运用了数据文件的方式,每一次从终端输入的数据都以数据文件的形式保存到了磁盘。结构数组:struct stu int dlh; /*图书登录号*/ char sname15; /*书名*/ char zname10; /*作者名*/ int flh; /*分类号*/ double dj; /*单价*/ char cbdw 20; /*出版单位*/ char cbdate10; /*出版时间*/ s40;数据

4、文件:void Re_file() FILE *fp; /定义fp是一个指向FILE类型数据的指针变量fp=fopen(d:/xjl.txt,r); /将fopen函数的返回值非给指针变量fp,使用读入方法打开xjl.txtwhile( fscanf(fp,%dn%sn%sn%dn%lfn%sn%sn,&sN.dlh,sN.sname,sN.zname,&sN.flh,&sN.dj,sN.cbdw,sN.cbdate)!=EOF) N+; /EOF为文件终止符 fclose(fp);void Wr_file() int i; FILE *fp; fp=fopen(d:/newxjl.txt,w

5、); for(i=0;iN;i+)fprintf(fp,%dn%sn%sn%dn%lfn%sn%sn,si.dlh,si.sname,si.zname,si.flh,si.dj,si.cbdw,si.cbdate);fclose(fp);二、显示模块程序功能介绍: 功能介绍:此模块主要是显示图书的各项信息(包括:图书登陆号、书名、作者名、分类号、单价、出版单位、出版时间)源程序:void Disp() /*显示模块*/ printf(* n);printf(图书登陆号 书名 作者名 分类号 单价 出版单位 出版时间n);int i;for(i=0;iN;i+)printf( * %-7d %-

6、11s %-8s %-8d %-8.2lf %-10s %-9s *n,si.dlh,si.sname,si.zname,si.flh,si.dj,si.cbdw,si.cbdate);printf(“ * n);三、追加模块程序及功能: 功能介绍:此模块主要是追加系统操作者想要增添的其他图书的信息(包括:图书登陆号、书名、作者名、分类号、单价、出版单位、出版时间)void Appe() /*追加模块*/ void zj1();void zj2();int a;printf( * 你确定要追加吗? * n);printf( * n);printf( *1:是 *2:否 n);printf( *

7、 n);scanf(%d,&a);switch(a)case 1:zj1();Disp();zj2();break;case 2:break;default:printf( 无此选项!请核对信息! n);Appe();void zj1() printf( 请输入你要追加的内容 n); printf(图书登陆号 书名 作者名 分类号 单价 出版单位 出版时间n); scanf(%d %s %s %d %lf %s %s,&sN.dlh,sN.sname,sN.zname,&sN.flh,&sN.dj,sN.cbdw,sN.cbdate); N+;void zj2() int a; printf(

8、 * 追加成功!你是否要继续追加? * n); printf( * n); printf( *1:是 *2:否 n); printf( * n); scanf(%d,&a); switch(a) case 1:zj1();Disp();zj2();break; case 2:break;default:printf( 无此选项!请核对信息! n);zj2();四、修改模块程序及功能:功能介绍:此模块主要是修改系统操作者想要修改的数据库中已有图书的信息(包括:图书登陆号、书名、作者名、分类号、单价、出版单位、出版时间)并可以通过图书登录号和书名查询获得信息。源程序:void Modi() /*修

9、改模块*/ int i,j,b,a,c,d,e,f;char m40,n40;double g; void xiugai(int i); printf(请选择修改方式n); printf(*n); printf( *1:登录号 2:书名 3:退出*n); printf(*n); scanf(%d,&a);switch(a)case 1:printf(请输入你要修改书的登陆号n); scanf(%d,&b); for(i=0;iN;i+) if(si.dlh=b) printf(图书登陆号 书名 作者名 分类号 单价 出版单位 出版时间n);printf( * %-7d %-11s %-8s %

10、-8d %-8.2lf %-10s %-9s *n,si.dlh,si.sname,si.zname,si.flh,si.dj,si.cbdw,si.cbdate);break; if(iN) printf( 这是你要修改的那本书的信息吗? n); printf( * n); printf( *1:是 *2:否 n); printf( * n); scanf(%d,&j); if(j=1) xiugai(i);break; if(i=N) printf(没找到n); break;case 2:printf(请输入你要修改书的书名n); scanf(%s,n); for(i=0;iN;i+) i

11、f(strcmp(si.sname,n)=0) printf(图书登陆号 书名 作者名 分类号 单价 出版单位 出版时间n); printf( * %-7d %-11s %-8s %-8d %-8.2lf %-10s %-9s *n,si.dlh,si.sname,si.zname,si.flh,si.dj,si.cbdw,si.cbdate);break; if(i5) d+; switch(c) case 1:printf(请输入正确的信息n); scanf(%s,m); strcpy(si.zname,m); printf(修改成功!是否继续修改该书信息?n); printf( * n)

12、; printf( *1:是 *2:否 n); printf( * n); scanf(%d,&d);break; case 2:printf(请输入正确的信息n); scanf(%d,&f);si.flh=f; printf(修改成功!是否继续修改该书信息?n); printf( * n); printf( *1:是 *2:否 n); printf( * n); scanf(%d,&d);break; case 3:printf(请输入正确的信息n); scanf(%lf,&g);si.dj=g; printf(修改成功!是否继续修改该书信息?n); printf( * n); printf

13、( *1:是 *2:否 n); printf( * n); scanf(%d,&d);break; case 4:printf(请输入正确的信息n); scanf(%s,m);strcpy(si.cbdw,m); printf(修改成功!是否继续修改该书信息?n); printf( * n); printf( *1:是 *2:否 n); printf( * n); scanf(%d,&d);break; case 5:printf(请输入正确的信息n); scanf(%s,m);strcpy(si.cbdate,m); printf(修改成功!是否继续修改该书信息?n); printf( *

14、n); printf( *1:是 *2:否 n); printf( * n); scanf(%d,&d);break; 四、调试及测试 1、主函数截图2、显示模块截图在主菜单中选择1调用显示模块3、追加模块截图在主菜单中选择2调用追加模块按1继续追加:追加完毕,按2退出追加模块:4、修改模块截图在主菜单中选择3调用修改模块修改成功!继续修改:五、设计总结:1、本系统修改模块中运用switch语句调用下级的子菜单,由于子菜单基本模式相同所以会反复的利用而使得整个模块篇幅很长,但是运用一个whlie条件语句和定义一个xiugai()函数使得代码精简了一半。2、在数据文件的设计过程中,由于没在D盘提

15、前新建“fp=fopen(d:/xjl.txt,r)”所需要的文件,以至程序设计完成后,不能正常运行。当在D盘补充这个txt文件后,系统能够正常运行。六、心得体会及参考文献C语言的设计由于内容繁琐,篇幅长,函数调用之间难度较大,一个符号的缺失都有可能导致结构不能正常运行,所以学习C语言需要耐心,细致的做好每一步。经过这次对图书管理系统的设计后,我对于文件的录入,读取这部分的内容有了更深的了解,对于switch语句的使用也更加熟练了。参考文献:1、贾宗璞,许合利 C语言程序设计 人民邮电出版社 2007年2、谭浩强著 C程序设计(第三版) 清华大学出版社源程序:#include stdio.h#

16、include string.h#include conio.hint N=0;struct stu int dlh; /*图书登录号*/ char sname15; /*书名*/ char zname10; /*作者名*/ int flh; /*分类号*/ double dj; /*单价*/ char cbdw 20; /*出版单位*/ char cbdate10; /*出版时间*/ s40;void Re_file() FILE *fp; fp=fopen(d:/xjl.txt,r); while( fscanf(fp,%dn%sn%sn%dn%lfn%sn%sn,&sN.dlh,sN.s

17、name,sN.zname,&sN.flh,&sN.dj,sN.cbdw,sN.cbdate)!=EOF) N+; fclose(fp);void Wr_file()int i; FILE *fp; fp=fopen(d:/newxjl.txt,w); for(i=0;iN;i+) fprintf(fp,%dn%sn%sn%dn%lfn%sn%sn,si.dlh,si.sname,si.zname,si.flh,si.dj,si.cbdw,si.cbdate); fclose(fp);void Disp() /*显示模块*/ printf(* n);printf(图书登陆号 书名 作者名 分类

18、号 单价 出版单位 出版时间n);int i; for(i=0;iN;i+) printf( * %-7d %-11s %-8s %-8d %-8.2lf %-10s %-9s *n,si.dlh,si.sname,si.zname,si.flh,si.dj,si.cbdw,si.cbdate); printf(*n);void Appe() /*追加模块*/ void zj1();void zj2();int a;printf( * 你确定要追加吗? * n);printf( * n);printf( *1:是 *2:否 n);printf( * n);scanf(%d,&a);switch

19、(a)case 1:zj1();Disp();zj2();break;case 2:break;default:printf( 无此选项!请核对信息! n);Appe();void zj1() printf( 请输入你要追加的内容 n); printf(图书登陆号 书名 作者名 分类号 单价 出版单位 出版时间n); scanf(%d %s %s %d %lf %s %s,&sN.dlh,sN.sname,sN.zname,&sN.flh,&sN.dj,sN.cbdw,sN.cbdate); N+;void zj2() int a; printf( * 追加成功!你是否要继续追加? * n);

20、 printf( * n); printf( *1:是 *2:否 n); printf( * n); scanf(%d,&a); switch(a) case 1:zj1();Disp();zj2();break; case 2:break;default:printf( 无此选项!请核对信息! n);zj2();void Modi() /*修改模块*/ int i,j,b,a,c,d,e,f;char m40,n40;double g; void xiugai(int i); printf(请选择修改方式n); printf(*n); printf( *1:登录号 2:书名 3:退出*n);

21、 printf(*n); scanf(%d,&a);switch(a)case 1:printf(请输入你要修改书的登陆号n); scanf(%d,&b); for(i=0;iN;i+) if(si.dlh=b) printf(图书登陆号 书名 作者名 分类号 单价 出版单位 出版时间n); printf( * %-7d %-11s %-8s %-8d %-8.2lf %-10s %-9s *n,si.dlh,si.sname,si.zname,si.flh,si.dj,si.cbdw,si.cbdate);break; if(iN) printf( 这是你要修改的那本书的信息吗? n); p

22、rintf( * n); printf( *1:是 *2:否 n); printf( * n); scanf(%d,&j); if(j=1) xiugai(i);break; if(i=N) printf(没找到n); break;case 2:printf(请输入你要修改书的书名n); scanf(%s,n); for(i=0;iN;i+) if(strcmp(si.sname,n)=0) printf(图书登陆号 书名 作者名 分类号 单价 出版单位 出版时间n); printf( * %-7d %-11s %-8s %-8d %-8.2lf %-10s %-9s *n,si.dlh,si

23、.sname,si.zname,si.flh,si.dj,si.cbdw,si.cbdate);break; if(iN) printf( 这是你要修改的那本书的信息吗? n); printf( * n); printf( *1:是 *2:否 n); printf( * n); scanf(%d,&j); if(j=1) xiugai(i);break; if(i=N) printf(没找到n); break;void xiugai(int i) int j,b,a,c,d=1,e,f;char m40,n40;double g;while(d=1)printf(请选择要修改的信息n); printf(*n); printf(* 1:作者名 2:分类号 3:单价 *n); printf(* 4.出

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

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