版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課 程 設 計課程設計名稱: 數據庫應用系統(tǒng)課程研究與設計 專 業(yè) 班 級 : 計科0906 學 生 姓 名 : 學 號 : 指 導 教 師 : 課程設計時間: 2011-12-19至2011-12-30 計算機科學與技術 專業(yè)課程設計任務書學生姓名專業(yè)班級計科0906學號題 目圖書管理系統(tǒng)課題性質其它課題來源自擬課題指導教師王cc同組姓名無主要內容圖書館作為學校的核心機構,傳統(tǒng)的登記式已經不能滿足,信息量越來越大的圖書館需求。時間一長,將產生大量的文件和數據,這對于查找、更新和維護都帶來了不少的困難。課題要求設計并實現(xiàn)一個圖書管理系統(tǒng),能夠通過計算機和數據庫滿足對圖書信息的管理工作。功能應包
2、括:登錄對角色的判斷、登陸密碼修改、新書入庫、舊書淘汰、借書還書管理、書本修改、增加讀者、讀書排行查詢、讀者對自己信息查詢、讀者多條件查詢和統(tǒng)計等。界面設計相對友好,方便用戶的操作。任務要求綜合運用所學的數據庫基本知識,并能通過查閱相關文獻材料,獨立完成該課題的設計開發(fā)工作。要求根據本課題設計出合理的數據結構,并實現(xiàn)圖書管理系統(tǒng)中, 登錄對角色的判斷、登陸密碼修改、新書入庫、舊書淘汰、借書還書管理、書本修改、增加讀者、讀書排行查詢、讀者對自己信息查詢、讀者多條件查詢和統(tǒng)計等。參考文獻1.數據庫原理與應用教程sql server尹志宇、郭晴。清華大學出版社.2011.072.sql server
3、 數據庫技術與應用 黃維通、王曉英。清華大學出版社.2011.013.sql server 應用與開發(fā)范例寶典(第二版) 龐婭娟、房大偉。人民郵電出版社。2009.104.c#項目開發(fā)案例全程實錄(第二版)王小科、王軍、趙會東。清華大學出版社。2011.015.asp.net數據庫網站設計教程(c#版)孫士保、張瑾。電子工業(yè)出版社。2011.02審查意見指導教師簽字:教研室主任簽字: 年 月 日 填 表 說 明1“課題性質”一欄:a工程設計;b工程技術研究;c軟件工程(如cai課題等);d文獻型綜述;e其它。2“課題來源”一欄:a自然科學基金與部、省、市級以上科研課題;b企、事業(yè)單位委托課題;
4、c校、院(系、部)級基金課題;d自擬課題。圖書管理系統(tǒng)1 概述“圖書是人類進步的階梯,是人類的精神財富,是人類的終身伴侶?!眻D書作為教學和學習必不可少的工具,它的作用舉足輕重,它幾乎存在與每一個學校之中,而相當一部分的設施條件不好資金缺乏的學校甚至對于圖書的管理,采用傳統(tǒng)的紙質的方式去完成,這樣就導致了很多很多的問題,例如:不能很好的對讀者借書還書管理,當讀者需要還書的時候還要查找以前的紙質文檔來找到相應的記錄,非常的麻煩;時間長的話圖書館的資料一旦丟失很難再恢復,給整個工作帶來很大的困難;讀者也只有通過去學校圖書館才能一本一本挨個的尋找才能找到自己想要找到書本等等一系列的問題。針對以上情況開
5、發(fā)一個圖書管理系統(tǒng),來實現(xiàn)管理員和讀者兩個角色的管理使用,對于讀者,可以不用去圖書館直接在自己電腦上按多種條件輕松的查找自己想要找的書本的信息,可以很輕松的看到自己借閱的信息來方便讀者及時的歸還相應的信息,可以很容易的看到讀者對在館書籍的借閱排行問題,來了解圖書的熱度以及為了個人安全來對密碼的管理。而對于圖書的管理員,他實現(xiàn)的功能就相當的復雜了,首先它可以增加讀者信息,可以對新書進行入庫,刪除舊書,這里所說的舊書是沒有人借閱的書,當有讀者節(jié)約的時候,管理員就不能刪除圖書的信息了,可以查詢所有的讀者信息,可以對圖書進行修改校正,以及解決自己登陸安全性的問題。最重要的是可以進行對圖書的借閱和歸還,
6、同時改變圖書庫存和被借閱次數的信息。本圖書管理系統(tǒng)可以更加人性化的滿足小型圖書館的日常借閱問題,達到一個很理想的智能管理目的。2 需求分析業(yè)務流程:本系統(tǒng)的流程圖如下: 圖2.1 系統(tǒng)功能模塊數據流圖如下:圖2.2 業(yè)務流程圖數據字典: 圖 2.3 管理員表 圖2.4 圖書表圖2.5讀者表功能分析:本系統(tǒng)的主要文件以及所實現(xiàn)功能的對照表如下:文件名 功能 login.aspx登陸界面實現(xiàn)admain存放管理員實現(xiàn)功能的文件夾admainadd.aspx新書入庫admainadmain.aspx管理員主界面admainback.aspx讀者還書admainborrow.aspx讀者借書admai
7、nduzhe.aspx查閱所有讀者信息admaingaishu.aspx圖書校正admainshanbook.aspx舊書淘汰admainxiugai.aspx修改管理員登錄密碼admainzengdu.aspx新讀者注冊image存放系統(tǒng)中所用的圖片reader存放實現(xiàn)讀者功能的文件夾readerbookpaihang.aspx查看圖書借閱排行readerchaziji.aspx查看讀者自己借閱信息readerlook.aspx讀者按不同條件(作者,圖書代碼,出版社,圖書類型)查詢圖書readerreader.aspx讀者主界面readerxiugai.aspx讀者密碼修改 表 2.1 功能
8、對照表3 概念結構設計通過需求分析階段的分析結果,本系統(tǒng)所要設計的er圖如下;4邏輯結構設計設計環(huán)境:操作系統(tǒng):windows xp;dbms:sql server 2005;開發(fā)工具:asp.net。管理員(管理員賬號,管理員密碼)圖書(圖書代碼,圖書名稱,圖書類型,出版社,定價,作者,庫存,被借次數)讀者(讀者編號,密碼,姓名,性別,專業(yè),聯(lián)系方式)借還書(讀者編號,圖書代碼,借書日期,還書日期)注:“_”為表中的主鍵。改關系模型滿足基本的三范式。因為每個非主屬性既不部分依賴也不傳遞依賴于碼。5源代碼及系統(tǒng)截圖在書數據庫連接部分,加上在每個文件引用:using system.data.sq
9、lclient;5.1圖書管理系統(tǒng)登錄(login.aspx)通過不同的角色驗證,分別實現(xiàn)讀者和管理員登錄代碼如下:protected void button1_click(object sender, eventargs e) string connsql = configurationmanager.connectionstrings圖書館connectionstring.connectionstring; string username = txtusername.text.tostring().trim(); string userpwd = txtpwd.text.tostring(
10、).trim(); string userrole = rblclass.selectedvalue.trim(); string selectstr = ; switch (userrole) case 0: /身份為管理員時 selectstr = select * from 管理員 where 管理員賬號 = + username + ; break; case 1: /身份為讀者時 selectstr = select * from 讀者 where 讀者編號 = + username + ; break; sqlconnection conn = new sqlconnection(
11、connsql); sqlcommand cmd = new sqlcommand(selectstr, conn); try conn.open(); /打開連接 sqldatareader sdr = cmd.executereader(); /執(zhí)行查詢 if (sdr.read() /如果該用戶存在 if (sdr.getstring(1) = userpwd) /密碼正確 sessionusername = username; sessionuserrole = userrole; conn.close(); switch (userrole) case 0: /身份為管理員時 res
12、ponse.redirect(admain/admain.aspx); break; case 1: /身份為讀者時 response.redirect(reader/reader.aspx); break; else /密碼錯誤,給出提示信息! lblmessage.text = 您輸入的密碼錯誤,請檢查后重新輸入!; else /用戶不存在或用戶名輸入錯誤 lblmessage.text = 該用戶不存在或用戶名輸入錯誤,請檢查后重新輸入!; catch (exception ee) response.write(alert( + ee.message.tostring() + ); fi
13、nally conn.close(); protected void textbox2_textchanged(object sender, eventargs e) protected void txtusername_textchanged(object sender, eventargs e) protected void button2_click(object sender, eventargs e) txtusername.focus(); txtusername.text = txtpwd.text = string.empty; 程序運行結果如圖: 圖5.1 系統(tǒng)登陸頁面5.2
14、 讀者主頁面(reader.aspx)顯示讀者的每個功能的頁面程序代碼如下:protected void page_load(object sender, eventargs e) if (!this.ispostback) label1.text = 歡迎學生 + sessionusername.tostring() + 進入本系統(tǒng)!; label2.text = datetime.now.year + 年 + datetime.now.month + 月 + datetime.now.day + 日; / label3.text = operatorclass.getweek(); pro
15、tected void button2_click(object sender, eventargs e) response.redirect(xiugai.aspx); protected void button3_click(object sender, eventargs e) response.redirect(chaziji.aspx); protected void button4_click(object sender, eventargs e) response.redirect(look.aspx); protected void button5_click(object s
16、ender, eventargs e) response.write(關閉窗口); protected void button1_click(object sender, eventargs e) response.redirect(bookpaihang.aspx); 程序運行結果如圖: 圖5.2 讀者主頁面 5.3管理員主頁面(admainadmain.aspx)顯示和索引管理員實現(xiàn)的功能程序代碼如下: protected void page_load(object sender, eventargs e) if (!this.ispostback) label1.text = 歡迎管理員
17、 + sessionusername.tostring() + 進入本系統(tǒng)!; label2.text = datetime.now.year + 年 + datetime.now.month + 月 + datetime.now.day + 日; protected void button5_click(object sender, eventargs e) response.redirect(xiugai.aspx); protected void button1_click(object sender, eventargs e) response.redirect(add.aspx);
18、protected void button3_click(object sender, eventargs e) response.redirect(gaishu.aspx); protected void button8_click(object sender, eventargs e) response.redirect(zengdu.aspx); protected void button7_click(object sender, eventargs e) response.redirect(shanbook.aspx); protected void button4_click(ob
19、ject sender, eventargs e) response.redirect(back.aspx); protected void button2_click(object sender, eventargs e) response.redirect(borrow.aspx); protected void button9_click(object sender, eventargs e) response.write(關閉窗口); protected void button10_click(object sender, eventargs e) response.redirect(
20、duzhe.aspx); 程序運行結果如圖: 圖5.3 管理員主頁面5.4 新書入庫(admainadd.aspx) 程序代碼如下:protected void page_load(object sender, eventargs e) this.title = 新書入庫; textbox1.focus(); protected void submit_click1(object sender, eventargs e) string connsql = configurationmanager.connectionstrings圖書館connectionstring.connectionst
21、ring; /聲明conn為一個sql server連接對象 sqlconnection conn = new sqlconnection(connsql); conn.open();/打開連接 sqldataadapter da = new sqldataadapter(); string selectsql = select * from 圖書; da.selectcommand = new sqlcommand(selectsql, conn); sqlcommandbuilder scb = new sqlcommandbuilder(da); dataset ds = new dat
22、aset(); da.fill(ds); conn.close(); datarow newrow = ds.tables0.newrow(); newrow圖書代碼 = textbox1.text;/為新行的各字段賦值 newrow圖書名稱 = textbox2.text; newrow圖書類型 = textbox3.text; newrow出版社 = textbox4.text; newrow定價 = textbox5.text; newrow作者 = textbox6.text; newrow庫存 = textbox7.text;newrow被借次數 = textbox8.text; d
23、s.tables0.rows.add(newrow);/將新建行添加到dataset第一個表對象中 da.update(ds);/將dataset中數據變化提交到數據庫(更新數據庫) response.write(alert(新記錄添加成功,請單擊“返回”回到主頁面!);); protected void textbox1_textchanged(object sender, eventargs e) protected void backhome_click1(object sender, eventargs e) response.redirect(admain.aspx); 程序運行結果
24、如圖: 圖5.4(1) 新書入庫 圖5.4(2) 新書入庫成功5.5圖書校正(admaingaishu.aspx)程序代碼如下:protected void page_load(object sender, eventargs e) this.title = 更新記錄; dropdownlist1.autopostback = true; if (!ispostback) string connsql = data source=.;initial catalog=圖書館;integrated security=true; /聲明conn為一個sql server連接對象 sqlconnect
25、ion conn = new sqlconnection(connsql); conn.open();/打開連接 sqldataadapter da = new sqldataadapter(); string selectsql = select * from 圖書; da.selectcommand = new sqlcommand(selectsql, conn); sqlcommandbuilder scb = new sqlcommandbuilder(da); dataset ds = new dataset(); da.fill(ds); conn.close(); dataro
26、w myrow = ds.tables0.rows0; textbox1.text = myrow圖書名稱.tostring(); textbox2.text = myrow圖書類型.tostring(); textbox3.text = myrow出版社.tostring(); textbox4.text = myrow定價.tostring(); textbox5.text = myrow作者.tostring(); textbox6.text = myrow庫存.tostring(); protected void button1_click(object sender, eventar
27、gs e) string connsql = configurationmanager.connectionstrings圖書館connectionstring.connectionstring; sqlconnection conn = new sqlconnection(connsql); conn.open();/打開連接 sqldataadapter da = new sqldataadapter(); string selectsql = select * from 圖書 where 圖書代碼 = + dropdownlist1.text + ; da.selectcommand =
28、 new sqlcommand(selectsql, conn); sqlcommandbuilder scb = new sqlcommandbuilder(da); dataset ds = new dataset(); da.fill(ds); datarow myrow = ds.tables0.rows0;/從表對象中得到要修改 myrow圖書名稱 = textbox1.text; myrow圖書類型 = textbox2.text; myrow出版社 = textbox3.text; myrow定價 = textbox4.text; myrow作者 = textbox5.text;
29、 myrow庫存 = textbox6.text; da.update(ds);/提交更新 response.write(alert(記錄更新成功,請單擊“返回”按鈕回到主頁面!);); protected void button2_click(object sender, eventargs e) response.redirect(admain.aspx); protected void dropdownlist1_selectedindexchanged1(object sender, eventargs e) string connsql = data source=.;initial
30、 catalog=圖書館;integrated security=true; sqlconnection conn = new sqlconnection(connsql); conn.open();/打開連接 sqldataadapter da = new sqldataadapter(); string selectsql = select * from 圖書 where 圖書代碼 = + dropdownlist1.text + ; da.selectcommand = new sqlcommand(selectsql, conn); sqlcommandbuilder scb = ne
31、w sqlcommandbuilder(da); dataset ds = new dataset(); da.fill(ds); conn.close(); datarow myrow = ds.tables0.rows0;/從表對象中得到要修改的行 textbox1.text = myrow圖書名稱.tostring(); textbox2.text = myrow圖書類型 .tostring(); textbox3.text = myrow出版社.tostring(); textbox4.text = myrow定價.tostring(); textbox5.text = myrow作者
32、.tostring(); textbox6.text = myrow庫存.tostring(); 程序運行結果如圖: 圖5.5圖書校正5.6舊書淘汰(admainshanbook.aspx)該部分是通過sqldatasource 和gridview控件來實現(xiàn)的把沒有讀者借閱的圖書顯示出來,其中配置數據源的時候運用的是sql 語句定義的代碼如下:select * from 圖書where 圖書代碼 not in (select 圖書.圖書代碼 from 圖書,借還書 where 圖書.圖書代碼=借還書.圖書代碼 )order by 圖書代碼程序運行結果如圖: 圖5.6 舊書淘汰5.7 修改管理員
33、密碼(admainxiugai.aspx)程序代碼如下: /修改密碼按鈕事件 protected void button1_click(object sender, eventargs e) /取參數 string connsql = configurationmanager.connectionstrings圖書館connectionstring.connectionstring; string username = sessionusername.tostring(); string oldpwd = txtoldpwd.text.trim(); string newpwd = txtne
34、wpwd.text.trim(); string selectstr = select * from 管理員 where 管理員賬號= + username + and 密碼= + oldpwd + ; string updatestr = update 管理員 set 密碼= + newpwd + where 管理員賬號= + username + ; sqlconnection conn = new sqlconnection(connsql); sqlcommand selectcmd = new sqlcommand(selectstr, conn); conn.open(); sql
35、datareader sdr = selectcmd.executereader(); if (sdr.read() /如果用戶存在且輸入密碼正確,修改密碼 sdr.close(); sqlcommand updatecmd = new sqlcommand(updatestr, conn); int i = updatecmd.executenonquery(); if (i 0) /根據修改后返回的結果給出提示 label1.text = 成功修改密碼; else label1.text = 修改密碼失??!; else response.write(您輸入的舊密碼錯誤,檢查后重新輸入!);
36、 conn.close(); protected void button3_click(object sender, eventargs e) txtoldpwd.text = ; txtnewpwd.text = ; txtconfirmpwd.text = ; 程序運行結果如圖: 圖5.7 管理員密碼修改5.8新讀者注冊( admainzengdu.aspx)程序代碼如下:protected void button1_click1(object sender, eventargs e) sqlconnection conn = new sqlconnection(configuration
37、manager.connectionstrings圖書館connectionstring.connectionstring);/創(chuàng)建連接對象 sqlcommand insertcmd = new sqlcommand(insert into 讀者(讀者編號,密碼,姓名,性別,專業(yè),聯(lián)系方式) values(readerid,readerpwd,readername,readersex,readerdep,readerphone), conn); insertcmd.parameters.add(readerid, sqldbtype.char, 12);/設置參數 insertcmd.para
38、meters.add(readerpwd, sqldbtype.varchar, 16); insertcmd.parameters.add(readername, sqldbtype.char, 10); insertcmd.parameters.add(readersex, sqldbtype.char,2); insertcmd.parameters.add(readerdep, sqldbtype.varchar,20); insertcmd.parameters.add(readerphone, sqldbtype.char,11); insertcmd.parametersread
39、erid.value = textbox1.text; /為每個參數賦值 insertcmd.parametersreaderpwd.value = textbox1.text; insertcmd.parametersreadername.value = textbox2.text; insertcmd.parametersreadersex.value = radiobuttonlist1.selectedvalue; insertcmd.parametersreaderdep.value = ddldepart.selectedvalue; insertcmd.parametersrea
40、derphone.value = textbox3.text; conn.open(); int flag = insertcmd.executenonquery(); /執(zhí)行添加 if (flag 0) /如果添加成功 lblmessage.text = 成功添加讀者信息!; else /如果添加失敗 lblmessage.text = 添加讀者信息失敗,查看輸入是否正確!; conn.close(); protected void button2_click(object sender, eventargs e) textbox1.text = ; textbox2.text = ; te
41、xtbox3.text = ; protected void button3_click(object sender, eventargs e) response.redirect(admain.aspx); 程序運行結果如圖: 圖5.8新讀者注冊5.9圖書借閱(admainborrow.aspx)程序代碼如下:protected void page_load(object sender, eventargs e) label1.visible = false; label2.visible = false; button2.visible = false; button3.visible = false; button4.visible = false; /button5.visible = false; txtbookid.visible = false; protected void button1_click(object sender, eventargs e) if (txtreaderid.text = ) response.w
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年建筑工程公司與施工方分包合同
- 2024年慶典花卉租賃合同
- 2024年度環(huán)保設備生產與安裝合同
- 2024年企業(yè)間關于虛擬現(xiàn)實技術研發(fā)合同
- 2024年度BIM模型能耗分析與優(yōu)化服務合同
- 2024國有林業(yè)企業(yè)與農村集體組織土地承包合同
- 2024年家庭遺產分配協(xié)議
- 2024年度金融科技合作協(xié)議
- 2024酒店布草采購合同
- 2024年度離婚財產分配合同:涉及三個未成年子女的撫養(yǎng)權
- 急診搶救室接診流程圖
- 水電機組的運行穩(wěn)定性及水輪機轉輪裂紋
- 《自信主題班會》主題班會ppt課件
- 視聽語言考試卷
- 2020年技術服務保障措施
- 螺旋箍筋長度計算公式
- 鋼管慣性距計算
- 第八章_噪聲控制技術——隔聲
- 資金調撥和內部往來管理流程手冊
- 2022考評員工作總結5篇
- 常用抗癲癇藥物簡介
評論
0/150
提交評論