当前位置:首页 » 数据仓库 » 数据库系统原理课程设计
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据库系统原理课程设计

发布时间: 2022-12-15 17:59:17

1. 高分求一份完整图书管理系统数据库课程设计

网上书店(图书)管理系统的设计与实现(HTML5,SSH,MySQL)(含录像)

2. 数据库原理与应用的课程设计

这个问题你在网络是找不到答案的。
数据库的课程设计,要编写程序,至少要好几天才能完成。
还是自己动手吧。

3. 数据库课程设计实例

数据库课程设计

题目:小型超市管理系统
1、项目计划
1.1系统开发目的
(1)大大提高超市的运作效率;
(2)通过全面的信息采集和处理,辅助提高超市的决策水平;
(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本, 提高效益,增强超市扩张力, 提供有效的技术保障。
1.2背景说明
21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。
1.3项目确立
针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:前台POS销售系统、后台管理系统,其中这两个子系统又包含其它一些子功能。
1.4应用范围
本系统适应于各种小型的超市。
1.5 定义
(1)商品条形码:每种商品具有唯一的条形码,对于某些价格一样的商品,可以使用自定义条形码。
(2)交易清单:包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号。
(3)商品积压:在一定时期内,远无法完成销售计划的商品会造成积压。
(4)促销:在一定时期内,某些商品会按低于原价的促销价格销售。
库存告警提示:当商品的库存数量低于库存报警数量时发出提示。
(5)盘点:计算出库存、销售额、盈利等经营指标。
1.6 参考资料
《数据库原理及设计》 陶宏才编 清华大学出版社
《SQL Server 2000 实用教程》范立南编 清华大学出版社
《SQL Server 2000 编程员指南》李香敏编 北京希望电子出版社
《轻松搞定 SQL Server 2000 程序设计》Rebecca M.Riordan编
《软件工程规范》Watts S.Humphrey编 清华大学出版社
《软件工程理论与实践》 Shari Lawrence Pfleeger编 清华大学出版社
《软件需求分析》 Swapna Kishore编 机械工业出版社
《软件工程思想》 林锐编

2、逻辑分析与详细分析
2.1系统功能
(1)、零售前台(POS)管理系统,本系统必须具有以下功能:
 商品录入:根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。该扫描录入方法可以充分保证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。
 收银业务:通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。 会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。
 安全性:OS登陆、退出、换班与操作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法操作。
 独立作业:有的断网收银即在网络服务器断开或网络不通的情况下,收银机仍能正常作业
(2)、后台管理系统,本系统必须具备以下功能
 进货管理: 根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。
 销售管理: 商品正常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。 按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。
 库存管理: 综合查询库存明细记录。 库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。
 人员管理: 员工、会员、供货商、厂商等基本信息登记管理。 员工操作权限管理。 客户销售权限管理。

(3)系统结构
系统总体结构

模块子系统结构

功能描述:商品录入子系统要求能快速录入商品,因此必须支持条形码扫描。

功能描述:收银业务子系统能计算交易总额,打印交易清单,并根据会员卡打折。

功能描述:进货管理子系统可以根据库存自动指定进货计划,进货时自动等级,以及提供查询和打印计划进货与入库记录的功能。

功能描述:销售管理子系统可以控制某商品是否允许销售,查询每种商品的销售情况并产生年、月、日报表,同时可以生成销售排行榜。

功能描述:库存管理子系统提供查询库存明细记录的基本功能,并根据库存的状态报警,以及自动盘点计算。

功能描述:人员管理子系统提供基本信息登记管理,员工操作权限管理,客户销售权限管理的功能。
2.2、流程图
前台管理系统

顶层DFD图

第0层DFD图

第1层DFD图

2.3、户类型与职能
(1)、员工(营业员):
 通过商品条形码扫描输入商品到购买清单
 操作软件计算交易总金额
 操作软件输出交易清单
 对会员进行会员卡扫描以便打折
(2)、:超市经理
 操作软件录入商品,供货商,厂商
 操作软件制定进货计划
 查询打印计划进货与入库记录
 操作软件控制商品销售与否
 查询打印销售情况
 操作软件生成销售排行榜
 查询库存明细记录
 根据软件发出的库存告警进行入货
 操作软件进行盘点计算
(3)、总经理:
 基本信息登记管理
 员工操作权限管理
 客户销售权限管理
2.4、统开发步骤
 确定参与者和相关的用况
 为每个用况设计过程
 建立顺序图,确定每个脚本中对象的协作
 创建类,确定脚本中的对象
 设计, 编码, 测试, 集成类
 为过程编写系统测试案例
 运行测试案例,检验系统
2.5、系统环境需求
 系统模式

本系统采用C/S模式作为开发模式
 硬件环境
服务器端:
高性能的计算机一台,
普通的双绞线作为连接。
客户端: 普通的计算机或者工作站,
普通的双绞线作为连接。
 软件环境
服务器端:安装SQL Server 2000的服务器版本,
安装windows 2000服务器版本,
配置了诺顿等必须的防毒软件。
客户端: 安装SQL Server2000的服务器版本,
安装了VB等可视化开发工具软件,
安装windows2000服务器版本。

2.6、系统安全问题
信息系统尽管功能强大,技术先进,但由于受到自身体系结构,设计思路以及运行机制等限制,也隐含许多不安全因素。常见因素有:数据的输入,输出,存取与备份,源程序以及应用软件,数据库,操作系统等漏洞或缺陷,硬件,通信部分的漏洞,企业内部人员的因素,病毒,“黑客”等因素。因此,为使本系统能够真正安全,可靠,稳定地工作,必须考虑如下问题:为保证安全,不致使系统遭到意外事故的损害,系统因该能防止火,盗或其他形式的人为破坏。
 系统要能重建
 系统应该是可审查的
 系统应能进行有效控制,抗干扰能力强
 系统使用者的使用权限是可识别的
3、基于UML的建模
3.1语义规则
用例模型(use cases view)(用例视图)的基本组成部件是用例(use case)、角色(actor)和系统(system)。用例用于描述系统的功能,也就是从外部用户的角度观察,系统应支持哪些功能,帮助分析人员理解系统的行为,它是对系统功能的宏观描述,一个完整的系统中通常包含若干个用例,每个用例具体说明应完成的功能,代表系统的所有基本功能(集)。角色是与系统进行交互的外部实体,它可以是系统用户,也可以是其它系统或硬件设备,总之,凡是需要与系统交互的任何东西都可以称作角色。系统的边界线以内的区域(即用例的活动区域)则抽象表示系统能够实现的所有基本功能。在一个基本功能(集)已经实现的系统中,系统运转的大致过程是:外部角色先初始化用例,然后用例执行其所代表的功能,执行完后用例便给角色返回一些值,这个值可以是角色需要的来自系统中的任何东西。
UML:是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示;它不是一种可视化的程序设计语言而是一种可视化的建模语言;不是工具或知识库的规格说明而是一种建模语言规格说明是一种表示的标准;不是过程也不是方法但允许任何一种过程和方法使用它。

用例(use case):

参与者(actor):

3.2、UML模型
3.21、系统UML模型

3.22、子系统UML模型
(1)零售前台(POS)管理系统用例视图

(2)后台管理系统用例视图

3.3、系统实现图

4、超市销售系统概念设计文档
(1)、系统ER图

(2)、系统ER图说明
1) 商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;
2) 每个顾客可以购买多种商品,不同商品可由不同顾客购买;
3) 每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。
(3)、视图设计
1) 交易视图(v_Dealing)——用于查询交易情况的视图;
2) 计划进货视图(v_PlanStock)——用于查询进货计划的视图;
3) 销售视图(v_Sale)——用于查询销售明细记录的视图;
4) 入库视图(v_Stock)——用于查询入库情况的视图。
5、逻辑设计文档
(1)、系统关系模型
a) 商品信息表(商品编号,商品名称,价格,条形码,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)
b) 用户表(用户编号,用户名称,用户密码,用户类型)
c) 会员表(会员编号,会员卡号,累积消费金额,注册日期)
d) 销售表(销售编号,商品编号,销售数量,销售金额,销售日期)
e) 交易表(交易编号,用户名称,交易金额,会员卡号,交易日期)
f) 进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入库状态)
g) 供货商表(供货商编号,供货商名称,供货商地址,供货商电话)
h) 厂商表(厂商编号,厂商名称,厂商地址,厂商电话)

(2)、系统数据库表结构
数据库表索引
表名 中文名
MerchInfo 商品信息表
User 用户表
Menber 会员表
Sale 销售表
Dealing 交易表
Stock 进货入库表
Provide 供货商表
Factory 厂商表

商品信息表(MerchInfo)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
MerchID int 4 P Not null 商品编号
MerchName Varchar 50 Not null 商品名称
MerchPrice Money 4 Not null 价格
MerchNum Int 4 Not null 库存数量
CautionNum Int 4 Not null 库存报警数量
PlanNum Int 4 null 计划进货数
BarCode Varchar 50 Not null 条形码
SalesProPrice Money 4 促销价格
SalesProDateS Datetime 8 促销起日期
SalesProDateE Datetime 8 促销止日期
AllowAbate Int 4 Not null 允许打折
AllowSale Int 4 Not null 允许销售
FactoryID Varchar 10 F Not null 厂商编号
ProvideID Varchar 10 F Not null 供货商编号

用户表(User)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
UserID varchar 10 P Not null 用户编号
UserName Varchar 25 Not null 用户名称
UserPW Varchar 50 Not null 用户密码
UserStyle Int 4 Not null 用户类型

会员表(Menber)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
MemberID Varchar 10 P Not null 会员编号
MemberCard Varchar 20 Not null 会员卡号
TotalCost Money 4 Not null 累积消费金额
RegDate Datetime 8 Not null 注册日期

销售表(Sale)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
SaleID Varchar 10 P Not null 销售编号
MerChID Varchar 10 F Not null 商品编号
SaleDate Datetime 8 Not null 销售日期
SaleNum Int 4 Not null 销售数量
SalePrice Money 4 Not null 销售单额

交易表(Dealing)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
DealingID Varchar 10 P Not null 交易编号
DealingPrice Money 4 Not null 交易金额
DealingDate Money 4 Not null 交易日期
MemberID Varchar 10 会员卡号
UserName Varchar 10 F Not null 用户名称

入库纪录表(Stock)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
StockID Varchar 10 P Not null 入库编号
MerchID Varchar 10 F Not null 入库商品编号
MerchNum Int 4 Not null 入库数量
MerchPrice Money 4 Not null 单额
TotalPrice Money 4 Not null 总额
StockDate Datetime 8 Datetime 入库日期
PlanDate Datetime 8 Datetime 计划进货日期
StockState Int 4 Not null 入库状态

供货商表(Provide)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
ProvideID varchar 10 P Not null 供货商编号
ProvideName Varchar 50 Not null 供货商名称
ProvideAddress Varchar 250 供货商地址
ProvidePhone Varchar 25 供货商电话

厂商表(Provide)
字段名 字段类型 长度 主/外键 字段值约束 对应中文名
FactoryID varchar 10 P Not null 厂商编号
FactoryName Varchar 50 Not null 厂商名称
FactoryAddress Varchar 250 厂商地址
FactoryPhone Varchar 25 厂商电话
6、物理设计文档
/*----------创建数据库----------*/
create database SuperMarketdb
on primary
(
name=SuperMarketdb,
filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.mdf',
size=100MB,
maxsize=200MB,
filegrowth=20MB
)
log on
(
name=SuperMarketlog,
filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.ldf',
size=60MB,
maxsize=200MB,
filegrowth=20MB
)
go

/*----------创建基本表----------*/
use [SuperMarketdb]
go
/*创建交易表*/
CREATE TABLE Dealing (
DealingID int identity(1,1) Primary key ,
DealingDate datetime NOT NULL ,
DealingPrice money NOT NULL ,
UserName varchar(25) NULL ,
MemberCard varchar(20) NULL
)
GO
/*创建厂商表*/
CREATE TABLE Factory (
FactoryID varchar(10) Primary key ,
FactoryName varchar(50) NOT NULL ,
FactoryAddress varchar(250) NULL ,
FactoryPhone varchar(50) NULL
)
GO
/*创建会员表*/
CREATE TABLE Member (
MemberID varchar(10) Primary key ,
MemberCard varchar(20) NOT NULL ,
TotalCost money NOT NULL ,
RegDate datetime NOT NULL
)
GO
/*创建商品信息表*/
CREATE TABLE MerchInfo (
MerchID int identity(1,1) Primary key ,
MerchName varchar(50) Unique NOT NULL ,
MerchPrice money NOT NULL ,
MerchNum int NOT NULL ,
CautionNum int NOT NULL ,
PlanNum int NOT NULL ,
BarCode varchar(20) Unique NOT NULL ,
SalesProPrice money NULL ,
SalesProDateS datetime NULL ,
SalesProDateE datetime NULL ,
AllowAbate int NOT NULL ,
AllowSale int NOT NULL ,
FactoryID int NOT NULL ,
ProvideID int NOT NULL
)
GO
/*创建供应商表*/
CREATE TABLE Provide (
ProvideID varchar(10) Primary key ,
ProvideName varchar(50) NOT NULL ,
ProvideAddress varchar(250) NULL ,
ProvidePhone varchar(25) NULL
)
GO
/*创建销售表*/
CREATE TABLE Sale (
SaleID int identity(1,1) Primary key ,
MerChID int NOT NULL ,
SaleDate datetime NOT NULL ,
SaleNum int NOT NULL,
SalePrice money NOT NULL
)
GO
/*创建入库表*/
CREATE TABLE Stock (
StockID int identity(1,1) Primary key ,
MerchID int NOT NULL ,
MerchNum int NOT NULL ,
MerchPrice money NULL ,
TotalPrice money NULL ,
PlanDate datetime NULL ,
StockDate datetime NULL,
StockState int NOT NULL
)
GO
/*创建用户表*/
CREATE TABLE User (
UserID varchar(10) Primary key ,
UserName varchar(25) NOT NULL ,
UserPW varchar(50) NOT NULL ,
UserStyle int NOT NULL ,
)
GO

/*----------创建表间约束----------*/
/*商品信息表中厂商编号、供应商编号分别与厂商表、供应商表之间的外键约束*/
ALTER TABLE MerchInfo ADD
CONSTRAINT [FK_MerchInfo_Factory] FOREIGN KEY
(
[FactoryID]
) REFERENCES Factory (
[FactoryID]
),
CONSTRAINT [FK_MerchInfo_Provide] FOREIGN KEY
(
[ProvideID]
) REFERENCES Provide (
[ProvideID]
)
GO
/*销售表中商品编号与商品信息表之间的外键约束*/
ALTER TABLE Sale ADD
CONSTRAINT [FK_Sale_MerchInfo] FOREIGN KEY
(
[MerChID]
) REFERENCES MerchInfo (
[MerchID]
) ON DELETE CASCADE
GO
/*入库表中商品编号与商品信息表之间的外键约束*/
ALTER TABLE Stock ADD
CONSTRAINT [FK_Stock_MerchInfo] FOREIGN KEY
(
[MerchID]
) REFERENCES MerchInfo (
[MerchID]
) ON DELETE CASCADE
GO

/*----------创建索引----------*/
/*在交易表上建立一个以交易编号、交易日期为索引项的非聚集索引*/
CREATE nonclustered INDEX IX_Dealing ON Dealing(DealingID, DealingDate)
GO
/*在商品信息表上建立一个以商品编号为索引项的非聚集索引*/
CREATE nonclustered INDEX IX_MerchInfo ON MerchInfo(MerchID)
GO
/*在销售表上建立一个以销售编号、销售日期为索引项的非聚集索引*/
CREATE nonclustered INDEX IX_Sale ON Sale(SaleID, SaleDate)
GO
/*在入库表上建立一个以入库编号、入库日期、商品编号为索引项的非聚集索引*/
CREATE nonclustered INDEX IX_Stock ON Stock(StockID, StockDate, MerchID)
GO

/*----------创建视图----------*/
/*创建用于查询交易情况的视图*/
CREATE VIEW v_Dealing
AS
SELECT DealingDate as 交易日期,
UserName as 员工名称,
MemberCard as 会员卡号,
DealingPrice as 交易金额
FROM Dealing
GO
/*创建用于查询进货计划的视图*/
CREATE VIEW v_PlanStock
AS
SELECT Stock.StockID as SID,
MerchInfo.MerchName as 商品名称,
MerchInfo.BarCode as 条形码,
Factory.FactoryName as 厂商,
Provide.ProvideName as 供货商,
Stock.MerchNum as 计划进货数量,
Stock.PlanDate as 计划进货日期
FROM Stock,MerchInfo,Provide,Factory
Where Stock.MerchID = MerchInfo.MerchID
and Provide.ProvideID=MerchInfo.ProvideID
and Factory.FactoryID=MerchInfo.FactoryID
and Stock.StockState=0
GO
/*创建用于查询销售明细记录的视图*/
CREATE VIEW v_Sale
AS
SELECT MerchInfo.MerchName as 商品名称,
MerchInfo.BarCode as 条形码,
MerchInfo.MerchPrice as 商品价格,
Sale.SalePrice as 销售价格,
Sale.SaleNum as 销售数量,
Sale.SaleDate as 销售日期
FROM Sale INNER JOIN
MerchInfo ON Sale.MerChID = MerchInfo.MerchID
GO
/*创建用于查询入库情况的视图*/
CREATE VIEW v_Stock
AS
SELECT MerchInfo.MerchName as 商品名称,
MerchInfo.BarCode as 条形码,
Factory.FactoryName as 厂商,
Provide.ProvideName as 供货商,
Stock.MerchPrice as 入库价格,
Stock.MerchNum as 入库数量,
Stock.TotalPrice as 入库总额,
Stock.StockDate as 入库日期
FROM Stock,MerchInfo,Provide,Factory
Where Stock.MerchID = MerchInfo.MerchID
and Provide.ProvideID=MerchInfo.ProvideID
and Factory.FactoryID=MerchInfo.FactoryID
and Stock.StockState=1
GO

7、小结
和传统管理模式相比较,使用本系统,毫无疑问会大大提高超市的运作效率,辅助提高超市的决策水平,管理水平,为降低经营成本, 提高效益,减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度,增强超市扩张能力, 提供有效的技术保障。
由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:
 本系统只适合小型超市使用,不能适合中大型超市使用;
 超市管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,但由于限于时间,本系统只能做出其中的一部分功能;
对于以上出现的问题,我们深表歉意,如发现还有其它问题,希望老师批评指正。
请采纳。

4. 急!求个数据库课程的设计!!

《数据库原理及应用》课程设计

数据库原理课程设计任务书
一、目的
1. 掌握计算机管理信息系统设计的一般方法,主要包括系统分析、系统设计的组织和实施。
2. 关系型数据库管理系统的编程技术,并能独立完成一般小系统的程序设计、调试运行等工作。
3. 培养把所学知识运用到具体对象,并能求出解决方案的能力。
二、任务(任选其一)
A.运用关系型数据库管理系统,实现本院图书馆管理信息系统。具体要求如下:
—图书、资料的登记、注销和查询。
—借书证管理,包括申请、注销借书证,查询借书证持有人等。
—借还图书、资料的登记、超期处理,超期拒借等。
—图书、资料查询,借、还图书和资料情况查询。
—图书、资料借阅情况的统计分析,拒此作为图书馆图书、资料订够的依据之一。(本项不作为基本要求)
B. 运用关系型数据库管理系统,实现服务电话管理系统
向客户现场派技术人员的服务公司可以用服务电话管理系统跟踪客户、员工、工作订单、发票、付款等等。
要求:
数据库要存储以下信息:
—客户信息
—客户工需单信息
—完成工需单所需人工
—完成工需单所需部件
—部件信息
—付款信息
—雇员信息
完成的功能:
—输入/查看 客户工需单信息
—输入/查看部件、雇员等其它信息
—付款
—打印发票等
三、结果形式
1. 设计报告:含E-R图、数据字典、关系模式、关系实例、查询描述、关系代数、SQL实现的查询语言及查询结果。
2. 上机实现。
四、考核
1. 课程设计态度(20分)。
2. 递交的书面材料(40分)。
3. 上机运行情况(40分)

目录
1.问题描述 2
1.1背景 2
1.2数据需求 2
1.3事物需求 3
1.4关系模式 3
2.方案图表设计 3
2.1 E-R图 3
2.2数据流程图 8
2.3数据字典 9
2.4关系图: 11
3.数据库源代码 12
3.1数据库建立 12
3.2数据初始化 14
4.结果数据处理 17
4.1单表查询 17
4.2超期处理 19
4.3还书操作 20
4.4借书操作 22
4.5书籍状态 24
4.6读者状态 24
5.结束语 26
5.1课程设计心得 26

1.问题描述
1.1背景
随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。
另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。
提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。

1.2数据需求
图书馆管理信息系统需要完成功能主要有:
1. 读者基本信息的输入,包括借书证编号、读者姓名、读者性别。
2.读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。
3.书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。
4.书籍类别信息的查询、修改,包括类别编号、类别名称。
5.书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。
6.书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。
7.借书信息的输入,包括读者借书证编号、书籍编号、借书日期。
8.借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。
9.还书信息的输入,包括借书证编号、书籍编号、还书日期。
10.还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。
11.超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。
12.超期还书罚款查询,删除,包括读者借书证编号、读者姓名、书籍编号、书籍名称,罚款金额等
1.3事物需求
(1)在读者信息管理部分,要求:
a.可以查询读者信息。
b.可以对读者信息进行添加及删除的操作。
(2 )在书籍信息管理部分,要求:
a.可以浏览书籍信息,要求:
b.可以对书籍信息进行维护,包括添加及删除的操作。
(3)在借阅信息管理部分,要求:。
a.可以浏览借阅信息。
b.可以对借阅信息进行维护操作。
(4)在归还信息管理部分,要求:
a.可以浏览归还信息
b.对归还信息可修改维护操作
(5)在管理者信息管理部分,要求:
a.显示当前数据库中管理者情况。
b.对管理者信息维护操作。
(6)在罚款信息管理部分,要求:
a.可以浏览罚款信息
b.对罚款信息可以更新

1.4关系模式
(一) 书籍类别(种类编号,种类名称)
(二) 读者(借书证编号,读者姓名,读者性别,读者种类,登记时期)
(三) 书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记日期)
(四) 借阅(借书证编号,书籍编号,读者借书时间)
(五) 还书(借书证编号,书籍编号,读者还书时间)
(六) 罚款(借书证编号,读者姓名,借书证编号,书籍编号,读者借书时间)
以上通过关系代数方法的进行运算得到所需要的结果,在实验结果中可以看到。

2.方案图表设计
2.1 E-R图
根据1)所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。
图书管理信息系统可以划分的实体有:书籍类别信息实体、读者信息实体、书籍信息实体、借阅记录信息实体,归还记录信息实体。用E-R图一一描述这些实体。

2.1.1类别实体E-R图:

图2-1类别实体E-R图

2.1.2读者信息实体E-R图:

图2-2 读者信息实体E-R图

2.1.3信息实体E-R图:

图2-3信息实体E-R图

2.1.4.记录信息实体E-R图:

图2-4 记录信息实体E-R图

2.1.5记录信息实体E-R图:

图2-5记录信息实体E-R图

2.1.6罚款信息实体E-R图:

图2-6罚款信息实体E-R图

2.1.6总的信息实体E-R图:

图2-7总的信息实体E-R图

2.2数据流程图

D5

归还信息录入 基本信息录入
D2
D1

基本信息录入 基本信息录入
D3

D4

借阅信息录入
读者信息返回 书籍信息返回

图2-7系统的数据流程图

2.3数据字典
表2-1 book_sytle 书籍类别信息表
表中列名 数据类型 可否为空 说明
bookstyleno varchar not null(主键) 种类编号
bookstyle Varchar not null 种类名称

表2-2 system_readers读者信息表格
表中列名 数据类型 可否为空 说明
readerid varchar not null(主键) 读者借书证号
readername varchar not null 读者姓名
readersex varchar not null 读者性别
readertype varchar null 读者种类
regdate datetime null 登记日期

表2-3 system_book书籍信息表
表中列名 数据类型 可否为空 说明
bookid Varchar Not null(主键) 书籍编号
bookname Varchar Not null 书籍名称
bookstyle Varchar Not null 书籍类别
bookauthor Varchar Not null 书籍作者
bookpub Varchar Null 出版社名称
bookpubdate Datetime Null 出版日期
bookindate Datetime Null 登记日期
isborrowed Varchar Not Null 是否被借出

表2-4 borrow_record 借阅记录信息表
表中列名 数据类型 可否为空 说明
readerid Varchar Not null(外主键) 读者借阅证编号
bookid Varchar Not null(外主键) 书籍编号
borrowdate Varchar Not null 读者借书时间

表2-5 return_record 借阅记录信息表
表中列名 数据类型 可否为空 说明
readername Varchar Not null(外主键) 读者借阅证编号
readerid Varchar Not null(外主键) 书籍编号
returndate datetime Not null 读者还书时间

表2-6 reader_fee 罚款记录信息表
readerid varchar Not null 读者借书证编号
readername varchar Not null 读者姓名
bookid varchar Not null(外主键) 书籍编号
bookname varchar Not null 书籍名称
bookfee varchar Not Null 罚款金额
borrowdate datetime Not Null 借阅时间

2.4关系图:

图2-8数据库存表关系图

3.数据库源代码
3.1数据库建立

3.1.1创建数据库
USE master
GO
CREATE DATABASE librarysystem
ON
( NAME = librarysystem,
FILENAME = 'd:\librarysystem.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = 'library',
FILENAME = 'd:\librarysystem.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
GO

3.1.2书本类别表建立
create table book_style
(
bookstyleno varchar(30) primary key,
bookstyle varchar(30)
)

3.1.3创建书库表
create table system_books
(
bookid varchar(20) primary key,
bookname varchar(30) Not null,
bookstyleno varchar(30) Not null,
bookauthor varchar(30),
bookpub varchar(30) ,
bookpubdate datetime,
bookindate datetime ,
isborrowed varchar (2) ,
foreign key (bookstyleno) references book_style (bookstyleno),
)

3.1.4借书证表建立
create table system_readers
( readerid varchar(9)primary key,
readername varchar(9)not null ,
readersex varchar(2) not null,
readertype varchar(10),
regdate datetime
)

3.1.5借书记录表建立
create table borrow_record
( bookid varchar(20) primary key,
readerid varchar(9),
borrowdate datetime,

foreign key (bookid) references system_books(bookid),
foreign key (readerid) references system_readers(readerid),
)

3.1.6还书记录表建立
create table return_record
( bookid varchar(20) primary key,
readerid varchar(9),
returndate datetime,
foreign key (bookid) references system_books(bookid),
foreign key (readerid) references system_readers(readerid)
)

3.1.7罚款单表建立*/

create table reader_fee
( readerid varchar(9)not null,
readername varchar(9)not null ,
bookid varchar(20) primary key,
bookname varchar(30) Not null,
bookfee varchar(30) ,
borrowdate datetime,
foreign key (bookid) references system_books(bookid),
foreign key (readerid) references system_readers(readerid)

)

3.2数据初始化

3.2.1将书籍类别加入表book_style中
insert into book_style(bookstyleno,bookstyle)values('1','人文艺术类')
insert into book_style(bookstyleno,bookstyle)values('2','自然科学类')
insert into book_style(bookstyleno,bookstyle)values('3','社会科学类')
insert into book_style(bookstyleno,bookstyle)values('4','图片艺术类')
insert into book_style(bookstyleno,bookstyle)values('5','政治经济类')
insert into book_style(bookstyleno,bookstyle)values('6','工程技术类')
insert into book_style(bookstyleno,bookstyle)values('7','语言技能类')

3.2.2将已有的图书加入system_books表中(定义相同的作者出版社的书本编号不一样)
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )
values('00125415152','计算机组成原理','6','王爱英','清华大学出版社','2001-01-03','2003-11-15','1');

insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )
values('00125415153','计算机组成原理','6','王爱英','清华大学出版社','2001-01-03','2003-11-15','1');

insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('00456456','数据库原理','6','萨师煊','高等教育出版社','2007-07-02','2007-09-15','1');

insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )
values('12215121','C程序设计','6','谭浩强','清华大学出版社','2002-04-02','2004-03-14','1');

insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('9787308020558','计算机体系结构','6','石教英','浙江大学出版社','2004-10-03','2006-11-15','1');

insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('45456141414','数据结构(C语言版)','6','吴伟民,严蔚敏','清华大学出版社','2002-06-28','2004-01-21','1');

insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('5455515','中华历史5000年','1','吴强','北京大学出版社','2005-04-03','2006-05-15','1');

insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('015115','古代埃及','3','赵文华','北京大学出版社','2001-02-02','2002-09-15','1');

insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('1514514','日本文化','1','吴小鹏','北京大学出版社','2002-04-02','2004-03-14','1');
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )

values('15154656','微观经济学','5','李小刚','北京大学出版社','2000-10-03','2001-11-15','1');
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('5658','影视文学','4','苏庆东','北京大学出版社','1999-02-28','2000-01-21','1');

insert into
system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('565800020','探索宇宙奥秘','2','苏庆东','北京大学出版社','1999-02-28','2000-01-21','1');

3.2.3将已有图书证的读者加入system_readers表中*/
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620207','陈远鹏','男','学生','2005-9-23 14:23:56')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620206','陈特','男','学生','2005-09-30 13:24:54.623')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620204','赵铭静','女','学生','2005-09-27 11:24:54.123')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620202','潘虹','女','学生','2005-09-30 13:24:54.473')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('008415','蒋伟','男','教师','2004-04-30 09:24:54.478')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('001456','李叶风','女','教师','2004-04-30 09:24:54.478')

3.2.4添加已借书读者的记录,同时将在已借出的借阅标记置0*/
insert into borrow_record(bookid,readerid,borrowdate)
values('00125415152','X05620202','2007-09-27 11:24:54.123')
update system_books
set isborrowed=0
where bookid='00125415152'

insert into borrow_record(bookid,readerid,borrowdate)
values('00125415153','X05620206','2007-12-27 08:26:51.452')
update system_books
set isborrowed=0
where bookid='00125415153' and isborrowed='1'

insert into borrow_record(bookid,readerid,borrowdate)
values('5455515','X05620207','2007-12-27 08:26:51.452')
update system_books
set isborrowed=0
where bookid='5455515' and isborrowed='1'

insert into borrow_record(bookid,readerid,borrowdate)
values('015115','X05620204','2007-10-21 12:11:51.452')
update system_books
set isborrowed=0
where bookid='015115' and isborrowed='1'

insert into borrow_record(bookid,readerid,borrowdate)
values('15154656','001456','2007-12-28 14:11:51.312')
update system_books
set isborrowed=0
where bookid='15154656' and isborrowed='1'

insert into borrow_record(bookid,readerid,borrowdate)
values('565800020','008415','2007-08-28 15:11:31.512')
update system_books
set isborrowed=0
where bookid='565800020' and isborrowed='1'

4.结果数据处理
4.1单表查询
4.1.1表book_style中查询演示:

图4-1 表book_style中内容

4.1.2表system_books中查询演示:

图4-2 表system_books中内容

4.1.3将已有图书证的读者加入system_readers表中结果查询:

图4-3 表system_readers中内容

4.1.4借书纪录表borrow_record结果查询:

图4-4 表borrow_record中内容

4.2超期处理
4.2.1现在对已有借书证的读者进行查询借书是否超期(这里归定30天):

说明:当前的getdate()以日期为2008年1月6日计算

图4-4 选出借出超过30天的读者

4.2.2同时也可以用语句超过天数的读者进行罚款,加入到罚款单里面,一天以0.3元扣除计算:

SQL语言:
insert into reader_fee(readerid,readername,bookid,bookname,bookfee,borrowdate)
select system_readers.readerid 读者借书证编号 ,readername 读者姓名,
system_books.bookid 书籍编号,bookname 书名,
0.3*(Datediff(day,convert(smalldatetime,borrowdate),getdate())-30) 超过时间天数,
borrowdate 借书时间
from borrow_record ,system_readers ,system_books
where system_readers.readerid=borrow_record.readerid
and system_books.bookid=borrow_record.bookid
and Datediff(day,convert(smalldatetime,borrowdate),getdate())>=30
(所影响的行数为 3 行)
select readerid 书读者借书证编号,readername 读者姓名,
bookid 书籍编号,bookfee 超期罚款
from reader_fee
形成各本书对应的罚款金额,按0.3元每天算

图4-5查看罚款单

4.3还书操作
4.3.1现在对某一读者进行还书操作:

1.首先还书要在还书纪录中添加一条还书纪录
2.其次删除相应书本的借阅纪录
3.最后在书库中标记该本书为1,表示归还了未借,可供其他读者借阅
说明:学号为X05620207 姓名为陈远鹏 借阅的565800020书籍编号进行归还。

SQL语言:
insert into return_record(bookid,readerid,returndate)
select bookid,readerid,getdate()
from borrow_record
where bookid='565800020'
(所影响的行数为 1 行)

delete
from borrow_record
where bookid='565800020'
(所影响的行数为 1 行)

update system_books
set isborrowed=1
where bookid='565800020'
(所影响的行数为 1 行)

三个表的结果如图:

图4-6 增加了565800020纪录

图4-7 565800020这本书在借书纪录里没有了

图4-8 标记设为了‘1’

说明:这本书重新回到未被借出标记为1(注,相同的书其编号是不同的)

其结果为还书成功,相应的各表都有变化,对于罚款单通过借阅记录表borrow_record中更新。

4.4借书操作
4.4.1查询未被借出的书本:

图4-9

4.4.2查询已被借出的书本:

图4-10

4.4.3申请借书证:

SQL语言:
Insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620211','小华','男','学生',getdate())

图4-11

说明:查询相应的纪录增加了小华这样一个读者的借书证纪录:

4.4.4注销借书证:

说明:
1.在注销之前执行所有的还书过程,就是上面写到的所述SQL语句,然后执行
delete from system_readers where readerid=' X05620211',
2.小华借书证纪录就被删除了,同时要删除和小华归还纪录的内容
delete from return_record where readerid=' X05620211',

4.4.5查询所有书所对应的类别:

图4-12
4.5书籍状态
4.5.1查询所有工技术类的书:

图4-13

4.5.2查询清华大学出版社出版的书:

图4-14
4.6读者状态
4.6.1查询什么人借了什么书:

SQL语言:
select readername 读者姓名,bookname 书籍名称
from borrow_record,system_books,system_readers
where system_readers.readerid=borrow_record.readerid
and system_books.bookid=borrow_record.bookid

图4-15

4.6.2指定潘虹借了什么书:

SQL语言:
select readername 读者姓名,bookname 书籍名称
from borrow_record,system_books,system_readers
where system_readers.readerid=borrow_record.readerid
and system_books.bookid=borrow_record.bookid
and readername='潘虹'

图4-16

5.结束语
5.1课程设计心得
通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对灵据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,将SQL语的查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。

5. 数据库系统原理课程设计 -----图书借阅管理系统

#include <string.h>
#include <iostream.h>

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<iostream.h>
#include<string.h>
class Reader;
template<typename T> class DblList;
template<typename T> class DblNode{
public:
T Info;//数据域
DblNode<T> *llink,*rlink; //前驱(左链)、后继(右链)指针
public:
DblNode(T data);//一般结点
DblNode();//头结点
T GetInfo(){return Info;};
friend class DblList<T>;
friend class Library;
};

template<typename T>class DblList{
DblNode<T> *head,*current;
public:
DblList();
~DblList();
void Insert(const T& data);
DblNode<T>* Remove(DblNode<T>* p);
void Print();
int Length();//计算链表长度
DblNode<T> *Find(T data);//搜索数据与定值相同的结点
DblNode<T>* Find(int data);//按某个关键字查找
void MakeEmpty(); //清空链表
void ShowList(); //显示链表各结点
friend istream& operator>>(istream&, DblList<typename T>&); // 重载输入流运算符

friend ostream& operator<<(ostream& os, DblList<typename T>& dlist); // 重载输出流运算符
friend class Library;
//其它操作
};

template<typename T> DblNode<T>::DblNode(){
llink=rlink=NULL;
}
template<typename T> DblNode<T>::DblNode(T data){
info=data;
llink=NULL;
rlink=NULL;
}

template<typename T> DblList<T>::DblList(){//建立表头结点
head=new DblNode<T>();
head->rlink=head->llink=head;
current=NULL;
}
template<typename T> DblList<T>::~DblList(){
MakeEmpty();//清空链表
delete head;
}
template<typename T> void DblList<T>::MakeEmpty(){
DblNode<T> *tempP;
while(head->rlink!=head){
tempP=head->rlink;
head->rlink=tempP->rlink;//把头结点后的第一个节点从链中脱离
tempP->rlink->llink=head;//处理左指针
delete tempP; //删除(释放)脱离下来的结点
}
current=NULL; //current指针恢复
}
template<typename T> void DblList<T>::Insert(const T & data){//新节点在链尾
current=new DblNode<T>;
current->Info=data;
current->rlink=head;//注意次序
current->llink=head->llink;
head->llink->rlink=current;
head->llink=current;//最后做
}
template<typename T> DblNode<T>* DblList<T>::Remove(DblNode<T>* 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<typename T> DblNode<T>* DblList<T>::Find(T data){ // 按结点查找
current=head->rlink;
while(current!=head&¤t->Info!=data) current=current->rlink;
if(current==head) current=NULL;
return current;
}

template<typename T> DblNode<T>* DblList<T>::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<typename T> void DblList<T>::Print(){ // 输出链表
current=head->rlink;
while(current!=head){
cout<<current->Info<<'\t';
current=current->rlink;
}
cout<<endl;
}
template<typename T> int DblList<T>::Length(){ // 取得链表长度
int count=0;
current=head->rlink;
while(current!=head){
count++;
current=current->rlink;
}
return count;
}

template<typename T> void DblList<T>::ShowList(){ // 输出链表各结点
int count=0;
current=head->rlink;
while(current!=head){
current->GetInfo().Show();
current=current->rlink;
}
return ;
}

template<typename T>
istream& operator>>(istream& is, DblList<typename T> &dlist){
int len;
T tt; // 定义局部变量读入一个结点
is>>len;
for(int i= 0 ;i<len; i++){ // 循环读入链表各结点
is>>tt;
dlist.Insert(tt);
}
return is;
}

template<typename T>
ostream& operator<<(ostream& os, DblList<typename T> &dlist){
DblNode<T> *tempP;
int len = dlist.Length();
os<<len<<' ';
tempP=dlist.head->rlink;
while(tempP!=dlist.head){ // 循环输出链表各结点
os<<tempP->Info;
tempP = tempP->rlink;
}
return os;
}
#include "class.h"
#include "dblist.h"
#include <fstream.h>
class Library{ // 封装图书馆流通业务的类
DblList<Item> item; // 在馆图书链表
DblList<Magazine> mag; // 在馆杂志链表
DblList<Reader> reader; // 读者链表
DblList<Loan> loan; // 借阅信息链表
DblList<Manager> 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(); // 读入图书馆信息
};

6. 《数据库原理与应用》课程设计

这种大作业,在这里提问估计没人会给你发,你可以上课设宝这个网站去看看,可以下载一些数据库课程设计,可能有你想要得

7. !!加急!!计算机科学与技术专业的高年级同学请进来一下。。。谢谢!!

你想考研的话,数据结构、计算机组成、计算机网络、操作系统是考试科目,从课程来看基本是按照顺序来上的,离散是基础数学,数据结构、操作系统重要的,数据库跟软件工程个人觉得学下很有帮助,其他的方向比如图形学,嵌入式,网络等看自己兴趣了。

8. 数据库原理及技术 课程设计 某送水公司的送水系统

等待强人解答。

9. 用access2003做一个图书销售系统

一、设计简介
这次的《数据库系统原理课程设计》中我选择的题目是《XingBin.net图书销售系统》。选择这个题目的原因有:这个系统在现实生活中很常用,且容易得到其设计需求;同时又不在老师给提供的参考题目里面,可以体现出创新性,同时避免和其他同学的设计雷同。
图书销售系统可以提供给书店包括图书编目、进退货、销售、财务报表等方面的一体化解决方案。同时还提供会员折扣功能,BS模式下的网上会员系统等等。

二、业务需求
图书零售购买:顾客购书后收银台进行结账。对于书店的会员可以提供相应的折扣。输入需要购买的图书和数量,计算出总金额,由用户选择使用现金或会员卡进行结账。并提供销售小票流水号作为销售的单据。对于会员,还要计算相应的积分。
图书零售退货:顾客对已购买的图书进行退货。需要提供图书和销售的小票以作为购买凭证。系统查询数据库进行数据验证,对符合要求的图书进行退货。
新书编目:书店从出版社购买新的图书后在这里进行编目。只有编目后的图书才可以进行销售。
图书查找:可以使用ISBN、书名、出版社三种方式进行查找已编目的图书。
图书资料修改:对已编目的图书修改图书的基本信息、零售价和最低折扣价。
图书进货:对已编目的图书再进货,同时处理其金额差异。
图书退货:对已编目的图书退货,同时处理其金额差异。
出版社管理:添加、删除、修改出版社。同时查询出版社的资料。
会员添加:添加新的会员,同时登记会员的基本信息、有效期、指定会员组等等。
会员查找:提供会员编号、身份证号、会员姓名等方式复合查询。
会员删除:删除已存在的会员。
会员信息修改:对会员的基本资料进行修改。
会员充值:向会员的虚拟账户充值。
挂失与特别处理:将会员的状态在正常、挂失、特别处理之间调整。也可以找回会员的密码。
会员组管理:添加、删除和列出会员组。可以对会员组的名称、折扣、积分换算等方面进行设置。
系统设置:添加、删除、修改系统操作员,同时为相应的操作员设置其控制权限。
密码修改:对当前的系统操作员的密码进行修改。
数据管理:提供系统数据库的备份与恢复。
报表处理:提供图书销售单、图书进货单、会员列表、出版社列表、销售单等等报表。

三、设计目标
软件的用户特点是具有基本的Windows操作水平的用户,设计时要考虑到用户的操作习惯,因此要定义多个快捷键,界面尽量友好。
对于Web界面,则应尽量简洁,便于用户登录与查询。

四、运行环境
服务器配置
操作系统:推荐Microsoft Windows Server 2003或其他服务器版本
数据库服务器:Microsoft SQL Server 2000 Enterprise Edition
Web服务器:IIS 6或更高
.Net平台:.Net Framework 2.0版本
客户机配置
操作系统:推荐Microsoft Windows 2000或更高版本
数据库客户端:Microsoft SQL Server 2000 Client
.Net平台:.Net Framework 2.0版本
输入设备:键盘、鼠标、条形码扫描器

五、演示实例

总体功能框图

图书销售

图书与出版社管理

会员管理

报表管理

浏览器模式下的网上书店

用户管理

图书销售系统

六、结束语

这次的数据库课程设计完成得比较顺利。因为在暑假已经先期查询了一些书籍,同时在以前也曾经做过类似的设计,因此没有遇到很大的困难。

以前在C语言课程设计中我完成了《教务信息管理系统》的程序,从中了解了数据存储的底层结构。但是这种数据是有局限性的。在信息化的今天,我们必须使用数据库服务器来专门解决数据的存放问题。而程序怎样和数据库服务器结合,就是我这次的设计的重点。

由于以前曾经使用过C++做过一些开发,为了能够在学习数据库的同时也学习更多的编程语言,因此这次大胆的使用了.Net作为开发工具,C#作为编程语言来进行编程。一开始以为和C++区别不大,但是后来发现还是由一定区别的。不果因为有C语言的良好基础,所以很容易进行之间的转换。

但是连接数据库的时候还是查阅了一些资料。数据库的连接没有使用传统的ADO,也没有使用DataGrid自动生成的SqlCommand,而是完全使用SqlConnection完成。所有的SQL命令都使用SqlCommand手动拼成,因此程序的设计更加灵活。

为了能够了解数据库的工作,我大胆的使用了多个存储过程和触发器。通过它们可以简化程序的开发部分,同时在数据库端组成一个完整的事务,从而达到事务的ACDI特性。从而可以实现多客户机的并发操作。

通过这次的课程设计,让我更加了解了数据库的工作原理,以及程序和数据库的连接方法。也熟悉了软件工程的设计流程,学习使用软件工程的规范来要求自己。同时还学习了C#语言,全面锻炼了自己的能力。

在此,也感谢我的数据库教师――杨茂林老师。同时感谢关心我的程序,给我提出帮助和建议的朋友们。谢谢!