版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VisualC+課程設(shè)計(jì)圖書(shū)館管理系統(tǒng) 學(xué)號(hào): 1315925146 姓名(xngmng): 柏文舉 班級(jí)(bnj): 13軟件設(shè)計(jì)1班 指導(dǎo)老師:李蕊成績(jī)(chngj):一.開(kāi)發(fā)(kif)背景圖書(shū)館藏書(shū)規(guī)模越來(lái)越大,讀者人數(shù)也越來(lái)越多。主要(zhyo)的傳統(tǒng)人工方式管理圖書(shū)檔案存在(cnzi)著許多缺點(diǎn),如;效率低,保密性差等,在實(shí)際管理中遇到了多重難題,突出表現(xiàn)在兩個(gè)方面:1.圖書(shū)館的業(yè)務(wù)工作涉及各類數(shù)據(jù)量大,讀者人數(shù)多。手工模式下的工作勞動(dòng)強(qiáng)度高,效率低,錯(cuò)誤多,處理速度慢。2.業(yè)務(wù)工作中存在著大量查找工作,如各類圖書(shū)查詢,讀者查詢等,手工查詢方式速度慢,查準(zhǔn)確率和查全率低,影響了圖書(shū)館
2、的服務(wù)質(zhì)量。 科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,將計(jì)算機(jī)技術(shù)運(yùn)用于圖書(shū)信息的管理,有利于建立起合理的管理機(jī)制,避免人為的信息管理的錯(cuò)誤,以達(dá)到客觀公正,準(zhǔn)確高效的目的。因此,開(kāi)發(fā)一個(gè)圖書(shū)管理系統(tǒng)勢(shì)在必行。二.系統(tǒng)分析1. 需求分析 通過(guò)調(diào)查,歸納,分析,圖書(shū)館管理系統(tǒng)需要對(duì)圖書(shū)館進(jìn)書(shū),借書(shū),藏書(shū)等多方面的信息進(jìn)行處理,為管理員提供增加書(shū)籍,刪除書(shū)籍,借還書(shū)管理等服務(wù);為讀者提供基本查詢信息的功能。其主要需求如下:圖書(shū)館管理系統(tǒng)需要有能夠及時(shí)地查詢書(shū)庫(kù)中圖書(shū)的庫(kù)存量,以便及時(shí)準(zhǔn)確(zhnqu)地為讀者服務(wù),提供借閱信息,管理權(quán)限由系統(tǒng)管理員掌握分配。能夠提供外借查詢(chxn)功能,所有本
3、學(xué)院的在校師生和相關(guān)工作人員均可以通過(guò)(tnggu)分配的口令對(duì)讀書(shū)進(jìn)行查詢。圖書(shū)館各項(xiàng)數(shù)據(jù)信息必須保證安全性和完整性,網(wǎng)絡(luò)系統(tǒng)設(shè)有口令管理,確保系統(tǒng)的安全。系統(tǒng)管理員可以對(duì)圖書(shū)的借閱情況,讀者的管理情況,書(shū)庫(kù)的增減等均可由計(jì)算機(jī)執(zhí)行,并將運(yùn)行結(jié)果歸檔。2. 功能分析系統(tǒng)需要設(shè)置兩種用戶角色:管理員和普通讀者。普通讀者只允許查詢館藏讀書(shū)信息,修改個(gè)人資料。具體功能如下:查詢館藏圖書(shū)信息。查詢本人圖書(shū)借閱信息。修改個(gè)人密碼,郵箱等信息。管理員角色,可以對(duì)圖書(shū)信息,讀者信息,管理員信息和讀借書(shū),還書(shū)情況進(jìn)行管理操作,具體功能(gngnng)如下:查詢(chxn)館藏圖書(shū)信息。添加,修改,刪除(sh
4、nch)館藏圖書(shū)信息。查詢讀者的基本信息。添加,刪除和修改讀者信息。添加管理員。、讀者借書(shū)歸檔。讀者還書(shū)歸檔。三系統(tǒng)設(shè)計(jì)1. 繪制用例圖設(shè)計(jì)系統(tǒng)功能 圖書(shū)館管理系統(tǒng)包含兩種用戶角色普通讀者和管理員。 普通讀者只具備基本的館藏圖書(shū)查詢和個(gè)人基本信息的設(shè)置功能,其用例圖所示如下: 按名稱查詢 館藏圖書(shū)查詢 按編號(hào)查詢普通讀者 修改密碼 個(gè)人信息管理 修改個(gè)人資料 查詢個(gè)人借閱情況管理員需要對(duì)管內(nèi)圖書(shū)進(jìn)行(jnxng)管理,對(duì)讀者信息進(jìn)行設(shè)置管理,完成讀者的借書(shū),還書(shū)操作,另外,還要實(shí)現(xiàn)(shxin)一些系統(tǒng)維護(hù)工作,其用例圖所示如下: 添加(tin ji)書(shū)目圖書(shū)管理 修改圖書(shū)信息 刪除書(shū)目 查詢
5、館藏圖書(shū)信息 添加讀者讀者管理 修改讀者信息 刪除讀者 查詢讀者詳細(xì)情況管理員借/還書(shū)管理 讀者借書(shū)操作 讀者還書(shū)操作 系統(tǒng)管理 添加管理員 注銷管理員 修改(xigi)密碼2. 繪制(huzh)系統(tǒng)流程圖 本系統(tǒng)需要對(duì)用戶身份進(jìn)行(jnxng)驗(yàn)證,驗(yàn)證通過(guò)后,根據(jù)角色判斷登錄用戶可以使用系統(tǒng)中的相應(yīng)操作功能。如果是普通讀者,其只能進(jìn)行館藏書(shū)目,個(gè)人信息和借閱情況的查詢。,而管理員可進(jìn)行的操作相對(duì)復(fù)雜,也是系統(tǒng)開(kāi)發(fā)的主要部分,其總流程表示如下所示借閱信息圖書(shū)信息圖書(shū)管理逾期讀者圖書(shū)歸還流通管理管理員圖書(shū)借閱讀者信息讀者管理四. 開(kāi)發(fā)工具和開(kāi)發(fā)技術(shù)的選擇圖書(shū)館系統(tǒng)是典型的信息管理系統(tǒng),其開(kāi)發(fā)主
6、要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù),以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng),數(shù)據(jù)安全性好的庫(kù),而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。本系統(tǒng)的前端應(yīng)用(yngyng)程序設(shè)計(jì)是在Windows 8.1操作系統(tǒng)環(huán)境下,使用Visual C+6.0中文版開(kāi)發(fā)成功的。后臺(tái)(huti)的數(shù)據(jù)庫(kù)系統(tǒng)采用的是Micorsoft的SQL server2008關(guān)系(gun x)數(shù)據(jù)庫(kù)系統(tǒng)。前端界面的開(kāi)發(fā),VC使用MFC創(chuàng)建基于對(duì)話框的應(yīng)用程序,通過(guò)標(biāo)簽頁(yè)的形式,實(shí)現(xiàn)不同的操作頁(yè)面,而數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)采用的是ADO組件。五. 系統(tǒng)的運(yùn)行環(huán)境 系統(tǒng)可以直接在win8等windows
7、環(huán)境下運(yùn)行。由于采用了SQL Server2008 數(shù)據(jù)庫(kù)系統(tǒng),因此,服務(wù)器系統(tǒng)首先要安裝sql server2008.程序運(yùn)行時(shí),需要連接服務(wù)器,因此用戶需要在代碼中修改ADO連接到相應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器。六.系統(tǒng)演示 程序啟動(dòng),首先彈出如下對(duì)話框首先輸入正確(zhngqu)的用戶名和密碼后,才能進(jìn)入系統(tǒng)。進(jìn)入系統(tǒng)后,用戶(yngh)就可以在不同的標(biāo)簽頁(yè)進(jìn)行相關(guān)操作,這里以管理員操作為例,演示其可進(jìn)行的操作。 在圖書(shū)信息管理標(biāo)簽(bioqin)頁(yè)中,管理員可以通過(guò)相應(yīng)的操作按鈕查詢,添加書(shū)目,刪除書(shū)目和修改信息如下圖在讀者信息管理標(biāo)簽(bioqin)頁(yè)中,管理員可以通過(guò)相關(guān)的操作按鈕添加,刪除,
8、修改,查詢讀者信息,如下圖在管理員信息管理標(biāo)簽頁(yè)中,管理員可以通過(guò)相關(guān)的操作按鈕實(shí)現(xiàn)(shxin)添加,注銷管理員,修改管理員密碼等操作,如下圖:在讀者借閱管理標(biāo)簽頁(yè)中,管理員可以通過(guò)(tnggu)相關(guān)按鈕實(shí)現(xiàn)借閱圖書(shū)和歸還圖書(shū)操作,如下圖:七.數(shù)據(jù)庫(kù)設(shè)計(jì)(shj)館藏圖書(shū)的基本信息表用于存放圖書(shū)管內(nèi)書(shū)籍的有關(guān)信息,該實(shí)體(sht)的E-R圖如下:圖書(shū)作者圖書(shū)類別圖書(shū)編碼圖書(shū)名稱圖書(shū)信息當(dāng)前館藏?cái)?shù)量圖書(shū)總數(shù)圖書(shū)單價(jià)出版社讀者信息表用于存儲(chǔ)(cn ch)讀者的相關(guān)信息,該實(shí)體(sht)的E-R圖如下(rxi)圖:登錄密碼讀者身份讀者姓名讀者編碼讀者信息讀者郵箱讀者班級(jí)過(guò)期圖書(shū)數(shù)目當(dāng)前借閱數(shù)目可借
9、圖書(shū)總數(shù)為了對(duì)圖書(shū)館已經(jīng)借出去的圖書(shū)進(jìn)行有效的管理,設(shè)計(jì)了已借圖書(shū)信息表,該實(shí)體的E-R圖如下圖:借閱日期讀者編碼圖書(shū)編碼已借閱圖書(shū)閱讀天數(shù)當(dāng)前日期另外,系統(tǒng)還需要對(duì)管理員用戶進(jìn)行管理,就需要一個(gè)管理員表管理管理員的信息,管理員實(shí)體的E-R圖如下如所示:登錄密碼真實(shí)姓名管理員用戶名管理員八. 數(shù)據(jù)庫(kù)邏輯(lu j)結(jié)構(gòu)設(shè)計(jì)根據(jù)(gnj)前面設(shè)計(jì)好的各實(shí)體E-R圖,就可以創(chuàng)建數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),下面分別介紹各表的結(jié)構(gòu)(jigu)。 圖書(shū)信息表用來(lái)記錄館藏圖書(shū)的基本信息,包含圖書(shū)代碼,圖書(shū)名稱,類別,出版社,入館總數(shù)和當(dāng)前館藏?cái)?shù)量等信息,該表的邏輯結(jié)構(gòu)如下表:圖書(shū)信息數(shù)據(jù)表字段描述字段名描述類別說(shuō)明
10、book_id書(shū)號(hào)Char主鍵,索引book_name圖書(shū)名稱Char不允許為空Class_name圖書(shū)類別Char允許為空Author圖書(shū)作者Char允許為空house出版社Char允許為空Price圖書(shū)單價(jià)floatr允許為空Book_total圖書(shū)總數(shù)Int允許為空Cur_total當(dāng)前館藏?cái)?shù)量Int 允許為空讀者表用來(lái)記錄圖書(shū)館讀者的基本信息,包含讀者編碼,姓名,性別,身份,登錄密碼,可借閱數(shù)量,已借閱數(shù)量和過(guò)期(guq)圖書(shū)數(shù)量的鞥,該表的邏輯(lu j)結(jié)構(gòu)如下表:讀者數(shù)據(jù)(shj)表字段描述字段名描述類型說(shuō)明Reader_id讀者編碼Char主鍵,索引Reader_name讀者姓
11、名Char不允許為空Reader_password讀者登錄密碼Char不允許為空Reader_sex讀者性別Char允許為空Reader_job讀者身份Char允許為空Reader_class讀者班級(jí)Char允許為空Reader_mail讀者郵箱Char允許為空Total_number可借圖書(shū)總數(shù)Int允許為空Cur_number當(dāng)前借閱數(shù)目Int允許為空Over_number過(guò)期圖書(shū)數(shù)目Int允許為空 已借圖書(shū)表用來(lái)記錄圖書(shū)館已經(jīng)借出去的圖書(shū)信息,包括書(shū)號(hào),讀者編碼,借閱日期,當(dāng)前日期和借閱天數(shù)等信息,該表的邏輯結(jié)構(gòu)如下表:已借圖書(shū)數(shù)據(jù)表字段描述字段名描述類型說(shuō)明Book_id書(shū)號(hào)Char不
12、允許為空Reader_id借書(shū)讀者編碼Char不允許為空Lend_data借閱日期Char允許為空Today_data當(dāng)前日期Char允許為空Bday借閱天數(shù)Char允許為空 管理員表用來(lái)記錄(jl)系統(tǒng)管理員的信息,包含管理員用戶名,真實(shí)姓名和密碼三個(gè)字段,其邏輯結(jié)構(gòu)如下表:管理員數(shù)據(jù)(shj)表字段描述字段名描述類型說(shuō)明Manager_id管理員用戶名Char不允許為空Manager_name真實(shí)姓名Char允許為空Manager_password密碼Char九.公共(gnggng)類(ADOConn)設(shè)計(jì) 1. ADOConn類的聲明在ADOConn.h文件中#pragma once#i
13、mportC:ProgramFilesCommonFilesSystemadomsado15.dll no_namespace rename(EOF,adoEOF) rename(BOF,adoBOF)class ADOConn public:_RecordsetPtr m_pRecordset;_ConnectionPtr m_pConnection;void OnInitADOCon();ADOConn();virtual ADOConn();BOOL ExecuteSQL(_bstr_t bstrSQL);_RecordsetPtr& GetRecordSet(_bstr_t bstrS
14、QL);void ExitConnect();類定義時(shí),首先使用導(dǎo)入符號(hào)#import導(dǎo)入ADO庫(kù)文件,以使編譯器能正確編譯。該語(yǔ)句的作用于#include類似,編譯時(shí),系統(tǒng)(xtng)會(huì)生成msado15.th,ado15.tli兩個(gè)C+頭文件來(lái)定義ADO庫(kù)。為了避免常數(shù)沖突,將常數(shù)EOF改名為adoEOF.。2. ADOConn類的實(shí)現(xiàn)(shxin) 在ADOConn.cpp文件(wnjin)中 #include StdAfx.h#include ADOConn.hADOConn:ADOConn(void)ADOConn:ADOConn(void)void ADOConn:OnInitAD
15、OCon():CoInitialize(NULL); /初始化COM環(huán)境(hunjng)trym_pConnection.CreateInstance(ADODB.Connection);bstr_t strConnect=Provider=SQLOLEDB.1; Password=123456;Persist Security Info=TRUE; User ID=sa; Initial Catalog=圖書(shū)館管理系統(tǒng);/Data Source=10.255.5.6m_pConnection-Open(strConnect,adModeUnknown); catch(_com_error e
16、)CString strMsg;strMsg.Format(_T(錯(cuò)誤(cuw)描述:%sn錯(cuò)誤消息%s), (LPCTSTR)e.Description(),(LPCTSTR)e.ErrorMessage();AfxMessageBox(strMsg);exit(0);_RecordsetPtr& ADOConn:GetRecordSet(_bstr_t bstrSQL)tryif(m_pConnection=NULL)OnInitADOCon();m_pRecordset.CreateInstance(_uuidof(Recordset);m_pRecordset-Open(bstrSQL
17、,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);catch(_com_error e)e.Description();return m_pRecordset;BOOL ADOConn:ExecuteSQL(_bstr_t bstrSQL)tryif(m_pConnection=NULL)OnInitADOCon();m_pConnection-Execute(bstrSQL,NULL,adCmdText);return true;catch(_com_error e)e.Description
18、();return false;void ADOConn:ExitConnect()if(m_pRecordset != NULL)m_pRecordset-Close();m_pConnection-Close();十.登錄(dn l)模塊與界面設(shè)計(jì) 1. 登錄模塊(m kui)設(shè)計(jì) / TODO: Add extra validation hereUpdateData(TRUE);adoconn.OnInitADOCon(); /連接(linji)數(shù)據(jù)庫(kù)if(m_yonghuming.IsEmpty() MessageBox(用戶名不能為空!);return;if(m_mima.IsEmp
19、ty() MessageBox(密碼不能為空);return;if(quanxian=a)CString str;str.Format(select * from 讀者(dzh) where 讀者編碼=%sand 讀者登錄(dn l)密碼=%s,m_yonghuming,m_mima); adoconn.m_pRecordset=adoconn.GetRecordSet(_bstr_t(str);if(adoconn.m_pRecordset-adoEOF)MessageBox(請(qǐng)檢查(jinch)你的用戶名或密碼是否正確!);return ;else if(quanxian=b) CStri
20、ng str;str.Format(select * from 管理員 where 管理員用戶名=%sand 密碼=%s,m_yonghuming,m_mima); adoconn.m_pRecordset=adoconn.GetRecordSet(_bstr_t(str);if(adoconn.m_pRecordset-adoEOF)MessageBox(請(qǐng)檢查(jinch)你的用戶名或密碼是否正確!);return ;else MessageBox(請(qǐng)選擇你的登錄(dn l)權(quán)限!); return ;yonghu=m_yonghuming;CDialog:OnOK();denglu1 j
21、inru(this);jinru.DoModal(); /彈出主界面(jimin)2. 主界面設(shè)計(jì) BOOL denglu1:OnInitDialog() CDialog:OnInitDialog();hHwnd=: GetActiveWindow();/ TODO: Add extra initialization herem_tab.InsertItem(0,圖書(shū)(tsh)信息管理);m_tab.InsertItem(1,讀者(dzh)信息);if(quanxian=b)m_tab.InsertItem(2,管理員信息管理);m_tab.InsertItem(3,讀者借閱(ji yu)管理
22、);m_para1.Create(IDD_BOOK,GetDlgItem(IDC_TAB1); m_para2.Create(IDD_READER,GetDlgItem(IDC_TAB1); m_para3.Create(IDD_GUANLIYUANXINXI,GetDlgItem(IDC_TAB1); m_para4.Create(IDD_READJIEYUE,GetDlgItem(IDC_TAB1); CRect rs; m_tab.GetClientRect(&rs); rs.top+=25; rs.bottom-=0; rs.left+=0; rs.right-=1; m_para1.
23、MoveWindow(&rs); m_para2.MoveWindow(&rs); m_para3.MoveWindow(&rs); m_para4.MoveWindow(&rs); m_para1.ShowWindow(true); m_para2.ShowWindow(false); m_para3.ShowWindow(false); m_para4.ShowWindow(false); m_tab.SetCurSel(0);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX
24、Property Pages should return FALSE十一.圖書(shū)(tsh)信息管理模塊圖書(shū)查詢功能(gngnng)開(kāi)發(fā)當(dāng)讀者在圖書(shū)信息管理標(biāo)簽頁(yè)中,單擊“查詢”按鈕,會(huì)彈出“圖書(shū)查詢”對(duì)話框,選擇查找(ch zho)目標(biāo),輸入查找條件,即可查詢滿足條件的圖書(shū)記錄,如下圖:查詢按鈕代碼(di m)如下:UpdateData();int k=m_chakongjian.GetCurSel();CString str,sql;switch(k)case 0:str=book_id;break;case 1:str=book_name;break;case 2:str=class_nam
25、e;break;case 3:str=author;break;case 4:str=house;break;if(m_tiaojian=)MessageBox(請(qǐng)輸入查詢(chxn)條件);return ; sql.Format(select * from 圖書(shū)(tsh)信息 where %s like %s%,str,m_tiaojian);adoconn.m_pRecordset = adoconn.GetRecordSet(_bstr_t)sql);int i=0;if(adoconn.m_pRecordset-adoBOF)MessageBox(沒(méi)有查到相關(guān)(xinggun)圖書(shū)信息
26、!);m_list1.DeleteAllItems();while(!adoconn.m_pRecordset-adoEOF)m_list1.InsertItem(i,);m_list1.SetItemText(i,0,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(book_id);m_list1.SetItemText(i,1,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(book_name);m_list1.SetItemText(i,2,(char*)(_bstr_t)adoconn.m_
27、pRecordset-GetCollect(class_name);m_list1.SetItemText(i,3,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(author);m_list1.SetItemText(i,4,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(house);m_list1.SetItemText(i,5,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(price);m_list1.SetItemText(i,6,(cha
28、r*)(_bstr_t)adoconn.m_pRecordset-GetCollect(book_total);m_list1.SetItemText(i,7,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(cur_total);adoconn.m_pRecordset-MoveNext();i+;添加(tin ji)圖書(shū)功能UpdateData();CString sql,str;if(m_book_id=|m_book_name=) MessageBox(請(qǐng)重新(chngxn)添加書(shū)號(hào)n書(shū)名不能為空!);return;str.Format(s
29、elect * from 圖書(shū)(tsh)信息 where book_id=%s,m_book_id);adoconn.m_pRecordset=adoconn.GetRecordSet(_bstr_t)str);if(!adoconn.m_pRecordset-adoEOF)MessageBox(該書(shū)號(hào)已存在,請(qǐng)重新輸入書(shū)號(hào)!);return;sql.Format(insert into 圖書(shū)信息 values(%s,%s,%s,%s,%s,%f,%d,%d),m_book_id,m_book_name,m_class_name,m_author,m_house,m_price,m_book_
30、total,m_cur_total);adoconn.ExecuteSQL(_bstr_t)sql);MessageBox(添加圖書(shū)(tsh)成功!);m_list.DeleteAllItems();CString p_str;int i=0;p_str.Format(select * from 圖書(shū)(tsh)信息 );adoconn.m_pRecordset = adoconn.GetRecordSet(_bstr_t)p_str);while(!adoconn.m_pRecordset-adoEOF)m_list.InsertItem(i,);m_list.SetItemText(i,0,
31、(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(book_id);m_list.SetItemText(i,1,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(book_name);m_list.SetItemText(i,2,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(class_name);m_list.SetItemText(i,3,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(author)
32、;m_list.SetItemText(i,4,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(house);m_list.SetItemText(i,5,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(price);m_list.SetItemText(i,6,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(book_total);m_list.SetItemText(i,7,(char*)(_bstr_t)adoconn.m_pRecordset-
33、GetCollect(cur_total);adoconn.m_pRecordset-MoveNext();i+;刪除圖書(shū)(tsh)功能int nItem=m_list.GetNextItem(-1,LVNI_SELECTED);if(nItem!=-1)nItem=m_list.GetSelectionMark();CString str=m_list.GetItemText(nItem,0);CString sql;sql.Format(delete from 圖書(shū)(tsh)信息 where book_id=%s,str);adoconn.m_pRecordset=adoconn.GetR
34、ecordSet(_bstr_t)sql);m_list.DeleteItem(nItem);MessageBox(刪除(shnch)成功);m_book_id=;m_book_name=;m_class_name=;m_author=;m_cur_total=0;m_house=;m_price=0;m_book_total=0;UpdateData(FALSE);elseMessageBox(請(qǐng)先選擇要?jiǎng)h除(shnch)的圖書(shū)!);修改(xigi)圖書(shū)功能UpdateData();int nItem=m_list.GetNextItem(-1,LVNI_SELECTED);if(nItem
35、!=-1)nItem=m_list.GetSelectionMark();CString str=m_list.GetItemText(nItem,0);CString sql;sql.Format(update 圖書(shū)(tsh)信息 set book_name=%s,class_name=%s,author=%s,house=%s,price=%f,book_total=%d,cur_total=%d where book_id=%s,m_book_name,m_class_name,m_author,m_house,m_price,m_book_total,m_cur_total,str);
36、adoconn.ExecuteSQL(_bstr_t)sql);m_list.DeleteAllItems();/更新list控件顯示(xinsh)內(nèi)容 CString p_str;int i=0;p_str.Format(select * from 圖書(shū)信息 );adoconn.m_pRecordset = adoconn.GetRecordSet(_bstr_t)p_str);while(!adoconn.m_pRecordset-adoEOF)m_list.InsertItem(i,);m_list.SetItemText(i,0,(char*)(_bstr_t)adoconn.m_pR
37、ecordset-GetCollect(book_id);m_list.SetItemText(i,1,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(book_name);m_list.SetItemText(i,2,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(class_name);m_list.SetItemText(i,3,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(author);m_list.SetItemText(i,4,(cha
38、r*)(_bstr_t)adoconn.m_pRecordset-GetCollect(house);m_list.SetItemText(i,5,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(price);m_list.SetItemText(i,6,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(book_total);m_list.SetItemText(i,7,(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(cur_total);adocon
39、n.m_pRecordset-MoveNext();i+;MessageBox(修改(xigi)成功);elseMessageBox(請(qǐng)先選擇(xunz)要修改的圖書(shū)!);十二(sh r).讀者信息管理模塊設(shè)計(jì)添加讀者代碼(di m)如下:UpdateData();CString sql,str;str.Format(select * from 讀者(dzh) where 讀者編碼=%s,m_readid);adoconn.m_pRecordset=adoconn.GetRecordSet(_bstr_t)str);if(!adoconn.m_pRecordset-adoEOF)Message
40、Box(該讀者編號(hào)已存在,請(qǐng)重新(chngxn)輸入);return;sql.Format(insert into 讀者(dzh) values(%s,%s,%s,%s,%s,%s,%s,%d,%d,%d),m_readid,m_readname,m_readmima,m_readsex,m_readzhiwu,m_readbanji,m_readyouxiang,m_readkejie,m_readyijie,m_readchao);if(adoconn.ExecuteSQL(_bstr_t)sql)MessageBox(添加(tin ji)成功!);else MessageBox(添加(t
41、in ji)失敗!);刪除讀者UpdateData();CString sql;sql.Format(delete from 讀者 where 讀者編碼=%s,m_readid);if(adoconn.ExecuteSQL(_bstr_t)sql)MessageBox(刪除成功);adoconn.m_pRecordset-MoveFirst(); m_readid=(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(讀者編碼);m_readname=(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(讀者(
42、dzh)姓名);m_passwad=(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(讀者(dzh)登錄密碼);m_sex=(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(讀者(dzh)性別);m_zhiwu=(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(職務(wù));m_banji=(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(讀者班級(jí));m_youxiang=(char*)(_bstr_t)adoconn
43、.m_pRecordset-GetCollect(郵箱);m_kejie=(int)atof(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(可借書(shū)總數(shù));m_yijie=(int)atof(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(當(dāng)前(dngqin)借書(shū)數(shù)目);m_chaoshu=(int)atof(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(過(guò)期(guq)圖書(shū)數(shù)目);elseMessageBox(刪除(shnch)失敗);修改讀者信息Upda
44、teData();CString sql;sql.Format(update 讀者 set 讀者登錄密碼=%s,職務(wù)=%s,讀者班級(jí)=%s,郵箱=%s where 讀者編碼=%s,m_passwad,m_zhiwu,m_banji,m_youxiang,m_readid);if(adoconn.ExecuteSQL(_bstr_t)sql)MessageBox(修改成功!);elseMessageBox(修改(xigi)失??!);return;十三.讀者(dzh)借閱管理模塊讀者(dzh)借書(shū)功能 UpdateData(true);CString str,sql,strr,sqll;int i
45、,j,k; strr.Format(select * from 讀者 where 讀者編碼=%s,m_rid);adoconn.m_pRecordset=adoconn.GetRecordSet(_bstr_t)strr);if(!adoconn.m_pRecordset-adoEOF) i=(int)atof(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(可借書(shū)總數(shù)); j=(int)atof(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(當(dāng)前借書(shū)數(shù)目); i-; j+;else MessageB
46、ox(該讀者編號(hào)(bin ho)不存在); return;sqll.Format(select * from 圖書(shū)(tsh)信息 where book_id=%s,m_bid);adoconn.m_pRecordset=adoconn.GetRecordSet(_bstr_t)sqll);if(!adoconn.m_pRecordset-adoEOF) k=(int)atof(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(cur_total); k-;elseMessageBox(該書(shū)ID不存在(cnzi); return;str.Format(
47、update 讀者 set 可借書(shū)總數(shù)=%d,當(dāng)前借書(shū)數(shù)目=%d where 讀者編碼=%s,i,j,m_rid);sql.Format(update 圖書(shū)(tsh)信息 set cur_total=%d,k);if(adoconn.ExecuteSQL(_bstr_t)str)&adoconn.ExecuteSQL(_bstr_t)sql)MessageBox(借書(shū)成功(chnggng);else MessageBox(借書(shū)失敗(shbi);return;m_rkejie.Format(%d,i);m_ryijie.Format(%d,j);m_btotal.Format(%d,k);Upd
48、ateData(false);讀者還書(shū)功能UpdateData(true);CString str,sql,strr,sqll;int i,j,k; strr.Format(select * from 讀者 where 讀者編碼=%s,m_rid);adoconn.m_pRecordset=adoconn.GetRecordSet(_bstr_t)strr);if(!adoconn.m_pRecordset-adoEOF) i=(int)atof(char*)(_bstr_t)adoconn.m_pRecordset-GetCollect(可借書(shū)總數(shù)(zngsh); j=(int)atof(c
49、har*)(_bstr_t)adoconn.m_pRecordset-GetCollect(當(dāng)前(dngqin)借書(shū)數(shù)目); i+; j-;else MessageBox(該讀者編號(hào)(bin ho)不存在); return;sqll.Format(select * from 圖書(shū)信息 where book_id=%s,m_bid);adoconn.m_pRecordset=adoconn.GetRecordSet(_bstr_t)sqll);if(!adoconn.m_pRecordset-adoEOF) k=(int)atof(char*)(_bstr_t)adoconn.m_pRecord
50、set-GetCollect(cur_total); k+;elseMessageBox(該書(shū)ID不存在(cnzi); return;str.Format(update 讀者 set 可借書(shū)總數(shù)=%d,當(dāng)前借書(shū)數(shù)目(shm)=%d where 讀者編碼=%s,i,j,m_rid);sql.Format(update 圖書(shū)(tsh)信息 set cur_total=%d,k);if(adoconn.ExecuteSQL(_bstr_t)str)&adoconn.ExecuteSQL(_bstr_t)sql)MessageBox(還書(shū)成功);else MessageBox(還書(shū)失敗);return;m_rkejie.Format(%d,i);m_ryijie.Format(%d,j);m_btotal.Format(%d,k);UpdateData(false);十四.管理員信息管理模塊(m kui)添加(tin ji)管理員 UpdateData(true);CString sql,str;if(m_guanliid=)MessageBox(管理員ID不能為空!);return;str.Format(select * from 管理員 where 管理員用戶名=%s,m_guanliid);adoconn.
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘教版福建省莆田市五校聯(lián)盟2023-2024學(xué)年高二上學(xué)期期中數(shù)學(xué)試題
- 2024年上海市中考語(yǔ)文真題卷及答案解析
- 華支睪吸蟲(chóng)課件
- 幼兒園小班音樂(lè)《表情歌》課件
- 福建省尤溪一中 2024-2025學(xué)年高三上學(xué)年半期考地理試卷及答案
- 西京學(xué)院《大數(shù)據(jù)技術(shù)原理及應(yīng)用》2022-2023學(xué)年期末試卷
- 簡(jiǎn)愛(ài)課件 圖片
- 西華師范大學(xué)《外貿(mào)函電》2023-2024學(xué)年期末試卷
- 西華師范大學(xué)《數(shù)據(jù)庫(kù)原理及應(yīng)用》2022-2023學(xué)年期末試卷
- 職業(yè)技術(shù)學(xué)院移動(dòng)商務(wù)學(xué)情分析報(bào)告
- 銷售大戶監(jiān)管辦法
- 小型裝配式冷庫(kù)設(shè)計(jì)(全套圖紙)
- 西師版小學(xué)數(shù)學(xué)二年級(jí)上冊(cè)半期考試
- 八六版高中英語(yǔ)課文全集
- 審計(jì)工作手冊(cè)
- 胰腺癌一病一品知識(shí)分享
- 【原創(chuàng)】《基于地理實(shí)踐力培養(yǎng)的校本課程開(kāi)發(fā)研究》中期報(bào)告
- 公司下屬?gòu)S部推行5S管理通知
- (最新)13《金稅三期工程運(yùn)維架構(gòu)設(shè)計(jì)方案》V10
- 青島版4年級(jí)上冊(cè)相遇問(wèn)題說(shuō)課
- 機(jī)械加工企業(yè)安全生產(chǎn)事故應(yīng)急預(yù)案(完整版)
評(píng)論
0/150
提交評(píng)論