版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)說明書 NO.20圖書管理系統(tǒng)1.課程設(shè)計(jì)目的 VC+程序設(shè)計(jì)課程設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的VC+程序設(shè)計(jì)課程的綜合性實(shí)踐環(huán)節(jié)。VC+程序設(shè)計(jì)是一門實(shí)用性很強(qiáng)的學(xué)科,是進(jìn)行軟件開發(fā)的主要工具,只有進(jìn)行實(shí)際操作,才能將理論知識(shí)和實(shí)際應(yīng)用有機(jī)的結(jié)合起來,鍛煉學(xué)生分析解決實(shí)際問題的能力,提高學(xué)生實(shí)際運(yùn)用的能力,為學(xué)生畢業(yè)設(shè)計(jì),日后工作中的軟件開發(fā)打下良好的基礎(chǔ)。具體掌握如下技能:1 掌握VC+6.0開發(fā)環(huán)境開發(fā)軟件的方法;2 掌握單文檔應(yīng)用程序結(jié)構(gòu),熟悉多文檔和基于對(duì)話框應(yīng)用程序的方法;3 掌握資源編輯器進(jìn)行圖標(biāo)、光標(biāo)、菜單、工具欄、對(duì)話框等資源的編輯,熟悉應(yīng)用程序界面的設(shè)計(jì)方法;4 掌握
2、對(duì)話框,常用控件和Active控件的使用方法;5 熟悉文檔結(jié)構(gòu)試圖,掌握文檔和視圖,視圖與視圖的數(shù)據(jù)傳遞技巧;6 熟悉切分窗口及一檔多視的編程方法;7 實(shí)現(xiàn)視圖和對(duì)話框控件等窗口中繪制圖形的方法;8 掌握用MFC編寫ODBC數(shù)據(jù)庫(kù)應(yīng)用程序的方法和技巧。2.系統(tǒng)需求分析系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)圖書信息管理。下面就其系統(tǒng)功能作簡(jiǎn)單的說明。主要完成的功能有:登錄功能、圖書管理、借閱信息、讀者查詢、新增圖書。圖書管理系統(tǒng)登陸功能圖書管理借閱信息讀者查詢新增圖書圖1.系統(tǒng)總體設(shè)計(jì)3.設(shè)計(jì)方案論證3.1數(shù)據(jù)庫(kù)設(shè)計(jì)1)邏輯結(jié)構(gòu)圖書管理系統(tǒng)數(shù)據(jù)模型:圖書(編號(hào),名稱,作者,出版日期,登記日期)管理員(編號(hào),姓
3、名,性別,年齡,工作時(shí)間)會(huì)員(編號(hào),姓名,性別,家庭住址,聯(lián)系方式)2)圖書信息表字段名稱數(shù)據(jù)類型說明tno文本圖書編號(hào)tname文本圖書名稱twriter文本作者姓名tcbs文本出版社名稱Tcbrq日期/時(shí)間出版日期tdgrq日期/時(shí)間登記日期表1.圖書信息表1為圖書信息數(shù)據(jù)表圖書信息數(shù)據(jù)表記錄了圖書的基本信息,圖書的編號(hào),名稱,作者姓名,出版社名稱,出版日期,登記日期。3)管理員信息表字段名稱數(shù)據(jù)類型說明gno數(shù)字管理員編號(hào)gname文本姓名gsex文本管理員性別gage數(shù)字管理員年齡ggztime數(shù)字工作時(shí)間表2管理員信息 表2為管理員信息數(shù)據(jù)表管理員信息數(shù)據(jù)表記錄了管理員的基本信息,
4、管理員的編號(hào),姓名,性別,年齡,工作時(shí)間。4)會(huì)員信息表字段名稱數(shù)據(jù)類型說明hno數(shù)字會(huì)員編號(hào)hname文本會(huì)員姓名hsex文本會(huì)員性別haddress數(shù)字家庭住址htel數(shù)字聯(lián)系方式表3.會(huì)員信息表3為會(huì)員信息數(shù)據(jù)表會(huì)員信息數(shù)據(jù)表記錄了會(huì)員的基本信息,會(huì)員的編號(hào),姓名,性別,家庭住址,聯(lián)系方式。3.2模塊設(shè)計(jì)圖2.管理員模塊、圖2為管理員模塊,在管理員模式下可以進(jìn)行的修改密碼,信箱管理,天家圖書,新書入庫(kù),還書管理等管理員功能。圖3.用戶模塊圖3為用戶模塊,會(huì)員模式下用戶的功能,如修改密碼,信箱管理,個(gè)人信息,圖書查詢等。4應(yīng)用軟件的實(shí)現(xiàn)與運(yùn)行結(jié)果4.1顯示模塊1登陸 輸入賬號(hào)密碼時(shí)顯示的界
5、面:圖4.登錄界面2進(jìn)入圖書管理系統(tǒng)圖5.進(jìn)入管理系統(tǒng)其中系統(tǒng)登錄可以登錄和退出系統(tǒng),登錄后可以查看圖書資料、讀者資料,進(jìn)行圖書館里和讀者管理;圖書資料中可以增加、修改、刪除、查詢圖書信息;讀者資料中可以增加、修改、刪除、查詢讀者信息;結(jié)束管理中可以借閱相關(guān)圖書;還書管理可以歸還借閱圖書。3圖書信息圖6.圖書信息4借閱信息圖7.借閱信息5.借閱查詢圖8.借閱查詢6. 讀者信息管理圖9.讀者信息管理7.歸還圖書圖10.歸還圖書8. 續(xù)借圖書圖11.續(xù)借圖書9.新增圖書圖12.新增圖書10.新增讀者圖13.新增讀者4.2具體實(shí)現(xiàn)#include stdafx.h#include LMSystem.
6、h#include AddBookManage.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAddBookManage dialogCAddBookManage:CAddBookManage(CWnd* pParent /*=NULL*/): CDialog(CAddBookManage:IDD, pParent)/AFX_DATA_INIT(CAddBookManage)m_actorEdit = _T();m_bookIDEdit = _T();m_bo
7、okNameEdit = _T();m_bookTypeEdit = _T();m_positionEdit = _T();m_yearEdit = _T();m_ISBNEdit = _T();/AFX_DATA_INITvoid CAddBookManage:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAddBookManage)DDX_Control(pDX, IDC_POSITIONEDIT, m_ctrPosition);DDX_Control(pDX, IDC_YEARED
8、IT, m_ctrYear);DDX_Control(pDX, IDC_BOOKTYPEEDIT, m_ctrBookType);DDX_Control(pDX, IDC_BOOKNAMEEDIT, m_ctrBookName);DDX_Control(pDX, IDC_BOOKLIST, m_bookList);DDX_Control(pDX, IDC_BOOKIDEDIT, m_ctrBookIDEdit);DDX_Control(pDX, IDC_ACTOREDIT, m_ctrActorEdit);DDX_Text(pDX, IDC_ACTOREDIT, m_actorEdit);DD
9、X_Text(pDX, IDC_BOOKIDEDIT, m_bookIDEdit);DDX_Text(pDX, IDC_BOOKNAMEEDIT, m_bookNameEdit);DDX_Text(pDX, IDC_BOOKTYPEEDIT, m_bookTypeEdit);DDX_Text(pDX, IDC_POSITIONEDIT, m_positionEdit);DDX_Text(pDX, IDC_YEAREDIT, m_yearEdit);DDX_Text(pDX, IDC_ISBNEDIT, m_ISBNEdit);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAd
10、dBookManage, CDialog)/AFX_MSG_MAP(CAddBookManage)ON_EN_KILLFOCUS(IDC_BOOKIDEDIT, OnKillfocusBookidedit)ON_BN_CLICKED(IDC_ADDBUTTON, OnAddbutton)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CAddBookManage message handlersBOOL CAddBookManage:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization her
11、eiFlag=0;DBOpt.DBConnecte();m_bookList.SetExtendedStyle(LVS_EX_GRIDLINES);m_bookList.InsertColumn(0,ISBN編號(hào),LVCFMT_LEFT,120);m_bookList.InsertColumn(1,書名編號(hào),LVCFMT_LEFT,120);/m_bookList.InsertColumn(2,年代,LVCFMT_LEFT,120);/m_bookList.InsertColumn(3,作者,LVCFMT_LEFT,120);/m_bookList.InsertColumn(4,類型,LVCF
12、MT_LEFT,120);/m_bookList.InsertColumn(5,位置,LVCFMT_LEFT,120);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CAddBookManage:OnKillfocusBookidedit() / TODO: Add your control notification handler code hereUpdateData(TRUE); m_bookL
13、ist.DeleteAllItems(); CString strSQL; m_bookIDEdit.TrimRight(); strSQL.Format(select * from booktype where ISBN_ID=+m_bookIDEdit+); DBOpt.BookTypeOperate(strSQL); if (DBOpt.curItem=1) m_bookNameEdit=DBOpt.strArrayOne.GetAt(0); m_yearEdit=DBOpt.strArrayTwo.GetAt(0); m_actorEdit=DBOpt.strArrayThree.Ge
14、tAt(0); m_bookTypeEdit=DBOpt.strArrayFour.GetAt(0);/ m_bookIDEdit=DBOpt.strArrayFive.GetAt(0); iFlag=1; m_ctrActorEdit.EnableWindow(FALSE); m_ctrBookName.EnableWindow(FALSE); m_ctrBookType.EnableWindow(FALSE); m_ctrYear.EnableWindow(FALSE); m_ctrPosition.EnableWindow(FALSE);elseiFlag=0;m_ctrActorEdi
15、t.EnableWindow(TRUE);m_ctrBookName.EnableWindow(TRUE);m_ctrBookType.EnableWindow(TRUE);m_ctrYear.EnableWindow(TRUE); m_ctrPosition.EnableWindow(TRUE);m_bookNameEdit=;m_yearEdit=;m_actorEdit=; m_bookTypeEdit=;m_positionEdit=; strSQL.Format(select * from bookid where ISBN_ID=+m_bookIDEdit+);DBOpt.Read
16、BookID(strSQL);for(int i=0;iDBOpt.curItem;i+) m_bookList.InsertItem(i,DBOpt.strArrayTwo.GetAt(i) ; m_bookList.SetItemText(i,1,DBOpt.strArrayOne.GetAt(i);strSQL.Format(select * from position where ISBN_ID=+m_bookIDEdit+);CString strAddress;strAddress=DBOpt.ReadPosition(strSQL); for( i=0;iDBOpt.curIte
17、m;i+)m_positionEdit=strAddress;UpdateData(FALSE);void CAddBookManage:OnAddbutton() / TODO: Add your control notification handler code hereUpdateData(TRUE);CString strSQL;if (m_ISBNEdit.GetLength()10)MessageBox(圖書編號(hào)為空或長(zhǎng)度太長(zhǎng)!);return;if (m_bookIDEdit.GetLength()10)MessageBox(ISBN編號(hào)為空或長(zhǎng)度太長(zhǎng)!);return;if(i
18、Flag=0) if (m_bookNameEdit.GetLength()20)MessageBox(書名為空或長(zhǎng)度太長(zhǎng),請(qǐng)重新輸入!);return;if (m_positionEdit.GetLength()20)MessageBox(書名為空或長(zhǎng)度太長(zhǎng),請(qǐng)重新輸入!);return;if (m_yearEdit.GetLength()10|m_actorEdit.GetLength()20|m_bookTypeEdit.GetLength()20) MessageBox(年代、作者、圖書類型或方位長(zhǎng)度太長(zhǎng),請(qǐng)重新輸入!);return; strSQL.Format(insert int
19、o booktype(ISBN_ID,book_name,yeartime,actor,book_type,allnumber,lastnumber)values(%s,%s,%s,%s,%s,1,1),m_bookIDEdit,m_bookNameEdit,m_yearEdit,m_actorEdit,m_bookTypeEdit);DBOpt.ReaderTypeOperate(strSQL); strSQL.Format(insert into position(ISBN_ID,book_position)values(%s,%s),m_bookIDEdit,m_positionEdit
20、); DBOpt.ReaderTypeOperate(strSQL);elsestrSQL.Format(select * from bookid where book_id=%s,m_ISBNEdit);DBOpt.ReadBookID(strSQL);if (DBOpt.curItem0)MessageBox(此書已經(jīng)存在!);return; strSQL.Format(update booktype set allnumber=allnumber+1,lastnumber=lastnumber+1 where ISBN_ID=%s,m_bookIDEdit); DBOpt.ReaderT
21、ypeOperate(strSQL);strSQL.Format(insert into bookid(ISBN_ID,book_id)values(%s,%s),m_bookIDEdit,m_ISBNEdit);DBOpt.ReaderTypeOperate(strSQL);OnKillfocusBookidedit();#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ AddBookManage.h : header file/#include DBOperate.h/ CAddBookManage dialogclass CAddB
22、ookManage : public CDialog/ Constructionpublic:CAddBookManage(CWnd* pParent = NULL); / standard constructor CDBOperate DBOpt;int iFlag;/ Dialog Data/AFX_DATA(CAddBookManage)enum IDD = IDD_ADDBOOKDIALOG ;CEditm_ctrPosition;CEditm_ctrYear;CEditm_ctrBookType;CEditm_ctrBookName;CListCtrlm_bookList;CEdit
23、m_ctrBookIDEdit;CEditm_ctrActorEdit;CStringm_actorEdit;CStringm_bookIDEdit;CStringm_bookNameEdit;CStringm_bookTypeEdit;CStringm_positionEdit;CStringm_yearEdit;CStringm_ISBNEdit;/AFX_DATA/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAddBookManage)protected:virtual void Do
24、DataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/ Generated message map functions/AFX_MSG(CAddBookManage)virtual BOOL OnInitDialog();afx_msg void OnKillfocusBookidedit();afx_msg void OnAddbutton();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft
25、Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_ADDBOOKMANAGE_H_CBF00BEE_87DD_4CD9_8B61_134915710C31_INCLUDED_)#include stdafx.h#include LMSystem.h#include AdminManage.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE =
26、_FILE_;#endif/ CAdminManage dialogCAdminManage:CAdminManage(CWnd* pParent /*=NULL*/): CDialog(CAdminManage:IDD, pParent)/AFX_DATA_INIT(CAdminManage)m_editPassward = _T();/AFX_DATA_INITvoid CAdminManage:DoDataExchange(CDataExchange* pDX)/ Implementationprotected:/ Generated message map functions/AFX_
27、MSG(CAddBookManage)virtual BOOL OnInitDialog();afx_msg void OnKillfocusBookidedit();afx_msg void OnAddbutton();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_ADDBOOKMANAGE_H_CBF00B
28、EE_87DD_4CD9_8B61_134915710C31_INCLUDED_)#include stdafx.h#include LMSystem.h#include AdminManage.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAdminManage dialogCAdminManage:CAdminManage(CWnd* pParent /*=NULL*/): CDialog(CAdminManage:IDD, pParent)/AFX_DA
29、TA_INIT(CAdminManage)m_editPassward = _T();/AFX_DATA_INIT void CAdminManage:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAdminManage)DDX_Text(pDX, IDC_EDITPASSWARD, m_editPassward);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAdminManage, CDialog)/AFX_MSG_MAP(CAdminManage)ON_BN_CL
30、ICKED(IDC_BTNOK, OnBtnok)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CAdminManage message handlersvoid CAdminManage:OnBtnok() / TODO: Add your control notification handler code hereUpdateData();if (m_editPassward.GetLength()10)MessageBox(密碼長(zhǎng)度不能超過10個(gè)字符!);return;if (m_editPassward.GetLength() 1000#pragma once#endi
31、f / _MSC_VER 1000/ AdminManage.h : header file/#include DBOperate.h/ CAdminManage dialogclass CAdminManage : public CDialog/ Constructionpublic:CAdminManage(CWnd* pParent = NULL); / standard constructor CDBOperate DBOpt;CString strID;/ Dialog Data/AFX_DATA(CAdminManage)enum IDD = IDD_ADMINMANAGE ;CS
32、tringm_editPassward;/AFX_DATA/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAdminManage)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/ Generated message map functions/AFX_MSG(CAdminManage)afx_msg void OnBtnok();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)械課程設(shè)計(jì)渦輪
- 2024-2030年全球及中國(guó)可可豆脫菌系統(tǒng)行業(yè)需求狀況及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2024-2030年全球及中國(guó)二乙二醇己醚行業(yè)需求動(dòng)態(tài)及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2024-2030年全球及中國(guó)A型拖掛房車行業(yè)銷售動(dòng)態(tài)及競(jìng)爭(zhēng)趨勢(shì)預(yù)測(cè)報(bào)告
- 2024-2030年光纖收發(fā)器機(jī)箱公司技術(shù)改造及擴(kuò)產(chǎn)項(xiàng)目可行性研究報(bào)告
- 機(jī)器人課程設(shè)計(jì)與教學(xué)
- 抽樣方案課程設(shè)計(jì)
- 智能設(shè)備維修課程設(shè)計(jì)
- uart課程設(shè)計(jì)報(bào)告eda
- 工頻電流課程設(shè)計(jì)
- XX中學(xué)英語(yǔ)興趣社團(tuán)活動(dòng)教案(共8篇)
- 心房顫動(dòng)課件
- 超圖軟件三維平臺(tái)技術(shù)參數(shù)v8c2015r
- 新教材北師大版高中數(shù)學(xué)選擇性必修第一冊(cè)全冊(cè)各章節(jié)知識(shí)點(diǎn)考點(diǎn)重點(diǎn)難點(diǎn)解題規(guī)律歸納總結(jié)
- 派出所轄區(qū)矛盾糾紛風(fēng)險(xiǎn)隱患研判材料
- 2006年度銀行業(yè)金融機(jī)構(gòu)信息科技風(fēng)險(xiǎn)評(píng)價(jià)審計(jì)要點(diǎn)
- 新視野商務(wù)英語(yǔ)視聽說(上):第四版教學(xué)課件U9
- 十年了停下來思考
- 【論藥品犯罪的刑法規(guī)制7000字(論文)】
- 三句半專題教育課件
- 新冠肺炎核酸檢測(cè)報(bào)告英文版翻譯模板
評(píng)論
0/150
提交評(píng)論