C课程报告(图书管理系统).doc_第1页
C课程报告(图书管理系统).doc_第2页
C课程报告(图书管理系统).doc_第3页
C课程报告(图书管理系统).doc_第4页
C课程报告(图书管理系统).doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图书管理系统 图书管理系统图书管理系统 目录目录 1绪论绪论1 2. 系统分析系统分析.2 2.1 数据需求2 2.2 功能需求2 2.3 性能需求2 3. 总体设计总体设计.2 3.1 功能模块设计2 3.2 系统设计方案4 4. 详细设计详细设计.5 4.1 页面设计模块5 4.2 主要功能模块6 4.3 保存模块8 5. 调试与测试调试与测试.9 5.1 调试9 5.2 测试9 参考文献参考文献10 附录附录 1用户手册用户手册.11 附录附录 2源程序源程序.15 图书管理系统 1 摘摘 要要 图书馆管理系统对于图书馆来说是不可或缺的。它方便快捷的管理图书的 库存量、类别、查阅,借阅等环节。 本系统使用 c 语言作为程序开发的语言,开发图书馆管理系统,实现图书 的查询、书名查询、编号查询,可以对图书信息进行添加,查询和读者信息的 查询。 本文从分析课题的题目背景、题目意义、题目要求等出发,分别从系统需 求,总体设计、详细设计、调试测试等方面介绍了系统的设计与实现过程,最 后对系统的完成情况进行了总结。 关键词:图书查询;借书登记;还书管理; 1绪论绪论 图书馆管理系统是一个图书馆不可或缺的部分,它的内容对于学校图书馆的 管理非常重要,所以图书管理系统不但要为图书管理者提供充足的信息和快捷 的查询手段。而且要为学生提供必要快捷的查询手段。随着计算机技术的日益 成熟,强大的功能已为人们深刻认识。使用计算机对图书管理具有快速、准确、 方便、保密好、寿命长、成本低等特点。这些优点能够极大的提高图书管理的 效率、也是图书馆科学化、正规化管理的重要条件。这也是编写本系统的目的 所在,现在的图书馆都在使用类似的能够用计算机辅助管理员完成对图书信息 的管理,本系统可以大大提高管理员的工作效率,节省工作时间,使他们能够 用更多的时间为读者提供一些其它的服务。 根据课程设计任务书要求,本系统开发主要完成以下功能和性能。 (1) 新书入库系统:包括存储图书基本信息:书名, 书号, 库存量, 现存 量。 (2) 图书信息查询系统:可以按书号查询图书的基本信息。 (3) 借书登记系统:可以输入读者编号和所借书号来借书。 (4) 还书管理系统:可以输入读者编号和所借书号来还书。 (5) 输出信息系统:输出全部图书信息和全部读者信息。 图书管理系统 2 2. 系统分析系统分析 2.1 数据需数据需求求 本系统主要是图书馆的图书信息管理的系统。 一、 新书入库: 图书信息包括书名, 书号, 库存量, 现存量共 4 项. 首先输入 3 本书的信息, 并将其存入文件 ”book.dat” 中. 当有新书入库时, 先判断 文件中是否有此书( 即比较书名 ), 若有则修改库存量, 现存量的信息; 若无 此书, 则将该书的信息添加到文件中. 二、图书查询: 输入一个书号, 在文件中查找此书, 若找到则输出此书的全部 信息; 若找不到则输出查找失败的信息. 三、借阅管理 (1)每个读者的信息包括姓名, 编号, 1 张借书卡( 限借一本书 ), 输入 3 个 读者的信息存入文件 “reader . dat” 中. (2)借书登记: 输入读者的编号, 所借图书的书号, 先判断姓名是否在文件” reader.dat” 中, 若有则将书号存入一张借书卡上( 注: 初始时借书卡 的信息都为零, 借书后借书卡的信息改为所借书的书号), 并修改文件” reader.dat”的相应内容, 同时修改文件”book.dat”中此书的现存量. 若”reader.dat”无此姓名, 则应提示错误 (3)还书管理: 输入读者的编号, 所还图书的书号, 将借书卡的信息置为零, 并修改文件”reader.dat”的相应内容, 同时修改文件”book.dat”中此 书的现存量. 四、输出全部图书信息和全部读者信息 五、退出系统. 2.2 功能需求功能需求 本系统有新书入库,查询,借书管理,还书管理,保存信息功能,显示读者信 息和图书信息,可以按书号实现图书查询。 2.3 性能需求性能需求 在运行本程序时只要按照正确的操作方法就能正常运行,系统稳定性好,安全, 可靠。 3. 总体设计总体设计 3.1 功能模块设计功能模块设计 根据分析整个系统主要划分为 6 个功能模块,分别执行要求中的功能。该系统 新书入库,图书查询,借阅管理,输出图书信息,输出读者信息,退出系 图书管理系统 3 仔细阅读系统要求,首先将此系统化分为如下模块 1) 新书入库模块:可用一个函数 insert_new_book(char book_num, char book_name,int number)来实现。形参分别为:书名, 书号,以 及有多少本书要入库,再根据要求将信息写入文件 boot.dat 中。又由 于最开始要输入三本新书,故可以加一个初始化函数 init_book(),但 是初始化函数只执行一次,也就是在系统第一次运行的时候执行,此时 可以根据判断是否存在 boot.dat 这个文件来决定是否执行初始化函数. 2) 查询模块:可用一个函数 void find_book(char book_num)来实现。 找到就输出此书全部信息,找不到就输出查找失败信息。 3) 借阅管理模块: (1) 三个读者的信息可以在系统初始化时完成.即可用初始化函数 init_reader()来实现对读者的初始化。因为读者初始化函数也只是在系统第 一次运行的时候执行一次,故也可以根据是否存在 reader.dat 文件来确定是 否执行此函数。 (到现在可以发现在系统初始化函数里,至少已经需要调用两 个初始化函数了) (2) 借书登记模块:可用一个函数 borrow_book(char reader_num,char book_num)来实现。在函数中要分别判断 a 该读者的编号是否已经存在,如果不存在,则提示错误。 b 该读者的借阅书是否已满(即最多只能借 1 本书)如果是,则提醒该用 户先去还书 c 输出的书号对应的书是否存在,如果不存在,则提醒读者不存在此书。 借书过程完成后,则对读者信息里的借书信息写上所借书号,并修改库存 量。 (3) 还书管理模块:可用一个函数 return_book(char reader_num, char book_num)来实现。在实现此函数时要判断: a 该读者的姓名是否已经存在,如果不存在,则提示错误。 b 该读者是否已经借阅此书。如果没有,则提示错误。 c 还书过程完成后,则对读者信息里的借书信息清零,并修改库存量。 (4)输出图书和读者信息:可分别用模块 print_book()和 print_reader() 新书 入库 图书 查询 借书 登记 还书 登记 输出 图书 信息 输出 读者 信息 退出 系统 图书管理系统 图书管理系统 4 来实现 直接从 book.dat 文件和 reader.dat 文件中读取信息并输出。 (5)退出系统:可用一个函数 exit()来实现。首先将信息保存到文件,释放 动态创建的内存空间,再退出此程序。 3.2 系统设计方案系统设计方案 (1) 菜单 设计一个总菜单,1、新书入库 2、图书查询 3、借书登记、4 还书登记 5 、输 出图书信息 6、输出读者信息。 (2) 数据结构 建立结构体如下: 图书类型: typedef struct bk char book_num11; /* 书号采用 10 位编码最后 1 位为字符串结束标 志(下同). */ char book_name41; /* 书名规定不超过 40 个字母(20 个汉字) */ unsigned book_kc,book_xc; /* book_kc 代表库存量,book_xc 代 表现存量 */ struct bk *next; book; 读者类型: typedef struct rd char reader_num11; /* 读者编号采用 10 位编码 */ char reader_name11; /* 读者姓名 */ char reader_book_num11; /*表示所借书号,初始值为“0”*/ struct rk *next; reader; (3) 函数 定义了 15 个函数,都实现以下功能: void form_insert_new_book(); /*新书入库菜单*/ void form_find_book(); /*查询图书菜单 */ void form_borrow_book(); /*借书菜单*/ void form_return_book(); /*还书菜单*/ void find_book(char *); /*查询图书*/ void insert_new_book(char *,char * ,int ); /*新书入库,即在链表中插入 一个新节点*/ void borrow_book(char *,char *);/*借书,修改读者借阅信息和图书的现存 信息*/ void return_book(char *,char *);/*还书,修改读者借阅信息和图书的现存 信息*/ void print_book(struct bk *);/*输出全部图书信息*/ 图书管理系统 5 void print_reader(struct rd *);/*输出全部读者信息*/ void load_data();/*从文件中读取数据,链表头指针指向第一个节点*/ void init_reader();/*第一次运行程序时对三个读者的初始化*/ void init_book();/*第一次运行程序时对三本图书的初始化*/ void save();/*将链表中的信息保存到文件中*/ void m_form()/*主菜单*/ 4. 详细设计详细设计 4.1 页面设计模块页面设计模块 此系统界面采用图形和数字化菜单设计。 主界面设计如下:主界面设计如下: 图书管理系统主系统 请选择相应的数字执行相应的功能: 0:退出此系统 1:新书入库 2:图书查询 3:借书登记 4:还书管理 5:输出全部图书信息和读者信息 各子界面如下:各子界面如下: 1 1新书入库界面:新书入库界面: 请选择相应的数字执行相应的功能: 10:返回主菜单 11:新书入库 请输入新书名: 请输入新书号: 请输入新书数量: (注:新书入库成功后,程序返回到子界面 1) 2 2图书查询界面界面:图书查询界面界面: 请选择相应的数字执行相应的功能: 20:返回主菜单 21:图书查询 请输入需要查询的书号: (注:图书查询完成后,返回到子界面 2) 3 3、借书登记界面:、借书登记界面: 请选择相应的数字执行相应的功能: 30:返回主菜单 31:借书登记 请输入读者编号: 图书管理系统 6 请输入所借书号: (注:借书过程完成后,返回到子界面 3) 4 4、还书管理:、还书管理: 请选择相应的数字执行相应的功能: 40:返回主菜单 41:还书登记 请输入读者编号: 请输入所借书号: (注:还书过程完成后,返回到子界面 4) 5 5、输出全部图书和读者信息:、输出全部图书和读者信息: 请选择相应的数字执行相应的功能: 50:返回主菜单 51:输出全部图书信息: 书号 书名: 库存量 现存量 52:输出全部读者信息: 读者编号 读者姓名 所借书号 (注:输出图书和读者信息后,返回到子界面 5) 4.2 主要功能模块主要功能模块 2、新书入库流程图 y 根据数量修改库存 y n n book.dat 中增加此新 书,根据数量设置库存 输入新书名、新 书号和新书数量 已存在此新书 if(还有新书) 开始 结束 图书管理系统 7 3、图书查询程序结构图: n y n y 4、借书登记程序结构流程图: y n n y y n n y n y n 借书登记,修改 book.dat 中的现存信息,reader.dat 中的借书卡信息 y 输入要查询的书号 是否存在此书 输入此书的全部信息 输入信息:此书不存在 是否继续查询 输入读者编号 是否存在编号 输出出错信息 提示不能借书 借书卡是否满 是否还书 进入还书模块 输入需要借的书号 书号存在否 还有读者借书 是否重输 否满 开始 结束 开始 结束结束 图书管理系统 8 5、还书登记程序结构流程图: y n y n 错误 正确 还书将读者信息借书卡清 0 修改 book.dat 现存信息 n y 6、输出读者和图书信息 图书 图书 输入读者编号 是否存在编号 输出出错信息 核对书号 是否重输 进入查询模块 输入还书的书的编号 还有读者还书 是否重输 否满 选择输出图书 还是读者信息 输出全部图书信息 输出全部读者信息 开始 结束 开始 结束 图书管理系统 9 4.3保存模块保存模块 可执行文件 book.dat、reader.dat,都存储在 c:文件夹下。 5. 调试调试与测试与测试 5.1 调试调试 调试是软件开发过程中的一个重要环节,也是最复杂,对软件开发者者来 说也是最艰巨的任务。调试的任务是及时改正测试过程中发现的软件错误。具 体地说,调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始, 首先确定错误的准确位置,也就是找出哪个模块或哪个语句引起的错误。然后 仔细研究推断代码以确定问题的原因,并设法改正。 调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找 到相关的问题所在。本系统调试过程中遇到问题、原因和解决方法如下面介绍。 (1)程序在储存图书信息时只能一次存入,并且读取。再次添加新的程序 时将会把原来添加的图书信息覆盖。原因时存储函数只能只写 2 进制 文件不能追加填写 2 进制文件。 (2)运行完程序一次有错误提醒 原因是上次运行程序后没有关闭操作界面当点击编译时会有一个错误 提示,解决方法:将上一次运行时的操作界面关闭。 (3) 程序不能运行 程序运行到添加新图书时自动提示错误需要调试,其原因是指针指向 的位置出现错误导致程序传参错乱无法运行,解决办法:使程序进入 调试状态在传参出现错误的位置一句一句查找传递的参数是否是你所 希望的,如若不是就加以修正。 5.2 测试测试 软件测试是软件生存期中的一个重要阶段,是软件质量保证的关键步骤从 用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以 软件测试应该是“为了发现错误而执行程序的过程” 。或者说,软件测试应该根 据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即 输入数据及其预期的输出结果) ,并利用这些测试用例去运行程序,以发现程序 图书管理系统 10 错误或缺陷。过度测试则会浪费许多宝贵的资源。到测试后期,即使找到了错 误,然而付出了过高的代价。 问题:借书管理模块中,当正确输入存在的读者编号和所借的书的编号,系统 进行判断时,提示不存在此读者。 解决办法及步骤: 1、一个个输出所有的读者的编号,检查文件中是否有此读者,发现有。 2、既然有此读者,那么检查循环判断是否有此读者的语句发现没有错 3、输出用于循环检查语句中的读者信息,发现乱码 4、仔细分析乱码的原因,最后发现是变量的类型错误,错将读者类型的结 构体指针变量定义为了图书类型的指针变量。 6. 结论结论 课程设计顺利完成,任务书中所提出的要求全部实现,可以对图书信息进 行查询、借阅及各种信息查找,并且将各种信息保存到文本文件中。不过这个 程序还有些不够完善,例如:没有删除、修改功能。 结束语结束语 通过这次课程设计,我对复杂程序的开发有了一个深刻的认识,使我进一 步明白了模块化思想在程序开发中的重要性。 两个星期的 c 语言综合课程设计实习终于顺利完成,在这期间真正的学到 了一些经验,能够熟练的掌握一些 c 语言的编程思路,能够熟练的运用学 到的函数,意识到编程并不是一件很简单的事情,知道学习编程必须亲自 动手去做,只有自己做的程序才能找出错误,这样才能真正的达到目的。 当程序编写完成而且能够正常运行心里非常高兴,虽然这对于一名程序员 来说可能非常简单,但对我来说,如果要想在编程方面能够有所发展的话, 我面临的困难还很多,要继续加强,努力,达到一种较高的水平。 参考文献参考文献 1 谭浩强. c 语言程序设计(第三版). 北京:清华大学出版社 2005 2 高涛,陆丽娜. c 语言设计. 西安:西安交通大学出版社 2007. 图书管理系统 11 3 林碧英. c 语言程序设计教程. 北京:中国电力出版社 2006. 4 王立武,陈艳,张宇,汪晔君.c 语言程序设计.北京.清华大学出版社 2009 附录附录 1用户手册用户手册 点击运行,首先是进入菜单选择界面,可进行如图 1 所示。 图图 1 进入菜单选择界面进入菜单选择界面 输入 1 回车进入新书入库功能系统,可进行如图 2 所示。 图书管理系统 12 图图 2 进入新书入库选择界面进入新书入库选择界面 输入 1 回车输入新书功能系统,可进行如图 3 所示。 图图 3 进入新书入库选择界面进入新书入库选择界面 输入 2 回车进入图书查询功能系统,可进行如图 4 所示。 图书管理系统 13 图图 4 进入新书入库选择界面进入新书入库选择界面 输入 1 回车开始时图书查询系统,可进行如图 5 所示。 图 5 进入图书查询界面 图书管理系统 14 输入 3 回车借书登记系统,可进行如图 6 所示 图 6 进入借书登记界面 输入 4 回车还书管理系统,可进行如图 7 所示 图 7 进入图书查询界面 输入 5 回车显示信息系统,可进行如图 8 所示 图书管理系统 15 图 8 输出信息界面 附录附录 2源程序源程序 #include #include #include typedef struct bk char book_num11; char book_name41; int book_kc; int book_xc; struct bk * next; book; /* 图书信息*/ typedef struct rd char reader_num11; char reader_name11; char reader_book_num11; struct rd * next ; reader;/*读者信息*/ 图书管理系统 16 struct bk * h_book,* h_reader; /*全局变量,分别为指向图书信息链表和读 者信息链表的头指针*/ void form_insert_new_book(); /*新书入库菜单*/ void form_find_book(); /*查询图书菜单 */ void form_borrow_book(); /*借书菜单*/ void form_return_book(); /*还书菜单*/ void find_book(char *); /*查询图书*/ void insert_new_book(char *,char * ,int ); /*新书入库,即在链表中插入 一个新节点*/ void borrow_book(char *,char *);/*借书,修改读者借阅信息和图书的现存 信息*/ void return_book(char *,char *);/*还书,修改读者借阅信息和图书的现存 信息*/ void print_book(struct bk *);/*输出全部图书信息*/ void print_reader(struct rd *);/*输出全部读者信息*/ void load_data();/*从文件中读取数据,链表头指针指向第一个节点*/ void init_reader();/*第一次运行程序时对三个读者的初始化*/ void init_book();/*第一次运行程序时对三本图书的初始化*/ void save();/*将链表中的信息保存到文件中*/ void m_form()/*主菜单*/ char ch; printf(“n 图书管理系统主窗口“); printf(“n 0:退出系统“); printf(“n 1:新书入库“); printf(“n 2:图书查询“); printf(“n 3:借书登记“); printf(“n 4:还书管理“); printf(“n 5:输出全部信息“); do /*此循环用来保证选择正确的数字键执行相应的功能*/ printf(“nn 请选择相应的功能代码:“); scanf(“%c“, fflush(stdin); /*用于清除键盘缓冲区中的多余字符*/ while(ch!=0 switch(ch) /*根据输入的字符进行选择执行相应的模块*/ case 0:exit(0); case 1:form_insert_new_book();break; case 2:form_find_book();break; case 3:form_borrow_book();break; case 4:form_return_book();break; case 5:load_data();print_book(h_book);print_reader(h_reader);m_form(); default:printf(“errorn“);exit(0); 图书管理系统 17 void form_find_book() char ch; char book_num11; printf(“n 图书查询功能模块,请选择相应的功能代码: n“); printf(“ 0:返回到主菜单n“); printf(“ 1:图书查询“); do printf(“nn 请选择相应的功能代码:“); scanf(“%c“, fflush(stdin); while(ch!=0 switch(ch) case 0:m_form();break; /*选择 0,则返回到上一级目录,即主菜单 */ case 1: printf(“ n 请输入需要需要查询的书的编号:“); scanf(“%s“,book_num); fflush(stdin); find_book(book_num); /*执行查询*/ form_find_book();/*查询完毕后继续返回到查询窗口,执行下一个查询 */ default:printf(“errorn“);exit(0); void find_book(char book_num) /*查询图书模块,根据图书编号查询*/ struct bk *p; p=h_book; while(p!=null/*此循环用于查找,如果在中间找到,则 p 就不可能到末尾指向空 */ if(p=null) printf(“nt 此编号对应的图书不存在!n“); else printf(“nt 图书编号t 图书名t 库存量t 现存量 n“); printf(“ %10st %10st %dt %dtn“,p-book_num,p- book_name,p-book_kc,p-book_xc); getch(); void init_book() /*初始化图书模块*/ book ba3; file *fp; int i; printf(“n 系统即将进行初始化,图书初始化模块:n“); 图书管理系统 18 printf(“n 请分别输入三本书的书号,书名,数量(以空格隔开):n “); for(i=0;ibook_num,book_num)!=0) q=p;p=p-next; if(strcmp(p-book_num,book_num)=0) printf(“ntt 此编号已经存在,请重新输入!n“); return; t=(struct bk *)malloc(sizeof(struct bk); strcpy(t-book_num,book_num); strcpy(t-book_name,book_name); t-book_kc=t-book_xc=number; q-next=t;t-next=null; if(book_fp=fopen(“book.dat“,“ab“)=null) printf(“不能建立图书文件,初始化失败!请重新启动系统!n“); return; /*将新书信息添加到文件中*/ fwrite(t,sizeof(struct bk),1,book_fp); fclose(book_fp); void print_book(struct bk *h) 图书管理系统 19 /*输出图书信息*/ struct bk *p; p=h; printf(“nt 图书编号 t 图书名 t 库存量 t 现存量 n“); while(p!=null) printf(“ %10st %10s %10dt%10dn“,p-book_num,p- book_name,p-book_kc,p-book_xc); p=p-next; void print_reader(struct rd *h) /*输出读者信息*/ struct rd *p; p=h; printf(“nt 读者编号 t 读者姓名 t 所借书号 n“); while(p!=null) printf(“ %10st %10s %10sn“,p-reader_num,p- reader_name,p-reader_book_num); p=p-next; getch(); void form_borrow_book() /*借书菜单界面*/ char ch; char book_num11,reader_num11; printf(“n 图书借阅功能模块,请选择相应的功能代码: n“); printf(“ 0:返回到主菜单n“); printf(“ 1:图书借阅n“); do printf(“nn 请选择相应的功能代码:“); scanf(“%c“, fflush(stdin); while(ch!=0 switch(ch) case 0:m_form();break; case 1: printf(“ n 请输入读者编号与所借书编号:(以空格分隔)“); scanf(“%s%s“,reader_num,book_num); fflush(stdin); borrow_book(reader_num,book_num);/*调用借书函数,执行借书功能 */ 图书管理系统 20 form_borrow_book();/*借书完成后,程序返回到借书菜单*/ default:printf(“errorn“);exit(0); void borrow_book(char reader_num,char book_num) /*输入读者编号,和需要借阅的书的编号,执行借书功能*/ struct bk *book_p; struct rd *reader_p; book_p=h_book; while(book_p!=null if(book_p=null) printf(“nt 此编号对应的图书不存在!n“); form_borrow_book(); reader_p=h_reader; while(reader_p!=null if(reader_p=null) printf(“nt 此编号对应的读者不存在!n“); form_borrow_book(); else if(strcmp(reader_p-reader_book_num,“0“)!=0) printf(“nt 已达到最大借阅数,不能再借书!n“); form_borrow_book(); else book_p-book_xc=book_p-book_xc-1;/*借书完成后,修改现存量*/ strcpy(reader_p-reader_book_num,book_p-book_num);/*修改读者的借 阅信息*/ save();/*将修改后的信息保存到文件中*/ load_data(); /*读入新文件中的数据*/ form_borrow_book();/*程序执行完毕后,返回到借书菜单界面*/ void form_return_book() /*还书菜单*/ char ch; char book_num11,reader_num11; printf(“n 归还图书功能模块,请选择相应的功能代码: n“); printf(“ 0:返回到主菜单n“); printf(“ 1:归还图书n“); do 图书管理系统 21 printf(“nn 请选择相应的功能代码:“); scanf(“%c“, fflush(stdin); while(ch!=0 switch(ch) case 0:m_form();break; case 1: printf(“ n 请输入读者编号与所还书编号:(以空格分隔)“); scanf(“%s%s“,reader_num,book_num); fflush(stdin); return_book(reader_num,book_num);/*调用还书函数*/ form_return_book(); default:printf(“errorn“);exit(0); void return_book(char reader_num,char book_num) /*输入读者编号和所还书编号执行还书*/ struct bk *book_p; struct rd *reader_p; book_p=h_book; while(book_p!=null if(book_p=null) printf(“nt 此编号对应的图书不存在!n“); form_return_book(); reader_p=h_reader; while(reader_p!=null if(reader_p=null) printf(“nt 此编号对应的读者不存在!n“); form_return_book(); else if(strcmp(reader_p-reader_book_num,book_num)!=0) printf(“nt 读者没有借阅此书n“); form_return_book(); else book_p-book_xc=book_p-book_xc+1;/*还书后,修改图书库存量*/ strcpy(reader_p-reader_book_num,“0“);/*还书后,修改读者借阅信息*/ save();/*保存到文件*/ load_data(); /*读入文件中的数据*/ 图书管理系统 22 form_return_book(); void init_reader() /*系统第一次运行时,初始化 3 位读者信息,从键盘读入*/ file *fp; reader ra3; int i; printf(“n 系统即将进行读者

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论