图书馆管理系统C程序课程设计

上传人:hs****ma 文档编号:546421908 上传时间:2023-03-28 格式:DOC 页数:27 大小:186KB
返回 下载 相关 举报
图书馆管理系统C程序课程设计_第1页
第1页 / 共27页
图书馆管理系统C程序课程设计_第2页
第2页 / 共27页
图书馆管理系统C程序课程设计_第3页
第3页 / 共27页
图书馆管理系统C程序课程设计_第4页
第4页 / 共27页
图书馆管理系统C程序课程设计_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《图书馆管理系统C程序课程设计》由会员分享,可在线阅读,更多相关《图书馆管理系统C程序课程设计(27页珍藏版)》请在金锄头文库上搜索。

1、 图书馆管理系统C程序课程设计一、设计目的通过本项课程设计,可以培养独立思考、 综合运用所学有关相应知识的能力,能更好的巩固C语言程序设计课程学习的内容,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础二、设计要求在功能上功能尽量模拟win

2、dows操作系统中的图书馆管理体制,系统界面不做强制要求。 三、程序功能分析:图书馆管理系统是根据学校图书馆对书籍、员工、学生等方面管理与记录的需要。由C语言编写的一个多功能模块化的程序,其中包括图书检索(查阅图书)、借阅图书、还书及管理系统四项大的模块,其管理系统又包括图书管理系统、职员管理系统以及学生管理系统三大模块,分别对图书、管理人员、借书人员进行详细的记录与管理,包括图书的增加与删除、职员的增加与删除、借书卡的新加与删除,以及各项有关数据的统计,资料的修改和备份等功能。操作简单,查找方便,修改迅速,普遍适合图书馆的管理,可大大减少人工管理的工作量,提高工作效率。该软件将图书馆管理系统

3、程序中的多中功能划分为多个模块,每个模块单独编辑,经过整合共同发挥功能。各函数多级调用,程序层次清晰,便于读取个修正。 有关本软件的具体功能分块可参考“图书馆管理系统数据结构图”(附录一)所示内容。四、定义数据结构及相关解释: (1)在图书馆管理系统中,各模块功能系统之间构成的数据结构关系为非线性数据结构的树结构。(2)树结构:每一个结点只有一个前件,称为父结点。没有前件的结点只有一个,称为树的根结点,简称树的根。在图书馆管理系统的数据结构图中“图书馆管理程序”为根;在树结构中,每一个结点都可以有多个后件,他们都称为该结点的子结点,没有后件的结点称为叶子。例如,在图书馆管理系统的数据结构土中“

4、增加图书”、“删除图书”、“修改图书”、“书籍统计”为“图书管理系统”的子结点,也是该树结构的叶子。(3)图书馆管理系统树结构的度为4,深度为4。(4)详细可见“图书馆管理系统数据结构图”(附录一)。五、软件的模块划分:根据对图书馆管理系统功能分析的情况,现将图书馆管理系统源程序做如下模块划分:(1) main() 主函数 图书馆系统程序主函数;(2) chabook() 函数 查阅图书功能函数;(3) lendbook() 函数 借阅图书功能函数;(4) huanbook() 函数 还书系统功能函数;(5) addbook() 函数 增加图书功能函数;(6) delbook() 函数 删除图

5、书功能函数;(7) changebook() 函数 修改图书资料功能函数;(8) bookcount() 函数 书籍统计功能函数;(9) addemploy() 函数 增加职员功能函数;(10) delemploy() 函数 删除职员功能函数;(11) changeemploy() 函数 修改员工资料功能函数;(12) employcount() 函数 员工统计功能函数;(13) addcar() 函数 申请新卡功能函数;(14) delcar() 函数 删除卡号功能函数;(15) lendcount() 函数 借书统计功能函数;(16) carcount() 函数 卡号统计功能函数;注:(2

6、)(16)为自定义功能函数,通过main()主函数调用实现其功能。六、各功能模块编写内容详细情况及调试。(1)数据类型的定义。 在定义数据类型时,由于一项统计数据所需要的数据类型多样,如:职工统计时,编号、年龄为int型,名字、性别、级别为char型。所以在定义变量类型时采用结构体类型。如: struct student /*定义学生类型,用于存放借出的书籍*/ int carnum; char lendbook10; student1000; struct employ /*定义职工类型*/ int employnum; char employname15; int employage; c

7、har employsex2; char employleve10; long int employtage; employ50; struct book /*定义书的类型*/ int booknum; char bookname10; char bookcreat10; int turefalse; /*用于借书和还书模块判断一本书是否借出的条件*/ book1000; struct car /*借书卡的数据类型*/ int carnum; char studentname10; int studentclass; car100;(2)函数的命名和库函数的使用。 a.函数命名是遵循标识符的命

8、名规则,并且要尽量做到顾名思义的效果。如:lendbook() 为图书借阅函数。 b.库函数使用时要提前声明(#include 等)用到的函数必须包括在库函数或者已自定义的函数中,否则编译出错。 c.函数调用时要注意形参和实参数据类型的对应。 (3)函数结构和功能实现。 a. 查阅图书函数“chabook()”b 借阅图书函数“lendbook()”c. 还书系统函数“huanbook()” 注: 以上的三个功能函数为图书馆管理系统的查阅、借书、还书等主要功能函数,其中主要运用字符串比较,定义指针变量,输入输出等多种函数和操作实现其对外界输入内容进行处理功能以及防止出错的备份功能。 d. 管理

9、系统中的各个模块函数的功能实现基本都依靠与以上三中函数类似的编辑方法编写。主要通过以下结构实现对应功能。 for循环结构 对使用者输入内容与内部资料内容进行核对。 switch选择结构 对使用者所选择的项目进行判断并调用对应的函数。 if-else选择结构 配合for循环核对内容的正确与否选择对应的操作。 while 、do-while循环结构 条件判断并进行对应的操作。 e. 具体功能函数源程序的编辑内容见后文的图书馆管理系统源程序。 七、源程序内容及调试结果。 (1)源程序#include #include #include #include #include #define STACK_

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

11、ook /*定义书的类型*/ int booknum; 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 lend

12、book10; printf(write down your car number n); scanf(%d,&carnum); fp=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(write down the book name n); /改为booknumberscanf(%s,lendbook); fp=fopen

13、(record.txt,r); for(i=0;fread(&studenti,sizeof(struct student),1,fp)!=0;i+) /*判断是否借阅了输入的书*/ if(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.lend

14、book,lendbook)=0) continue; /*删除还掉的书的借书记录*/ fwrite(&studenti,sizeof(struct student),1,fp2); /*写入原来没还的书的记录*/ 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=fope

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号