VC圖書管理系統(tǒng)課程設計報告_第1頁
VC圖書管理系統(tǒng)課程設計報告_第2頁
VC圖書管理系統(tǒng)課程設計報告_第3頁
VC圖書管理系統(tǒng)課程設計報告_第4頁
VC圖書管理系統(tǒng)課程設計報告_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、vc+圖書管理系統(tǒng)課程設計報告 ( 2011 - 2012 年度第 2 學期) c+程序設計課程設計報告 圖書管理系統(tǒng)的設計 專業(yè) 2012年6月 22日 學生姓名 班學級 號 指導教師 完成日期 圖書管理系統(tǒng)的設計目 錄目 錄 . 2 1 概 述 . 11.1 課程設計目的 . 11.2 課程設計 錄 . 19 附錄1 源程序清單 . 19附錄1.1系統(tǒng)登錄模塊源程序 . 19附錄1.2系統(tǒng)主界面源程序 . 20附錄1.3圖書信息管理模塊源程序 . 23附錄1.4管理員、讀者信息管理模塊源程序 . 30附錄1.5借還書管理模塊源程序 . 44附錄1.6罰金查詢模塊源程序 . 50程序設計課程

2、設計報告(2012)學生成績管理系統(tǒng)的設計1 概 述1.1 課程設計目的1、鞏固并加深學生對c+語言程序設計知識的理解;2、培養(yǎng)學生面向對象的程序設計思想,使學生認識面向過程和面向對象兩種設計方法的區(qū)別;3、進一步掌握和應用vc+6.0集成開發(fā)環(huán)境;4、提高運用c+語言解決實際問題的能力;5、初步掌握開發(fā)小型實用軟件的基本方法,能獨立設計、實現(xiàn)基本的mis系統(tǒng);6、掌握書寫程序設計開發(fā)文檔的能力(書寫課程設計實驗報告)。1.2 課程設計內容課題名稱:圖書管理系統(tǒng)的開發(fā)說明:實現(xiàn)簡單圖書信息的管理。要求:1)權限管理:增加或刪除系統(tǒng)操作人員,并指定操作人員的權限;2)讀者管理:設置不同的讀者身份

3、,并對讀者相關信息進行管理,包括建立新的讀者,編輯已有的讀者信息和刪除讀者信息的操作;3)圖書類別的管理:對圖書的類別進行管理;4)圖書入庫管理:錄入新的圖書信息;5)圖書信息修改管理:對已有的圖書信息進行修改,包括刪除指定圖書操作;6)圖書借還管理:實現(xiàn)對圖書的借出和歸還的管理;7)圖書查詢管理:通過各種查詢方式可以來進行查詢,比如書號,書名,作者等;8)圖書超期管理:對超期的情況能自動給出提示信息。2 系統(tǒng)需求分析2.1 系統(tǒng)目標實現(xiàn)簡單圖書信息的管理。如:登陸權限管理、讀者管理、圖書信息(入庫、修改、借還、查詢、超期)管理、罰金管理2.2 主體功能1)權限管理:增加或刪除系統(tǒng)操作人員,并

4、指定操作人員的權限;2)讀者管理:設置不同的讀者身份,并對讀者相關信息進行管理,包括建立新的讀者,編輯已有的讀者信息和刪除讀者信息的操作;3)圖書類別的管理:對圖書的類別進行管理;4)圖書入庫管理:錄入新的圖書信息;5)圖書信息修改管理:對已有的圖書信息進行修改,包括刪除指定圖書操作;6)圖書借還管理:實現(xiàn)對圖書的借出和歸還的管理;7)圖書查詢管理:通過各種查詢方式可以來進行查詢,比如書號,書名,作者等;8)圖書超期管理:對超期的情況能自動給出提示信息。2.3 開發(fā)環(huán)境vc+6.0集成開發(fā)環(huán)境、access2003數(shù)據(jù)庫1圖書管理系統(tǒng)的設計3 系統(tǒng)概要設計3.1 系統(tǒng)的功能模塊劃分整個圖書管理

5、系統(tǒng)分為四個模塊。分別為圖書管理模塊、借閱管理模塊、讀者管理模塊和3.2 系統(tǒng)流程圖 2程序設計課程設計報告(2012)4系統(tǒng)詳細設計用access2003建立名為“l(fā)ibrary”的數(shù)據(jù)庫,創(chuàng)建4個表,分別為:book,clerk,reader,borrow和fine。 利用odbc數(shù)據(jù)源管理器配置與數(shù)據(jù)庫對應的數(shù)據(jù)源 3圖書管理系統(tǒng)的設計 建立名為“l(fā)ibrary”的mfc單文檔應用程序向導在名為stdafx.h的頭文件中添加#include <afxdb.h>4.1 系統(tǒng)登錄模塊設計 添加系統(tǒng)登錄對話框,屬性設置為 4程序設計課程設計報告(2012) 創(chuàng)建一個

6、新類,名為cclerkdataset,在base class中選擇crecordset 添加消息映射5 圖書管理系統(tǒng)的設計 最后輸入按鍵的執(zhí)行代碼。4.2 系統(tǒng)主界面設計 其中信息可以查看管理員信息,圖書信息,讀者信息;日常工作中包含圖書借閱,圖書歸還,繳納罰款;查詢中包含讀者查詢;幫助中可以查看系統(tǒng)幫助 6程序設計課程設計報告(2012)4.3圖書信息管理模塊設計 7圖書管理系統(tǒng)的設計為idd_book_maintain添加成員變量創(chuàng)建一個新類,名為cbookdataset,方法步驟同cclerkdataset,添加消息映射最后輸入按鈕代碼4.4 管理員、讀者信息管理模塊設計管理員信息管理

7、8程序設計課程設計報告(2012)其中職位有為idd_clerk_maintain添加成員變量建立新類cclerkmdlg,按圖書信息模塊設計步驟做相似操作,添加消息映射 最后輸入按鈕代碼 讀者信息管理 9圖書管理系統(tǒng)的設計建立新類creaderdataset,按上述步驟做相似操作,添加消息映射 最后輸入按鈕代碼4.5 借書還書管理模塊設計借書管理 建立新類lendoutdlg,按上述步驟做相似操作,添加消息響應最后輸入按鈕代碼 還書管理 10程序設計課程設計報告(2012)建立新類creturnbookdlg,按上述步驟做相似操作,添加消息映射 最后輸入代碼4.6 借書、罰金查詢查詢模塊設計

8、借書查詢 建立新類creaderqrydlg,按上述步驟做相似操作,添加消息映射最后輸入代碼 11圖書管理系統(tǒng)的設計罰金查詢 建立新類cfinehistorydataset,按上述步驟做相似操作,添加消息映射 最后輸入代碼5 測試5.1 測試方案采用黑盒測試方法。對功能進行逐一測試,在輸入合理及不合理的數(shù)據(jù)后測試系統(tǒng)的正常運作情況測試1:系統(tǒng)登錄測試測試2:圖書管理測試測試3:讀者管理測試12程序設計課程設計報告(2012)測試4:管理員管理測試測試5:借書測試測試6:還書測試測試7:借書、罰金查詢測試5.2 測試結果1、登錄測試: 正確登錄 錯誤登錄 2、圖書管理測試 新增13圖書管理系統(tǒng)的

9、設計 3、讀者管理測試修改 4、管理員管理測試查詢 14程序設計課程設計報告(2012) 5、借書測試 借閱成功 借閱失敗 15圖書管理系統(tǒng)的設計 6、還書測試 7、借書、罰金查詢測試 借書查詢 16程序設計課程設計報告(2012) 罰金查詢 6 小結 在這次的課程設計中,讓我學到了很多在課堂上和書本上學不到的知識,我在這次課程設計中最大的收獲有以下幾方面:一、 領略到了數(shù)據(jù)庫設計在計算機領域的重要性。數(shù)據(jù)庫作為一個永久存儲形式在17圖書管理系統(tǒng)的設計應用中發(fā)揮著重要的作用。在數(shù)據(jù)庫設計中,我明白了數(shù)據(jù)庫設計不是范式越高越好的,我們要根據(jù)我們的應用來決定,一切應該以需求為首要選擇。二、 對編程

10、環(huán)境、一些控件的使用和界面的設計更加熟悉。因為圖書管理系統(tǒng)中設計到很多控件的使用,只有很好的使用這些控件才可以給出一個很好的界面呈現(xiàn)在用戶面前。這樣更有利于數(shù)據(jù)庫和用戶之間的交流。三、 利用軟件工程學開發(fā)系統(tǒng)。雖然這個圖書管理系統(tǒng)是一個小的系統(tǒng),但從這個小的項目中也讓我明白了數(shù)據(jù)庫作為任何一個系統(tǒng)的后臺的重要性,在開譚浩強. c譚浩強. c發(fā)系統(tǒng)設計和實現(xiàn)中學到和總結很多經(jīng)驗和教訓。 參考文獻 程序設計(第三版) . 北京:清華大學出版社, 2005 程序設計題解與上機指導(第三版) . 北京:清華大學出版社,18 12 2005程序設計課程設計報告(2012)附 錄附錄1 源程序清單附錄1.

11、1系統(tǒng)登錄模塊源程序clogindlg:clogindlg(cwnd* pparent /*=null*/): cdialog(clogindlg:idd, pparent)/afx_data_init(clogindlg)m_strname = _t("");m_strpassword = _t("");/afx_data_initm_bsuccess = false;m_struserid = _t(""); void clogindlg:dodataexchange(cdataex

12、change* pdx) cdialog:dodataexchange(pdx);/afx_data_map(clogindlg)ddx_text(pdx, idc_login_name, m_strname); ddv_maxchars(pdx, m_strname, 8);ddx_text(pdx, idc_login_password, m_strpassword); ddv_maxchars(pdx, m_strpassword, 8);/afx_data_map begin_message_map(clogindlg, cdialog)/afx_msg_map(clogindlg)o

13、n_bn_clicked(idc_confirm, onconfirm)on_bn_clicked(idc_cancel, oncancel)/afx_msg_mapend_message_map() / clogindlg message handlers void clogindlg:onconfirm()/ todo: add your control notification handler code here cclerkdataset mrsdataset; /*聲明記錄集*/cstring msqlstr; updatedata(true); if (m_strname.isem

14、pty() /*判斷用戶名信息是否為空*/ afxmessagebox("請輸入用戶名!");return;19圖書管理系統(tǒng)的設計 msqlstr = "select * from clerk where name=" msqlstr = msqlstr + m_strname;msqlstr = msqlstr + " and password="msqlstr = msqlstr + m_strpassword;msqlstr = msqlstr + "&q

15、uot; if (!mrsdataset.open(afx_db_use_default_type, msqlstr) afxmessagebox("clerk表打開失??!");return;if (!mrsdataset.iseof()/ open all function for userm_bsuccess = true;m_struserid = mrsdataset.m_clerk_id ;cdialog:onok();elseafxmessagebox("登錄失??!");m_struserid = _t(&am

16、p;quot;");return; void clogindlg:oncancel()/ todo: add your control notification handler code herecdialog:oncancel();附錄1.2系統(tǒng)主界面源程序void cmainframe:onloginin()/ todo: add your command handler code hereclogindlg mdlg;if (mdlg.domodal() = idok)m_blogin = true;m_strusername = mdlg.m_strname ;m_s

17、truserid = mdlg.m_struserid;elsem_blogin = false;m_strusername = _t("");m_struserid = _t("");cstring name;name = "當前用戶:" + m_strusername;m_wndstatusbar.setpanetext(0,name);20程序設計課程設計報告(2012) void cmainframe:onupdatefine(ccmdui* pcmdui)/ todo: add

18、 your command update ui handler code here pcmdui->enable(m_blogin); void cmainframe:onupdatebookmaintain(ccmdui* pcmdui) / todo: add your command update ui handler code here pcmdui->enable(m_blogin); void cmainframe:onupdateconfigmaintain(ccmdui* pcmdui) / todo: add your command update

19、 ui handler code here pcmdui->enable(m_blogin); void cmainframe:onupdatelendout(ccmdui* pcmdui) / todo: add your command update ui handler code here pcmdui->enable(m_blogin); void cmainframe:onupdateloginout(ccmdui* pcmdui) / todo: add your command update ui handler code here pcmdui-&a

20、mp;gt;enable(m_blogin); void cmainframe:onupdatereadermaintain(ccmdui* pcmdui) / todo: add your command update ui handler code here pcmdui->enable(m_blogin); void cmainframe:onupdatereturnback(ccmdui* pcmdui) / todo: add your command update ui handler code here pcmdui->enable(m_blogin)

21、; void cmainframe:onupdateusermaintain(ccmdui* pcmdui) / todo: add your command update ui handler code here pcmdui->enable(m_blogin); 21圖書管理系統(tǒng)的設計void cmainframe:onloginout()/ todo: add your command handler code here m_blogin = false;m_strusername = _t("");m_struserid = _t(&a

22、mp;quot;"); cstring name;name = "當前用戶:" + m_strusername; m_wndstatusbar.setpanetext(0,name); void cmainframe:onreadermaintain()/ todo: add your command handler code here creadermdlg mdlg;mdlg.domodal(); void cmainframe:onusermaintain()/ todo: add your command handler code

23、here cclerkmdlg mdlg;mdlg.domodal(); void cmainframe:onbookmaintain()/ todo: add your command handler code here cbookmdlg mdlg;mdlg.domodal(); void cmainframe:onlendout()/ todo: add your command handler code here clendoutdlg mdlg;mdlg.domodal(); void cmainframe:onfine()/ todo: add your command handl

24、er code here cfinedlg mdlg;mdlg.domodal(); void cmainframe:onreturnback()creturnbookdlg mdlg;mdlg.domodal();/ todo: add your command handler code here void cmainframe:onreaderqry()22程序設計課程設計報告(2012) / todo: add your command handler code here /creaderqry mdlg; creaderqrydlg mdlg; mdlg.domodal();附錄1.3

25、圖書信息管理模塊源程序void cbookmdlg:oncancelrec()/ todo: add your control notification handler code here m_badd = false;m_bedit = false;displayrecord();setbuttonstate(); settextstate(); void cbookmdlg:ondelete()/ todo: add your control notification handler code here m_rsdataset.delete();displayrecord();setbut

26、tonstate(); void cbookmdlg:onedit()/ todo: add your control notification handler code here m_bedit = true;setbuttonstate();settextstate();cwnd *pwnd;pwnd = getdlgitem(idc_bookname);pwnd->setfocus(); void cbookmdlg:onenquery()/ todo: add your control notification handler code here updatedata(t

27、rue);if (m_strbookidq.isempty() && m_strbooknameq.isempty() m_rsdataset.m_strfilter = ""m_rsdataset.requery();displayrecord();setbuttonstate();return;bool mall = false;if (!m_strbookidq.isempty()m_rsdataset.m_strfilter = "book_id=" + m_strbookidq ;

28、23圖書管理系統(tǒng)的設計m_rsdataset.m_strfilter = m_rsdataset.m_strfilter + ""mall = true;if (!m_strbooknameq.isempty()if (mall)m_rsdataset.m_strfilter = m_rsdataset.m_strfilter + " and book_name=" m_rsdataset.m_strfilter = m_rsdataset.m_strfilter + m_strbooknameq; m_rsdataset

29、.m_strfilter = m_rsdataset.m_strfilter + ""elsem_rsdataset.m_strfilter = "book_name=" + m_strbooknameq; m_rsdataset.m_strfilter = m_rsdataset.m_strfilter + "" m_rsdataset.requery();displayrecord();setbuttonstate(); void cbookmdlg:onexit()/ todo:

30、add your control notification handler code herecdialog:oncancel(); void cbookmdlg:onfirst()/ todo: add your control notification handler code hereif(!m_rsdataset.isbof()m_rsdataset.movefirst();displayrecord();setbuttonstate(); void cbookmdlg:onlast()/ todo: add your control notification handler code

31、 hereif(!m_rsdataset.iseof()m_rsdataset.movelast();displayrecord();setbuttonstate(); void cbookmdlg:onnew()24程序設計課程設計報告(2012)/ todo: add your control notification handler code here m_strbookid = ""m_strbookname = ""m_strauthor = ""m_strpress = &a

32、mp;quot;"m_strflag = "y" / m_cntrposition.updatedata(false);m_bedit = true;m_badd = true;setbuttonstate();settextstate();cwnd *pwnd;pwnd = getdlgitem(idc_bookid);pwnd->setfocus(); void cbookmdlg:onnext()/ todo: add your control notification handler code here if(!m_r

33、sdataset.iseof()m_rsdataset.movenext();displayrecord();setbuttonstate(); void cbookmdlg:onprior()/ todo: add your control notification handler code here if(!m_rsdataset.isbof()m_rsdataset.moveprev();displayrecord();setbuttonstate(); void cbookmdlg:onsave()/ todo: add your control notification handle

34、r code here updatedata(true);if (m_strbookid.isempty() | m_strbookname.isempty() afxmessagebox("請輸入相應數(shù)據(jù)!");return;if (m_badd)m_rsdataset.addnew(); 25圖書管理系統(tǒng)的設計elsem_rsdataset.edit();m_rsdataset.m_author = m_strauthor;m_rsdataset.m_book_name = m_strbookname; m_rsdataset.m_book_id = m

35、_strbookid;m_rsdataset.m_press = m_strpress;m_rsdataset.m_flag_borrow = m_strflag;/ m_rsdataset.m_flag_borrow = "y"m_rsdataset.update();m_rsdataset.requery();m_badd = false;m_bedit = false;displayrecord();setbuttonstate();settextstate(); bool cbookmdlg:displayrecord()if (m_rsdatase

36、t.iseof() && m_rsdataset.isbof() m_strbookid = ""m_strbookname = ""m_strpress = ""m_strauthor = ""m_strflag = ""elseif (m_rsdataset.isbof()m_rsdataset.movenext();elseif (m_rsdataset.iseof()m_rsd

37、ataset.moveprev();m_strbookid = m_rsdataset.m_book_id;m_strbookname = m_rsdataset.m_book_name; m_strpress = m_rsdataset.m_press;m_strauthor = m_rsdataset.m_author ;m_strflag = m_rsdataset.m_flag_borrow ; updatedata(false);return true; bool cbookmdlg:settextstate()26程序設計課程設計報告(2012)cwnd *pwnd; if (m_

38、bedit)pwnd = getdlgitem(idc_bookname); pwnd->enablewindow(true);pwnd = getdlgitem(idc_bookid); if (m_badd)pwnd->enablewindow(true); elsepwnd->enablewindow(false); pwnd = getdlgitem(idc_author); pwnd->enablewindow(true);pwnd = getdlgitem(idc_press);pwnd->enablewindo

39、w(true);pwnd = getdlgitem(idc_pressdate); pwnd->enablewindow(true);pwnd = getdlgitem(idc_flag_borrow); pwnd->enablewindow(true); elsepwnd = getdlgitem(idc_bookname); pwnd->enablewindow(false);pwnd = getdlgitem(idc_bookid); pwnd->enablewindow(false);pwnd = getdlgitem(idc_a

40、uthor); pwnd->enablewindow(false);pwnd = getdlgitem(idc_press);pwnd->enablewindow(false);pwnd = getdlgitem(idc_pressdate); pwnd->enablewindow(false);pwnd = getdlgitem(idc_flag_borrow); pwnd->enablewindow(false);pwnd = getdlgitem(idc_bookname_q); pwnd->enablewindow(

41、true);pwnd = getdlgitem(idc_bookid_q);pwnd->enablewindow(true);return true; bool cbookmdlg:setbuttonstate()cwnd *pwnd; if(!m_rsdataset.isopen()pwnd = getdlgitem(idc_first);pwnd->enablewindow(false);pwnd = getdlgitem(idc_next);pwnd->enablewindow(false);pwnd = getdlgitem(idc_prior

42、);pwnd->enablewindow(false);27圖書管理系統(tǒng)的設計 pwnd = getdlgitem(idc_last); pwnd->enablewindow(false); pwnd = getdlgitem(idc_new); pwnd->enablewindow(false); pwnd = getdlgitem(idc_edit); pwnd->enablewindow(false); pwnd = getdlgitem(idc_enquery); pwnd->enablewindow(false);

43、 pwnd = getdlgitem(idc_delete); pwnd->enablewindow(false); pwnd = getdlgitem(idc_save); pwnd->enablewindow(false); pwnd = getdlgitem(idc_cancel_rec); pwnd->enablewindow(false); return true; if (m_bedit) pwnd = getdlgitem(idc_first); pwnd->enablewindow(false); pwnd = getdl

44、gitem(idc_next); pwnd->enablewindow(false); pwnd = getdlgitem(idc_prior); pwnd->enablewindow(false); pwnd = getdlgitem(idc_last); pwnd->enablewindow(false); if (m_rsdataset.isbof() pwnd = getdlgitem(idc_first); pwnd->enablewindow(false); pwnd = getdlgitem(idc_prior); pwnd

45、->enablewindow(false); 28 pwnd = getdlgitem(idc_new); pwnd->enablewindow(false); pwnd = getdlgitem(idc_edit); pwnd->enablewindow(false); pwnd = getdlgitem(idc_enquery); pwnd->enablewindow(false); pwnd = getdlgitem(idc_delete); pwnd->enablewindow(false); pwnd = getd

46、lgitem(idc_save); pwnd->enablewindow(true); pwnd = getdlgitem(idc_cancel_rec); pwnd->enablewindow(true); return true;程序設計課程設計報告(2012)elsepwnd = getdlgitem(idc_first);pwnd->enablewindow(true);pwnd = getdlgitem(idc_prior);pwnd->enablewindow(true); if (m_rsdataset.iseof()pwn

47、d = getdlgitem(idc_next);pwnd->enablewindow(false);pwnd = getdlgitem(idc_last);pwnd->enablewindow(false);elsepwnd = getdlgitem(idc_next);pwnd->enablewindow(true);pwnd = getdlgitem(idc_last);pwnd->enablewindow(true); if (m_rsdataset.isbof() && m_rsdataset.i

48、seof() pwnd = getdlgitem(idc_edit);pwnd->enablewindow(false);pwnd = getdlgitem(idc_delete); pwnd->enablewindow(false); elsepwnd = getdlgitem(idc_edit);pwnd->enablewindow(true);pwnd = getdlgitem(idc_delete); pwnd->enablewindow(true); pwnd = getdlgitem(idc_new);pwnd-&gt

49、;enablewindow(true);pwnd = getdlgitem(idc_enquery);pwnd->enablewindow(true);pwnd = getdlgitem(idc_save);pwnd->enablewindow(false);pwnd = getdlgitem(idc_cancel_rec); pwnd->enablewindow(false); return true; bool cbookmdlg:oninitdialog()cdialog:oninitdialog(); 29圖書管理系統(tǒng)的設計 / todo: a

50、dd extra initialization here m_badd = false; m_bedit = false; if (!m_rsdataset.open(afx_db_use_default_type) afxmessagebox("數(shù)據(jù)打開失?。?amp;quot;); displayrecord(); setbuttonstate(); settextstate(); return true; / return true unless you set the focus to a control / exception: ocx property pages should return false附錄1.4管理員、讀者信息管理模塊源程序管理員:void cclerkmdlg:oncancelrec()/ tod

溫馨提示

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

評論

0/150

提交評論