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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言图书管理系统.docx

1、C语言图书管理系统 图书借阅管理系统1.课程设计的目的 我这次做的系统是图书借阅管理系统,主要目的是利用本系统来管理图书的借阅问题,以实现图书借阅的快捷化、规范化、自动化来提高工作效率。系统以实用性,通用、开放和安全的原则。使用数据库开发软件开发制作,实现了图书借阅信息的管理,借阅图书的信息自动化添加,借阅者的个人基本信息,借阅的基本信息,对各种图书的分类管理以及各种新书的添加等一些繁琐事项。更好的管理好图书的借阅问题。大大的减少了人工的工作量,比以往很大程度上提高了工作人员的工作效率。使之成为图书馆的一个平台,成为真正的现代化科技。为了充分利用学院现有的计算机硬件资源,做好图书借阅管理工作,

2、提高办事效率,实现全面的、相对集中的办公自动化,开发本系统就成了当务之急,其目的主要为了彻底改变这种繁杂的管理模式,实现全面的、相对集中的、智能化的信息综合管理,为图书馆的管理工作带来方便。我想借本次课程设计之际,开发一个适用于通用大规模图书馆的管理系统,采用现学习的C+6.0开发工具开发出来的基于Windows系列的图书借阅管理系统。该系统面向所有的在校学生,实现对学生个人的借书、学生的基本信息情况等的计算机管理。系统支持工作人员对学生图书借阅信息、图书馆新书的添加、旧书的信息修改、删除等操作,确保了数据库的安全性快捷性和一致性。2设计方案论证2.1主界面设计思路本次设计这个系统利用于图书馆

3、的图书借阅管理,该系统相比以往人工的记录方式减少了很多不比要得麻烦,大大的提高了图书馆工作人员的工作效率。这次系统的开发制作主要包括以下几个方面。书籍统计可以查询图书的名称、作者、序号等信息,以及是否借出去了。书籍管理可以把新书添加到系统当中,修改书籍的详细资料等。注册会员功能,借阅书籍的学生必须注册会员才可以借书,通过注册会员来添加该学生的基本信息。通过系统来办理借书手续以记录该学生的借书信息。学生借书模块能够查询借阅学生的信息和该学生的借书的信息。还书模块功能,学生把书籍归还后系统会清楚该学生的借书记录。员工管理系统,把员工的信息录入系统可以快速的查阅员工的信息,是管理更方便快捷。图书借阅

4、管理系统功能概况,如图1所示 图1 主界面框架图2.2图书管理模块设计思路 图书管理模块包括书籍统计、查询图书馆里书籍的基本信息,图书资料修改,添加新书和修改旧书的资料,删除图书,图书馆不想保存的书可以通过系统删除书籍来删除系统里面以前保留书的记录。3.设计结果及分析3.1 创建工程框架 创建工程:从“开始”菜单中选择“程序”| Microsoft Visual Studio 6.0 | Microsoft Visual C+6.0,显示Visual C+ 6.0开发环境主窗口。单击“文件”菜单中的“新建”命令,显示新建对话框。在“工程”选项卡中,选择Win32 Console Applica

5、tion(Win32控制台应用程序)。在位置文本框中指定一个路径d:clab,在工程名称文本框中为工程输入一个名字“lab1_1”,单击确定按钮。在弹出的Win32 Console Application对话框中,选择“一个空工程”,单击“完成”按钮。如图2所示图2新建工程最后在“新建工程信息”对话框中,单击“确定”按钮,完成项目的建立。图3创建空工程 图4创建源程序编程运行后就可以使用了,可以查阅图书,比如书籍的序号、书名、以及作者等。借阅图书模块查询学生的借书信息等。管理系统模块包括员工的管理和书籍的管理。还书模块,学生还书后系统就会清楚借书记录。最后模块是退出功能使用后可以退出系统。按照

6、如图5所示进行相关操作。图5系统操作界面3.2图书管理模块设计3.2.1书籍统计书籍统计的程序,通过该程序的正确运行可以查阅图书、借阅图书、管理图书以及还书的相关操作。选择3管理图书然后会显示下一界面再选择4就可以进行书籍统计了,结果如图6所示。图6书籍统计 书籍统计函数bookcount() FILE *fp; int i,n=0; fp=fopen(book.txt,r); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(booki.booknum!=0&strlen(booki.bookname)!=0&strlen(bo

7、oki.bookcreat)!=0) printf(第%d本书n,i+1,booki.booknum,booki.bookname,booki.bookcreat,booki.turefalse); n=n+1; fclose(fp); printf(目前共有%d本书n,n); printf(按任意键n);3.2.2删除图书 删除图书的程序,程序运行后可以选择相关选项,选择删除图书来进行图书删除,删除图书之前会显示警告是否真的要删除该图书,以便操作者误删图书。运行结果如图7所示。图7删除图书 删除图书成功如图8所示图8删除成功 删除图书函数delbook() FILE *fp,*fp2; in

8、t i; char bookname10,choice; fp=fopen(book.txt,r); fp2=fopen(bookl.txt,w); printf(请输入你要删除的书名n); printf(如果你输入的书名存在,系统自动删除该信息!如果不存在,系统不做任何改动n); scanf(%s,bookname); 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); fcl

9、ose(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(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); fclos

10、e(fp2); printf(按任意键返回n); getch(); return; else printf(按任意键返回n); getch(); return; 3.2.3修改图书资料修改图书资料程序,运行后可以根据预期结果来进行相关操作,修改图书资料包括修改图书序号、书名、和作者。运行结果如图9所示。 图9 图书资料修改 图书资料修改成功后统计结果如图10所示图 10 图书资料修改成功 修改图书资料函数changebook() FILE *fp,*fp2; char bookname10,choice; int i; fp=fopen(book.txt,r); fp2=fopen(bookl

11、.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:修改书的序号n); printf(2:修改书名n); printf(3:修改

12、作者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 3: printf(请输入新的作者n); scanf(%s,booki.

13、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 boo

14、k),1,fp); fclose(fp2); fp2=fopen(bookl.txt,w); fclose(fp2); printf(按任意键返回n); getchar(); return; 4.设计体会有了这次的课程设计,让我在课堂上学到的理论知识有了更进一步的深入,把理论运用到实际当中不是一件简单的事情,虽然我稍微感觉到难做了一些,程序也有些欠缺的地方,但是这次设计不仅让我学到了很多知识,而且还锻炼了自己的实际操作能力。获益匪浅。这次的努力没有白费。编程中难免有些问题我还是解决不了的,但是幸运的事如今互联网很发达让我在其中找到了知识并且也学到了很多有用的知识。发展如此之快的现代化社会,我们

15、也应该加快我们的步伐跟着社会走,去学习很多我们还不掌握的知识,把它们转化成自己的东西,学会运用学到的知识,以实现科学的价值所在。在做课程设计之前我们应该充分的考虑好实际中会遇到的种种麻烦,以及预期结果,做好课设的各种准备,比如可以先写好要编写的程序,考虑要用什么函数才能实现预期的结果,整体的结构模块,做编程一定要细心仔细,而且也要有足够的耐心。这次的课程设计真是学到不少东西,让我理解了知识的重要性,多学理论知识,勤动手操作,利用我们周围有效的学习资源。是自己做一个更完善的人。5参考文献1 王敬华, 林萍,陈静. C语言程序设计教程M. 北京: 清华大学出版社, 2005.102 谭浩强. C程

16、序设计语言M. 北京: 机械工业出版社, 2003.4:205-2563李邦几 胡金桂 王敬华 . 最新C语言实用教程M. 北京: 化学工业出版社, 1996.34 李军民. 新编C语言程序设计教程(第二版)M. 西安: 西安电子科技大学出版社, 2005.08:6893 1481715谭浩强. C程序设计. 北京:清华大学出版社,2010.6附录:部分源程序#include #include #include #include #include #include #include #include #include #define STACK_INIT_SIZE 10 #define OK

17、1 #define TRUE 1 #define FALSE 0 #define ERROR 0struct student /*定义学生类型,用于存放借出的书籍*/ int carnum; char lendbook10; student1000;struct employ /*定义职工类型*/ int employnum; char employname15; int employage; char employsex2; char employleve10; long int employtage; employ50;struct book /*定义书的类型*/ int booknum;

18、 char bookname10; char bookcreat10; int turefalse; /*用于借书和还书模块判断一本书是否借出的条件*/ book1000;struct car /*借书卡的数据类型*/ int carnum; char studentname10; int studentclass; car100;huanbook() /*还书函数*/ FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/ int i,n; int carnum; char lendbook10; printf(请你输入你的卡号n);fp=

19、fopen(car.txt,r); /*读取卡号记录*/ for(i=0;fread(&cari,sizeof(struct car),1,fp)!=0;i+) /*for循环判断卡号是否存在*/ if(cari.carnum=carnum) /*卡号存在,进入下一循环*/ n=i; fclose(fp); printf(请输入你要还的书的名字n); scanf(%s,lendbook); fp=fopen(record.txt,r); for(i=0;fread(&studenti,sizeof(struct student),1,fp)!=0;i+) /*判断是否借阅了输入的书*/ if(

20、strcmp(studenti.lendbook,lendbook)=0) /*借阅了该书,进入下一循环,否则出错显示*/ fclose(fp); fp=fopen(record.txt,r); fp2=fopen(bookl.txt,w); for(i=0;fread(&studenti,sizeof(struct student),1,fp)!=0;i+) if(strcmp(studenti.lendbook,lendbook)=0) continue; /*删除还掉的书的借书记录*/ fwrite(&studenti,sizeof(struct student),1,fp2); /*写

21、入原来没还的书的记录*/ fclose(fp); fclose(fp2); fp=fopen(record.txt,w); fp2=fopen(bookl.txt,r); for(i=0;fread(&studenti,sizeof(struct student),1,fp2)!=0;i+) fwrite(&studenti,sizeof(struct student),1,fp); /*将借书记录信息写回*/ fclose(fp); fclose(fp2); fopen(bookl.txt,w); /*清临时文件的记录*/ fclose(fp2); fp=fopen(book.txt,r);

22、 fp2=fopen(bookl.txt,w); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/ if(i=n) booki.turefalse=1; fwrite(&booki,sizeof(struct book),1,fp2); /*将还的书的原来状态设为无人借阅的*/ continue; fwrite(&booki,sizeof(struct book),1,fp2); fclose(fp); fclose(fp2); fp=fopen(book.txt,w);

23、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 1; printf(你没有借这样的书,任意键返回n); /*出错提示*/ fclose(fp); getch(); retu

24、rn 0; printf(系统没这样的卡,和管理员联系,按任意键返回n); /*出错提示*/ fclose(fp); getch(); findbook() 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) print

25、f(这本书的详细资料是:%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; findbook1() FILE *fp; char bookcreat10; int ture,i; fp=fopen(book.txt,r); printf(请输入你要查找的作者名n); sc

26、anf(%s,bookcreat); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=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; prin

27、tf(没有你要查询的书籍n); fclose(fp); return FALSE; lendcount() FILE *fp; int i,n=0; fp=fopen(record.txt,r); for(i=0;fread(&studenti,sizeof(struct student),1,fp)!=0;i+) printf(卡号:%d 借出的书籍:%s n,studenti.carnum,studenti.lendbook); n=n+1; fclose(fp); printf(目前共有%d本书借出n,n); printf(按任意键n); getch();return n; chabook() char ch5; do printf(-欢迎进入图书查询系统!-n); printf( 1:n); printf( 2:n); printf( 0:n); printf(请输入0-2,其他输入非法!n); scanf(%s,&ch5); switch(ch5) case 1:fi

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

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