首页 > 文库大全 > 精品范文库 > 3号文库

图书管理系统实践报告

图书管理系统实践报告



第一篇:图书管理系统实践报告

中南大学

本科生课程设计(实践)任务书、设计报告

(《计算机程序设计基础》C++)

题目 学生姓名 指导教师 学院 专业班级 学生学号

图书馆信息管理系统

计算机基础教学实验中心

2014 年 7 月 1 日

图书馆信息管理系统

1.任务描述

一直以来人们使用传统的人工方式管理图书馆的日常工作,手工管理书籍过程繁琐且易出错,利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。

图书馆信息管理系统的功能为用户提供添加书目信息、删除书目信息、根据指定书号查询书目信息、查询馆藏数量最多的书目信息和查询借出数最少的书目信息等功能。

图书馆信息管理系统的功能有:

(1)添加书目信息。添加有关书目的ISBN书号、书名、单价、馆藏数量和馆藏余数信息。

(2)删除书目信息。通过删除指定书目的ISBN书号,删除书目的有关信息。

(3)查询书目信息。通过检索指定书目的ISBN书号,查找书目的有关信息。

(4)查询馆藏数量最多的书目信息。

(5)查找借出数最少的书目信息。

(6)退出程序。

2.设计的步骤与方法

2.1 设计思路

(1)利用MFC的应用程序向导建立程序框架,增加了开发程序的灵活性,方便用户操作。

(2)设计程序的界面,在界面上添加控件(文本框、命令按钮、等),得到具体程序的个性化界面。

(3)利用系统自动生成了关联成员函数的框架代码,在相应函数体内填写所需要的程序代码;同时在源文件以及头文件中补充完善代码。

2.2 具体步骤

(1)利用静态文本”控件(Static)、编辑框(EDIT)和命令按钮(BUTTON)完成程序界面,在弹出的“属性”对话框中指定各个控件的ID和标题。

(2)设置成员变量和消息映射。为每个编辑框指定一个关联变量,为每个命令按钮(Button)设置消息映射(Message Maps)。

(3)编写程序代码。利用系统自动生成了每个消息的关联成员函数的框架代码,在相应函数体内填写所需要的程序代码;同时为整个程序的源文件以及头文件补充完善代码。

(4)在头文件中建立类,数据成员变量的访问权限设置为保护型,类外不能直接访问;成员函数的访问权限设置为公开型,类外可以调用它们。并设置设置成员变量值的函数以及读取成员变量值的函数。

(5)利用系统自动生成了每个消息的关联成员函数的框架代码,在相应函数体内填写所需要的程序代码。

2.3 遇到的问题与解决的办法

(1)未设置全局变量,变量名称繁琐,易出错。

(2)变量类型错误。书名对应变量应为字符串型。

(3)字符串不能直接赋值,要调用C++库函数strcpy()进行复制。

(4)设置设置成员变量值的函数以及读取成员变量值的函数。

(5)查找借出数最少的书目信息不能直接通过馆藏数量和馆藏余数的设置成员变量值相减得到,需要设置借出书目的成员变量值函数,然后通过赋值馆藏数量和馆藏余数的设置成员变量值的差。从而得到借出数最少的有关书目信息。

3.总结

为了提高我们的实践能力,让我们学以致用,能灵活运用所学的知识进行再创造,学校特安排我们进行为期二周的Visual C++课程设计实习,并安排了指导老师帮助辅导,让我们在规范化、严谨化、实用化上面有了很大进展。

开发过程大体可分为思考总体设计方案、编辑程序、代码的调试三个步骤。通过对图书馆系统的了解和运用,深刻认识到需求分析的重要性,对概念设计的步骤掌握的更加清晰,促进了对分析过程中的原则要求及所得到的数据结果的原因认识。

两个星期的C++课程设计实践终于顺利完成,在这期间真正的学到了一些经验,能够熟练的掌握一些C++的编程思路,能够熟练的运用学到的函数,意识到编程并不是一件很简单的事情,知道学习编程必须亲自动手去做,只有自己做的程序才能找出错误,这样才能真正的达到目的。当程序编写完成而且能够正常运行心里非常高兴。对我来说,如果要想在编程方面能够有所发展的话,我面临的困难还很多,要继续加强,努力,达到一种较高的水平。

再次感谢朱从旭老师的耐心辅导和谆谆教诲,感谢学校给我们提供的提高自己的机会。

第二篇:图书管理系统设计报告

图书管理系统设计报告

一系统开发的目标与意义

1.1设计题目

此次VFP课程设计是综合应用所学过的数据库理论知识,自行设计并实现一个较为完整的应用系统。结合一个实际信息系统开发,初步掌握数据库管理信息系统的方案设计、论证和分析方法。正确运用所学课程的基本理论和知识,了解在Windows环境下,使用Visual FoxPro 6.0开发管理信息系统所需的计算机软、硬件环境。进一步深刻理解Visual FoxPro 6.0,合理设计并建立数据库,建立数据库中表与表之间的关系。在理论教学的基础上,进一步理解可视化编程的基本概念,熟练掌握可视化编程的方法和步骤。通过编程和上机调试,提高计算机应用与开发水平,特别是VFP平台的开发水平和能力,提高解决实际问题的能力。从软件工程的角度,初步树立正确的程序设计思想,从系统分析、系统设计、系统实现、系统评价出发。培养分析问题、解决问题的能力。提高收集、查阅资料和撰写项目文档的能力。

1.2开发意义

针对图书馆特点,图书管理系统实现后,能够使界面友好美观操作简单易行。全面自动化信息管理,可随时掌握图书的进存、借阅等信息,查询灵活方便,数据存储安全可靠。进而提高工作效率。改善后的图书管理系统将功能全面,实用性强。

1.3系统开发过程

1.3.1 分析阶段

本阶段主要工作是信息的收集,正所谓好的开度等于成功的一半。通过信息的收集工作来确定系统的目标、软件的总体思路以及所需要的时间。

1.3.2设计阶段

在本阶段认真设计可以体会到什么叫事半功倍。详细的规划具体需要完成的任务、输入输出的程序以及采用的数据结构,最好通过一定的算法描述工具详细描述算法。

1.3.3实施阶段

本阶段要运用(1)系统论思想,把所做的大系统分解成几个小系统,但要保证小系统即个功能模块受高一级系统控制。(2)“自上而下”的设计思想。每一给小程序都可独立、精确运行,但严格受制与高一级程序。

1.3.4维护阶段

本阶段测试系统的性能是关键,通过测试找出设计错误、程序错误、算法错误。通过此阶段积累自己的设计经验。

1.4开发平台本系统是在WINDOWS XP的操作系统使用VisualFoxPro 6.0开发制作的,硬件环境是P4,256M内存以及1024*768分辨率。

二系统分析

2.1 用户需求

通过本图书查询系统,用户可以轻而易举的查到图书信息、借阅人信息以及节约人与图书之间的各种关系。例如:(1)输入借阅人编号可以查阅到其解了哪些书,同时查到这些书籍的信息(作者、出版社、出版年、借还日期等);输入书籍名称或书籍编号可以查阅到书籍信息及借阅人信息(姓名、所属单位、联系方式等)。(2)数据的输出,可以把查阅到的各方面信息通过报表形式输出。

2.2可行性分析 通过对所收集的数据和在设计阶段所需要的各项功能进行分析,最终得出所学设计的软件系统是否可行。并对所存在的问题加以解决;所存在的错误加以纠正。

2.2.1数据分析 在分析阶段完成,收集各方面信息,使所作的软件功能完备,方便可行。学生基本情况信息:主要包括姓名、性别、学号、所属单位、出生年月等

进书基本情况信息:主要包扩书名、图书分类编号、作者、出版社、出版日期、购入日期等 借书基本情况查询:主要包括借阅者姓名、借书日期、应还书日期等。在分析阶段作出以下图表,为实施阶段打下良好基础。

图1 “图书管理系统”数据结构图

2.2.2功能分析本系统具有信息录入、修改、查询、信息输出以及系统安全设置等功能。具体情况如下:

(1)信息录入功能:图书进书信息、学生信息、借阅信息等。

(2)修改功能:对图书信息、学生信息等进行添加修改。确保数据及时更新。

(3)信息输出功能:对所需要的信息通过打印机等输出工具进行输出。

(4)查询功能:主要把学生信息与图书信息建立关联,实现学生信息与图书信息的互动。能够方便快捷的实现图书被借阅,和学生借阅等信息的查询。

为了为实施阶段打下基础,做功能结构图如下:

图 书 管 理 系 统

系统介绍数据查询数据录入维护信息输出退出

系统介绍界面系统登陆界面学生信息查询书籍信息查询借阅信息查询学生信息录入新书信息录入借阅信息录入学生信息输出书籍信息输出图书去向输出推出系统界面

图2系统功能结构图

三 系统结构设计

3.1数据库的建立

3.1.1 表的建立本系统共建立三个表,分别是借书表、进书表、学生基本情况表。给表中所包含的信息见2.2.1数据分析所示。

3.1.2 表的关联

所以是表与表这间建立联系的纽带。在本系统所涉及的三个表中索书号和借阅证号都可以作为唯一标示纪录的索引关键字。但考虑到数据修改时是否方便,所以使用学生基本情况表作为父表,以借阅证号作为主索引,避免了关键字出复值。在借书表中涉及到“书被谁借去了”所以可以用借阅证号位关键字把学生基本情况表和借书表建立起一一对应的关系。在学生基本情况表中涉及到“某学生截了那本书”故可以以索书号作为关键字建立唯一索引。因为索书号是唯一确定的,虽让建立的是唯一索引,却也可以收到主索引的效果。总而言之,在借书表与学生基本情况表之间以借阅证号位关键字建立对应关系,再进书表与学生基本情况表之间用索书号建立起一一对应的关系,最终实现三个表之间的互动。

3.1.3表结构的建立与数据的录入

打开了Visual FoxPro软件,运行文件菜单中的新建按钮,选择表和新建文件,同时设置好表名及路径并保存,然后在出现表设计器中进行设计。以下为三个表的设置结构及录入的记录:

部分记录如下:

图3借书表结构及部分数据截图

部分数据如下:

图4进书表结构及部分数据截图

部分数据如下

图5 学生节本情况结构及部分数据截图

3.2系统的设计与实现

3.2.1系统界面与表单设计

漂亮简捷的系统界面将给使用者一个好的印象,是一套系统的门面。设计的成功与否,见关系到系统的前景与市场。本套系统的界面设计及实现程序如下:

图6 系统登陆截图

设计步骤如下:

新建表单“系统登陆.scx”,创建command1、2、3,label1、2、3,combo1和text1。

设置text1的caption属性为“图书管理系统”,text2的caption属性为“操作员”,text3的caption属性为“密码”,并设置字体、颜色、大小等内容使其美观。Label1的caption属性为“确定”,同理label2、3为“取消、退出”

定义command1控件的click事件,代码如下:

3.2.2数据查询表单设计

数据查询包括按学生学号查询学生的具体信息、按书籍的名称查询书籍的具体信息和借阅情况等。下面列举单表查询表单如进书表.scx和多表查询表单如图书去向情况和图书借阅情况.scx说明数据查询的设计方法,进书表.scx的运行效果如下图所示:

图7 图书信息查询系统截图

设计步骤如下:

此表单的设计主要是练习表单向导的用法。新建表单→表单→向导→字段选取→选择表单样式→排序次序→完成→运行。

用表单向导来设计表单为使用者带来极大的便利,尤其是对于我们初学者。但影响创造力的发挥和一些功能的实现。

索书号查询表单的运行效果如下:

图8 索书号查询截图

设计步骤如下:

★此表单涉及主要是练习用程序和命令来实现查询的目的。查询的关键是command1即查询按钮的属性设置。其实现代码如下:

command2即退出按钮的代码为release thisform;

推出系统地实现:

退出系统地实现主要是通过command1、2的单击事件click来实现的。其运行效果图如下:

图9 退出系统截图

设计步骤如下

★command1即YES按钮的实现代码为 ,command2即NO按钮的实现代码为release thisform。

3.2.3 报表的设计

在数据库应用系统中,常需要将数据处理结果以报表形式打印出来。在本套系统的报表设计、显示、答应报表的功能主要用报表设计起来实现。例如下图:

运行后的结果如图所示:

图10报表设计器及部分数据截图

在报表设计过程中,主要用到表设计器和表向导。为能用到报表设计器的高级操作,我会在以后努力学习表设计器的高级操作,弥补这次课程设计的一个缺憾。

3.2.4主菜单的设计

主菜单是用户使用本系统的主要途径,所以合理的设计至关重要,本系统的主菜单是通过菜单设计器来完成,使用的是菜单设计器的非快捷菜单方式,在主菜单确定后,分别再编辑各个子菜单项、命令、过程。本系统使用了命令及过程调用表单的方式。设计步骤如下:

创建第一级菜单。在“项目管理器”中选择“其他”选项卡,再选择“菜单”选项,然后单击“新建”按钮。出现菜单设计器,输入各菜单名称及结果,建立本系统所需要的菜单,如下图所示:

图11 系统主菜单截图

★在创建主菜单后,即开始设计子菜单。单击子菜单项后的“创建”按钮,可创建其子菜单。如下图所示:

图12 系统子菜单编辑截图

3.2.5主程序设计

主程序是系统运行时执行的主文件,设计主程序的方法为:在“项目管理器”中选择“代码”选项卡,再选择“程序”选项,然后选中一个程序文件,本系统中为“MAIN”,单击右键弹出快捷菜单,选择“设置主文件”,就可设置一个程序为主文件。

本系统的主程序代码如下:

四 系统操作说明

★双击 快捷方式,进入到登陆系统。

★输入操作员账号和密码,单击确定进入到系统介绍界面。单击 系统操作界面。见看到菜单栏。在“系统介绍”中有“用户更改”和“系统主页”子菜单。在“数据查询”中涉及到借阅信息、图书去向、姓名查询、索书号查询等子菜单。报表打印中涉及到借书表、进书表、学生信息、和借阅情况等表格。在退出系统一栏中,涉及到系统推出的确认,确定要退出单击YES,否则单击NO。

五 结束语

经过为期两周的课程设计可谓受益匪浅。经过时间才真正的地把文字化为了知识,才真正的为我所用。认识到自己在学习过程中的缺点和不足。为以后的学习生活积累了宝贵的经验和教训。心得体会如下:

★再做vfp系统开发时一定要做好信息的收集工作,否则后即工作将坠入五里雾中。信息收集时要求尽可能的考虑周全。这才能为设计阶段打下一个良好的基础。

★在系统的设计过程中,最好能集思广益,多听取一点别人的意见和创意。使程序尽可能完美。一定要学会用算法描述工具,把自己的的意图详细简明的记录下来。

★在为文件命名是尽可能不要因其混淆,尽量由数字或字母。在系统设计中我把“系统登陆、系统登录、登陆系统”三者混淆了。为自己带来了不尽的苦难。并且均用汉字作为文件名。这样虽然不易引起混淆,但是影响工作的效率。

★要学会设置文件路径,尤其是用向导时。要学会用项目管理器,既可以提高工作效率,又减少了出错的几率。

★★最后诚恳的向老师您提一点建议,如果您一个学期教我们做一套系统,在做这套系统的同时穿插着讲知识点,我幼稚的以为效果会更好,避免了在做课程设计已开始的时候找不到北!

六 参考文献:

㈠李春葆编著.Visual Fox Pro7.0数据库系统设计与开发.北京:清华大学出版社,2003.8 ㈡李春葆编著.Visual Fox Pro6.0高级编程(应用系统设计篇).北京:清华大学出版社,2000

㈢史济民,汤观全编著.Visual Fox Pro及其应用系统开发.北京:清华大学出版社,2000 ㈣蔡卓毅,林盛雄,林羽扬,黄竺编著.Visual Fox Pro6.0数据库程序设计与实例.北京:冶金工业出版社,2003

㈤史德芬编著.全国计算机等级考试二级真题解析——Visual Fox Pro程序设计.北京:海洋出版社,2003

第三篇:图书管理系统开题报告

图书管理系统开题报告

1、本课题的研究意义(选题依据,课题来源,学术价值和对社会、经济发展和科技进步的意义):作为毕业设计这一最后环节是学生完 成本专业基础课程、专业课程及实践课程的一次综合性的练习与实践,是检验学生综合运用所学知识解决实际问题的能力,是以本专业知识参加社会工作前的一次模 拟训练。通过这次毕业设计,能更深刻地对数据库基础理论和计算机基本知识的理解,提高运用数据库解决实际问题的能力,掌握普通程序设计的基本方法和过程。

2、本课题的基本内容简介(拟解决的主要学术或技术问题和关键技术及难点,拟采取的技术手段及实施方案、预计可获得的成果,可能取得的创新之处):

课题主要研究内容和预期成果:本系统是针对一个虚拟的大中专院校图书馆的图书管理开发的。假定原图书馆为手工管理,效率低、易出错、手续繁琐,而且耗费大 量的人力。为此,希望设计一个图书管理系统,管理读者的登记、图书的购入、借出、归还以及注销等。管理人员还可以查询某位读者、某本图书的借阅情况,对当 前借阅情况给出一些统计和表格说明,以全面掌握图书的流通情况。系统包含读者登记、购入新书、读者还书、图书注销等功能。此外,根据需要,对系统做相应的 修改后,系统也可用于普通图书馆的图书管理。

读者登记时要为读者编制读者卡片,包括读者的具体信息(如读者编号、姓名、学院、专业、年级等),写入读者文件中。

购入新书时要为该书编制图书卡片,包括分类目录号、流水号(唯一)、书名、作者、内容摘要、价格和购书日期等信息,写入图书文件中。读者借书时,先检查该 读者是否为有效的读者,若无效则拒绝借书,然后检查该读者所借图书是否超过最大限制数(三本),若超过则拒绝借书,再检查有尚未归还的过期图书,若有则拒 绝借书。然后查找要借的图书是否还有,如果有则办理借出手续,登记图书分类号、读者号和借阅日期等。

读者还书时,根据书号,从借书文件中读出有关记录,标明还书日期,如果图书过期,则处以罚款,并打印罚款单。

系统还应提供了图书清理的功能,对无价值的和过时的图书可以进行注销。

查询要求分为查询某位读者、某种图书和全局图书三种情况。可以打印读者和图书情况统计表。

三、技术方案:

本次毕业设计对《图书管理系统》应用软件的开发,我们将采用VC数据库系统作为软件设计和开发平台。

本应用软件的界面采用菜单方式进行操作,具有操作方便、直观,功能明确、统一,对各界面的调用均在程序的主窗口下进行操作。

四、实施方案和要解决的问题及难点:

根据上述需求分析,在参考有关图书馆的实际操作规程的基础上,设计了本系统。查询时保证查全率,所有在相应域中包含查询关键字的记录都应能查到,同时保证查准,多功能窗口运行

3、论文提纲:

1、概述

图书馆管理系统的目的和意义

2、图书馆管理系统介绍

⑴系统简介

⑵系统功能介绍

3、图书馆管理系统的开发工具和环境

⑴ 管理信息系统介绍及其设计原则

⑵开发工具Virual C++的介绍

它的一些特点,一些基本的语法。

⑶数据库Microsoft Access 2000的介绍

4、图书馆管理系统设计

[1]系统模块设计

i.用户登陆模块:已经注册的用户进入系统,必须先进行登陆。

ii.系统维护模块:

Ⅰ图书目录模块:可对图书目录进行一览、增加以及删除操作。

Ⅱ读者明细模块:可对读者明细进行一览、增加以及删除操作。

iii.相关查询模块:

Ⅰ借阅查询模块:可通过读者编号和姓名对其所借阅图书进行查询操作。

Ⅱ图书查询模块:可通过图书信息对图书进行查询操作。

iv.统计内容模块:

Ⅰ读者借阅情况统计模块:对读者信息及其所借阅图书进行统计。

Ⅱ图书借阅情况统计模块:对图书信息及其是否借出进行统计。

③数据库设计

根据系统功能设计的要求以及功能模块的划分,对于系统用户信息数据库,可以列出一些数据项和数据结构,构成六张表。

⑵图书馆管理系统详细设计

①用户登陆模块设计与实现

②系统维护模块设计与实现

i.图书目录模块实现

1)图书目录一览模块实现:从数据表中的信息导出所有图书的信息,包括:图书编号、图书名称、作者姓名、出版社、出版日期、单价和图书类别。

2)图书目录增加模块实现:把图书名称、作者姓名、出版社、出版日期、单价和图书类别增加到数据表中,并在图书目录一览模块中显示出来。

3)图书目录删除模块实现:把图书编号、图书名称、作者姓名、出版社、出版日期、单价和图书类别从数据表中删除,并在图书目录一览模块中显示出来。

ii.读者明细模块实现

1)读者明细一览模块实现:从数据表中的信息导出所有读者的信息,包括:读者编号、读者姓名、性别、年龄、住址、电话和备注。

2)读者明细增加模块实现:把读者编号、读者姓名、性别、年龄、住址、电话和备注增加到数据表中,并在读者明细一览模块中显示出来。

3)读者明细删除模块实现把读者编号、读者姓名、性别、年龄、住址、电话和备注从数据表中删除,并在读者明细一览模块中显示出来。

③相关查询模块设计与实现

i.借阅查询模块实现:输入读者编号,从数据表中导出所有相关的信息。

ii.图书查询模块实现:输入图书编号、图书名称、作者姓名、出版社、出版日期、单价和图书类别中一个或几个,从数据表中导出其他与此书相关的信息。

④统计内容模块的设计与实现

i.读者借阅情况统计模块实现:从数据表中导出借阅读者的相关信息。

ii.图书借阅情况统计模块实现:从数据表中查询出借阅图书的相关信息。

4、研究进程计划及时间安排(计划进度、预计完成的日期,阶段性成果的形式):

一、工作的总体安排和进度:

1、4月24日前完成开题报告提交;

2、到3月底完成用户需求的确认,围绕课题收集有关的资料,查阅有关的文献及技术参数,收集有关的数据,并对用户的实际需求和数据进行可行性分析;

3、4月初完成数据库及数据字典的建立,画出软件系统总流程图,并写出各模块的分析说明书;

4、4月份中旬完成主程序、系统信息窗口、模块调用窗口、权限验证模块等的程序设计初稿并进行系统调试;

5、5月份完成毕业设计的定稿(在整个系统的调试中不断修改和完善系统功能,最终达到设计目标)。

第四篇:图书管理系统开题报告

图书管理系统开题报告

1.本课题研究的意义

随着科学技术的不断提高,计算机科学日渐成熟, 作为计算机应用的一部分,使用计算机对图书信息进行管理,具有手工管理所无法比拟的优点。图书管理系统的开发是一个老生常谈的问题,以其作为数据库开发的示例不仅是因为他的开放性,而且还因为它是一个开放的系统,比较成熟,这个系统是毕业生毕业前的最后一次模拟,对毕业生的软件开发能力有很大帮助。

而今,这类相关的管理系统已广泛的应用在各行各业,成为各行业提高相关管理效率的重要手段。图书信息管理系统也在日益广泛地应用于各图书馆的管理中,大大提高了图书管理的相关管理效率,其在图书管理中所起的作用是显而易见的。

目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,图书管理系统也是有了很大的发展,商业化的图书信息管理软件也不少.但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作。

2.调研情况总结

本系统主要实现对图书馆信息的管理,主要可以分为两大块:图书信息的服务系统和图书的综合管理系统。图书的使用对象是借阅者,例如学生,教师;管理者是图书馆的管理员。因此根据这些信息,本系统的主要功能就是:实现图书馆图书信息的管理和维护,如用户信息管理,图书馆规则维护,新书入库,整理图书,修改图书信息和进行查询等;以及服务系统的图书信息查询,图书的借出和归还等功能

图书信息管理系统能够为用户提供充足的信息和快捷的查询手段.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书信息管理的效率,也是图书管理的科学化、数字化、正规化管理,与世界接轨的重要条件。用计算机制作的图书信息管理系统还可以通过功能强大的Internet网及时的向读者发布图书的最新动态,因此,开发这样一套管理软件成为很有必要的事情。

这次毕业设计的课题为图书信息管理系统,其主要包含图书基本信息和图书借阅系统,能进行图书信息的录入、读者登记、查询等功能。该项目开发的软件为学校图书信息管理系统软件,是鉴于目前学校图书数剧增,图书信息呈爆炸性增长的前提下,图书馆对图书信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有中小型图书馆的图书信息的管理.。本次毕业设计通过对管理系统模型的研究,提出了一套构造图书信息管理系统模型的方法,提出了图书管理系统的一般建立方法,并且利用数据库、信息系统分析所学知识,结合其它相关管理常识,通过对某图书馆图书流通过程的分析,建立相关数据模型,利用面向对象开发工具对其进行设计与开发。

系统主要由两大子系统组成:图书管理和维护子系统以及图书信息服务子系统。系统主要有四个数据库表:图书信息表,用户信息表,学生信息表和借出信息表3.研究路线

(1).以现代软件工程原理和思想指导整个课题的开发过程,要经过系统可行性分析、需求分析、概要设计、详细设计、编码、调试维护和安装实施等步骤。

(2).要有详细的设计说明书;

(3).每一模块的流程图要很清晰;

(4).本系统能够正常的运行,能较好得完成预定的功能;

(5).系统要有完整的帮助文件,供前台操作员能方便的操作本系统。4.进度安排

第一周~第二周 收集和阅读关于数据库及程序设计的相关资料

第二周~第三周 学习掌握管理信息系统一般设计和开发的基本方法。

第四周~第五周 根据在前两周收集的相关资料及掌握的相关知识完成开题报告和文献综述

第六周~第七周 完成数据库的设计

第九周~第十周做出图书管理信息系统的具体程序设计,最后撰写毕业论文初稿。

第五篇:图书管理系统

图书管理系统源代码

#include #include class Book{ // 书籍基类 protected: char Title[40];// 书名 long Code;// 条码 int Type;// 0表示书,1表示杂志 public: Book();Book(char *title,long code);void SetCode(long code){ Code = code;} void SetTitle(char* tl){ strcpy(Title,tl);} void SetType(bool type){Type = type;} int GetType(){ return Type;} long GetCode(){ return Code;} virtual void Show();// 显示书的信息 friend ostream& operator<<(ostream& , Book&);// 重载插入运算符 friend istream& operator>>(istream& is, Book&);// 重载提取运算符 Book *Next;// 为创建每个读者所借书链表而定义指针 };class Item :public Book{ //书的款目 // char Title[40];// 书名 char Author[20];// 著者名 char IndexCode[10];// 分类号 // long Code;// 条码 public: Item();Item(char *author,char *title,char *index,int code);Item(Item &);void SetAuthor(char*);void SetIndexCode(char*);virtual void Show();// 显示书的信息 friend ostream& operator<<(ostream& os, Item&);// 重载插入运算符 friend istream& operator>>(istream& is, Item&);// 重载提取运算符 public: };class Magazine:public Book { //杂志类 int Volume;enum LANG {CHINESE=1,ENGLISH} Lang;// 枚举变量,确定语言类别 public: Magazine():Book(){Volume = 0;Lang = CHINESE;Type = 1;} Magazine(char *title,int vol,LANG lang,int code);Magazine(Magazine&);void SetVolume(int vol){Volume = vol;} void SetLang(int lang){Lang =(LANG)lang;} virtual void Show();// 显示杂志的信息 friend ostream& operator<<(ostream& os, Magazine&);// 重载插入运算符 friend istream& operator>>(istream& is, Magazine&);// 重载提取运算符 };class Reader{ // 读者信息类 char Name[20];// 姓名 char Position[20];// 职务 int Age;// 年龄 long Code;// 借书证号 Book* items;// 所借书链表 public: Reader();Reader(char *name,char *posi,int age,int code);// Reader(Reader&);~Reader();long GetCode(){return Code;} void SetName(char*);void SetPosition(char*);void SetAge(int);void SetCode(long);void AddBook(Item);// 添加所借书 void AddBook(Magazine);// 添加所借杂志 void DelBook(Book it);// 还书后减少所借书 void ShowBooks();// 显示所借书 void Show();// 显示读者信息 friend ostream& operator<<(ostream& os, Reader&);// 重载插入运算符 friend istream& operator>>(istream& is, Reader&);// 重载提取运算符 public: int Counter;//计数器,统计所借书数目 };class Manager{ // 管理员类 char Name[20];// 姓名 int Age;// 年龄 int Code;// 工号 friend class Library;// 将图书馆类声明为友元 public: Manager(){} Manager(char*,int,int);long GetCode(){ return Code;} void Show();friend ostream& operator<<(ostream& os, Manager&);// 重载插入运算符 friend istream& operator>>(istream& is, Manager&);// 重载提取运算符 };class Loan { // 借阅信息类 int Type;// 0表示书,1表示杂志 Item item;// 借阅书 Magazine mag;// 借阅杂志 Reader reader;// 借阅者 Manager manager;// 借书操作员 int Code;friend class Library;// 将图书馆类声明为友元 public: Loan(){ } Loan(Loan & l);int GetCode(){ return Code;} void Show();friend ostream& operator<<(ostream& os, Loan&);// 重载插入运算符 friend istream& operator>>(istream& is, Loan&);// 重载提取运算符 };、、、、、、、、、、、、、、、、、、、、、、、#include #include class Reader;template class DblList;template class DblNode{ public: T Info;//数据域 DblNode *llink,*rlink;//前驱(左链)、后继(右链)指针 public: DblNode(T data);//一般结点 DblNode();//头结点 T GetInfo(){return Info;};friend class DblList;friend class Library;};templateclass DblList{ DblNode *head,*current;public: DblList();~DblList();void Insert(const T& data);DblNode* Remove(DblNode* p);void Print();int

Length();//计算链表长度 DblNode *Find(T data);//搜索数据与定值相同的结点 DblNode* Find(int data);//按某个关键字查找 void MakeEmpty();//清空链表 void ShowList();//显示链表各结点 friend istream& operator>>(istream&, DblList&);// 重载输入流运算符 friend ostream& operator<<(ostream& os, DblList& dlist);// 重载输出流运算符 friend class Library;//其它操作 };template DblNode::DblNode(){ llink=rlink=NULL;} template DblNode::DblNode(T data){ info=data;llink=NULL;rlink=NULL;} template DblList::DblList(){//建立表头结点 head=new DblNode();head->rlink=head->llink=head;current=NULL;} template DblList::~DblList(){ MakeEmpty();//清空链表 delete head;} template void DblList::MakeEmpty(){ DblNode *tempP;while(head->rlink!=head){ tempP=head->rlink;head->rlink=tempP->rlink;//把头结点后的第一个节点从链中脱离 tempP->rlink->llink=head;//处理左指针 delete tempP;//删除(释放)脱离下来的结点 } current=NULL;//current指针恢复 } template void DblList::Insert(const T & data){//新节点在链尾 current=new DblNode;current->Info=data;current->rlink=head;//注意次序 current->llink=head->llink;head->llink->rlink=current;head->llink=current;//最后做 } template DblNode* DblList::Remove(DblNode* p){ // 删除结点 current=head->rlink;while(current!=head&¤t!=p)current=current->rlink;if(current==head)current=NULL;else{//结点摘下 p->llink->rlink=p->rlink;p->rlink->llink=p->llink;p->rlink=p->llink=NULL;} return current;} template DblNode* DblList::Find(T data){ // 按结点查找 current=head->rlink;while(current!=head&¤t->Info!=data)current=current->rlink;if(current==head)current=NULL;return current;} template DblNode* DblList::Find(int data){ // 按数据值查找结点 current=head->rlink;int temp =current->Info.GetCode();while(current!=head&&temp!=data){ current=current->rlink;temp = current->Info.GetCode();} if(current==head)current=NULL;return current;} template void DblList::Print(){ // 输出链表 current=head->rlink;while(current!=head){ cout<Info<<'t';current=current->rlink;} cout< int DblList::Length(){ // 取得链表长度 int count=0;current=head->rlink;while(current!=head){ count++;current=current->rlink;} return count;} template void DblList::ShowList(){ // 输出链表各结点 int count=0;current=head->rlink;while(current!=head){ current->GetInfo().Show();current=current->rlink;} return;} template istream& operator>>(istream& is, DblList &dlist){ int len;T tt;// 定义局部变量读入一个结点 is>>len;for(int i= 0;i>tt;dlist.Insert(tt);} return is;} template ostream& operator<<(ostream& os, DblList &dlist){ DblNode *tempP;int len = dlist.Length();os<rlink;while(tempP!=dlist.head){ // 循环输出链表各结点 os<Info;tempP = tempP->rlink;} return os;} #include “class.h” #include “dblist.h” #include class Library{ // 封装图书馆流通业务的类 DblList item;// 在馆图书链表 DblList mag;// 在馆杂志链表 DblList reader;// 读者链表 DblList loan;// 借阅信息链表 DblList manager;// 管理员信息链表 int itemNum;// 记录在馆图书数目 int magNum;// 记录在馆杂志数目 int readerNum;// 记录读者数目 int loanNum;// 记录借阅信息数目 int managerNum;// 记录管理员数目 ofstream itemFileOut;// 文件流对象,保存图书馆书籍数据 ifstream itemFileIn;// 文件流对

象,读入图书馆书籍数据 ofstream magFileOut;// 文件流对象,保存图书馆杂志数据 ifstream magFileIn;// 文件流对象,读入图书馆杂志数据 ofstream readerFileOut;// 文件流对象,保存图书馆读者数据 ifstream readerFileIn;// 文件流对象,读入图书馆读者数据 ofstream loanFileOut;// 文件流对象,保存图书馆借阅信息数据 ifstream loanFileIn;// 文件流对象,读入图书馆借阅信息 ofstream managerFileOut;// 文件流对象,保存图书馆管理员数据 ifstream managerFileIn;// 文件流对象,读入图书馆管理员数据 public: Library();// 构造函数 ~Library();//析构函数 void Run();// 图书馆类的运行函数 void CreateBibliotheca();// 创建书目 void CreateReader();// 创建读者库 void CreateManager();// 创建管理员信息 int ShowMainMenu();// 显示主菜单函数 void Borrow();// 借书操作 void Return();// 还书操作 void Require();// 查询操作 void SaveInfo();// 保存图书馆信息 void OpenInfo();// 读入图书馆信息 };

相关内容

热门阅读

最新更新

随机推荐