好一点小编带来了图书管理信息系统的流程图怎么画,希望能对大家有所帮助,一起来看看吧!
图书管理信息系统的流程图怎么画
http://image.baidu.com/i?ct=503316480&z=&tn=baiduimagedetail&word=%CD%BC%CA%E9%B9%DC%C0%ED%D0%C5%CF%A2%CF%B5%CD%B3%B5%C4%C1%F7%B3%CC%CD%BC&in=12648&cl=2&lm=-1&pn=3&rn=1&di=3170440155&ln=1995&fr=&fmq=&ic=&s=&se=&*e=0&tab=&width=&height=&face=&is=&istype=#pn3&-1
新手不能插图,给你链接看看 希望有帮助
这是系统流程图要用到的符号:
http://image.baidu.com/i?ct=503316480&z=&tn=baiduimagedetail&word=%CF%B5%CD%B3%C1%F7%B3%CC%CD%BC%B7%FB%BA%C5&in=14471&cl=2&lm=-1&pn=40&rn=1&di=39048755685&ln=2000&fr=&fmq=&ic=0&s=0&se=1&*e=0&tab=&width=&height=&face=0&is=&istype=2#pn40&-1
图书馆管理信息系统组织结构图、业务流程图、数据字典、数据流程图、补充说明、逻辑模型
图书馆管理信息系统分析、设计、实现与测试
1.1 系统分析
1.1.1 图书馆管理信息系统的基本任务
该“图书馆管理信息系统”是一个具有万人以上的员工,并地理位置分布在大型企的图
书馆理系统,图书馆藏书 100 多万册,每天的借阅量近万册。在手工操作方式下,图书的编目和借阅等的工作量大,准确性低且不易修改维护,读者借书只能到图书馆手工方式查找书目,不能满足借阅需求。需要建立一套网络化的电子图书馆信息系统。
该图书馆管理信息系统服务对象有两部分人:注册用户和一般读者。一般读者经注册后成为注册用户,注册用户可以在图书馆借阅图书,其他人员只可查阅图书目录,但不能借阅图书。系统同时考虑提供电子读物服务,目前只提供电子读物的目录查询服务,不久的将来将提供电子读物全文服务。用户可通过网络方式访问读图书馆管理信息系统。
1.1.2 系统内部人员结构、组织及用户情况分析
为了对系统有一个全貌性的了解,首先要对系统内部人员结构、组织及用户情况有所了
解。图书馆系统的组织结构如图 1 - 1 所示。
图 1 - 1 图书馆管理信息系统的组织结构
图书馆由馆长负责全面工作,下设办公室、财务室、采编室、学术论文室、图书借阅室、电子阅览室、期刊阅览室和技术支持室。各部门的业务职责如下。
办公室:办公室协助馆长负责日常工作,了解客户需求,制定采购计划。
财务室:财务室负责财务方面的工作。
采编室:采编室负责图书的采购,入库和图书编目,编目后的图书粘贴标签,并送图书借阅室上架。
学术论文室:负责学术论文的收集整理。
图书借阅室:提供对读者的书目查询服务和图书借阅服务。
电子阅览室:收集整理电子读物,准备提供电子读物的借阅服务,目前可以提供目录查询和借阅。
期刊阅览室:负责情况的收集整理和借阅。
技术支持室:负责对图书馆的网络和计算机系统提供技术支持。
1.1.3 系统业务流程分析
系统的业务室系统要达到的业务目标,业务流程分析是系统分析的基础环节。图书馆管
理信息系统的业务流程如图 1 - 2 所示。
图 1 - 2 图书馆管理信息系统的业务流程
通过业务流程调查,理清图书馆管理系统的主要业务和业务的流程。
图书馆管理员编制图书采购计划,由采购员负责新书的采购工作。采购图书入库后,交采编室编目,粘贴标签,产生图书目录。图书交图书借阅室上架,供读者借阅。采编后的电子读物交电子阅览室。
读者分为注册读者和非注册读者,只有注册读者可以在本图书馆借书,非注册读者可查询目录但不能借书。读者填写注册登记表交图书馆的管理员审核后,记人读者登记表,成为注册读者,发给借书证。注册读者借书时,需填写借书单,连同借书证一起交给借阅室管理员,借阅管理员核对无误后,填写借阅登记表,修改图书登记表中该书的数量,上架取书交给读者。图书馆设读者信箱,读者需要但没有库存的图书,读者可以通过读者信箱反映。图书馆管理员定期处理读者信箱中的意见,将读者需要的图书编制成图书采购计划交采购员购*。
1.1.4 数据流程图
数据流程图时全面描述信息系统逻辑模型的工具,它抽象概括地把信息系统中各种业务
处理过程联系起来。以下时图书馆管理信息系统地数据流程图。
(1). 零层数据流程图 1 - 3
图 1 - 3 零层数据流程图
( 2 ) 1 层数据流程图 1 - 4
图 1 - 4 图书馆管理信息系统 1 层数据流程图
1.1.5 数据定义及数据字典
为了对数据流程图中各元素进行详细的说明,我们采用了数据字典的说明方法。图书馆
管理信息系统的数据字典如下:
(1) 数据流描述
数据流编号: D01
数据流名称:图书采编信息
简述:图书采编信息
数据流来源:图书购*后,由图书馆采编人员编码整理后,输入计算机。
数据流去向:采编管理模块。图书采编信息将采编数据存入数据库(图书表)
数据项组成: BookID (图书编码)+ BookType (图书类别)+ BookName (书名)+ Auth (作者)+ Publisher (出版社)+ Price (单价)+ PubDate (出版日期)+ Quantity (购*数量)
数据流量: 100 本 / 日
高峰流量: 500 本 / 日
数据流编号: D02
数据流名称:图书借阅单
简述:图书借阅单
数据流来源:用户填写图书借阅单交图书馆管理员,图书馆管理员审核后,输入计算机。
数据流去向: P2_11 检查读者身份。
数据项组成: OrderDate (借阅日期)+ BookName (书名)+ RederID (读者账号)+ ReaderName (读者姓名)+ O_Quantity (借阅数量)
数据流量: 1000 部 / 日
高峰流量: 5000 部 / 日
数据流编号: D03
数据流名称:填写借阅记录
简述:填入借阅表的记录
数据流来源: P2_13 检查合格的借阅图书信息录人到借阅库中
数据流去向:借阅库
数据项组成: OrderID (借阅号)+ OrderDate (借阅日期) BookName( 书名 ) + BookID( 图书编码 ) + ReaderName (读者姓名)+ ReaderID (读者账号)+ ReturnDate (还书日期)+ O_Quantity (借阅数量)+ state (状态)
数据流量: 1000 人 / 日
高峰流量: 2000 人 / 日
数据流编号: D04
数据流名称:借阅图书数量
简述:修改图书库中图书数量
数据流来源: P2_13 修改图书库中图书数量
数据流去向:图书库
数据项组成: BookID (图书编码)+ O_Quantity (借阅数量)
数据流量: 1000 人 / 日
高峰流量: 2000 人 / 日
数据流编号: D05
数据流名称:图书查询信息
简述:图书查询信息
数据流来源:读者
数据流去向: P3_11 检索处理模块
数据项组成: Book ID|BookName|Auth|Publisher
数据流量: 2000次/日
高峰流量: 4000次/日
数据流编号:D06
数据流名称:图书检索结果
简述:返回给读者的查询结果
数据流来源: P3 _11 检索条件处理模块,从图书库中返给读者的查询结果
数据流去向:读者
数据项组成:查无此书|符合条件的图书数量+{图书馆藏号+图书类别+书名+作者+出版社+出版日期+在库册数}
数据流量:2000次/日
高峰流量:4000次/日
数据流编号: D07
数据流名称:图书预定信息
简述:读者预定图书时填写的信息
数据流来源:用户填写图书预定信息,要求预定图书
数据流去向: P4 _11 预定信息输入
数据项组成: ReaderName + Password + BookID
数据流量: 50 次 / 日
高峰流量: 100 次 / 日
1.2 系统设计
1.2.1 系统功能设计
“图书馆管理信息系统”的主要功能有:图书目录检索、网上图书预定、图书借阅、电子出版物借阅、图书采编、读者留言和系统维护等。系统功能如图 1 - 13 所示。
图 1 - 13 图书馆管理信息系统功能
各子系统功能如下所述。
1. 读者注册系统
读者访问系统时将检验读者账号和密码,经过注册的读者允许进入系统。
2. 书目查询系统
读者进入图书馆管理信息系统后,可以根据需要检索书名或期刊。检索条件可以是书名称、图书编号、作者姓名或关键字等条件,如果读者拥有不充分还可以进行模糊查询。
3. 图书预定系统
读者检索到需要的图书后,单击所需要图书条目,进入图书预定系统,读者也可以从图书馆管理信息系统主界面进入图书预定系统。系统查询图书库,如果书库中有此书,则将此书为该读者保留三天。读者应当在三天内到图书馆办理借阅手续,否则系统将自动取消保留。
4. 图书借阅系统
读者查找到所需图书后,在图书保留期内到图书馆办理借阅手续。图书借阅系统处理图书借阅、还书、续借等手续。
5. 图书采编系统
图书采购入库经过编目等处理后,将其目录存入数据库,提供给读者检索使用。目录信
息包括图书编号、图书类别、书名、作者、出版社、定价、出版日期和数量等。
6. 电子读物系统
随着数字技术的发展,图书馆中的电子读物的数量越来越大。电子读物系统处理电子读物的阅览、版权与安全等事务。
7. 读者留言板
通过留言板,读者将需要的图书、要求和建议等记录下来,与图书馆管理人员交流。
8. 系统维护模块
系 统维护模块主要为图书馆管理人员提供图书统计信息和读者统计信息,以便于管理人
员从宏观上掌握图书馆运行的总体状况。
1.2.2 系统环境设计
1.硬件环境设计
图书馆管理信息系统采用两台服务器构成双机备份结构,保证提供实时服务。为保证较快的响应时间,选用处理速度较高的计算机系统,内存大小对数据库系统的响应速度影响较大,选择内存较大的系统。网络通信速度选用100Mbit/s1000Mbit/s。为保证系统中心的信息安全,配置必要的数据备份设备(采用外部备份方式)。
2.软件设计环境设计
图书馆管理信息系统采用先进的 Client ( Browser ) Server/Databa
se Server 模式,服务器端采用 Web 方式进行系统开发,用户使用通用的浏览器访问该“图书馆管理信息系统”,服务器端采用应用逻辑服务和数据库服务两层,与客户端形成三级系统结构。采用这样的三层结构,具有结构清晰、维护简单、运行速度高等特点。软件结构如图 1 - 14 所示。
图 1 - 14 图书馆管理信息系统的三层体系结构
操作系统采用 Microsoft 公司的 NT 服务器, Web 站点发布系统选用 Microsoft 公司的 IIS ,数据库系统选用 Microsoft 公司的 SQL 。用户界面设计设计使用 Dreamweaver 、 Flash 和 Fro
ntPage 等软件工具。
3. 网络环境设计
图书馆的网络系统,由图书馆主交换机和部门交换机组成。用户可以在图书馆内部使用
图书馆网络系统访问该系统,也可以在图书馆外部使用互联网访问该图书馆管理信息系统。
图书馆业务流程图
http://web.nyist.net/~huan/%B9%D8%D3%DA%CA%FD%BE%DD%BF%E2%B5%C4%B7%D6%CE%F6/%CD%BC%CA%E9%B9%DC%C0%ED%CF%B5%CD%B3.doc
在图书馆管理信息系统的系统分析的基础上,做出了详细业务描述及数据流程图,下面我们着手进行系统设计。要再次申明的一点是:本系统为学校图书馆管理专用。一、模块设计(一)、图书建档模块:此模块对应图书建档的业务流程,要输入的图书信息在作业的第一部分已有反映,不再赘述。信息输入之后,经过一定的分类处理,形成图书档案数据库,可用于用户查询、模块调用与数据统计。(二)、会员注册模块对应会员注册流程,会员基本信息及会员权限等形成会员档案数据库,可用于用户查询、模块调用与数据统计。(三)、借阅处理模块这一模块对应的是图书借阅流程。这一流程可包括下面五方面业务:查询、预约、外借、还书、续借。它可以拆分为下面五个模块。1,外借处理模块。对应图书外借业务,这一业务在图书外借出办理,由工作人员扫入图书证条码察看用户的借阅权限,用户有欠费纪录时要求用户先缴纳罚款再行借书;无欠费纪录确认用户可以借阅图书后,扫入图书条码进行外借手续,外借完成后由计算机系统更新储存用户借阅信息及图书借阅信息,以备查询。2、还书处理模块对应还书处理流程,在图书外借出进行,用户还书时,工作人员扫入图书条码,进行还书处理,完成后由计算机系统更新储存用户借阅信息及图书借阅信息,以备查询。当图书丢失时,要求读者进行赔偿。3、查询处理模块对应查询处理流程,在用户端服务器进行,由读者自行操作,读者输入一定查询信息后,由用户端服务器提交到服务器,在数据库中进行寻找匹配后,输出查询结果。可循环调用。4、预约处理模块对应预约处理流程,在用户端服务器进行,由读者自行操作。5、续借处理模块对应续借处理流程,在用户端服务器进行,由读者自行操作。二、代码设计本系统中所使用代码:借书证号位学生学号,每一借书证都有相对应的唯一条码;索书号以中图分类法排列,每本书已有相对应的唯一条码。三、输入输出及人机对话设计1、输入设计:图书建档过程中各类图书信息输入由工作人员先添入确定格式表格再以键盘输入计算机存储,在键盘输入过程中由计算机同时进行数据类型检验、格式检验、逻辑检验并即时出错提示。会员注册过程中会员资料先由会员自行填入确定格式表格再由工作人员以键盘输入计算机存储,在键盘输入过程中由计算机同时进行数据类型检验、格式检验、逻辑检验并即时出错提示。图书借阅及还书过程中图书条码和借书证条码在图书外借处以条码识别机扫描输入,也可以键盘输入图书证号和索书号;图书预约、查询及续借过程中索书号和借书证号在用户服务器终端以键盘输入。2、输出设计:各类信息均以表格形式在显示器终端输出。3、人机对话设计图书建档及会员注册信息输入时以填表法进行,在填表过程中进行错误提示及警告。操作人员进行借还书操作的界面以选单式界面为主。用户查询、预约、续借操作界面以问答式与选单式结合。四、数据库设计图书馆管理信息系统数据库设计一览表,如下图所示序号 模块名 数据库名 用途 数据来源 数据去向 1 图书建档 图书档案 存放图书信息 键盘输入 查询及统计 2 会员注册 会员档案 存放会员信息 键盘输入 查询及统计 3 借阅处理 用户借阅档案 存放用户借阅信息 预约、外借、还书、续借过程中生成 查询、检验权限 4 借阅处理 图书借阅档案 存放图书被借阅信息 预约、外借、还书、续借过程中生成 查询、检验 五、网络设计计算机网络系统采用开放式用户机/服务器体系结构实现图书馆信息管理系统。具体设计成一个计算机网络系统,由服务器进行数据处理,用户端显示结果。1,服务器上运行UNIX操作系统,支持多用户系统。2,用户端运行Windows2000。3,TCP/IP网络协议连接用户与服务器。六、安全保密设计系统安全以设置分级用户权限保障,不同权限的用户可调用的资源不同。
跪求一个图书馆借阅系统的流程图
其实很简单,只是数据库的一般功能的实现。
第一步,建立数据库。建立第一个数据库,里面的结构是关于书的一切资料,例如:书名、作者、书号等等,外加两个字段:借出与否和借书人;再建立另外一个数据库,里面的结构是关于借书人的一切资料,例如:姓名、性别等等。
第二步,建立外部界面。一般包括以下几个界面:借书、还书、借书人管理(包括增加、删除、查询)、书本管理(包括增加、删除、查询)。
第三步,用程序把相关的功能实现。建议用SQL语句,这样的程序运行速度较快。
最重要的是:一般大型的图书馆里面同一本书的数量可能会有几本,如此一来在数据库里面就要加一个字段“自编号”,通过这个字段来实现查询方面的要求。
图书馆还书的数据流程图
(1) 登录
“登录”窗体如图,操作员使用系统前,要输入正确的用户名和密码,才可以进入“图书信息管理系统”进行下一步操作。
登录窗口
(2)主界面
通过登录验证以后,进入主界面窗体,通过主窗体,操作员可以方便地调用“图书信息管理系统”内的各项功能。
主界面
(3)图书管理
单击上图中的“图书管理”菜单,可以进行图书管理操作,比如单击“图书入库”子菜单,就可以弹出如下窗口:
单击“修改图书信息”按钮,弹出“修改图书信息”窗口,可以对图书信息进行修改。如图:
(4)读者管理
单击主界面中的“读者管理”菜单,可以进行读者管理操作,比如单击“录入读者信息”子菜单,弹出“录入读者信息”窗口,同时还可以进行“修改读者信息”操作,如下图:
(5)图书服务
单击主界面中的“图书服务”菜单,可以进行图书服务操作,比如单击“图书查询”子菜单,弹出“查询、预约、借阅图书”窗口,在此窗口中可以查询、预约、借阅图书。单击“借还图书”按钮,弹出“个人借阅图书”窗口,可以借阅及归还图书。如下图“
(6)系统用户管理
单击“主界面”中的“系统管理”菜单,可以进行系统管理操作,比如单击“用户注册”子菜单,弹出“用户注册”窗口,在此窗口中可以注册新用户。单击“修改密码”按钮,弹出“用户修改密码”窗口,可以修改当前用户的密码。
求图书馆借书业务流程图
图书业务概述
第一、借书人员入库。借书人员须是本单位的正式教工,
第二、图书入库。图书入库须要有正式发票,本单位主任签名,然后交给图书管理员。
第三、系统设置。主要由本单位人员讨论,借阅时间,图书分类。
第四、借阅人员借书须要手工记录在借书本上,然后由图书管理员录入借阅记录表中。
第五、归还查阅图书。每月1号出示当月到期图书,需要归还人员名单,提醒借书人员及时归还图书。
可以参考:
http://jpkc.cqit.edu.cn/jpkc/jsjxy/08/Upfiles/200791091400.doc
图书馆管理系统
不知道是不是 你先看看
1.需求分析
1.1可行性分析
因近几年学校对大学生的扩招,相应专业种类的增加,学校对相关于专业方面的图书需求量增大。图书馆对图书的库存量也相应增多。由老式的由图书管理员进行人工对图书入库,借出等操作,工作量相当大,就目前情况来看,图书管理员几乎不可能及时完成工作。所以学校决定开发一个图书信息管理系统,协同图书管理员的工作,这样管理员不必花太多时间用于整理图书,而可以集中精力做其他更重要的图书管理工作。减少管理员的工作负担。
学校要求本系统具体能实现的功能要求如下:
图书信息的录入、查询、修改、删除、排序、输出。图书信息可写入文件,也可从文件中读取。
1.2 模块分析
结合本校的实际情况并经认真分析,为此我将其分成两个模块,由两个类实现:
1.2.1 book类。主要封装了图书信息。
Book类的数据成员有:
bookID(string,图书编号),
bookName(string,图书名),
publish(Publish,出版社),
author(string,图书作者),
version(int,图书版本),
count(int,图书册数)。
1.2.2 Publish类。主要封装了出版社信息。
Publish类的数据成员:
pTime(string(yyyy-mm-rr),出版时间),
address(string,出版社地址),
pName(string,出版社名称)
1.3输入,输出分析:
数据存储方式:数组
输入:用户根据自己的需要,选择序号进行操作
输出:经系统内部的一系列处理,将最终结果显示给用户 。
1.4流程分析
本系统的具体流程图如下:
2详细设计与实现
2.1 UML类图实现
本系统主要抽象乘两个类Book 与 Publish。他们之间的关系如下:
2.2 编程思想
该应用共有五个文件,两个头文件,三个源文件:
————对Book的具体实现
————主函数
————对Publish的具体实现
————对Book类的声明
————对Publish类的声明
2.3代码实现
2.3.1 Book.h 源程序如下
#include<iostream>
#include<string>
#include"publish.h"
using namespace std;
#ifndef BOOK_H
#define BOOK_H
class Book
{
private:
string bookID;//书的编号,不同的书不同的编号
string bookName;//书的名称
string author;//书的作者
string bookType;//书的类型
Publish *publish;//声明一个指针类
int version;//书的版本号
int count ;//该书的册数
public:
Book();//无参构造函数
void set_bookID(string id);//设置书的编号
string get_bookID();//获取书的编号
void set_bookName(string name);//设置书名
string get_bookName();//获取书名
void set_author(string author);//设置书作者
string get_author();//获取书的作者
void set_bookType(string type);//设置书的类型
string get_bookType();//获取书的类型
void set_publish(Publish &publish);//设置出版社信息
Publish get_publish();//获取出版社信息
void set_version(int version);//设置书的版本
int get_version();//获取书的版本号
void set_count(int count);//设置书的册数
int get_count();//获取书的册数
void addInfo();//录入相关图书信息
bool searchInfo(string id);//查找相关图书信息
void modifyInfo(string id);//修改相关图书信息
friend void sortInfo(Book book[],int n);//对相关图书排序
void display();//输出图书信息
Book operator =(Book temp);
static int bookCount;
friend bool isCo
ntinue();//声明友原函数,判断是否继续操作
};
#endif
2.3.1 Publish.h 源程序如下
#include<string>
using namespace std;
#ifndef PUBLISH_H
#define PUBLISH_H
class Publish
{
private:
string pTime;
string address;
string name;
public:
Publish();//无参构造函数
Publish(string time,string add,string name);//带参构造函数
void set_pTime(string time);//设置出版时间
string get_pTime();//获取出版时间
void set_address(string add);//设置出版社地址
string get_address();//获取出版社地址
void set_name(string name);//设置出版社名称
string get_name();//获取出版社名称
};
#endif
2.3.3 Book.cpp 的源程序如下
#include<iostream>
#include<fstream>
#include<string>
#include"publish.h"
#include"book.h"
using namespace std;
int Book::bookCount=0;//书的总类数,不同编号的书代表一类
Book::Book()
{
bookID="1";
bookName="C++编程技术";
author="郑立";
bookType="IT类";
publish=new Publish();//动态分配,后面一定要用delete,否则容易产生内存泄露
version=1;
count=1;
}
void Book::set_bookID(string id)
{
bookID=id;
}
string Book::get_bookID()
{
return bookID;
}
void Book::set_bookName(string name)
{
bookName=name;
}
string Book::get_bookName()
{
return bookName;
}
void Book::set_author(string auth)
{
author=auth;
}
string Book::get_author()
{
return author;
}
void Book::set_bookType(string type)
{
bookType=type;
}
string Book::get_bookType()
{
return bookType;
}
void Book::set_publish(Publish &pub)
{
publish->set_pTime(pub.get_pTime());
publish->set_name(pub.get_name());
publish->set_address(pub.get_address());
}
Publish Book::get_publish()
{
return *publish;
}
void Book::set_version(int ver)
{
version=ver;
}
int Book::get_version()
{
return version;
}
void Book::set_count(int coun)
{
count=coun;
}
int Book::get_count()
{
return count;
}
void Book::display()
{
cout<<"图书编号:"<<bookID<<" "<<"图书姓名:"<<bookName<<" "<<"图书作者:";
cout<<author<<" "<<"图书类型:"<<bookType<<" "<<"出版时间:"<<publish->get_pTime();
cout<<" "<<"出版社地址:"<<publish->get_address()<<" "<<"出版社名称:";
cout<<publish->get_name()<<" "<<"版本号:"<<version<<" "<<"册数:"<<count<<endl;
}
void Book::addInfo()
{
char choice;
cout<<"输入数据按Y,退出按N"<<endl;
cin>>choice;
if(choice=='Y')
{
string id;
string name;
string author;
string type;
string ptime;
string pname;
string address;
Publish publish;
int version;
int count;
cout<<"请输入图书编号:"<<endl;
cin>>id;
set_bookID(id);
cout<<"请输入图书名称:"<<endl;
cin>>name;
set_bookName(name);
cout<<"请输入图书作者:"<<endl;
cin>>author;
set_author(author);
cout<<"请输入图书类型:"<<endl;
cin>>type;
set_bookType(type);
cout<<"请输入出版时间:"<<endl;
cin>>ptime;
publish.set_pTime(ptime);
cout<<"请输入出版社地址:"<<endl;
cin>>address;
publish.set_address(address);
cout<<"请输入出版社名称:"<<endl;
cin>>pname;
publish.set_name(pname);
cout<<"请输入版本号:"<<endl;
cin>>version;
set_version(version);
cout<<"请输入册数:"<<endl;
cin>>count;
set_count(count);
cout<<endl;
bookCount++;//总数加1
writeFile();
readFile();
}
}
void Book::readFile()
{
ifstream ifile("library.txt",ios_ba
se::in);
char line[9][101];
for(int i=0;i<9;i++)
{
ifile.getline(line[i],100);
cout<<endl;
cout<<line[i];
}
string n=line[0];
cout<<n;
ifile.close();
}
void Book::writeFile()
{
//创建一个文件输出流对象,采用追加方式
ofstream ofile("library.txt",ios_ba
se::app);
ofile<<"图书编号:"<<get_bookID()<<endl;
ofile<<"图书名称:"<<get_bookName()<<endl;
ofile<<"图书作者:"<<get_author()<<endl;
ofile<<"图书类型:"<<get_bookType()<<endl;
ofile<<"出版时间:"<<publish->get_pTime()<<endl;
ofile<<"出版地址:"<<publish->get_address()<<endl;
ofile<<"出版社名称:"<<publish->get_name()<<endl;
ofile<<"版本号:"<<get_version()<<endl;
ofile<<"图书册数:"<<get_count()<<endl;//注意后面的endl,用于对写完一个book后换行,其他位置不行
ofile.close();}
bool Book::searchInfo(string id)
{
bool flag=true;
if(get_bookID()==id)
flag=true;
else
flag=false;
return flag;
}
void Book::modifyInfo(string id)
{
int choice;//所做的选择
string name,author,type,time,pname,address;
int version,count;
cout<<"请按序号输入你想修改的项目:"<<endl;
cout<<"1:图书姓名 2:图书作者 3:图书类型 4:图书版本 "<<endl;
cout<<"5:图书册数 6:出版日期 7:出版社名称 8:出版社地址 "<<endl;
cin>>choice;
if(choice!=0)//当choice=0时表示退出操作
{
if(choice==1)
{
cout<<"请输入新的名称:"<<endl;
cin>>name;
set_bookName(name);
}
else if(choice==2)
{
cout<<"请输入新的作者名:"<<endl;
cin>>author;
set_author(author);
}
else if(choice==3)
{
cout<<"请输入新的图书类型:"<<endl;
cin>>type;
set_bookType(type);
}
else if(choice==4)
{
cout<<"请输入新的版本号:"<<endl;
cin>>version;
set_version(version);
}
else if(choice==5)
{
cout<<"请输入新的册数"<<endl;
cin>>count;
set_count(count);
}
else if(choice==6)
{
cout<<"请输入新的出版时间:"<<endl;
cin>>time;
publish->set_pTime(time);
}
else if(choice==7)
{
cout<<"请输入新的出版名称:"<<endl;
cin>>pname;
publish->set_name(pname);
}
else
{ cout<<"请输入新的出版社地址:"<<endl;
cin>>address;
publish->set_address(address);
}
}
}
void sortInfo(Book book[],int n)
{ int flag;
Book temp;//临时变量
for(int i=0;i<n-1;i++)
{
//如果前一种书的编号比后一种书的编号大,则flag返回正数
flag =book[i].get_bookID().compare(book[i+1].get_bookID());
if(flag)//如果flag为正数,就交换这两种书的位置
{
temp=book[i];
book[i]=book[i+1];
book[i+1]=temp;
}
}
}
Book Book::operator =(Book temp)//重载=运算符,进行深拷贝
{
set_bookID(temp.get_bookID());
set_bookName(temp.get_bookName());
set_bookType(temp.get_bookType());
set_author(temp.get_author());
set_version(temp.get_version());
set_count(temp.get_count());
set_publish(temp.get_publish());
return *this;
}
bool isCo
ntinue()
{
char choice;
cout<<"是否继续操作(Y/N)?"<<endl;
cin>>choice;
if(choice=='Y')
return true;
else
return false;
}
2.3.4 Publish.cpp的源程序
#include<iostream>
#include<string>
#include"publish.h"
using namespace std;
Publish::Publish()
{
pTime="2008-12-27";
address="北京";
name="清华大学出版社";
}
Publish::Publish(string time,string add,string name)
{
pTime=time;
address=add;
name=name;
}
void Publish::set_pTime(string time)
{
pTime=time;
}
string Publish::get_pTime()
{
return pTime;
}
void Publish::set_address(string add)
{
address=add;
}
string Publish::get_address()
{
return address;
}
void Publish::set_name(string nam)
{
name=nam;
}
string Publish::get_name()
{
return name;
}
2.3.5 主函数源程序
#include<iostream>
#include<string>
#include"book.h"
#include"publish.h"
using namespace std;
void main()
{
int choice;
int i;
int n;
Book *book;//动态创建对象数组
cout<<" 欢迎进入图书信息系统! "<<endl;
cout<<"请输入你想加入的书的总类数:";
cin>>n;
cout<<endl;
cout<<"================================================="<<endl;
cout<<"请根据序号选择相关操作"<<endl;
cout<<"========================================================="<<endl;
cout<<endl;
cout<<" 1:录入图书信息!"<<endl;
cout<<" 2:查询图书信息!"<<endl;
cout<<" 3:修改图书信息!"<<endl;
cout<<" 4:对图书排序!"<<endl;
cout<<" 5:删除图书信息!"<<endl;
cout<<" 6:输出图书信息!"<<endl;
cout<<" 7:退出系统!"<<endl;
cout<<"========================================================="<<endl;
book=new Book[n];
cin>>choice;
cout<<endl;
while(choice!=0)
{
if(choice==1)
{
for(i=0;i<n;i++)
{
cout<<"第"<<i<<"种书:"<<endl;
book[i].addInfo();
}
}
else if(choice==2)
{
string id;
cout<<"请输入你想查找的图书编号:";
cin>>id;
for(i=0;i<n;i++)
{
if(book[i].searchInfo(id))
book[i].display();
}
}
else if(choice==3)
{
string id;
cout<<"请输入你想修改的图书编号:";
cin>>id;
for(i=0;i<n;i++)
{
if(book[i].get_bookID()==id)
book[i].modifyInfo(id);
} }
else if(choice==4)
{
sortInfo(book,n);
}
else if(choice==5)
{
string id;
cout<<"请输入你想删除的图书编号:";
cin>>id;
for(i=0;i<n;i++)
if(book[i].get_bookID()==id)
{
int temp;
temp=i;
for(int j=i+1;j<n;j++)
{
book[temp]=book[j];
temp=j;
}
n--;//删除了一种数,就减少了一种。
}
}
else if(choice==6)
{
for(i=0;i<n;i++)
book[i].display();
}
else
{
exit(1);
break;
}
if(isCo
ntinue())//选择是否继续操作
{
cout<<"请根据序号选择操作:";
cin>>choice;
}
else break;//否则退出系统
}
return ;
}
3.调试与运行
3.1主页面
运行结果:
3.2录入图书信息
写入文件如下:
在文件夹中多了一个library.txt文件:
从文件中读出:
3.3查询图书信息
3.4修改图书信息
当然你可以继续修改,这里就不演示了。
3.5对图书排序
3.6删除图书
3.7输出所有图书信息
分析:
我们可以看到,第一个图书编号没有,因为我在前面把它删除了,所有的值设置为空,
而编号3,与编号1的图书的位置已经变了,因为我在前面对它们排了序。如果编号2没有删除,应该排在最前面。
3.8退出系统
以上就是好一点整理的图书管理信息系统的流程图怎么画相关内容,想要了解更多信息,敬请查阅好一点。