軟件工程圖書管理系統課程設計_第1頁
軟件工程圖書管理系統課程設計_第2頁
軟件工程圖書管理系統課程設計_第3頁
軟件工程圖書管理系統課程設計_第4頁
軟件工程圖書管理系統課程設計_第5頁
已閱讀5頁,還剩15頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

圖書管理系統課程設計報告

1.設計目的

隨著計算機技術的不斷發展,計算機作為學問經濟時代的產物,已被廣泛應

用于社會各個行業和領域。目前,我國的科技水平高速發展,計算機作為今日運

用最廣的現代化工具已深化到各個領域,并且正在成為將來社會一一信息社會的

重要支柱。在這樣的大背景下,現代圖書館的管理方式,資源建設等方面都發生

了重大改變,這種改變表現在圖書館工作,管理和服務平臺發生的改變,圖書館

不再是傳統的手工操作,人工管理,而是全面實行計算機管理。

圖書館的正常運營中總是面對大量的讀者信息,圖書信息以及兩者相互作用

產生的借書信息,因此要對讀者資源,圖書資源,借書信息進行管埋。本系統的

開發就是在于提高圖書管理的工作效率,加強圖書館的管理,全面實行計算機管

理。

2.可行性探討報告

在軟件的開發過程中,這一步是特別必要的。假如在定義階段及早發覺將來

可能在開發過程中的問題,及早做出決斷,可以避開大量的人力,財力和時間上

的奢侈。

1.技術可行性:本組開發成員都具有肯定的電腦學問,學習過多種程

序開發語言。特殊是在項目確定后對C#和SQLServer數據庫的強化學習,

使本系統勝利開發成為可能。

2.經濟可行性:本系統有其生存空間,勝利后有其市場。并且本小組

開發人員基于一種愛好去探討他的,我們有自己的電腦,可以說成本開支

極其有限。

3.現階段各種各樣的圖書館越來越多,圖書館的書也越來越多,國書

的管理工作也越來越困難。本系統就是為了減輕圖書管理人員的工作而設

計的。

4.法律可行性:本系統為我五人開發小組獨立完成,不關他人,開發

勝利后其全部權歸我們五人全部,用戶購買后其運用權一同買斷,我們將

供應技術支持。

5.基于水平和時間有限,我們的系統還不是特別完善??蓴U展的地方

許多,現列舉如:

建立圖書預約機制建立讀者反饋機制

建立過期催還機制建立條碼掃描機制等。

以現有的人力和時間來衡量,我們只有放棄,

經過以上可行性論證,本系統可以按任務書要求開發。

3.項目開發支配書

開發階段時間進度

制定開發支配兩天

需求分析一周

概要設計一周

具體設計兩周

系統實現三周

系統測試一周

編寫課程設計報告兩周

4.系統需求規格說明書

該過程是個不斷相識不斷細化的過程。這里所要完成的工作是深化描述軟件

的功能和性能,確定軟件的設計限制和軟件同其他系統元素的接口細微環節,從

而奠定軟件的開發基礎。

1.性能需求:該系統中,各個模塊只有管理人員才能對其進行操作,系統管理

人員要進行身分驗證才能進入界面操作.

2.功能需求:我們設計的系統要完成的功能模塊如下:

登陸模塊管理員管理模塊借閱卡管理模塊書籍管理模塊

查詢管理模塊。

3.環境需求:電腦須要安裝.net框架3.5,安裝SQLServer2008數據庫,硬

件要求酷睿i3雙核以上處理器,100G硬盤空間,1G以上內存,系統應有

WindowsXP,Windows?,或Windows8操作系統。

4.界面需求:本軟件是面對大眾,界面友好,操作簡潔敏捷,依據界面上的提

示便可完成一系列動作。

5.概要設計說明書

5.1系統設計流程

(—)建庫;

建立數據庫;

(二)設計相應的操作界面;

5.2功能模塊結構圖設計

一、軟件設計過程

對程序結構、數據結構、過程細微環節和接口細微環節逐步細化、評審和編

寫文檔的過程。從技術角度上,軟件設計分成體系結構設計、數據設計、過程設

計、接口設計4個方面的工作。從管理角度上講,軟件設計分為概要設計和具體

設計兩個階段。

二、軟件設計目標

設計必需實現分析模型中描述的全部顯示需求,必需滿意用戶希望的全部隱

式需求;設計必需是可讀、可理解的,使得將來易于編程、易于測試、易于維護;

設計應從實現角度動身,給出數據、功能、行為相關的軟件全貌。

三、基本原理和相關概念

⑴抽象化:常用的抽象化手段有過程抽象、數據抽象和限制抽象

?過程抽象:任何一個完成明確動能的操作都可被運用者當做單位的實體

看待,盡管這個操作時機上可能由一系列更低級的操作來完成。

?數據抽象:與過程抽象一樣,允許設計人員在不同層次上描述數據,對象

的細微環節。

?與過程抽象和數據抽象一樣,限制抽象可以包含一個程序限制機制而無

須規定其內部細微環節。

(2)自頂向下,逐步細化:將軟件的體系結構按自頂向下方式,對各個層次的

過程細微環節和數據細微環節逐層細化,知道用程序設計語言的語句能夠實現為

止,從而最終確立完全的體系結構。

⑶模塊化:將一個待開發的軟件分解成若干個小的簡潔的部分一一模塊,每

個模塊可獨立地開發、測試,最終組裝成完整的程序。這是一種困難問題的“分

而治之”的原則。模塊化的目的是使程序結構清楚,簡潔閱讀,簡潔理解,簡潔

測試,簡潔修改。

(4)限制層次:表明白程序構件(模塊)的組織狀況。限制層次往往用程序的

層次結構(樹形或網型)來表示。

?深度:程序結陶的層次數,可以反映程序機構的規模和困難程度。

?寬度:同一層模塊的最大模塊個數

?模塊的扇出:一個模塊調用(或限制)的其他模塊數

?模塊的扇入:調用(或限制)一個給定模塊的模塊個數

⑸信息屏蔽:將每個程序的成分隱微或封裝在一個單一的設計模塊中,定義

每一個模塊時盡可能少的顯露其內部的處理,可以提高軟件的可修改性,可測試

性和可移植性。

⑹模塊獨立:每個模塊完成一個相對特定獨立的子功能,并且與其他模塊之

間的聯系簡潔。衡量度量標準有兩個:模塊間的耦合和模塊的內聚。模塊獨立性

強必需做到高內聚低耦合。

?耦合:模塊之間聯系的緊密程度,耦合度越高模塊的獨立性越差。耦合

度從低到高的次序為:非干脆耦合、數據耦合、標記耦合、限制耦合、外部耦合、

公共耦合、內容耦合。

?內聚是指內部各元素之間聯系的緊密程度,內聚度越低模塊的獨立性越

差。內聚度從低到高依次是:偶然內聚、邏輯內聚、瞬時內聚、過程內聚、通信

內聚、依次內聚、功能內聚。

結構化設計方法,采納類似于結構化分析的“由大到小”、“自頂向下,逐

層分解”的基本思想描述(分解)系統。結構化設計方法,首先以數據流圖為基

礎導出系統模塊(功能)結構圖。在導出系統模塊(功能)結構圖的過程中,以

獨立性、低耦合性、高內聚性、公共模塊作為模塊劃分的原則。先將系統數據流

圖中的加工轉換成模塊,再將各大模塊接著劃分為較小的模塊,直到每一模塊都

是功能單一的模塊。

依據系統功能分析和圖書館管理的特點,經過模塊化的分析得到如圖所示的

圖書館管理系統功能模塊結構圖。

書籍

書籍

超期

還書

借書

信息

維護

管n

E

5.3E-R圖

管理員E-R圖

管理員

學生E-R圖

圖書E-R圖

借閱E-R圖

系統整體E-R圖

6.具體設計說明書

6.1數據庫設計

依據設計好的各實體E-R圖創建數據庫的邏輯結構,本系統采納了送了

SQLServer2008數據庫,數據庫名稱為BookMgr.數據庫BookMgr包含以下

6個表:圖書信息表book、圖書管理員表admin、圖書類別表type、借書卡信息

表card、圖書借閱表lendo

表的具體結構如下:

1)管理員表:用于保存管理員信息,結構如下

列名數據類型允許值

N□ull

>逾int

8Namevarchar(10)

passwordvarchar(10)

/******Object:Table[dbo].[Users]ScriptDato:04/26/201515:56:26

******/

SETANSI_NULLSON

GO

SETQUOTEDIDENTIFIERON

GO

CREATETABLE[dbo].[Users](

[NameJ[nvarchar](50)NULL,

[Password][nvarchar]150NL-l.L,

[Type][int]NULL

)ON[PRIMARY]

GO

2)圖書信息表

數據類型允許值

到冬N□ull

W]NumInvarchar(50)

Namenvarchar(50)M

Authornvarchar(50)

Typeint0

ISBNnvarchar(50)0

CBSnvarchar(50)0

CBRQdatetime⑦

Statusnvarchar(50)

/******Object:Table[dbo].[Book]ScriptDate:04/26/201515:56:26

******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE[dbo].[Book](

[Num][nvarchar](50)NOTNULL,

[Name][nvarchar](50)NULL,

[Author][nvarchar](50)NULL,

[Type][int]NULL,

[ISBN][nvarchar](50)NULL,

[CBS][nvarchar](50MLL,

[CBRQ][datetime]NULL,

[StatusJ[nvarchar](50)NLLL,

CONSTRAINT[PK_Book]PRIMARYKEYCLUSTERED

[Num]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DLP_KEY=OFF,

ALL0W_R0W_L0CKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

3)借書卡信息表

列名數據類型允許Null值

>8:Num;

nvarchar(50)E一

Namenvarchar(50)

Classnvarchar(50)

StartTimedatetime[oz

EndTimedatetime

[z

/******Object:Table[dbo].[Card]ScriptDate:04/26/201515:56:26

******/

SETANSI_NULLSON

GO

SETQUOTEDJDENTIFIERON

GO

CREATETABLE[dbo].[Card](

[Num][nvarchar](50)NOTNULL,

[Name]nvarchar]50\lLL,

[Class][nvarchar](5①NULL,

[StartTime][datetime]NULL,

[EndTime][datetime]NULL,

CONSTRAINT[PKCard]PRIMARYKEYCLUSTERED

(

[Num]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DLP_KEY=OFF,

ALLOW_ROW_LOCKS=ON,ALLOW_PAGEJXK:KS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

4)圖書借閱表

列名數據類型允許Ndl值

7

>!CardNumInvarchar(50)回

BookNumnvarchar(50)團

Timedatetime回

Statusnvarchar(50)國

/******Object:Tabic[dbo].[Lend]ScriptDate:04/26/201515:56:26

******/

SETANSI_NULLSON

GO

SETQUOTEDJDENTIFIERON

GO

CREATETABLE[dbo].[Lend](

[CardNum][nvarchar](50)NULL,

[BookNum][nvarchar](50)NULL,

[Time][datetime]NULL,

[Status][nvarchar](50)NULL

)ON[PRIMARY]

GO

5)圖書類型表

列名數據類型允許Null值

IDIint0

Namenvarchar(50)叵]

/******Object:Table[dbo].[Type]ScriptDate:04/26/201515:56:26

******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE[dbo],[Type](

[ID][int]IDENTITY(1,1)NOTNULL,

[Name][nvarcharl507LL,

CONSTRAINT[PKType]PRIMARYKEYCLUSTERED

(

[ID]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE-OFF,IGNORE_DL'P_KEY=OFF,

ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

6.2系統界面設計

登陸界面

//驗證用戶

privatevoidokButton_Click(objectsender,System.EventArgse)

(

if(tB_Namc.Text=="")

(

MessageBox.Show("請輸入用戶名!","提云");

return;

)

if(cB_Type.SelectedIndex<0)

(

MessageBox.Show("請選擇登陸身份!","顯示");

return;

)

stringstrCommand;

strCommand="selectPasswordfromUserswhereName='"+tBName.Text+

SqlCommandcoimiand=newSq1Command(strCommand,DBHelper.Conn):

SqlDataReaderreader:

reader=comnand.ExecuteReader();

if(reader.Read())

(

stringpassword=reader["Password"].ToStringO;

//驗證用戶

if(password==tB_Password.Text)

{

//MainForm.m_strNamc=tB_Name.Text;

this.DialogResult=DialogResult.OK;

this.CloscO;

)

else

(

MessageBox.Show("用戶或口令信息不正確!","提示");

)

)

else

MessageBox.Show("用戶不存在!","提示""

reader.CloseO;

主界而

privatevoid圖T5管理ToolStripMenuItem_Click(objectsender,EventArgse)

(

Bookdig=newBook():

dig.MdiParent=this:

dig.Show();

}

privatevoid借書卡管理ToolStripMenuItemClick(objectsender,EventArgse)

Carddig=newCard();

dig.MdiParent=this;

dig.Show();

圖書管理

privatevoidBook_Load(objectsender,HvcntArgse)

(

stringsql=string.Format(礦select[Num]編號,Book.[Name]書名,[Author]作者

,Type.Name類別,[ISBN],[CBS]出版社,[CBRQ]出版日期,[Status]出借狀態fromBookleft

joinTypeonBook.Type=Type.TD^);

dataGridViewl.DataSource=DBHelper.GetDataSet(sql);

)

privatevoidbtnAdd_Click(objectsender,KvcntArgse)

(

BookAdddig=newBookAdd(;

dig.ShowDialogO;

stringsql=string.Formal(@*selecl[Num]編號,Book.[Name]書名,[Author]作者

,Type.Name類別,[ISBN],[CBS]出版社,[CBRQ]出版日期,[Status]出借狀態fromBookleft

joinTypeonBook.Type=Type.ID");

dataGridViewl.DataSource=DBHelper.GetDataSet(sql);

)

借書卡管理

privatevoidCard_Load(objectsender,LvcntArgsc)

dataGridViowl.DataSource=DBUelper.GetDataSet(?^select[Num.編號

,[Name]姓名,[Class]班級,[StartTime]起先時間,[EndTime]結束時間FROM[Card]*);

)

privatevoidbuttc?il_Click(objectsender,EventArgse)

(

CardAdddig=newCardAdcl(w/,):

dig.ShowDialogO;

dataGridViowl.DataSource=DEiHclper.GetDataSet(^"select[Num'編號

,[Name]姓名,[Class]班級,[StartTime]起先時間,[EndTime]結束時間FROM[Card]");

借書界面

□,借書笞理?o?回

r借閱

privatevoidLend_Load(objectsender,HventArgsc)

(

CardNum.DataSource=DBIIelper.GetDataSet(^select*fromCard");

CardNum.DisplayMember="Num";

CardNum.ValueMember="Name";

CardName.Text=

BookNum.DataSource=DBUelper.GetDataSet(*select*fromBook");

BookNum.DisplayMember="Num";

BookNum.ValueMember="Name";

BookNamc.Text="?;

)

privatevoidbutt(.)nl_Click(objectsender,Event.Argse)

(

stringsql=string.Format("insertintolendvaluesC{0}','{1}','{2}','在借'

CardNum.Text,BookNum.Text,DatcTimc.Now);

DBHelper.GetCanmand(sql);

sql=string.Format(""updateBooksetSlatus='已借出‘whereNum='1.0}'”,

BookNum.Text);

DBIle1per.GetC(.xiimand(sql);

MessageBox.Show("借閱勝利!“);

this.CloseO;

)

還書界面

日圖書歸還w31

privatevoidBack_Load(objectsender,LventArgsc)

(

CardNum.DataSource=DBIIelper.GetDataSet(^select*fromCard");

CardNum.DisplayMember="Num";

CardNum.ValueMember="Name";

CardName.Text=

)

privatevoidbuttonl_Click(objectsender,EventArgse)

(

stringsql=string.Format("updateLendsetSlatus='歸還'whereEtookNum-'{0}'and

CardNum=,{1}1*,

BookNum.Text,CardNum.Text);

DBHelper.GetCommand(sql);

sql=string.Format(""updateBooksetStatus='未借出'whereNum='

BookNum.Text);

DBHelper.GetCommand(sql);

McssagcBox.Show("歸還勝利!");

this.Close();

圖書查詢界面

privatevoidbuttonl_Click(objectsender,EvcntArgse)

stringsql=string.Format^*select[Num]編號,[Name]書名,[Author]作者

,[Type]類別,[ISBN],[CBS]出版社,[CBRQ]出版日期,[Status]出借狀態fromBook

whereNumlike'orNamelike'orAuthorlike,orISBNlike'orCBS

like'*,textBoxl.Text);

dataGridViewl.DataSource=DBHelper.GetDataSet(sql);

}

超期未還圖書界面

privatevoidBackTimcout_Load(objectsender,EventArgsc)

stringsql=string.Format^*selectC.Num借書卡號,C.Name姓名,

C.Class班級,B.Num書號,B.Name書名,LTime借閱時間fromLendLleftjoinBookBon

L.BookNum=B.Num

leftjoinCardConL.CardNum=C.NumwhereL.Status='在借'andL.Time<*{0}

DateTime.Now.AddMonths(-l));

dataGridV'iewl.DataSource=DBHclper.GetDa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論