freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

圖書(shū)管理系統(tǒng)的建立(編輯修改稿)

2025-05-09 06:05 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 在相應(yīng)的控件內(nèi)填寫姓名和密碼,通過(guò)“UpdateData(TRUE);”將控件中的數(shù)據(jù)傳送給字段數(shù)據(jù)成員,然后執(zhí)行下面的SQL語(yǔ)句: SELECT * FROM CLERKWHERE NAME=m_strName AND PASSWORD=m_strPassword。查詢Clerk表中是否有用戶名為m_strName,并且密碼為m_strPassword的記錄。打開(kāi)記錄集,查詢是否有符合條件的記錄,如果記錄集不為空,則說(shuō)明有符合條件的記錄,說(shuō)明登錄合法,否則“登錄失敗!”。在用戶通過(guò)了身份驗(yàn)證之后,就可以進(jìn)入系統(tǒng),進(jìn)行所有的操作。登錄模塊實(shí)現(xiàn)起來(lái)相對(duì)比較簡(jiǎn)單,只是用到了一個(gè)SOL查詢語(yǔ)句,在編程過(guò)程中沒(méi)有遇到什么困難?!坝脩舻卿洝蹦K實(shí)現(xiàn)代碼如下:if (()) /*判斷用戶名信息是否為空*/ { AfxMessageBox(請(qǐng)輸入用戶名!)。 return。 } mSqlStr = SELECT * FROM CLERK WHERE NAME=39。 mSqlStr = mSqlStr + m_strName。 mSqlStr = mSqlStr + 39。 AND PASSWORD=39。 mSqlStr = mSqlStr + m_strPassword。 mSqlStr = mSqlStr + 39。 if (!(AFX_DB_USE_DEFAULT_TYPE, mSqlStr)) { AfxMessageBox(CLERK表打開(kāi)失??!)。 return。 }//CString strSQL。//(select * from CLERK where NAME=39。%s39。 AND PASSWORD=39。%s39。 ,m_strName,m_strPassword)。//(AFX_DB_USE_DEFAULT_TYPE,strSQL)。 if(()==0) { if(count3) { AfxMessageBox(用戶名或密碼不正確!)。 count++。 } else { AfxMessageBox(用戶名或密碼不正確?。∧e(cuò)過(guò)了三次機(jī)會(huì)??!)。 ()。 ExitProcess(0)。 } }“資本資料維護(hù)”模塊設(shè)計(jì):本模塊包括兩個(gè)方面:“用戶資料維護(hù)” 、“圖書(shū)資料維護(hù)”和“讀者資料維護(hù)”。一、“用戶資料維護(hù)”模塊是實(shí)現(xiàn)對(duì)有權(quán)限登錄本系統(tǒng)的一般管理??梢詫?duì)用戶的用戶名,用戶條碼,密碼,身份證,職務(wù),進(jìn)行“查詢”“修改”“增加”“刪除”的操作。其實(shí)行代碼如下:void CClerkMDlg::OnCancelRec() //定義取消{ m_bAdd = FALSE。 m_bEdit = FALSE。 DisplayRecord()。 SetButtonState()。 SetTextState()。CWnd *pWnd //對(duì)用戶的職務(wù)時(shí)行定義 pWnd = GetDlgItem(IDC_POSITION)。 ((CComboBox *)pWnd)AddString(大學(xué)生)。 ((CComboBox *)pWnd)AddString(研究生)。 ((CComboBox *)pWnd)AddString(教師)。 ((CComboBox *)pWnd)AddString( 職工)。 void CClerkMDlg::OnEnquery() //對(duì)數(shù)據(jù)的查詢時(shí)行定義,實(shí)現(xiàn)查詢功能{ if (() amp。amp。 ())// 對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢 { = 。 ()。 DisplayRecord()。 SetButtonState()。 return。 } BOOL mAll = FALSE。 if (!()) { = CLERK_ID=39。 + m_strUserIDQ 。 = + 39。 mAll = TRUE。 } if (!()) { if (mAll) { = + AND NAME=39。 = + m_strUserNameQ。 = + 39。 } else { = NAME=39。 + m_strUserNameQ。 = + 39。 } } ()。 DisplayRecord()。 SetButtonState()。void CClerkMDlg::OnNew() 對(duì)新建進(jìn)行定義,實(shí)現(xiàn)新建按鈕的功能{ // TODO: Add your control notification handler code here m_strUserID = 。用戶條碼的設(shè)置 m_strUserName = 。用戶名的設(shè)置 m_strIDCard = 。用戶身份證的設(shè)置 m_strPassword = 。密碼的設(shè)置// m_trPosition. UpdateData(FALSE)。 m_bEdit = TRUE。 m_bAdd = TRUE。 SetButtonState()。 SetTextState()。 CWnd *pWnd。 pWnd = GetDlgItem(IDC_USERID)。 pWndSetFocus()。 二、“圖書(shū)資料維護(hù)”:其實(shí)現(xiàn)的功能是對(duì)新書(shū)的錄入、現(xiàn)有書(shū)目的修改、刪除以及保存,同時(shí)為了便于用戶查看書(shū)目,使用了MFSlexGrid控件顯示出網(wǎng)格數(shù)據(jù)。打開(kāi)“圖書(shū)資料維護(hù)模塊”對(duì)話框(CBookDlg)時(shí),調(diào)用SetButtonState()(設(shè)置按鈕狀態(tài))、SetTextState()(設(shè)置文本編輯框狀態(tài))、DisplayRecord()( 數(shù)據(jù)顯示)函數(shù),將對(duì)話框初始化,然后可以進(jìn)行相關(guān)的操作。添加書(shū)目時(shí)有兩種情況,一是要添加的圖書(shū)是新書(shū),二是書(shū)庫(kù)中已存在此類書(shū)籍。實(shí)現(xiàn)此功能的程序流程圖如下:開(kāi)始輸入相應(yīng)數(shù)據(jù)查找數(shù)據(jù)庫(kù)判斷書(shū)名/作者調(diào)用Edit函數(shù)庫(kù)存增加調(diào)用AddNew添加新記錄更新記錄集更新記錄集結(jié)束圖41 “圖書(shū)資料維護(hù)”數(shù)據(jù)流程圖在這里,圖書(shū)的添加、修改和刪除操作都與前面的用戶資料維護(hù)功能一樣,分別調(diào)用CRrecordSet提供的AddNew、Edit、Delete成員函數(shù),可方便的實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,此模塊可以實(shí)現(xiàn)圖書(shū)維護(hù)的基本功能。在查看圖書(shū)基本資料的時(shí)候需要用到Crecordset提供的幾個(gè)成員函數(shù),用來(lái)在記錄集中滾動(dòng),如下所示: void MoveNext( )。//前進(jìn)一個(gè)記錄 void MovePrev( )。//后退一個(gè)記錄 void MoveFirst( )。//滾動(dòng)到記錄集中的第一個(gè)記錄 void MoveLast( )。//滾動(dòng)到記錄集中的最后一個(gè)記錄當(dāng)圖書(shū)信息被添加、修改以及刪除后,在保存的同時(shí),數(shù)據(jù)庫(kù)將會(huì)自動(dòng)更新。系統(tǒng)調(diào)用‘void shuixin()’,重畫網(wǎng)格。代碼如下:if(()) { (7)。 (()+1)。 (1,2360)。 //定義網(wǎng)格的表頭 (0)。 (1)。 (圖書(shū)編號(hào))。 (0)。(2)。 (圖書(shū)名稱)。 (0)。(3)。 (作者)。 (0)。(4)。 (出版社)。 (0)。(5)。 (單價(jià))。 (0)。(6)。 (庫(kù)存量)。 return。 } ()。//畫網(wǎng)格 while (!()) { ()。 ()。 } (7)。 (()+1)。 (1,2360)。 //定義網(wǎng)格的表頭 (0)。 (1)。 (圖書(shū)編號(hào))。 (0)。(2)。 (圖書(shū)名稱)。 (0)。(3)。 (作者)。 (0)。(4)。 (出版社)。 (0)。(5)。 (單價(jià))。 (0)。(6)。 (庫(kù)存量)。 ()。//重新畫網(wǎng)格 int iRow=1。 while(!()) { CString str,str1,str2。 (BOOK%d,iRow)。 (%d,)。 (%d,)。 (iRow)。(0)。 (str)。 (iRow)。(1)。 ()。 (iRow)。(2)。 ()。 (iRow)。(3)。 ()。 (iRow)。(4)。 ()。 (iRow)。(5)。 (str2)。 (iRow)。(6)。 (str1)。 iRow++。 ()。 } (1)。 (1)。 ()。在此模塊的實(shí)現(xiàn)過(guò)程中遇到了下列問(wèn)題:a、 數(shù)據(jù)庫(kù)的打開(kāi)和關(guān)閉不合理b、 數(shù)據(jù)變量類型的不一致c、 準(zhǔn)備工作不夠,用‘選擇語(yǔ)句’時(shí)沒(méi)有分析好流程,比較盲目等等一些問(wèn)題,最后也都一一解決。三、“讀者資料維護(hù)”模塊設(shè)計(jì):“讀者資料維護(hù)”模塊的實(shí)現(xiàn)與“圖書(shū)資料維護(hù)”基本上一樣,實(shí)現(xiàn)了讀者的借書(shū)證號(hào)、姓名、證件號(hào)碼的登記。在模塊的設(shè)計(jì)過(guò)程中,根據(jù)需要對(duì)數(shù)據(jù)庫(kù)中的“讀者登記表”作了相應(yīng)的修改。讀者資料的添加、修改、保存部分實(shí)現(xiàn)代碼如下:UpdateData(TRUE)。 if (()|| ()) { AfxMessageBox(請(qǐng)輸入相應(yīng)數(shù)據(jù)!)。 return。 }if (m_bAdd) { ()。 int n=0。 CString strSQL。 strSQL = SELECT * FROM READER WHERE NAME=39。 strSQL = strSQL + m_strReaderName。 strSQL = strSQL + 39。 AND IDCARD=39。 strSQL = strSQL + m_strIDCard。 strSQL = strSQL + 39。 (AFX_DB_USE_DEFAULT_TYPE,strSQL)。 if(()!=0){ ()。 MessageBox(此讀者已存在!,提示,MB_ICONQUESTION)。 n=1。 } else { if (n==0) { ()。 = m_strReaderID。 = m_strReaderName。 = m_strIDCard。 = m_strFlagBorrow。 ()。 ()。 MessageBox(新記錄添加成功!)。 } } else { ()。 = m_strReaderID。 = m_strReaderName。 = m_strIDCard。 = m_strFlagBorrow。 ()。 ()。 MessageBox(信息修改成功!)。 } m_bAdd = FALSE。 m_bEdit = FALSE。 SetButtonState()。 SetTextState()。 ()。 ()。 shuaxin()。 、“數(shù)據(jù)備份”和“數(shù)據(jù)恢復(fù)”模塊設(shè)計(jì):數(shù)據(jù)備份和恢復(fù):用戶處理數(shù)據(jù)往往要存盤作永久備份,在需要時(shí)進(jìn)行數(shù)據(jù)恢復(fù)。在設(shè)計(jì)數(shù)據(jù)備份和恢復(fù)是要用到文檔的序列化(Serialize)。MFC庫(kù)中,磁盤文件是通過(guò)CFile類來(lái)表示的,它通過(guò)Win32函數(shù)CreateFile所得的二進(jìn)制文件 句柄進(jìn)行了封裝。但MFC重載了Serialize函數(shù)。使得用戶不必使用CFile類就可以完成相應(yīng)的文檔操作。在Serialize函數(shù)中,定義一個(gè)基于CArchive類的對(duì)象ar,可以使用插入運(yùn)算符(《)和提取運(yùn)算符(》)來(lái)續(xù)寫數(shù)據(jù),從而實(shí)現(xiàn)數(shù)據(jù)的備份和恢復(fù)。(1)“數(shù)據(jù)備份”模塊部分實(shí)現(xiàn)代碼如下:CFileDialog filedlg(0, // 1文件打開(kāi), 0文件另存為 .bak|*.*, NULL, OFN_OVERWRITEPROMPT | OFN_NOREADONLYRETURN , lib (*.bak)|*.bak|All Files (*.*)|*.*||, NULL)。 if(()==IDOK) { fileName = ()。 CLibrarySet m_rsClerkSet。 ()。 CFile file。 (fileName,CFile::modeCreate|CFile::modeWrite)。 CArchive ar(amp。file,CArchive::store)。 int n1。 n10。 while(!()) { ()。 n1=()。 } if(n10) ()。 arn1。 while(!()) { ar。 ar。 ar。 ar。 ar。 ()。 } ()。}(2)“數(shù)據(jù)恢復(fù)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1