数据结构图书管理系统课程设计报告

合集下载

数据结构课程设计报告图书管理系统

数据结构课程设计报告图书管理系统

课程设计报告课设课题:课程设计——图书管理系统学院:电子信息学院专业:网络工程姓名:班级学号: BX1213指导教师:张艳报告日期: 2013.12.12目录一、需求分析 (1)1.1 系统开发背景和意义 (1)1.2 设计题目与要求 (1)二、总体结构设计 (2)三、各子模块设计 (4)3.1 初始化图书信息 (4)3.2 系统主界面 (4)3.3 采编入库 (5)3.4 输入读者信息 (5)3.5 借阅图书 (6)3.6 归还图书 (7)3.7 查询图书信息 (9)3.8 查询读者信息 (9)四、程序设计调试情况分析 (10)五、测试结果 (11)5.1 欢迎界面 (11)5.2 初始化图书信息 (11)5.3 系统主界面 (11)5.4 采编入库 (11)5.5 输入读者信息 (12)5.6 借阅图书 (12)5.7 归还图书 (12)5.8 查询图书信息 (12)5.9 查询读者信息 (13)5.10 保存文件,退出 (13)六、总结 (13)七、参考文献 (15)八、附录(源代码) (16)一、需求分析1.1 系统开发背景和意义图书管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高图书管理的效率。

因此,开发一套能够为用户提供充足的信息和快捷的查询手段的图书管理系统,将是非常必要的,也是十分及时的。

图书管理系统需要满足来自图书馆工作人员、普通用户和借阅者三方面人员的需求。

图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时还可通过图书编号等查询相应的借阅情况;普通用户的需求是查询图书馆所存的图书的相关情况;图书借阅者的需求是查看自己的相关信息及查询自己的借阅情况。

1.2 设计题目与要求【问题描述】设计一个计算机管理系统完成图书管理基本业务。

【基本要求】1) 每种书的登记内容包括书号、书名、着作者、现存量和库存量;2) 对书号建立索引表(线性表)以提高查找效率;3) 系统主要功能如下:*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;*借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;*归还:注销对借阅者的登记,改变该书的现存量。

图书管理系统数据结构课设报告

图书管理系统数据结构课设报告

《数据结构》课程设计报告书题目:图书管理系统系别:计算机科学与应用学号:学生姓名:指导教师:完成日期:目录图书管理系统 (3)1:需求分析 (3)2:概要设计 (3)3:详细设计 (4)3.1:线性表 (4)3.2:初始化 (5)3.3:显示所有信息 (5)3.4:添加信息 (6)3.5:删除信息 (7)3.6:查询信息 (8)4:调试分析 (10)5:测试结果 (11)6:总结 (13)指导教师评语: (14)图书管理系统1:需求分析1)程序的输入:只需按系统提示输入整型数字或英文字母即可。

每次数据的输入均以回车符作为结束标志。

2)程序的输出:每一项数据输出均有汉字的提示,输出格式均为整型或字符串。

3)程序的系统功能:(1)图书库系统管理;(2)借阅者信息的管理;(3)根据需要提供对图书所需的查询方式。

2:概要设计本程序的流程图如下:开始输入r/b 读者管理图书管理显示所有读者信息输入1/2/3/4/5增加读者删除读者查询读者信息退出r 1 2534输入1/2/3/4/5增加图书删除图书查询图书信息退出124显示所有读者信息b结束继续吗ynn继续吗5y3图2-1 图书管理系统流程图3:详细设计采用microsoft visual c++作为开发工具,用结构体定义线性表,对所要处理的学生信息和图书信息进行存储,分别调用各个功能函数来处理。

3.1:线性表信息的存储用线性表实现,具体用结构体来定义,图书信息包含的变量有:图书编号,图书名,作者,出版社,出版时间,具体实现如下:struct book{char booknum[8];char bookname[15];char author[12];char PubHouse[15];char PubTime[11];}bookinfor[NUM];读者信息包含的变量有:读者编号,读者名,借书数量具体实现如下:struct reader{char readnum[8];char readname[15];char booknu[12];}readinfor[NUM1];3.2:初始化本函数用于初始化必须的图书管理数据,通过对1-5数字选择进行操作,分别执行不同的函数,具体实现如下:char Initialization1()/*界面初始化*/{char ch;printf(" ********Library Management System********\n1.Show all the book information\n2.Add book information\n3.Delete book information\n4.Search book information\n5.Exit\nPlease select:");do{ch=getchar();if(ch>='1'&&ch<='5'){printf("%c\n",ch);getchar();return ch;}}while(1);3.3:显示所有信息显示所有信息,打开bookinfo.txt文件,逐个读文件,关闭文件,具体实现如下:void showall()/*显示所有*/{int i=0;FILE *fp;system("cls");if((fp=fopen("C:\\bookinfo.txt","r"))==NULL){printf("ERROR:cannot open file\n");getchar();return;}printf("booknum bookname author PubHouse Pubtime\n");while(!feof(fp)){fread(&bookinfor[i],sizeof(struct book),1,fp);printf("%-8s %-15s %-12s %-15s %-11s\n",bookinfor[i].booknum,bookinfor[i].bookname, bookinfor[i].author,bookinfor[i].PubHouse,bookinfor[i].PubTime);i++;if(!(i%20)){printf("Press any key to continue...");getchar();}}fclose(fp);printf("Press any key to return");getchar();return;3.4:添加信息本函数可以将信息写到文件中,首先逐个输入记录中的数据项,然后打开文件,写进文件。

c语言课程设计报告图书管理系统

c语言课程设计报告图书管理系统

c语言课程设计报告图书管理系统一、教学目标本课程的目标是使学生掌握C语言的基本语法,熟悉图书管理系统的开发流程,培养学生运用C语言解决实际问题的能力。

具体目标如下:1.知识目标:–掌握C语言的基本语法和数据结构。

–理解图书管理系统的需求和设计原理。

2.技能目标:–能够使用C语言编写简单的程序。

–学会使用C语言实现图书管理系统的功能。

3.情感态度价值观目标:–培养学生的团队协作意识和沟通能力。

–增强学生对计算机科学和编程的兴趣和热情。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构以及图书管理系统的开发。

具体安排如下:1.C语言的基本语法:–变量和数据类型–运算符和表达式–函数和数组–指针和引用2.数据结构:3.图书管理系统的开发:–系统测试和优化三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。

具体方法如下:1.讲授法:用于讲解C语言的基本语法和数据结构。

2.案例分析法:通过分析具体的图书管理系统案例,使学生更好地理解系统设计和功能实现。

3.实验法:让学生动手编写程序,巩固所学知识,提高实际操作能力。

4.小组讨论法:鼓励学生分组讨论,培养团队协作意识和沟通能力。

四、教学资源本课程所需的教学资源包括:1.教材:《C语言程序设计》2.参考书:《C Primer Plus》、《数据结构与算法分析》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络设备以上教学资源将用于支持教学内容和教学方法的实施,丰富学生的学习体验。

五、教学评估本课程的评估方式包括平时表现、作业、考试等。

评估方式应客观、公正,能够全面反映学生的学习成果。

具体安排如下:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的20%。

2.作业:包括编程练习和理论作业,占总评的30%。

3.考试:包括期中和期末考试,占总评的50%。

期中和期末考试将涵盖C语言基本语法、数据结构以及图书管理系统的开发内容。

图书管理系统 数据库课程设计报告

图书管理系统  数据库课程设计报告

目录1、开发背景 .................................................................................................. 错误!未定义书签。

2、系统描述 (2)3、数据分析 (2)3.1、数据流图 (3)3.2、数据字典 (3)4、概念模型设计 (4)5. 逻辑模型设计及优化 (4)6. 物理设计和实施 ....................................................................................... 错误!未定义书签。

7、应用程序设计(前台) .......................................................................... 错误!未定义书签。

8、课程设计心得体会 ................................................................................ 错误!未定义书签。

1 参考文献 ...................................................................................................... 错误!未定义书签。

21、开发背景90年代中期,由于Internet 的迅速普及,使Intranet成为Internet技术在企业管理信息系统中的应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体的信息技术综合体,它打破了时间和地域的界限,使信息交流变得快捷、准确,为建立现代企业管理信息系统提供了充足的条件。

企业信息管理系统在此基础上延伸、扩展,使之上下、内外全面贯通。

引入Internet后,形成了新型的浏览器/服务器(Browser/Server)结构,而传统的客户机/服务器(Client/Server)结构在这方面就远不及B/S结构。

数据结构课程设计图书管理系统实验报告

数据结构课程设计图书管理系统实验报告

数据结构课程设计课程设计实验报告院(系、部): 信息工程学院 姓 名: 计141范文虎指导教师签名:2016年 6月29日·北京Beijing Institute of PetrochemicalTechnology目录一.设计题目····································二.设计目的····································三.实验分工····································四.算法思想分析································五.算法描述实现································1.数据结构类型定义2.算法流程图3.程序代码六.运行结果····································七.结论········································一.设计题目图书管理基本业务模拟图书管理一般包括图书采编、图书编目、图书查询及图书流通(借、还书)等基本业务。

数据结构课程设计——图书借阅管理系统

数据结构课程设计——图书借阅管理系统

数据结构课程设计——图书借阅管理系统图书馆管理系统目录一、问题描述:二、系统需求分析:1 功能要求:2 技术要求:3 方案分析:三、概要设计:四、详细设计与程序代码:五、运行结果与测试:六、设计体会与总结一、问题描述图书借阅管理系统是一个学校不可缺少的部分,它的内容对于学校的管理者和读者来说都至关重要,直接关系到图书的借用率,所以开发图书管理系统能够为管理员和读者提供充足的信息和快捷的查询手段。

编写程序系统主要实现图书馆的增加图书、查询图书、删除图书、借阅图书、还书;增加会员、查询会员、删除会员、借书信息、到期书催还等智能化管理过程。

图书管理者只需略懂电脑知识就可以简易的操作该图书借阅管理系统。

二、系统需求分析图书借阅管理系统主要分为两大功能:(1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书到期书催还);(2)会员管理(增加会员、查询会员、删除会员、借书信息);要完成这个题目,主要是建立解决图书和会员的信息的存储,解决的方法是建立两个带头结点的单链表,分别用于存储图书和会员。

解决了这个问题后就是如何建立这两个链表的联系了,解决的方法是在图书结点中设一个借书人编号,在会员结点中设一个数组用于存会员借的书。

解决了这两个问题,剩下的工作就简单了。

只需按链表的操作就可以了。

1功能要求在图书借阅管理程序中须实现以下功能:(1)图书修改功能:能对图书借阅系统存储的信息进行修改。

提供两种修改方式,如按照图书编号修改、按照书名修改。

图书编号是图书记录的自然顺序编号。

(2)图书删除功能:能对图书借阅系统的图书信息进行删除。

删除时以记录为单位,能一次删除一条记录。

(3)借书功能:能对借出的图书作记录信息,能一次借出一本图书。

(4)还书功能:能将被借出的图书信息还原,能一次借出一本图书。

(5)保存功能:能将记录保存在任何自定义的文件中,如保存在:c:\\books 、c:\\lenders。

(6)通信录管理结束后,能够正常退出图书借阅管理程序。

图书管理系统数据结构课程设计报告

图书管理系统数据结构课程设计报告

图书管理系统数据结构课程设计报告目录1课题1——图书管理系统.................................. 错误!未定义书签。

1.1设计要求 (2)1.2创作的思路 (3)1.3创作和调试 (4)1.4心得体会 (9)附录 (10)1.设计要求小型图书购销管理系统2 / 171、需要处理的基础数据✧图书资料基本信息:图书编号、书名、作者、出版社、出版日期、定价等。

✧图书库存信息:图书编号、书名、作者、库存数量等。

✧图书采购信息:采购单号、图书编号、采购日期、采购数量、单价、采购金额等。

✧图书销售信息:销售单号、图书编号、销售日期、销售数量、单价、销售金额等。

2、系统的基本功能✧图书基本信息的录入和查询✧图书采购(1)输入要采购的图书编号,自动从图书基本资料中把相关信息提取出来。

(2)根据采购数量和单价,自动计算采购金额。

(3)根据采购数量,增加图书库存量。

✧图书销售(1)输入要采购的图书编号(或书名)、销售数量,从图书库存信息中查找是否合法,合法时进行销售,否则报错。

(2)根据采购数量和单价,自动计算销售金额。

(3)销售时,从库存中减去相应的数量。

✧利润计算:根据全部的采购金额和销售金额,计算书店的利润情况。

2.思路:3 / 171.基本模块:根据要求,应该有三个封装的类,包括:书籍信息,采购信息和销售信息。

其中以书籍信息为核心,在书籍信息中建立关于其它两类的友元函数,达到信息交流的目的。

2.功能实现:要求实现的功能有:对于书籍信息:录入,查询,采购和销售导致存量的改变对于采购信息:实施采购,查询采购对于销售信息:实施销售(需要判断是否合法),查询销售总利润的计算所以草图如下考虑到购买和销售时要输入书籍号,并且更改基本库存信息。

不如将销售和采购函数作为友元函数,或许能减少函数个数。

4 / 173.建立程序和调试改错因为是在模块的建设中边建设边调试,所以容易发现错误原因。

开始先建设基本类:Book,公有成员为:public:void set_book();录入功能函数void display_book();反馈功能函数void buy_book(Buy&);//此项在Buy类建立后再输入,为采购函数void sale_book(Sale&);//此项在Sale类建立后再输入,为销售函数int bianhao;书籍编号(设为公有是为了方便进行对比时调用,不然或许要一个公有函数来实现“查询是否有此书”的功能,if(i==b[i1].bianhao)可能比写函数更加简短。

数据结构课程设计图书管理系统实验报告

数据结构课程设计图书管理系统实验报告

数据结构课程设计课程设计实验报告院(系、部): 信息工程学院 姓 名: 计141范文虎指导教师签名:2016年 6月29日·北京Beijing Institute of PetrochemicalTechnology目录一.设计题目····································二.设计目的····································三.实验分工····································四.算法思想分析································五.算法描述实现································1.数据结构类型定义2.算法流程图3.程序代码六.运行结果····································七.结论········································一.设计题目图书管理基本业务模拟图书管理一般包括图书采编、图书编目、图书查询及图书流通(借、还书)等基本业务。

数据库系统原理课程设计报告-图书管理系统

数据库系统原理课程设计报告-图书管理系统

数据库系统原理课程设计报告设计题目:图书管理系统班级:学号:姓名:指导教师:完成日期:成绩:摘要在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。

对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,往往是投入了大量的人力和财力却得不到搞笑的管理效率。

为了便于图书资料的管理需要有效的图书管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效,智能化管理,达到提高图书借阅信息管理效率的目的。

采用数据库技术生成的的图书借阅管理系统将会极大的方便借阅者并简化图书管理人员和工作人员的劳动,使工作人员从繁忙,复杂的工作进入到一个简单,高效的工作中。

基于这个问题,开发了大学图书管理系统。

目录第一章系统概述 (4)第二章系统数据库设计部分 (5)2.1 需求分析 (5)2.1.1 需求描述 (5)2.1.2 数据流图 (6)2.1.3 数据词典 (8)2.2 数据库概念结构设计 (9)2.2.1 E-R图 (9)2.3 数据库逻辑结构设计 (10)2.4 数据库物理结构设计 (10)第三章系统设计 (12)第四章总结 (15)主要参考文献 (16)附录一.................................................................................................................................................错误!未定义书签。

第一章系统概述《数据库原理及应用》课程的学习,其主要的目标是能利用课程中学习到的数据库知识与技术较好地开发设计出数据库应用系统,去解决各行各业信息化处理的要求。

本实验主要在于巩固学生对数据库的基本原理和基础理论的理解,掌握数据库应用系统的设计开发的基本方法,进一步提高学生的综合运用所学的知识能力。

图书管理系统-课程设计报告

图书管理系统-课程设计报告

《数据库系统概论》课程设计报告题目:图书管理系统专业:网络工程班级:姓名:指导教师:成绩:计算机学院2017年12月8日目录1设计内容及要求1.1 背景1.2 设计要求2概要设计2.1 部分E-R图2.2 总体E-R图3逻辑结构设计3.1表结构介绍4设计结果与分析4.1系统开发平台4.2用户界面的实现5 结束语5.1课程设计心得6 参考文献1、设计内容及要求1.1 背景今天,计算机的价格已经十分低廉,性能却有了长足的进步。

它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。

(1)基本思路根据实际情况,我们使用原型法(Rapid Prototyping)即以少量代价快速地构造一个可执行的软件系统模型。

使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。

此时模块也发展成为最终产品了。

我作为一个网络工程专业的本科生,希望可以在这方面有所贡献。

改革的总设计师邓小平同志曾经说过:“科学技术是第一生产力”,我希望能用我这几年的所学编制出一个实用的应用程序来帮助这些学校图书馆进行更有效的图书管理。

归纳起来,好处大约有以下几点:(1)可以存储所有的图书档案,安全、高效;(2)只需一到二名图书录入员即可操作系统,节省大量人力;(3)可以迅速查到所需信息。

1.2 设计要求借书------根据您提供的图书条形码和图书编号确认图书,再据读者的编号确认读者后把此书借给这位读者。

还书------根据您提供的图书条形码和图书编号确认图书,再据读者的编号确认读者后把此书归还。

图书管理------对所有图书的资料进行添加,修改和删除等操作。

读者管理------对所有读者的资料进行添加,修改和删除等操作。

图书管理系统的设计数据库课程设计报告

图书管理系统的设计数据库课程设计报告

课程设计任务书一、设计题目图书管理系统的设计二、设计概述通过对典型的图书系统的订购、借阅、维护等业务流程进行分析,完成具有图书管理、用户管理等相关功能的数据库管理应用系统。

三、设计要求1、完成图书信息的维护2、完成按名称或作者条件的图书查找3、完成图书订购、入库功能4、实现借阅功能5、完成读者、操作员的管理四、进度安排目录1、设计概述31.1 设计目的31.2 设计容31.3 设计方法与步骤32.系统需求分析42.1系统需求42.1.1 文字描述42.1.2图形描述42.2数据流图:42.3数据字典:62.3.1数据项62.4数据结构82.5数据流92.6数据存储102.7处理过程113.概念模型设计133.1 E-R图133.1.1 分E-R图133.1.2 总E-R图164.逻辑结构设计164.1E-R图转换为关系模式164.2关系模式的优化174.3设计用户子模式195.数据库的物理设计205.1确定数据的存储结构205.2确定数据的存放位置205.3确定系统配置206.数据库的实施与维护216.1数据的载入和应用程序的调试216.1.1 数据表的建立语句21(1)图书信息表的建立21(2)图书类型表的建立21(3)图书借阅表的建立22(4)图书操作表的建立22(5)订购单表的建立22(6)读者信息表的建立23(7)图书库存表的建立236.1.2数据库关系图246.1.3应用程序的调试246.2数据库的试运行446.3数据库的运行与维护447.总结451、设计概述1.1 设计目的目前社会上信息管理系统发展飞速,为了使书店管理更加规化、程序化、科学化,我们设计了图书管理系统。

本系统为管理者提供方便的管理,主要子模块有图书管理、读者管理、用户管理等,可实现日常图书进货、借阅流程,最终达到提高工作效率的目的。

读者可以进入图书查询界面通过图书名称、图书作者等方式查询图书,查到满意的图书后可点击借阅。

图书馆管理系统课程设计报告

图书馆管理系统课程设计报告

图书馆管理系统设计报告2008.09.05一、实习题目:图书馆管理系统二、实习工具:前台开发工具选择 Visual Basic 6.0;后台数据库选择 Access;中间层采用 ADO 数据访问技术,将对数据库的操作以类的形式封装。

三、实习目的:通过建立一个图书馆管理系统来管理图书。

掌握 Visual Basic 的语言特点和编程技巧,熟悉控件的属性、事件和方法。

掌握用 ADO 控件访问数据库的技术,实现在数据库中的添加、查询和删除等操作。

四、实习内容:1)需求分析:在进行一个项目的设计之前,先要进行必要的需求分析。

图书馆信息系统要求完成如下基本功能:➢可以实现图书的类别管理和图书的信息管理。

对图书的各种信息的查询,包括逐个浏览,以及对图书信息的增加、删除和修改操作。

另外,可以根据输入的信息来检索某个图书的信息。

➢可以实现读者的类别管理和读者的信息管理。

对读者的各种信息的查询,包括逐个浏览,以及对读者信息的增加、删除和修改操作。

另外,可以根据输入的信息来检索某个读者的信息。

➢可以实现图书借阅管理。

包括借书信息、还书信息以及相关信息的查询。

➢可以实现对系统管理。

2)结构设计:根据上面的需求分析,开发设计不同的窗体系统,每一个窗体实现不同的功能,可以设计下面的几个模块。

➢图书管理模块:用来实现图书类别和信息管理。

➢读者管理模块:用来实现读者类别和信息管理。

➢图书借阅管理模块:用来实现借书和还书管理。

➢系统管理模块:用来实现用户的增加和修改等操作。

系统功能模块图如下:3)数据库设计:这里的数据库采用,用 ADO 作为连接数据对象。

设计数据库系统时应该首先充分了解用户各个方面的需求, 包括现有的以及将来 可能增加的需求。

数据库设计一般包括如下几个步骤: ➢ 数据库需要分析。

➢ 数据库概念结构设计。

➢ 数据库逻辑结构设计。

数据库需求分析更 改 密 码删除读 者 类 别添加管 理 员添加 读 者 类 别查询 读 者 类 别修改 读 者 类 别添加 读 者 信 息查询 还 书 信 息添加 还 书 信 息查询 借 书 信 息删除 借 书 信 息添加 借 书 信 息查询 图 书 信 息修 改 图 书 信 息添 加 图 书 信 息修 改 图 书 类 别删 除 图 书 类 别添 加 图 书 类 别图书管理图书 借阅 管理读者管理系统管理读者 信 息 管 理读者 类 别 管 理图 书 信 息 管 理图 书 类 别 管 理图书馆管理系统借书 管 理还书 管 理用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入,收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后而后具体设计打下基础。

数据结构图书管理系统实验报告

数据结构图书管理系统实验报告

竭诚为您提供优质文档/双击可除数据结构图书管理系统实验报告篇一:数据结构-图书管理系统实验报告数据结构课程设计报告课程名称_________题目名称学生学院专业班级学号学生姓名指导教师20XX年7月8日一、需求分析1.图书管理系统中图书管理模块包括图书类型定义:书号、现存量、总存量,出版时间为整型,定价为浮点型,书名、著者名为字符型,借阅指针、预约指针为读者类型;读者类型定义:证号为整型、姓名为字符型,另外借阅类型和预约类型组合成其中的共用体类型。

b树(2-3树)类型定义:关键字个数和关键字数组为整型、另外还有指向双亲的指针、指向子树的指针、记录单元指针;b树查找结果类型定义:节点指针、关键字序号和查找标志变量为整型。

2.演示程序以用户和计算机的对话方式进行,在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令,相应的输入数据和运算结果显示在后面。

该演示系统,没有使用文件,全部数据放在内存存放。

四项基本业务都以书号为关键字进行的,采用了b树(2-3树)对书号建立索引,以提高效率。

3.图书管理系统实现功能:①采编入库:新书购入,将书号、书名、著者、册数、出版时间添加入图书账目中去,如果这种书在帐中已有,则只将总库存量增加,每新增一个书号则以凹入表的形式显示b树现状。

②清除库存:实现某本书的全部信息删除操作,每清除一个书号则已以凹入表的形式显示b树现状。

③图书借阅:如果书的库存量大于零时则执行出借,登记借阅者的图书证号和姓名,系统自动抓取当前借阅时间和计算归还时间。

④图书预约:如果某书库存为零,则记录预约者姓名和证号,系统自动抓取当前预约时间和取书时间。

⑤图书归还:注销借阅者信息,并改变该书的现存量。

⑥作者专区:输入作者名字,系统将查找相应作者全部著作并显示出来。

⑦图书信息:可以根据书号查阅此书基本信息、借阅信息和预约信息,亦可以查找全部图书基本信息。

二、概要设计1.抽象数据类型b树定义:ADTbTree{数据对象:D是具有相同特性的数据元素的集合。

数据库课程设计图书管理系统报告

数据库课程设计图书管理系统报告

图书管理系统一.系统概论1.1系统开发背景和意义图书馆是信息交换和资源流通的重要媒介,人工方式管理图书资料方式存在许多缺点,如效率低、保密性差,且较为繁琐。

并且随着图书数量的增加,随之增加了图书资料管理者的工作量。

这将给图书信息的增加、查找、更新和维护带来很多困难。

图书馆的信息化管理将大大提高图书资源的利用和信息的交换速度。

开发的图书管理系统是通过将借阅信息以数据库的形式由网络传输来完成各用户的借阅要求,打破传统的人工管理模式,极大的方便了用户(读者)和管理员,节约了时间和空间,实现图书管理自动化,使图书资源得到充分的利用。

1.2 系统开发环境本系统为图书管理系统,采用软件作为系统开发工具, 2008作为系统数据库工具。

二.系统需求分析2.1 需求分析信息要求根据系统功能需求,将要记录的信息分类:1.图书信息:图书名,图书号,单价,作者,出版社,入库时间,借阅状态2.用户信息:,用户名,证件号,密码3.管理员信息:,管理员名称,证件号,密码4.借书信息:图书名,图书号,作者,证件号,借阅时间,还书时间5.用户(读者)借阅图书信息:,用户名,证件号,图书名,图书号,借阅时间处理要求本图书管理系统主要应该具有以下功能模块:A.普通读者用户端图书查询,根据索要查找的图书书名进行查询。

图书清单,可以对已经入库的所有图书进行浏览。

图书借阅,根据已经有的可以借阅的图书进行借阅。

借阅图书浏览,可以查看图书系统中已借出的图书清单。

修改密码,读者可以对自己的密码进行修改。

登录,可以登录或者注册新的用户。

B.管理员1(注册的管理员)图书查询,根据索要查找的图书书名进行查询。

图书清单,可以对已经入库的所有图书进行浏览。

图书入库,管理员可以将新进的图书入库。

图书删除,管理员可以删除不要的的图书。

修改密码,管理员可以修改自身密码。

B.管理员2(数据库定义的的管理员)图书查询,根据索要查找的图书书名进行查询。

图书清单,可以对已经入库的所有图书进行浏览。

数据结构_图书馆管理系统实验报告

数据结构_图书馆管理系统实验报告

实验报告题目:图书管理一,需求分析1.每种书的信息包括了书号书名,作者显存量和总库存等。

2.要实现的主要操作有,在B-树上的插入删除操作,并且在这些B-树的操作的基础上的图书馆借阅归还入库清除等操作。

3.每插入或删除一个关键字后就要显示B-树的状态。

也可以显示图书的相关借阅的信息。

4.借阅的信息链接在相应的那种数的记录之后。

2.两种抽象数据类型:Btree和Library。

3. 测试数据入库书号:35,16,18,70,5,50,22,60,13,17,12,45,25,42,15然后清除:45,50,22,42,90二.概要设计ADT BTree{数据对象:D={ai |ai E BTNode,I=2,3,……n,n>=0}数据关系:R1={<ai-1,ai>|ai-1,ai E D, I=2,3……N}基本操作:void InitBTree(BTree &T);int Search(BTree p,int k);Result SearchBTree(BTree T,int k);void split(BTree &q,int s,BTree &ap);void Insert(BTree &q,int i,KeyType x,BTree ap);void NewRoot(BTree &T,BTree q,KeyType x,BTree ap);Status InsertBTree(BTree &T,KeyType k,BTree q,int i);void FindSmallest(BTree p,BTree &q);int Parent(BTree p);void RightBrother(BTree p,BTree &right);void LeftBrother(BTree p,BTree &left);void LeftMove(BTree &p,int loc);Status DeleteBTree(BTree &T,int k);void PrintBTree(BTree T);}ADT Library{数据对象:D={ai |ai E RecordI=2,3,……n,n>=0}数据关系:R1={<ai-1,ai>|ai-1,ai E D, I=2,3……N}基本操作:void GetInformation(Record &book);void PrintBookInfomation(Record *book);void Procurement(BTree &T);void DeleteBook(BTree &T,int k);void Lending(BTree &T,int k,char librarynum[10],char data[10]); void Return(BTree &T,int k,char *librarynum);}3.程序的几个模块1)主程序模块void main(){接受命令初始化处理命令}2)B-树模块-------实现B-树的抽象数据类型3)图书馆模块-------实现图书馆的抽象数据类型调用关系如下:主程序模块图书馆模块-三.详细设计(在源代码上通过注释的方式来说明)1、基本结构typedef struct{int booknum;char name[20];char writer[20];int total;int current;char librarynum[MAX][MAX];char returndate[MAX][MAX];}Record;typedef struct{int k;Record *recptr;}KeyType;typedef struct BTNode{int keynum;struct BTNode *parent;KeyType *key[M+1];struct BTNode *ptr[M+1];}BTNode,*BTree;typedef struct{BTNode *pt;int i;int tag;}Result;2、源代码1)主函数#include "head.h"#include "head.h"void main(){BTree T;int order=0,booknum;char returndate[10],librarynum[10];Result result;InitBTree(T);printf("\n******************************************************************* *****\n");printf("Welcome to the library system!\n");while(order!=6){printf("\n******************************************************************* *****\n");printf("请选择服务: 1.采编入库 2.清除库存 3.借阅 4.归还 5.显示 6.退出.\n");scanf("%d",&order);switch(order){case 1:Procurement(T);PrintBTree(T);break;case 2:printf("请输入要删除的书的编号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、设计题目与要求【问题描述】设计一个计算机管理系统完成图书管理基本业务。

【基本要求】(1) 每种书的登记内容包括书号、书名、著作者、现存量和库存量;(2) 对书号建立索引表(线性表)以提高查找效率;(3) 系统主要功能如下:①采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;②借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;③归还:注销对借阅者的登记,改变该书的现存量。

二、小组分工小组成员:小组分工:图书初始化、新书入库、登记读者信息、文件保存借书系统、还书系统图书信息查询、读者信息查询三、需求分析图书管理系统共需要八个模块,分别是1图书初始化、2新书入库、3添加读者信息、4借书模块、5还书模块、6查询图书信息、7查询读者信息、8退出。

我负责其中的四个模块,如下所示:1)图书初始化输入图书的一些信息,编号、作者、书名、数量,使有一定的库存。

2)新书入库新书采编入库,输入编号后如果有次数只需输入数量,没有则继续输入书名、作者、数量。

3)添加读者信息读者信息初始化,输入读书证号和姓名,只有输入书证号和姓名才能进行借书还书4)退出和文件保存退出读书管理系统并保存读者和图书信息。

四、概要设计图书信息和读者信息都采用结构体类型保存。

图书信息里面包括:图书编号、图书名称、作者、现有量、库存量、指向下一节点的指针。

读者信息里面包括:读者编号、读者姓名、借书数量、可借图书数量、指向下一节点的指针。

所有图书和读者都分别以链表的形式存储,并以编号为唯一主键。

采用链表形式便于数据的添加与删改。

主要的操作为:系统初始化,图书入库,读者信息登记,图书信息和读者信息文件的保存。

五、详细设计数据结构的定义:图书信息:typedef struct book{char book_num[10];char book_name[20];char book_writer[10];int book_xy;int book_kc;struct book *next;}BK;读者信息:typedef struct reader{char reader_num[10];char reader_name[10];int right;BO borrow[Max];struct reader *next;}RD;算法描述:进入系统后首先进行图书初始化,输入图书的信息。

1)初始化先要输入读者信息。

2)采编入库否3)输入读者信息是5) 退出和文件保存六、程序源代码#include<stdio.h>#include <string.h>#include <stdlib.h>#include<conio.h>#define Max 4typedef struct book{char book_num[10];char book_name[20];char book_writer[10];int book_xy; //现有int book_kc; //库存struct book *next;}BK;typedef struct borrow{char borrow_book_num[10]; char limit_date[10];}BO;typedef struct reader{char reader_num[10];char reader_name[10];int right;BO borrow[Max];struct reader *next;}RD;BK *h_book;RD *h_reader;void Login();int Menu();void Init();void Init_book();void Menu_select();void Insert_New_Book(); void Find_Book();void add_reader();void Save();void Save_Book();void Save_Reader();void Load();void Load_Reader();void Load_Book();void Login(){system("cls");printf("\n\n\n\t\t***************************************\n"); printf("\n\n\n\t\t\t欢迎使用图书管理系统\n");printf("\n\n\n\t\t***************************************\n"); printf("\n\n\n\t\t 按任意键进入系统");getch(); system("cls");}int Menu() /*主菜单*/{ int dm;printf("\n\t\t图书管理系统主菜单\n");printf("=================================================\n"); printf("*\t0----退出系统\n");printf("*\t1----采编入库\n");printf("*\t2----登记读者\n");printf("=================================================\n"); printf("请选择相应的代码:");for(;;){ scanf("%d",&dm); //dm输入的数字if(dm<0||dm>6)printf("\n错误!请重新输入:");else break;}return dm;}void Menu_select()/*主菜单选择函数*/{for(;;){switch(Menu()) /*功能选择*/{ case 0:system("cls");Save();printf("\n\n\t文件保存成功!\n");printf("\n\n\t欢迎下次使用本系统!\n");getch();exit(0);case 1:Insert_New_Book();break;case 2:add_reader();break;default:printf("\n错误!");exit(0);}}}void Init() /*初始化*/{BK *p0;printf("\n图书初始化开始,请输入图书信息\n包括编号.书名.数量\n");p0=(BK*)malloc(sizeof(BK));h_book=p0;printf("\n请输入图书信息:\n");printf("图书编号:"); /*输入图书编号(唯一)*/scanf("%s",p0->book_num);printf("图书名称:"); /*输入图书名称*/scanf("%s",p0->book_name);printf("图书作者:"); /*输入图书作者*/scanf("%s",p0->book_writer);printf("图书数量:"); /*输入图书数量*/scanf("%d",&p0->book_kc);p0->book_xy=p0->book_kc; /*开始时图书现有量和库存量相等*/p0->next=NULL;printf("\n图书信息初始化完毕!按任意键继续下一步操作\n");getch();system("cls");}void Insert_New_Book()/*新书入库*/{BK *p,*p0,*p1;p=p1=h_book;printf("\n新书入库模块\n");printf("\n请输入新书信息\n包括书号.书名.数量\n");p0=(BK *)malloc(sizeof(BK));printf("图书编号:");scanf("%s",p0->book_num);while(strcmp(p0->book_num,p1->book_num)!=0&&p1->next!=NULL)p1=p1->next;if(strcmp(p0->book_num,p1->book_num)==0) /*此处分两种情况,若图书编号存在,则直接进库,只须输入书的数量*/{printf("\n此编号图书已存在!!直接入库!\n");printf("图书数量:");scanf("%d",&p0->book_kc);p1->book_kc+=p0->book_kc;p1->book_xy+=p0->book_kc;}else/*若不存在,则需要输入其他的信息,然后在进行插入操作*/{printf("图书名称:");scanf("%s",p0->book_name);printf("图书作者:");scanf("%s",p0->book_writer);printf("图书数量:");scanf("%d",&p0->book_kc);//库存数量while(p->next){ p=p->next; }if(h_book==NULL) h_book=p0; /*此处分两种情况,链表中没有数据,head直接指向p0处*/else p->next=p0; /*此处分两种情况,链表中有数据,链表中最后元素的next指向p0处*/p0->next=NULL;p0->book_xy=p0->book_kc;}printf("\n新书入库完毕!按任意键继续下一步操作\n");getch();system("cls");}void add_reader()/*添加读者*/{ RD *p0,*p,*p1;int i;p=h_reader;printf("\n读者初始化开始,请输入读者信息.\n包括书证号.姓名..\n");if (p==NULL){p0=(RD*)malloc(sizeof(RD)); /*申请新结点存储空间*/h_reader=p0;p=h_reader;printf("读者书证号:");scanf("%s",p0->reader_num);printf("读者姓名:");scanf("%s",p0->reader_name);p0->right=0;for(i=0;i<Max;i++){strcpy(p0->borrow[i].borrow_book_num,"0"); /*所借图书直接置为(即没有借书)*/ strcpy(p0->borrow[i].limit_date,"0");}p0->next=NULL;}else{p0=(RD*)malloc(sizeof(RD));p1=h_reader;printf("\n请输入读者的信息:\n");printf("读者书证号:");scanf("%s",p0->reader_num);for(;;){while(strcmp(p0->reader_num,p1->reader_num)!=0&&p1->next!=NULL)p1=p1->next;if(strcmp(p0->reader_num,p1->reader_num)==0){printf("\n此读者编号已存在,请重新输入!\n");printf("读者书证号:");scanf("%s",p0->reader_num);p1=h_reader;}else{printf("读者姓名:");scanf("%s",p0->reader_name);break;}}p0->right=0;for(i=0;i<Max;i++){strcpy(p0->borrow[i].borrow_book_num,"0"); /*所借图书直接置为(即没有借书)*/ strcpy(p0->borrow[i].limit_date,"0");}p1->next=p0;p1=p1->next;p1->next=NULL;}printf("\n读者信息初始化完毕!按任意键继续下一步操作..\n");getch();system("cls");}void Save() /*保存信息*/{Save_Reader();Save_Book();}void Save_Reader() /*保存读者信息*/{FILE *fp_reader;RD *p,*p0;p=h_reader;if((fp_reader=fopen("Reader.txt","wb"))==NULL) /*创建文件,进行保存*/{printf("\n文件保存失败!\n请重新启动本系统\n");exit(0);}while(p!=NULL){if(fwrite(p,sizeof(RD),1,fp_reader)!=1) /*将链表中的信息写入文件中*/printf("\n写入文件失败!\n请重新启动本系统!\n");p0=p;p=p->next;free(p0); /*释放所有结点*/}h_reader=NULL;fclose(fp_reader); /*关闭文件*/}void Save_Book() /*保存图书信息*/{FILE *fp_book; /*创建文件型指针*/BK *p,*p0;p=h_book;if((fp_book=fopen("Book.txt","wb"))==NULL) /*创建文件,进行保存*/{printf("\n文件保存失败!\n请重新启动本系统\n");exit(0);}while(p!=NULL){if(fwrite(p,sizeof(BK),1,fp_book)!=1) /*将链表中的信息写入文件中*/ printf("\n写入文件失败!\n请重新启动本系统!\n");p0=p;p=p->next;free(p0);}h_book=NULL;fclose(fp_book); /*关闭文件*/}void Load() /*加载信息*/{Load_Reader();Load_Book();}void Load_Reader() /*加载读者信息*/{RD *p1,*p2,*p3;FILE *fp; /*创建文件型指针*/fp=fopen("Reader.txt","rb"); /*打开文件*/ p1=(RD *)malloc(sizeof(RD));fread(p1,sizeof(RD),1,fp);h_reader=p3=p2=p1;while(! feof(fp)) /*读出信息,重新链入链表*/ { p1=(RD *)malloc(sizeof(RD));fread(p1,sizeof(RD),1,fp);p2->next=p1;p3=p2;p2=p1;}p3->next=NULL;free(p1);fclose(fp); /*关闭文件*/}void Load_Book() /*加载图书信息*/{BK *p1,*p2,*p3;FILE *fp; /*创建文件型指针*/fp=fopen("Book.txt","rb"); /*打开文件*/p1=(BK *)malloc(sizeof(BK));fread(p1,sizeof(BK),1,fp);h_book=p3=p2=p1;while(! feof(fp)) /*读出信息,重新链入链表*/ { p1=(BK *)malloc(sizeof(BK));fread(p1,sizeof(BK),1,fp);p2->next=p1;p3=p2;p2=p1;}p3->next=NULL;free(p1);fclose(fp); /*关闭文件*/}void main(){FILE *fp_book,*fp_reader; /*创建文件型指针*/Login();if((fp_book=fopen("Book.txt","rb"))==NULL||(fp_reader=fopen("Reader.txt","rb"))==NULL) { Init(); }else Load();Menu_select(); /*调用主菜单*/}七、运行结果和调试分析八、课程设计总结通过这次的实验,我了解了图书管理系统的流程,之前以用户的角度去认识图书管理,现在站在设计者的角度去考虑问题,并且根据实际情况设计了图书管理系统的模块,对此有了更深刻的理解。

相关文档
最新文档