日 期 工 作 内 容 执 行 情 况 指导教师
签 字
4月15日
至
4月20日 准备 良好
4月21日至
5月10日 研究过程 良好
5月11日
至
5月30日 开始招收制作 良好
5月31日
至
6月10日 修改 良好
教师对进度计划实施情况总评
签名
年 月 日
本表作评定学生平时成绩的依据之一。
目录
第一章 绪 言 错误!未定义书签。
1) 第一节 研究历史 图书馆有各种图书若干万册。
2) 每种图书都有书名、图书编号、作者(译者)、出版社、定价和内容简介。
3) 借书证记录有借阅者的姓名、工作单位、住址、联系电话等。
4)凭借书证借书,每次最多能借5本书,借书期限最长为60天。
第二节……
1)图书馆借阅书籍于归还书籍的登记。也就是为读者建立一个台账,应用该台账,工作人员能方便地掌握某位读者借了哪些书,借了多长时间。
2)编著催还图书通知单。图书馆对所借书籍的最长借阅时间限制为60天,对逾期未还的读者下达催还图书通知单,促其尽快还书,以加快图书的流通。
3)提供快速的图书查询功能,方便读者尽快插大所需要的书。
4)系统提供的全部功能要简单、直观、实用
第三节……
1) 图书借阅。为有借书证的读者办理借阅登记,登记的内容包括借书证编号、图书编号、借阅日期。
2)图书归还。在适当位置登记,这个适当位置应该由借书证编号和图书编号决定。
3)编制催还图书通知单。对借阅图书超过60天者打印催还图书通知单,其内容包括借书证编号、读者姓名、电话号码、图书编号、名称、作者、出版社、借阅日期等信息。
4)借书证办理与退还。本系统只提供对借书证发放(办理)和回收(退还)两个过程的支持。
5)图书入库预报废。新采购书的入库登记和废旧图书的报废登记。对于新书入库有两种不同的情况:其一是新采购的图书在以前登记过,这次属于补充库存;
其二是图书馆以前没有登记过。
第二章……
代码:
/ 图书管理系统数据库
create database tsgl
on primary
(
name = 图书管理,
filename = 'D:\data\tsglmdf',
size = 10,
maxsize = unlimited,
filegrowth = 10%
)
log on
(
name = 图书管理,
filename = 'D:\data\tsglldf',
size = 2,
maxsize = unlimited,
filegrowth = 2%
)
/
/ 借书登记表
use tsgl
go
create table jszdjb
(
jszbh char(8),
tsbh char(8),
jyrq datetime,
ghrq datetime
)
/
/ 图书类型表
use tsgl
go
create table tslx
(
tslb char(8)
)
/
/ 借书证发放等级表
use tsgl
go
create table reader
(
jszbh char(8),
dzxm char(8),
gzdw char(30),
dhhm char(11),
jtzz char(20),
bzrq datetime,
tzrq datetime
)
/
/ 图书等级表
use tsgl
go
create table tsdj
(
tsbh char(8),
tsmc char(30),
zz char(8),
cbs char(30),
tslb char(8),
tsjg money,
kcsl int,
zksl int
)
/
/ 读者信息
use tsgl
go
create table readermes
(
jszbh char(8),
sex char(2) default '男',
snum char(10)
)
/
/ 性别为男的读者信息
use tsgl
go
create view rsex
as
select
from readermes
where readermessex = '男'
/
/
create trigger insert_r
on reader
for insert
as
begin
declare @jszbh char(8),
select @jszbh count(),
from reader join inserted
on readerjszbh = insertedjszbh
end
/
总结
任何一个社会组织和企业公司在发展过程中都会产生大量的数据,这些数据的组织存储、分析统计有利于提高企业的发展,有利于提高企业的效率。这些数据的组织和存储就是数据模型,就是数据库应用系统开发的任务。
数据库应用系统开发的过程一般包括可行性研究、需求分析、系统设计、程序编码、程序调试和系统维护六个阶段。根据数据库应用系统的复杂程度,不一定完全刻板地遵守上述步骤,但是,可行性研究、需求分析、系统设计、程序编码、程序调试是不可缺少的。
本次课程设计制作了一个简单的图书馆管理系统,实现了一些图书管理和借阅功能,但与实际系统还是有很大差别的。首先是对应用情况做了简单的理想化处理,因而难以反映实际工作中可能遇到的实际问题;其次,未考虑用户 *** 作中可能出现的错误的处理,而实际上这种错误的处理程序可能占应用系统的很大一部分。如本系统在需求分析和程序健全性方面均存在一些问题,为了解决这些不完善之处,需要在今后的进一步学习中,逐步深入,不断积累经验,不但提高。
参考文献
[1] 萨师煊、王珊《数据库系统概论》北京:高等教育出版社, 2000-2 第三版
[2] 朱如龙《SQL Server 2000 数据库应用系统开发技术》北京:机械工业出版社, 2007-1
[3] 朱如龙《SQL Server 2000 数据库应用系统开发技术实验指导》北京:机械工业出版社
[4] 黄梯云《管理信息系统》北京 : 高等教育出版社, 2005-3第三版
[5] 魏永继《SQL SERVER 2000应用程序开发》北京:机械工业出版社, 2007-2
[8] 王一平《数据库应用技术》北京:人民邮电出版社, 2005-12
1、登录 “登录”窗体如图, *** 作员使用系统前,要输入正确的用户名和密码,才可以进入“图书信息管理系统”进行下一步 *** 作;
2、通过登录验证以后,进入主界面窗体,通过主窗体, *** 作员可以方便地调用“图书信息管理系统”内的各项功能;
3、图书管理:单击上图中的“图书管理”菜单,可以进行图书管理 *** 作;
4、读者管理:单击主界面中的“读者管理”菜单,可以进行读者管理 *** 作,比如单击“录入读者信息”子菜单,d出“录入读者信息”窗口,同时还可以进行“修改读者信息” *** 作;
1) 了解应用开发工具的现状
2) DelPHi60编程基础
3) MS SQL Server基础
4) 设计数据库;设计界面
5) 开发数据库。数据库实现的一些功能有
l 数据和数据说明的醒目显示;
l 多条件的查询、多条记录的检索、模糊查询;
l 数据文件某种存储格式导入数据窗体,经过数据完整性校验存入数据库;
l 数据库安全性的设计;
l 数据库的设计、数据接口、界面的设计。
图书馆管理信息系统分析、设计、实现与测试
11 系统分析
111 图书馆管理信息系统的基本任务
该“图书馆管理信息系统”是一个具有万人以上的员工,并地理位置分布在大型企的图
书馆理系统,图书馆藏书 100 多万册,每天的借阅量近万册。在手工 *** 作方式下,图书的编目和借阅等的工作量大,准确性低且不易修改维护,读者借书只能到图书馆手工方式查找书目,不能满足借阅需求。需要建立一套网络化的电子图书馆信息系统。
该图书馆管理信息系统服务对象有两部分人:注册用户和一般读者。一般读者经注册后成为注册用户,注册用户可以在图书馆借阅图书,其他人员只可查阅图书目录,但不能借阅图书。系统同时考虑提供电子读物服务,目前只提供电子读物的目录查询服务,不久的将来将提供电子读物全文服务。用户可通过网络方式访问读图书馆管理信息系统。
112 系统内部人员结构、组织及用户情况分析
为了对系统有一个全貌性的了解,首先要对系统内部人员结构、组织及用户情况有所了
解。图书馆系统的组织结构如图 1 - 1 所示。
图 1 - 1 图书馆管理信息系统的组织结构
图书馆由馆长负责全面工作,下设办公室、财务室、采编室、学术论文室、图书借阅室、电子阅览室、期刊阅览室和技术支持室。各部门的业务职责如下。
办公室:办公室协助馆长负责日常工作,了解客户需求,制定采购计划。
财务室:财务室负责财务方面的工作。
采编室:采编室负责图书的采购,入库和图书编目,编目后的图书粘贴标签,并送图书借阅室上架。
学术论文室:负责学术论文的收集整理。
图书借阅室:提供对读者的书目查询服务和图书借阅服务。
电子阅览室:收集整理电子读物,准备提供电子读物的借阅服务,目前可以提供目录查询和借阅。
期刊阅览室:负责情况的收集整理和借阅。
技术支持室:负责对图书馆的网络和计算机系统提供技术支持。
113 系统业务流程分析
系统的业务室系统要达到的业务目标,业务流程分析是系统分析的基础环节。图书馆管
理信息系统的业务流程如图 1 - 2 所示。
图 1 - 2 图书馆管理信息系统的业务流程
通过业务流程调查,理清图书馆管理系统的主要业务和业务的流程。
图书馆管理员编制图书采购计划,由采购员负责新书的采购工作。采购图书入库后,交采编室编目,粘贴标签,产生图书目录。图书交图书借阅室上架,供读者借阅。采编后的电子读物交电子阅览室。
读者分为注册读者和非注册读者,只有注册读者可以在本图书馆借书,非注册读者可查询目录但不能借书。读者填写注册登记表交图书馆的管理员审核后,记人读者登记表,成为注册读者,发给借书证。注册读者借书时,需填写借书单,连同借书证一起交给借阅室管理员,借阅管理员核对无误后,填写借阅登记表,修改图书登记表中该书的数量,上架取书交给读者。图书馆设读者信箱,读者需要但没有库存的图书,读者可以通过读者信箱反映。图书馆管理员定期处理读者信箱中的意见,将读者需要的图书编制成图书采购计划交采购员购买。
114 数据流程图
数据流程图时全面描述信息系统逻辑模型的工具,它抽象概括地把信息系统中各种业务
处理过程联系起来。以下时图书馆管理信息系统地数据流程图。
(1) 零层数据流程图 1 - 3
图 1 - 3 零层数据流程图
( 2 ) 1 层数据流程图 1 - 4
图 1 - 4 图书馆管理信息系统 1 层数据流程图
115 数据定义及数据字典
为了对数据流程图中各元素进行详细的说明,我们采用了数据字典的说明方法。图书馆
管理信息系统的数据字典如下:
(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 次 / 日
12 系统设计
121 系统功能设计
“图书馆管理信息系统”的主要功能有:图书目录检索、网上图书预定、图书借阅、电子出版物借阅、图书采编、读者留言和系统维护等。系统功能如图 1 - 13 所示。
图 1 - 13 图书馆管理信息系统功能
各子系统功能如下所述。
1 读者注册系统
读者访问系统时将检验读者账号和密码,经过注册的读者允许进入系统。
2 书目查询系统
读者进入图书馆管理信息系统后,可以根据需要检索书名或期刊。检索条件可以是书名称、图书编号、作者姓名或关键字等条件,如果读者拥有不充分还可以进行模糊查询。
3 图书预定系统
读者检索到需要的图书后,单击所需要图书条目,进入图书预定系统,读者也可以从图书馆管理信息系统主界面进入图书预定系统。系统查询图书库,如果书库中有此书,则将此书为该读者保留三天。读者应当在三天内到图书馆办理借阅手续,否则系统将自动取消保留。
4 图书借阅系统
读者查找到所需图书后,在图书保留期内到图书馆办理借阅手续。图书借阅系统处理图书借阅、还书、续借等手续。
5 图书采编系统
图书采购入库经过编目等处理后,将其目录存入数据库,提供给读者检索使用。目录信
息包括图书编号、图书类别、书名、作者、出版社、定价、出版日期和数量等。
6 电子读物系统
随着数字技术的发展,图书馆中的电子读物的数量越来越大。电子读物系统处理电子读物的阅览、版权与安全等事务。
7 读者留言板
通过留言板,读者将需要的图书、要求和建议等记录下来,与图书馆管理人员交流。
8 系统维护模块
系 统维护模块主要为图书馆管理人员提供图书统计信息和读者统计信息,以便于管理人
员从宏观上掌握图书馆运行的总体状况。
122 系统环境设计
1硬件环境设计
图书馆管理信息系统采用两台服务器构成双机备份结构,保证提供实时服务。为保证较快的响应时间,选用处理速度较高的计算机系统,内存大小对数据库系统的响应速度影响较大,选择内存较大的系统。网络通信速度选用100Mbit/s1000Mbit/s。为保证系统中心的信息安全,配置必要的数据备份设备(采用外部备份方式)。
2软件设计环境设计
图书馆管理信息系统采用先进的 Client ( Browser ) Server/Database Server 模式,服务器端采用 Web 方式进行系统开发,用户使用通用的浏览器访问该“图书馆管理信息系统”,服务器端采用应用逻辑服务和数据库服务两层,与客户端形成三级系统结构。采用这样的三层结构,具有结构清晰、维护简单、运行速度高等特点。软件结构如图 1 - 14 所示。
图 1 - 14 图书馆管理信息系统的三层体系结构
*** 作系统采用 Microsoft 公司的 NT 服务器, Web 站点发布系统选用 Microsoft 公司的 IIS ,数据库系统选用 Microsoft 公司的 SQL 。用户界面设计设计使用 Dreamweaver 、 Flash 和 FrontPage 等软件工具。
3 网络环境设计
图书馆的网络系统,由图书馆主交换机和部门交换机组成。用户可以在图书馆内部使用
图书馆网络系统访问该系统,也可以在图书馆外部使用互联网访问该图书馆管理信息系统。
#include <iostream>
#include <iomanip>
#include <string>
//输入/输出文件流类
#include <fstream>
using namespace std;
//最多的读者
const int Maxr=100;
//最多的图书
const int Maxb=100;
//每位读者最多借五本书
const int Maxbor=5;
//读者类,实现对读者的信息的描述
class Reader
{
private:
//删除标记 1:已删 0:未删
int tag;
//读者编号
int no;
//读者姓名
char name[10];
//所借图书
int borbook[Maxbor];
public:
Reader()
{
;
}
//获取姓名
char getname()
{
return name;
}
//获取删除标记
int gettag()
{
return tag;
}
//获取读者编号
int getno()
{
return no;
}
//设置姓名
void setname(char na[])
{
strcpy(name,na);
}
//设置删除标记 1:已删 0:未删
void delbook()
{
tag=1;
}
//增加读者
void addreader(int n,char na)
{
tag=0;
no=n;
strcpy(name,na);
for(int i=0;i<Maxbor;i++)
borbook[i]=0;
}
//借书 *** 作
void borrowbook(int bookid)
{
for(int i=0;i<Maxbor;i++)
{
if (borbook[i]==0)
{
borbook[i]=bookid;
return;
}
}
}
//还书 *** 作
int retbook(int bookid)
{
for(int i=0;i<Maxbor;i++)
{
if(borbook[i]==bookid)
{
borbook[i]=0;
return 1;
}
}
return 0;
}
//读出读者信息
void disp()
{
cout << setw(5) << no <<setw(10) << name<<"借书编号:[";
for(int i=0;i<Maxbor;i++)
if(borbook[i]!=0)
cout << borbook[i] << "|";
cout << "]"<<endl;
}
};
//读者类库,实现建立读者的个人资料
class RDatabase
{
private:
//读者记录指针
int top;
//读者记录
Reader read[Maxr];
public:
//构造函数,将readertxt读到read[]中
RDatabase()
{
Reader s;
top=-1;
//打开一个输入文件
fstream file("readertxt",ios::in);
while (1)
{
fileread((char )&s,sizeof(s));
if (!file)break;
top++;
read[top]=s;
}
//关闭 readertxt
fileclose();
}
//删除所有读者信息
void clear()
{
top=-1;
}
//添加读者时先查找是否存在
int addreader(int n,char na)
{
Reader p=query(n);
if (p==NULL)
{
top++;
read[top]addreader(n,na);
return 1;
}
return 0;
}
//按编号查找
Reader query(int readerid)
{
for (int i=0;i<=top;i++)
if (read[i]getno()==readerid &&
read[i]gettag()==0)
{
return &read[i];
}
return NULL;
}
//输出所有读者信息
void disp()
{
for (int i=0;i<=top;i++)
read[i]disp();
}
//读者库维护
void readerdata();
//析构函数,将read[]写到readertxt文件中
~RDatabase()
{
fstream file("readertxt",ios::out);
for (int i=0;i<=top;i++)
if (read[i]gettag()==0)
filewrite((char )&read[i],sizeof(read[i]));
fileclose();
}
};
void RDatabase::readerdata()
{
char choice;
char rname[20];
int readerid;
Reader r;
while (choice!='0')
{
cout <<"\n\n\t\t\t读 者 维 护\n\n\n\t\t 1 新 增\n\n\t\t 2 更 改\n\n\t\t 3 删 除\n\n\t\t 4 查 找\n\n\t\t 5 显 示\n\n\t\t 6 全 删\n\n\t\t 0 退 出"<<endl;
cin >> choice;
switch (choice)
{
case '1':
cout << "输入读者编号:";
cin >> readerid;
cout << "输入读者姓名:";
cin >> rname;
addreader (readerid,rname);
break;
case '2':
cout << "输入读者编号:";
cin >> readerid;
r=query(readerid);
if (r==NULL)
{
cout << " 该读者不存在 "<<endl;
break;
}
cout << "输入新的姓名:";
cin >> rname;
r->setname(rname);
break;
case '3':
cout << " 输入读者编号:";
cin >> readerid;
r=query(readerid);
if (r==NULL)
{
cout <<" 该读者不存在" << endl;
break;
}
r->delbook();
break;
case '4':
cout << "读入读者编号:";
cin >> readerid;
r=query(readerid);
if (r==NULL)
{
cout <<"该读者不存在"<< endl;
break;
}
r->disp();
break;
case '5':
disp();
break;
case '6':
clear();
break;
default:cout<<"输入错误,请从新输入:";break;
}
}
}
//图书类,实现对图书的描述,图书的编号,书名,借出,还入等
class Book
{
private:
//删除标记 1:已删 0:未删
int tag;
//图书编号
int no;
//书名
char name[20];
//是否再架 1:再架 2:已借
int onshelf;
public:
Book(){}
//获取姓名
char getname() { return name; }
//获取图书编号
int getno(){ return no; }
//获取删除标记
int gettag(){ return tag; }
//设置书名
void setname(char na[])
{
strcpy(name,na);
}
//删除图书
void delbook(){ tag=1;}
//增加图书
void addbook(int n,char na)
{
tag=0;
no=n;
strcpy(name,na);
onshelf=1;
}
//借书 *** 作
int borrowbook()
{
if (onshelf==1)
{
onshelf=0;
return 1;
}
return 0;
}
//还书 *** 作
void retbook()
{
onshelf=1;
}
//输出图书
void disp()
{
cout << setw(6) << no << setw(18) << name << setw(10)
<<(onshelf==1 "在架":"已借") <<endl;
}
};
//图书库类,实现对图书的维护,查找,删除等
class BDatabase
{
private:
//图书记录指针
int top;
//图书记录
Book book[Maxb];
public:
//构造函数,将booktxt读到book[]中
BDatabase()
{
Book b;
top=-1;
fstream file("booktxt",ios::in);
while (1)
{
fileread((char )&b,sizeof(b));
if (!file) break;
top++;
book[top]=b;
}
fileclose();
}
//全删
void clear()
{
top=-1;
}
//增加图书
int addbook(int n,char na)
{
Book p=query(n);
if (NULL==p)
{
top++;
book[top]addbook(n,na);
return 1;
}
return 0;
}
//查找图书
Book query(int bookid)
{
for (int i=0;i<=top;i++)
if (book[i]getno()==bookid &&book[i]gettag()==0)
{
return &book[i];
}
return NULL;
}
//图书库维护
void bookdata();
void disp()
{
for (int i=0;i<=top;i++)
if (book[i]gettag()==0)
book[i]disp();
}
//析构函数,将book[]写到booktxt文件中
~BDatabase()
{
fstream file("booktxt",ios::out);
for (int i=0;i<=top;i++)
if (book[i]gettag()==0)
filewrite((char )&book[i],sizeof(book[i]));
fileclose();
}
};
void BDatabase::bookdata()
{
char choice;
char bname[40];
int bookid;
Book b;
while (choice!='0')
{
cout <<"\n\n\n\t\t\t图 书 维 护 "<<endl<<endl;
cout<<"\t\t1 新 增\n \t\t2 更 改\n\t\t3 删 除\n\t\t4 查 找\n\t\t5 显 示\n\t\t6 全 删\n\t\t0 退 出"<<endl;
cin >> choice;
switch (choice)
{
case '1':
cout << "输入图书编号:"<<endl;
cin >> bookid;
cout << "输入图书书名:"<<endl;
cin >> bname;
addbook(bookid,bname);
break;
case '2':
cout << "输入图书编号:"<<endl;
cin >> bookid;
b=query(bookid);
if (b==NULL)
{
cout << " 该图书不存在 "<<endl;
break;
}
cout << "输入新的书名:"<<endl;
cin >> bname;
b->setname(bname);
break;
case '3':
cout <<" 读入图书编号:"<<endl;
cin >> bookid;
b=query(bookid);
if (b==NULL)
{
cout <<" 该图书不存在" << endl;
break;
}
b->delbook();
break;
case '4':
cout << " 读入图书编号:"<<endl;
cin >> bookid;
b=query(bookid);
if (b==NULL)
{
cout <<" 该图书不存在"<< endl;
break;
}
b->disp();
break;
case '5':
disp();
break;
case '6':
clear();
break;
default:cout<<"输入错误,请从新输入:";
}
}
}
//main() 函数的实现,程序的主界面的引导
int main()
{
char choice;
int bookid,readerid;
RDatabase ReaderDB;
Reader r;
BDatabase BookDB;
Book b;
while(choice!='0')
{
cout <<endl<<endl<<"\t\t\t 图 书 管 理 系 统\n\n\n";
cout <<"\t\t\t1 借 书\n\n\t\t\t2 还 书 \n\n\t\t\t3 图 书 维 护\n\n\t\t\t4 读 者 维 护\n\n\t\t\t0 离 开"<<endl;
cin >> choice;
switch (choice)
{
case '1':
cout <<" 借书 读者编号:";
cin >>readerid;
cout <<" 图书编号: ";
cin >>bookid;
//按编号查找
r=ReaderDBquery(readerid);
if (NULL==r)
{
cout <<" 不存在该读者,不能借书"<< endl;
break;
}
b=BookDBquery(bookid);
if (b==NULL)
{
cout <<" 不存在该图书,不能借书"<< endl;
break;
}
if (b->borrowbook()==0)
{
cout << " 该图书已借出,不能借书"<< endl;
break;
}
r->borrowbook(b->getno());
break;
case '2':
cout<<"还书\n 读者编号:";
cin >>readerid;
cout << " 图书编号:";
cin >>bookid;
r=ReaderDBquery(readerid);
if (r==NULL)
{
cout <<" 不存在该读者,不能还书" << endl;
break;
}
b=BookDBquery(bookid);
if (b==NULL)
{
cout <<" 不存在该图书,不能还书" <<endl;
break;
}
b->retbook();
r->retbook(b->getno());
break;
case '3':
BookDBbookdata();
break;
case '4':
ReaderDBreaderdata();
break;
default:cout<<"输入错误,请从新输入:";
}
}
}
以上就是关于急找数据库课程设计全部的内容,包括:急找数据库课程设计、图书馆还书的数据流程图、数据库问题:图书馆借书管理系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)