圖書管理系統(tǒng)課程設(shè)計(jì)報(bào)告.doc
《圖書管理系統(tǒng)課程設(shè)計(jì)報(bào)告.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《圖書管理系統(tǒng)課程設(shè)計(jì)報(bào)告.doc(16頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、管理信息系統(tǒng)實(shí)習(xí)報(bào)告專 業(yè) 班 級(jí) 學(xué) 生 姓 名 指 導(dǎo) 教 師 王 桃 群 時(shí) 間 2012.3.132012.3.23 成 績(jī) 評(píng) 語(yǔ) 一、課程設(shè)計(jì)題目 圖書管理系統(tǒng)二、系統(tǒng)需求1.系統(tǒng)的準(zhǔn)備操作系統(tǒng):Windows xp數(shù)據(jù)庫(kù)系統(tǒng):SQL Server 2000 或 SQL Server 2005客戶端開(kāi)發(fā)工具:Visual Studio 2005或其他開(kāi)發(fā)工具2.知識(shí)準(zhǔn)備熟悉SQL Server 2000 或 SQL Server 2005的使用;熟悉C#、ASP.NET或其他語(yǔ)言進(jìn)行數(shù)據(jù)庫(kù)編程。3.系統(tǒng)分析圖書信息包括:每種圖書都有書名、ISBN、一名或多名作者(譯者)、出版社、定
2、價(jià)和內(nèi)容簡(jiǎn)介等;讀者信息包括:借書證記錄有借閱者的姓名、密碼、所在單位和類別等;讀者憑借書證借書,教師最多借書15本書,借書期限最長(zhǎng)為90天,學(xué)生最多借書8本書,借書期限最長(zhǎng)為30天。對(duì)于超期未還的讀者不能繼續(xù)借書,每本書每超期一天罰款0.05元。三、系統(tǒng)設(shè)計(jì)1.體系結(jié)構(gòu)本系統(tǒng)使用c/s模式的兩層結(jié)構(gòu),表示層(USL)和數(shù)據(jù)訪問(wèn)層(DAL)。表示層(USL):為客戶提供對(duì)應(yīng)用程序的訪問(wèn),以Windows應(yīng)用程序或Web應(yīng)用程序的形式提供實(shí)現(xiàn)的功能。業(yè)務(wù)邏輯層(BLL):實(shí)現(xiàn)應(yīng)用程序的業(yè)務(wù)功能,以類庫(kù)的形式為表示層提供服務(wù)。數(shù)據(jù)訪問(wèn)層(DAL):實(shí)現(xiàn)整個(gè)系統(tǒng)所有的數(shù)據(jù)庫(kù)連接、數(shù)據(jù)存取操作,以組件
3、類庫(kù)的形式為業(yè)務(wù)邏輯層提供服務(wù)。此外,實(shí)體類,簡(jiǎn)單地說(shuō)是描述一個(gè)業(yè)務(wù)實(shí)體的類。業(yè)務(wù)實(shí)體直觀一點(diǎn)的理解就是整個(gè)應(yīng)用系統(tǒng)業(yè)務(wù)所涉及的對(duì)象,從數(shù)據(jù)存儲(chǔ)來(lái)講,業(yè)務(wù)實(shí)體就是存儲(chǔ)應(yīng)用系統(tǒng)信息的數(shù)據(jù)表,將數(shù)據(jù)表中的每一個(gè)字段定義成屬性,并將這些屬性用一個(gè)類封裝,這個(gè)類就稱為實(shí)體類。2.功能模塊框圖圖 書 管 理借 書圖 書 管 理借書圖書更新圖書刪除圖書查找圖書添加3.數(shù)據(jù)庫(kù)設(shè)計(jì)1. 讀者類別表(ReaderType)字段名數(shù)據(jù)類型說(shuō)明rdTypeSmallInt讀者類別【主鍵】rdTypeNameVarchar(8)讀者類別名稱CanLendQtyInt可借書數(shù)量CanLendDayInt可借書天數(shù)Can
4、ContinueTimesInt可續(xù)借的次數(shù)PunishRateFloat罰款率(分/天/本)DateValidSmallInt證書有效日期2. 讀者信息表(Reader)字段名數(shù)據(jù)類型說(shuō)明rdIDInt讀者序號(hào)【主鍵】rdNamevarchar(10)讀者姓名rdPwdvarchar (10)讀者密碼,初值為“123”rdSexBit性別,0-男,1-女rdTypeSmallInt讀者類別【外鍵】rdDeptChar(8)單位代碼rdPhonevarchar(25)電話號(hào)碼rdEmailvarchar(25)電子郵件rdDateRegsmalldatetime讀者登記日期rdBorrowQt
5、yInt已借書數(shù)量3. 圖書信息表(Book)字段名數(shù)據(jù)類型說(shuō)明bkIDInt圖書序號(hào)【主鍵】bkCodeChar(20)圖書編號(hào)bkNameVarchar(50)書名bkAuthorVarchar(30)作者bkPressVarchar(50)出版社bkDatePressSmalldatetime出版日期bkISBNChar(15)書號(hào)bkCatalogVarchar(30)分類名bkLanguageSmallInt語(yǔ)言,0-中文,1-英文,2-日文,3-俄文,4-德文,5-法文bkPagesInt頁(yè)數(shù)bkPriceMoney價(jià)格bkDateInSmallDateTime入館日期bkBrie
6、fText內(nèi)容簡(jiǎn)介bkCoverVarchar(100) 或image圖書封面照片bkIsInLabChar(4)是否在館4. 借閱信息表(Borrow)字段名數(shù)據(jù)類型說(shuō)明rdIDInt讀者序號(hào)【主鍵】bkIDInt圖書序號(hào)【主鍵】ldContinueTimesInt續(xù)借次數(shù)(第一次借時(shí),記為1)ldDateOutSmallDateTime借書日期ldDateRetPlanSmallDateTime應(yīng)還日期ldDateRetActSmallDateTime實(shí)際還書日期ldOverDayInt超期天數(shù)ldOverMoneyMoney超期金額ldPunishMoneyMoney罰款金額lsHasR
7、eturnBit是否已經(jīng)還書,缺省為0-未還OperatorLendVarChar(10)借書操作員OperatorRetVarChar(10)還書操作員四、系統(tǒng)實(shí)現(xiàn) 登錄的代碼實(shí)現(xiàn):using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace BooksMng pub
8、lic partial class BookLogin : Form public BookLogin() InitializeComponent(); private void textBox2_TextChanged(object sender, EventArgs e) private void btnlogin_Click(object sender, EventArgs e) /連接數(shù)據(jù)庫(kù) SqlConnection conn = new SqlConnection(server=.;database=Booksmng; integrated security=True); conn
9、.Open(); SqlCommand cmd = conn.CreateCommand(); /cmd.CommandText=select count(*) from Users where userName=+txtName.Text+and userPwd=+txtPwd.Text+; cmd.CommandText = select count(*) from Users where userName=userName and userPwd=userPwd; cmd.Parameters.Add(userName, SqlDbType.VarChar, 20).Value = tx
10、tName.Text; cmd.Parameters.Add(userPwd, SqlDbType.VarChar, 20).Value = txtPwd.Text; try int count = Convert.ToInt32(cmd.ExecuteScalar(); if (count != 0) MessageBox.Show(登陸成功!); BookMain frm = new BookMain(); frm.Show(); catch (SqlException ex) /MessageBox.Show(登錄失??!); MessageBox.Show(ex.Message); pr
11、ivate void FrmLogin_Load(object sender, EventArgs e) 圖書管理部分,主要的代碼實(shí)現(xiàn)如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace BooksMng public partial class Book
12、Manage : Form public BookManage() InitializeComponent(); private void Form2_Load(object sender, EventArgs e) DataBind(); private void DataBind() /連接數(shù)據(jù)庫(kù) SqlConnection conn = new SqlConnection(server=.; database=BooksMng;integrated security=True); /SqlConnection conn = new SqlConnection(server=.; data
13、base=BooksMng;integrated security=True); conn.Open(); SqlCommand cmd = conn.CreateCommand(); /mandText = select * from Book; cmd.CommandText = select bkID 編號(hào), bkName 書名,bkAuthor 作者,bkPages 頁(yè)數(shù),bkPress 出版社 from Book; SqlDataAdapter sda = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); sda.Fill(ds
14、); dgvBooks.DataSource = ds.Tables0; txtName.DataBindings.Clear(); txtAuthor.DataBindings.Clear(); txtPage.DataBindings.Clear(); txtPress.DataBindings.Clear(); txtName.DataBindings.Add(Text,ds.Tables0,書名); txtAuthor.DataBindings.Add(Text,ds.Tables0,作者); txtPage.DataBindings.Add(Text,ds.Tables0,頁(yè)數(shù));
15、txtPress.DataBindings.Add(Text, ds.Tables0, 出版社); /上面的代碼是在窗體Load時(shí),將Books表中的所有記錄,即所有的圖書信息顯示在網(wǎng)格DataGrid空間中。 / /下面是實(shí)現(xiàn)添加功能 private void btnAdd_click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(server=.; database=BooksMng;integrated security=True); conn.Open(); SqlCommand cmd = con
16、n.CreateCommand(); cmd.CommandText = insert into Book(bkName, bkAuthor,bkPages,bkPress) values(bkName,bkAuthor,bkPages,bkPress); cmd.Parameters.Add(bkName, SqlDbType.VarChar, 30).Value = txtName.Text; cmd.Parameters.Add(bkAuthor, SqlDbType.VarChar, 30).Value = txtAuthor.Text; cmd.Parameters.Add(bkPa
17、ges, SqlDbType.Int).Value =Convert.ToInt32(txtPage.Text);/類型轉(zhuǎn)換 cmd.Parameters.Add(bkPress, SqlDbType.VarChar, 50).Value = txtPress.Text; try cmd.ExecuteNonQuery(); /執(zhí)行上述SQL命令 MessageBox.Show(圖書添加成功!); DataBind(); /重新將數(shù)據(jù)庫(kù)綁定到DataGrid catch (SqlException ex) MessageBox.Show(圖書添加失敗); MessageBox.Show(ex.
18、Message); private void btnSearch_Click(object sender, EventArgs e) /連接數(shù)據(jù)庫(kù) SqlConnection conn = new SqlConnection(server=.; database=BooksMng;integrated security=True); conn.Open(); SqlCommand cmd = conn.CreateCommand(); String sql = ; /按作者查找 if (txtAuthor.Text != ) sql += select bkID 編號(hào), bkName 書名,b
19、kPages 頁(yè)數(shù),bkPress 出版社 from Book where bkAuthor=bkAuthor; try cmd.CommandText=sql; cmd.Parameters.Add(bkAuthor, SqlDbType.VarChar, 30).Value = txtAuthor.Text; SqlDataAdapter sda=new SqlDataAdapter(cmd); DataSet ds=new DataSet(); sda.Fill(ds); dgvBooks.DataSource = ds.Tables0; catch(SqlException ex) M
20、essageBox.Show(查找失敗); MessageBox.Show(ex.Message); private void btnDelete_Click(object sender, EventArgs e) /連接數(shù)據(jù)庫(kù) SqlConnection conn = new SqlConnection(server=.; database=BooksMng;integrated security=True); conn.Open(); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = delete from Book wher
21、e bkID=bkID; cmd.Parameters.Add(bkID, SqlDbType.Int).Value = Convert.ToInt32(dgvBooks0, dgvBooks.CurrentRow.Index.Value); try if (MessageBox.Show(確定要?jiǎng)h除該圖書嗎?, 確定刪除, MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.OK) cmd.ExecuteNonQuery(); MessageB
22、ox.Show(刪除成功!); DataBind(); catch (SqlException ex) MessageBox.Show(刪除失敗); MessageBox.Show(ex.Message); /下面做更新圖書信息 private void btnUpdate_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(server=.; database=BooksMng;integrated security=True); conn.Open(); SqlCommand cmd = conn
23、.CreateCommand(); cmd.CommandText = update Book set bkName=bkName, bkAuthor=bkAuthor, bkPages=bkPages,bkPress=bkPress where bkID=bkID; cmd.Parameters.Add(bkID, SqlDbType.Int).Value = Convert.ToInt32(dgvBooks0, dgvBooks.CurrentRow.Index.Value); cmd.Parameters.Add(bkName, SqlDbType.VarChar, 30).Value
24、= txtName.Text; cmd.Parameters.Add(bkAuthor, SqlDbType.VarChar, 30).Value =txtAuthor.Text; cmd.Parameters.Add(bkPages, SqlDbType.Int).Value = Convert.ToInt32(txtPage.Text);/類型轉(zhuǎn)換 cmd.Parameters.Add(bkPress, SqlDbType.VarChar, 50).Value = txtPress.Text; try if (MessageBox.Show(確定要更新圖書信息嗎?, 確認(rèn)更新, Messa
25、geBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.OK) cmd.ExecuteNonQuery(); MessageBox.Show(更新成功!); DataBind(); catch (SqlException ex) MessageBox.Show(更新失敗); MessageBox.Show(ex.Message); /圖書可以添加成功借書實(shí)現(xiàn)主要代碼如下:using System;using System.Collections.Generic
26、;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace BooksMng public partial class BookBorrow : Form public BookBorrow() InitializeComponent(); /獲取讀者可借天數(shù) private int GetLendDay(int rdID) SqlConnection c
27、onn = new SqlConnection(server=.;database=BooksMng;integrated security=true); conn.Open(); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = select CanLendDay from ReaderType where rdType=(select rdType from Reader where rdID= + rdID + ); return Convert.ToInt32(cmd.ExecuteScalar(); private vo
28、id btnBorrow_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(server=.;database=BooksMng;integrated security=true); conn.Open(); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = insert into Borrow(rdID,bkID,ldContinueTimes,IdDateOut,ldDateRetPlan,lsHasReturn) values(r
29、dID,bkID,0,IdDateOut,ldDateRetPlan,0); cmd.Parameters.Add(rdID, SqlDbType.Int).Value = Convert.ToInt32(txtrdID.Text); cmd.Parameters.Add(bkID, SqlDbType.Int).Value = Convert.ToInt32(txtbkID.Text);/類型轉(zhuǎn)換 cmd.Parameters.Add(IdDateOut, SqlDbType.DateTime).Value = DateTime.Now;/借書時(shí)間為當(dāng)前的系統(tǒng)時(shí)間 /應(yīng)還日期為=借書日期+可
30、借天數(shù)cmd.Parameters.Add(ldDateRetPlan, SqlDbType.DateTime).Value = DateTime.Now.AddDays(GetLendDay(Convert.ToInt32(txtrdID.Text); try cmd.ExecuteNonQuery(); MessageBox.Show(借書成功!); catch (SqlException ex) MessageBox.Show(借書失敗); MessageBox.Show(ex.Message); 五、系統(tǒng)運(yùn)行效果 圖書管理模塊的運(yùn)行結(jié)果如下:首先,設(shè)計(jì)一個(gè)用戶登錄界面,以管理員的身份登
31、錄來(lái)實(shí)現(xiàn)圖書的添加、查找、刪除、更新的功能。 登錄界面的設(shè)計(jì):登錄成功的效果登錄成功以后,跳到圖書管理主界面:圖書管理主界面如下:登錄成功以后,跳到圖書管理的頁(yè)面:圖書管理的頁(yè)面如下: 此界面可以對(duì)圖書實(shí)現(xiàn)添加、查找、刪除和信息更新這四個(gè)功能。從圖書管理主界面跳到借書界面:六、遇到的問(wèn)題及解決方法 在實(shí)現(xiàn)借書這個(gè)功能時(shí),老是借書失敗,并且提示: 憑借這個(gè)提示是不可能找到錯(cuò)誤的,為了找到這個(gè)錯(cuò)誤,我設(shè)置了一個(gè)斷點(diǎn)如圖: 然后逐句運(yùn)行,發(fā)現(xiàn)錯(cuò)誤在 “catch (SqlException ex)”這句,并且提示:點(diǎn)擊獲取錯(cuò)誤的幫助,軟件給出的幫助是:我不知道這是什么錯(cuò)誤,但是我知道錯(cuò)誤不在“cat
32、ch (SqlException ex)”這句,因?yàn)槊慨?dāng)執(zhí)行“cmd.ExecuteNonQuery();”這句時(shí),就會(huì)跳到“catch (SqlException ex)”這句,并且提示有錯(cuò)誤。我上網(wǎng)搜索了“cmd.ExecuteNonQuery();”此語(yǔ)句,發(fā)現(xiàn)有這么一段解釋: cmd.Parameters.Add(New OleDbParameter(用戶名, OleDbType.VarChar) 首先你的insertinto這個(gè)SQL語(yǔ)句是錯(cuò)誤的,應(yīng)該是insert into Enternumber(username,password,sex,work,tel,mail) value
33、s (用戶名,密碼,性別,職業(yè),電話,郵箱) 其次就是最關(guān)鍵的錯(cuò)誤,parameters這個(gè)方法使用時(shí)一定要有這樣一個(gè)語(yǔ)句mandtypeCommandType.StoredProcedure這個(gè)語(yǔ)句的作用是用存儲(chǔ)方法來(lái)傳值的,也就是說(shuō)在你的數(shù)據(jù)庫(kù)中一定要一個(gè)存儲(chǔ)過(guò)程, parameters方法的使用前面應(yīng)該有,mandtype=commandtype.storedprocedure mandtext=存儲(chǔ)過(guò)程 cmd.parameters.add(new oledbparameter(存儲(chǔ)變量的一個(gè)變量名,數(shù)值) 此時(shí)我終于知道了,是數(shù)據(jù)庫(kù)插入于具有問(wèn)題,經(jīng)過(guò)我反復(fù)的比較數(shù)據(jù)庫(kù)中的各個(gè)鍵的屬
34、性,左最終改掉了所有的錯(cuò)誤,程序運(yùn)行正確。七、心得與體會(huì)這次的課程設(shè)計(jì)主要使用c#和SQL Server這兩種知識(shí)來(lái)設(shè)計(jì)一個(gè)圖書管理系統(tǒng),而對(duì)于這兩種知識(shí)我們?cè)?jīng)都開(kāi)了課程,并且進(jìn)行了系統(tǒng)的學(xué)習(xí)。我曾經(jīng)自認(rèn)為SQL Server還學(xué)得不錯(cuò),因?yàn)闀系臇|西差不多都弄懂了,然而這次課程設(shè)計(jì)我卻發(fā)現(xiàn)書上的東西我?guī)缀跬貌畈欢嗔?,一個(gè)很簡(jiǎn)單的查詢語(yǔ)句都不知道怎么去寫。我恍然間發(fā)覺(jué)自己做的很差,對(duì)于已經(jīng)學(xué)的東西沒(méi)有很好地進(jìn)行運(yùn)用,以至于很多已經(jīng)學(xué)了的東西都已經(jīng)忘記了。雖然如此,但老師仍很耐心的給我們講解,知道我們?nèi)绾我徊揭徊降厝プ?,真的很感謝老師為我們的付出。通過(guò)這兩個(gè)星期的課程設(shè)計(jì),是我對(duì)所學(xué)知識(shí)有了更深一步的理解與掌握,理論與實(shí)踐也能更好地結(jié)合在一起,這一過(guò)程中我遇到了很多困難,但這更使我覺(jué)得其中的樂(lè)趣和那種戰(zhàn)勝困難后的成就感。同時(shí)感到學(xué)無(wú)止境,在今后的學(xué)習(xí)和工作中,我會(huì)不斷地充實(shí)自己。
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 平均數(shù)課件(教育精品)
- 婦科腫瘤放療進(jìn)展
- 注射機(jī)有關(guān)參數(shù)校核
- 五年級(jí)科學(xué)維護(hù)生態(tài)平衡-PPT
- 心臟術(shù)后觀察及監(jiān)護(hù)要點(diǎn)
- 生本教育從改變自己開(kāi)始
- 部編版一年級(jí)下冊(cè)《文具的家》課件
- 人教初中地理八上《1第2節(jié)-人口》課件-(10)
- 部編小學(xué)二年級(jí)下冊(cè)語(yǔ)文傳統(tǒng)節(jié)日課件
- 《科學(xué)探究:歐姆定律》課件-(公開(kāi)課獲獎(jiǎng))2022年滬科版物理-
- S7-1200-PLC應(yīng)用基礎(chǔ)ppt課件第8章-PLC應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例
- 人教版五年級(jí)下冊(cè)長(zhǎng)方體和正方體《求不規(guī)則物體的體積》課件
- 中職版《走進(jìn)物流》ppt課件模塊二-項(xiàng)目一-走進(jìn)貨運(yùn)物流
- 中考?xì)v史一輪復(fù)習(xí)-侵略與反抗課件-新人教版
- 肝功能障礙患者合理用藥房文通課件