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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

图书馆管理系统课程设计C语言.docx

1、图书馆管理系统课程设计C语言高级语言程序设计课程设计报告姓 名: 学 号: 专 业: 电子信息科学与技术 实 验 室: 设计时间:2011年 06月 19日 2011年 06月 24日评定成绩: 指导教师: 目 录一、 课程设计的目的 3二、 设计的内容与要求 3三、 总体设计 3四、 详细设计 3五、 调试与测试 3六、 课程设计的总结 3一、 课程设计的目的图书馆管理系统主要要求对图书信息的管理和对借书、还书的处理图书管理信息采用文件保存,因而要提供文件的输入输出操作;要实现对图书基本信息的查询,则要提供查找操作 办理借书或还书手续需要提供修改操作;另外还要提供键盘式选择菜单以实现功能选择

2、。其中对文件的保存主要包括:图书名、图书编号、价格、作者、状态、借书人姓名、借书人性别、学号。同时应实现对图书馆信息的保存和修改操作。目的是通过此次课程设计,可以更进一步的了解结构体、函数调用、指针的用法、以及文件的操作等。 二、 设计的内容与要求 设计中主要为满足图书借阅信息的处理,所以在设计中应做到可以轻松地对图书馆中信息的,读入、变动 等的操作。 因此,要求对管理系统的模块划分明确,各模块之间,相互协调,又通过菜单实现各功能的分立三、 总体设计 整个系统分为:信息录入模块、信息展示模块、图书信息查询模块、删除和修改模块、借书模块、还书模块等 几个基本的功能模块。 各个功能模块之间通过一个

3、菜单函数来进行相互跳转的操作。四、 详细设计 数据的组织描述(比如主要的变量类型,结构体等等),模块之间的参数设计(接口设计,模块的功能说明),系统控制流程图,各个模块的流程图,采用的算法 定义了图书的数据类型包括:书名(字符型)、书号(字符型),价格(浮点型)、作者(字符型)、状态(整型)、借书人姓名(字符型)、性别(整型)、学号(长整型)。以后的操作中都是实现对这些数据进行直接的操作。函数之间通过菜单函数相联系。主要的功能模块的联系通过以下的流程图说明: 主要功能的联系如下:其中主函数在第一次使用时作为菜单使用对基本功能进行第一次调用,以后每完成一项功能后可以选择进入菜单进行功能选择,或者

4、直接选择退出,也可以进入菜单后选择退出。各个模块的分析:1. 主函数:主要运用开关语句,从键盘上读入一个数字进入特定的功能。2. 数据录入的功能模块,流程图如下:先用scanf语句在键盘上读入一个数,做为此次录入书得本数,用fopen语句打开 book.txt文件用如下语句判断是否打开了文件if(fp=fopen(book.txt,a)=NULL)则未打开文件,此时新建一个,接下来将数据写入,写入后判断文件是否成功写入,若未写入,则给出提示,最后关闭文件,返回菜单函数。3. 查找功能的实现,流程图如下: 查询功能的实现主要使用的是字符串比较的命令strcmp 运用循环语句逐个判断输入的要查询的

5、书名与记录中的书名,找到相同的书名 即字符串相等时,输出该图书的信息,否则输出不存在这本书,紧接着进入“继续”还是“返回”的选择,若选择继续,则继续执行循环语句在查找,选返回则回到菜单界面。(用dowhile 语句实现)4. 浏览全部的模块。 该模块最简单,直接用for语句将所有图书信息输出到屏幕,输出后返回菜单界面。5. 删除与修改模块,流程图如下:这个功能划分为一个功能模块,有两个主要函数组成,用开关语句进行调用,这两个函数很相似,都要求打开文件先输入要修改或删除的书名,然后用strcmp函数进行字符产比较来定位要改变的内容,定位好后将该条记录显示在屏幕上等待确认,删除函数是将所有数据用“

6、空字符”代替(用到字符串拷贝命令),修改则是用从键盘上读入的字符代替原字符,其中修改函数用开关语句来允许对部分数据或者全部数据进选择性的修改。修改后都增加了提示,询问是否修改若选“是”,则将修改后的内容保存在文件中,然后退出,选择“否”则直接退出功能不写入文件中。6. 借书功能,其基本流程如下: N Y借书功能和修改功能相似,都是先将要借的书在文件中找用字符比较的方法在文件中查找,如果存在记录借阅人信息并存在文件中,并提示借阅成功,如果不存在,则要求重新输入。借阅完成后返回菜单界面。7. 还书功能,具体流程图如下:还书也是先用strcmp函数找到对应的记录,找到则进行还书操作,否则重新查找,还

7、书时,确定后自动将图书状态改为可借,并将原借书人的信息删掉,并提示还书成功,最后返回菜单函数五、 调试与测试1. 在开始的设计中由于没有定义好数据的类型,将价格定义为了整型,导致在输入价格时带有小数点时在浏览数据时出现乱码。2. 在做好原程序后,编译时提示*函数未定义,查看时却已经定义,最后将所有函数在主函数前声明,问题解决。3. 在调试过程中,前一个程序忘记关闭,接着进行编译,提示出错,关闭以前的程序后问题解决。4. 在编写的时候出现中英文切换后,用中文的标点进行编写导致出错,查到后改掉,程序运行正常。六、 课程设计的总结这次C语言的课程设计,我的最大的感触就是确实学到了许多东西,有许多东西

8、都是逼出来的,原本很多不会的内容有些无从下手,在拿到任务之前也没有系统的做过一次作品,所以刚开始的时候有些无从下手,后来在网上看了很多的类似的程序,并结合老师给的例子,加上反复的看课本最后才动手编写,开始时错误百出,后来逐步修正。通过本次课程设计,自己C语言编程的能力有了提高,特别是在文件、指针、数组、函数和结构体方面有了很大提高,另外还学习了课本没有讲到的知识,学会了使用模块化编程的简单方法,另外在对话框的编程要求美观、方面也有了体会。循环是C语言的重要方法,也是本程序的灵魂,它在本程序中既有“穿针引线”的作用,也起到了对数据进行分析、存贮、读取等重要的作用,本程序在使用循环过程中对循环进行

9、了多方法的应用也是一个“亮点”,它使程序变得结构合理,通俗易懂,也降低了程序的难度。以后要对这种方法进行深刻的体会。数组在程序中有着很重要的作用,对数据的贮存、输入、读取起着很重要的作用,本程序几乎所有数据都以数组进行输入、贮存、读取方便了对数据的处理和输入,数组的的使用在本程序中有很大的好处。函数是实现模块化编程的基础,它使程序变得方面易懂,对修改起了很大作用,降低了编程的难度,一个函数就是一个功能,它使各个功能之间有了一定的独立性,但也有了一定 的联系性,一个函数的错误,不会导致整个程序的失败(主函数除外),对函数的良好应用时在本程序中又以深刻的体会,有了很大提高。结构体的使用,为本程序提

10、供了很大方便,也提高了程序的可读性,结构数组方便了对数据的管理。文件的读取与存贮使数据可以保存下来,这一节学的不是很好,在开始时遇到了不小的困难,但前期的准备工作做的还好,最终克服了。另外、感觉到在做C语言作业时编的程序是 那样的简短(都不足1k)、儿现在自己编写的程序变大了,需要在编程方面进一步提高,同时提高了自己对编程的兴趣,使自己对编程有了更深的理解,体会到编程的乐趣。参考书目:1 谭浩强,C语言程序设计(第四版)M,清华大学出版社,2008年附:在编写本程序时,在网上寻找的参考程序起到了很大的启发与参考作用。附录:(源代码) #include #include #include #de

11、fine STU struct Book#define SIZE 100void write();void search();void read();void del();void fdel();void fmod();void borrow();void gback();int load();void printf_back();void save(int n,STU*);int modify_data(int,int);void menu();STU char name20; /*图书名*/ char num20; /*图书编号*/ float price; /*价格*/ char aut

12、hor20; /*作者*/ int state; /*状态 未借 1 ;借出 0 */ char loader20; /*借书人姓名*/ int sex; /*性别 男 1 ; 女 0*/ long stn; /*学号*/ bookSIZE;void main() int n, w ; do puts(*图书馆管理系统*nn); puts(ttt 1.录入信息 ); puts(ttt 2.浏览图书信息 ); puts(ttt 3.图书信息查询 ); puts(ttt 4.删除与改写信息 ); puts(ttt 5.办理借书手续); puts(ttt 6.办理还书手续); puts(ttt 0.

13、退出); printf(选择功能(06): bb); scanf(%d,&n); if(n6) w=1; getchar(); else w=0; while(w=1); switch(n) case 1:write();break; case 2:read();break; case 3:search();break; case 4:del();break; case 5:borrow();break; case 6:gback();break; case 0:exit(0); void write() int i,m,k,n; FILE *fp; n=load(); printf(要追加的

14、记录个数:n ); scanf(%d,&m); k=m+n; if(fp=fopen(book.txt,a)=NULL) printf(n无法打开文件n); for(i=n;ik;i+) printf(请输入第%d本图书的信息,i-n+1); printf(n图书信息:图书名 编号 价格 作者 状态 借书人 性别 学号 n); scanf(%s %s %f %s %d %s %d %ld,booki.name,booki.num,&booki.price,booki.author,&booki.state,booki.loader,&booki.sex,&booki.stn); for(i=n;ik;i+) if(fwrite(&booki,sizeof(STU),1,fp)!=1) printf(文件写入错误!); fclose(fp); printf_back(); void search() int i,n,k,w1=1; S

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

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