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

正文內容

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

2025-05-09 06:05 本頁面
 

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