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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、C语言课程设计图书管理系统 C语言程序设计实习报告图书管理系统 班 级: 姓 名: 学 号: 指导老师: 前言随着信息技术对人类社会进行的全方位渗透,一种新的文化形态信息时代的计算机文化已经形成。计算机知识成为当代知识分子结构中不可缺少的重要部分。C语言是近年来国内外得到迅速推广使用的一种高级语言。C语言功能丰富,表达能力强,使用灵活方便,应用广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的语言特点,因此C语言对我们来说很重要。设计是一门重要的计算机基础课程,通过学习,学生不仅要掌握高级程序设计语言的知识,更重要的是在实践中逐步掌握程序设计的思想和方法,培养问题求解和语言

2、的应用能力。此次上机实习,不但要使同学们的程序设计能力上一台阶,同时要提高与程序设计和软件开发有关的各种综合能力。由于课时和上机时间的仓促,所以我对很多内容还来不及消化,对上机演练十分陌生,还有一些知识遗忘,因而这次程序设计的实习实际上是对我的一次集中的强化练习。虽然其时间短,任务重,但我们的确达到了此次课程设计的目的。本次实习得到曹弘老师的指导和帮助,至此表示感谢 ! 陈锐 2010年09月一、题目要求1. 新进图书基本信息的输入。2. 图书基本信息的查询。3. 对撤消图书信息的删除。4. 为借书人办理注册。5. 办理借书手续。6. 办理还书。二、需求分析作为学生对图书管理系统的要求有:1.

3、 能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。2. 能够方便地借阅图书、归还图书。3. 能够查询自己的基本资料、借阅图书情况。4. 能够熟悉图书管理系统的使用。作为图书管理员,他们对图书管理系统的要求有:1. 能方便的对图书进行录入登记,注销陈旧的书籍。2. 能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。3. 能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借阅情况等信息,以便各学院能够随时获知本院学生的一些借书信息。根据题目需要,由于图书信息需要存放在文件中,所以应提供文件输入、输出等操作。应提供查找、借阅、管理等功能。由于有多种借阅图

4、书的方法,而又需要提供相应的算法,最后还应提供键盘是选择菜单实现功能。 三、总体设计 四、详细设计1、主函数说明主函数较多、较复杂,已经和主菜单函数合并,主菜单函数里还包括了各自的二级菜单,并已经开始了对各个函数的调用。为了程序显示的清晰可读,应先清屏之后调用菜单函数。流程开始显示一系列功能选项N输入n,判断n是否是0-4Y返回主菜单根据n的值调用各功能模块函数程序main() char ch1,ch2,ch3,ch4,ch5; do printf(nnntt * 图书管理系统 *n); printf(ntttt 1: n); printf(ntttt 2: n); printf(ntttt

5、3: n); printf(ntttt 4: n); printf(ntttt 0: n); printf(n请输入0-4,其他输入非法!n); scanf(%s,&ch1); switch(ch1) case 1:chabook();break; case 2:lendbook();break; case 3: do printf(nnntt *欢迎进入管理系统 *n); printf(ntttt 1:n); printf(ntttt 2:n); printf(ntttt 3:n); printf(ntttt 4:n); printf(ntttt 5:n); printf(ntttt 6:n

6、); printf(ntttt 0:n); printf(n请输入0-6,其他输入非法!n); scanf(%s,&ch2); switch(ch2) case 1:addbook();break; case 2:delbook();break; case 3:changebook();break; case 4:bookcount();getch();break; case 5:do printf(nnntt *欢迎进入职工管理系统!*n); printf(ntttt 1:n); printf(ntttt 2:n); printf(ntttt 3:n); printf(ntttt 4:n);

7、 printf(ntttt 0:n); printf(n请输入0-4,其他输入非法!n); scanf(%s,&ch3); switch(ch3) case 1:addemploy();getch();break; case 2:delemploy();break; case 3:changemploy();break; case 4:employcount();getch();break; case 0:break; default:printf(无此操作n);getch();break; while(ch3!=0);break; case 6: do printf(nnntt *欢迎进入学

8、生管理系统!*n); printf(ntttt 1:n); printf(ntttt 2:n); printf(ntttt 3:n); printf(ntttt 4:n); printf(ntttt 0:n); printf(n请输入0-4,其他输入非法!n); scanf(%s,&ch4); switch(ch4) case 1:addcar();break; case 2:delcar();break; case 3:lendcount();break; case 4:carcount();break; case 0:break; default:printf(无此操作n);getch()

9、;break; while(ch4!=0);break; case 0:break; default:printf(无此操作n);getch();break; while(ch2!=0);break; case 4:huanbook();break; case 0:break; default:printf(无此操作n);getch();break; while(ch1!=0); 2、各功能模块设计(1)查阅模块说明输入个员工信息后,浏览、查找、排序时同一个员工的所有信息都要同时显示,所以运用结构体运行。数据信息存放在文件中,一条记录对应一条学生信息,方便管理。流程程序chabook() ch

10、ar ch5; do printf(-欢迎进入图书查询系统!-n); printf( 1:n); printf( 2:n); printf( 0:n); printf(请输入0-2,其他输入非法!n); scanf(%s,&ch5); switch(ch5) case 1:findbook();getch();break; case 2:findbook1();getch();break; case 0:break; default:printf(无此操作n);getch();break; while(ch5!=0);return FALSE; findbook() /*按书名查找图书函数*/

11、 FILE *fp; char bookname10; int ture,i; fp=fopen(book.txt,r); printf(请输入你要查找的书名n); scanf(%s,bookname); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(bookname,booki.bookname)=0) if(booki.turefalse=1) printf(这本书的详细资料是:%d %s %s 此书现在无人借阅n按任意键返回n,booki.booknum,booki.bookname,booki.bookc

12、reat); else printf(这本书已经有人借出n);fclose(fp);return 0; fclose(fp); return FALSE; printf(没有你要查询的书籍n); fclose(fp); return FALSE; findbook1() /*按作者查找图书函数*/ FILE *fp; char bookcreat10; int ture,i; fp=fopen(book.txt,r); printf(请输入你要查找的作者名n); scanf(%s,bookcreat); for(i=0;fread(&booki,sizeof(struct book),1,fp

13、)!=0;i+) if(strcmp(bookcreat,booki.bookcreat)=0) if(booki.turefalse=1) printf(这本书的详细资料是:%d %s %s 此书现在无人借阅n按任意键返回n,booki.booknum,booki.bookname,booki.bookcreat); else printf(这本书已经有人借出n);fclose(fp);return 0; fclose(fp); return FALSE; printf(没有你要查询的书籍n); fclose(fp); return FALSE; (2)借阅模块说明 查阅完图书记录后,用户要

14、借阅图书,系统要在操作过程中提示用户输入流程,根据用户所输入的指令,帮助其完成借阅。 流程 程序lendbook() /*借书函数*/ FILE *fp,*fp2; int i,n; int carnum; printf(请你输入你的卡号n); scanf(%d,&carnum); fp=fopen(car.txt,r); for(i=0;fread(&cari,sizeof(struct car),1,fp)!=0;i+) if(cari.carnum=carnum) n=i; fclose(fp); printf(请输入你要借阅的书的名字n); scanf(%s,studentn.lend

15、book); fp=fopen(book.txt,r); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(booki.bookname,studentn.lendbook)=0) if(booki.turefalse=0) printf(对不起,此书有人借出,请借其他书n);fclose(fp);getch();return; else fclose(fp); fp=fopen(record.txt,a+); studentn.carnum=carnum; fwrite(&studentn,sizeof(struc

16、t student),1,fp); fclose(fp); fp=fopen(book.txt,r); fp2=fopen(bookl.txt,w); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(booki.bookname,studentn.lendbook)=0) booki.turefalse=0; fwrite(&booki,sizeof(struct book),1,fp2); continue; fwrite(&booki,sizeof(struct book),1,fp2); fclose(fp)

17、; fclose(fp2); fp=fopen(book.txt,w); fp2=fopen(bookl.txt,r); for(i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+) fwrite(&booki,sizeof(struct book),1,fp); fclose(fp); fclose(fp2); fopen(bookl.txt,w); fclose(fp2); printf(借书完毕,按任意键返回n); getch(); return; printf(不存在这样的书,任意键返回n); fclose(fp); getch(); r

18、eturn; printf(你的卡号不存在,请申请新卡,按任意键返回n); fclose(fp); getch(); (3)管理模块说明管理模块最为复杂,管理所有的图书及职工、学生的信息。先进入总体的管理系统,在这个系统中重点的操作是图书的管理,为其中的1至4项(分别是增加图书、删除图书、修改图书资料、书籍统计),同时系统还连接了职工、学生管理两个系统,为下一步的操作提供了条件。职工管理系统主要有增加图书、删除图书、修改图书资料、书籍统计,学生管理系统主要有申请新卡、删除卡号、借书统计、卡号统计四个模块,用于管理学生登录信息。流程 程序 图书管理系统addbook() /*增加图书函数*/ F

19、ILE *fp; int i=1; char choice=y; fp=fopen(book.txt,a+); while(choice=y|choice=Y) printf(请你输入第%d本书的序号n,i+); scanf(%d,&booki.booknum); printf(请你输入书名n); scanf(%s,booki.bookname); printf(请你输入书的作者n); scanf(%s,booki.bookcreat); printf(请你设定书的状态(请设为1或0,1代表书还没人借,0表示书已经借出,设其他值,程序运行时无法得出正常结果)n); scanf(%d,&book

20、i.turefalse); fwrite(&booki,sizeof(struct book),1,fp); printf(是否要输入下本书 ? n); scanf(%s,&choice); fclose(fp); delbook() /*删除图书函数*/ FILE *fp,*fp2; int i; char bookname10,choice; fp=fopen(book.txt,r); fp2=fopen(bookl.txt,w); printf(请输入你要删除的书名n); printf(如果你输入的书名存在,系统自动删除该信息!如果不存在,系统不做任何改动n); scanf(%s,boo

21、kname); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(bookname,booki.bookname)!=0) fwrite(&booki,sizeof(struct book),1,fp2); fclose(fp); fclose(fp2); printf(是否真的要删除该书籍?删除后该书籍的所有信息将无法恢复Y/Nn); scanf(%s,&choice); if(choice=y|choice=Y) fp=fopen(book.txt,w); fp2=fopen(bookl.txt,r); for(

22、i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+) fwrite(&booki,sizeof(struct book),1,fp); fclose(fp); fclose(fp2); fp2=fopen(bookl.txt,w); fclose(fp2); printf(按任意键返回n); getch(); return; else printf(按任意键返回n); getch(); return; changebook() /*修改图书资料函数*/ FILE *fp,*fp2; char bookname10,choice; int i; f

23、p=fopen(book.txt,r); fp2=fopen(bookl.txt,w); printf(请你输入要修改的书籍的书字n); scanf(%s,bookname); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(booki.bookname,bookname)=0) printf(你所要修改的书的资料如下,请选择你要修改的内容n); printf(序号:%d 书名:%s 作者:%s n,booki.booknum,booki.bookname,booki.bookcreat); printf(1:修改

24、书的序号n); printf(2:修改书名n); printf(3:修改作者n); printf(请输入1-3:); scanf(%s,&choice); switch(choice) case 1: printf(请输入新的序号n); scanf(%d,&booki.booknum); fwrite(&booki,sizeof(struct book),1,fp2); break; case 2: printf(请输入新的书名n); scanf(%s,booki.bookname); fwrite(&booki,sizeof(struct book),1,fp2); break; case

25、3: printf(请输入新的作者n); scanf(%s,booki.bookcreat); fwrite(&booki,sizeof(struct book),1,fp2); break; defaut:printf(没有这样的操作);break; continue; fwrite(&booki,sizeof(struct book),1,fp2); fclose(fp); fclose(fp2); fp=fopen(book.txt,w); fp2=fopen(bookl.txt,r); for(i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+) fwrite(&booki,sizeof(struct book),1,fp); fclose(fp2); fp2=fopen(bookl.txt,w); fclose(fp2); printf(按任意键返回n); getchar(); return; bookcount() /*图书统计函数*/ FILE *fp; int i,n=0; fp=fopen

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

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