當前位置:首頁 » 數據倉庫 » 資料庫系統原理課程設計
擴展閱讀
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#語言,全面鍛煉了自己的能力。

在此,也感謝我的資料庫教師――楊茂林老師。同時感謝關心我的程序,給我提出幫助和建議的朋友們。謝謝!