資源簡介
實驗環境:
1. Windows XP操作系統,Server版;
2. 企業版Microsoft SQL Server 2000;
3. Visual C++ MFC編程
題目要求:
假設圖書館的工作人員要處理下列日常工作:
? 借書:核實讀者身份并檢查是否存在下述情況:
? 該讀者借書的數額超標;
? 該讀者所借的書過期未還;
? 該讀者曾因借書過期被罰款而未交;
如不存在上述情況,則登記借書信息;
? 還書:檢查所還圖書是否損壞或過期,是則登記罰單信息并打印罰單,在交納罰金前,不允許該讀者繼續借書。若圖書損壞,注銷該圖書信息,否則進行還書登記。
? 罰款:根據罰單收取罰金,同時取消該讀者的借書限制。
? 圖書信息維護:新書上架、舊書下架及圖書信息查詢。
? 讀者信息維護:錄入、注銷、修改及查詢讀者信息。
此外,圖書館還應向讀者提供下列基本功能:
? 查詢圖書信息;
? 查詢自己的基本信息和借書記錄;
? 續借;

代碼片段和文件信息
//?accbook.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“library.h“
#include?“accbook.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//?accbook?dialog
accbook::accbook(CWnd*?pParent?/*=NULL*/)
:?CDialog(accbook::IDD?pParent)
{
//{{AFX_DATA_INIT(accbook)
//}}AFX_DATA_INIT
}
void?accbook::DoDataExchange(CDataExchange*?pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(accbook)
DDX_Control(pDX?IDC_EDIT4?m_edi4);
DDX_Control(pDX?IDC_EDIT6?m_edi6);
DDX_Control(pDX?IDC_EDIT5?m_edi5);
DDX_Control(pDX?IDC_EDIT3?m_edi3);
DDX_Control(pDX?IDC_EDIT2?m_edi2);
DDX_Control(pDX?IDC_EDIT1?m_edi1);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(accbook?CDialog)
//{{AFX_MSG_MAP(accbook)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?accbook?message?handlers
void?accbook::OnOK()?
{
CString?edi1edi2edi3edi4sql;
????m_edi1.GetWindowText(edi1);
????m_edi2.GetWindowText(edi2);
????m_edi3.GetWindowText(edi3);
????m_edi4.GetWindowText(edi4);
????m_edi1.SetWindowText(““);
????m_edi2.SetWindowText(““);
????m_edi3.SetWindowText(““);
????m_edi4.SetWindowText(““);
CString?s1=“是“;
CString?s2=“否“;
::CoInitialize(NULL);?
_ConnectionPtr?cnn=NULL;
???????HRESULT?hr=cnn.CreateInstance(__uuidof(Connection));
???_bstr_t?strConnect=“Provider=SQLOLEDB;?Server=(local);““Database=library;?uid=sa;?pwd=123;“;
???????cnn->Open(strConnect““““NULL);
???????_RecordsetPtr?rst=NULL;
??? rst.CreateInstance(__uuidof(Recordset));
if(edi2==s2&&edi3==s2){
try
{
sql.Format(“delete??from?借書信息?where?借書證號=‘%s‘?and?編號=‘%s‘?“edi4edi1);
cnn->Execute((_bstr_t)sqlNULLadCmdText);
????sql.Format(“update?圖書???set?數量=數量+1?where?編號=‘%s‘?“edi1);
cnn->Execute((_bstr_t)sqlNULLadCmdText); ???
sql.Format(“update?用戶???set?已借書數量=已借書數量-1?where?借書證編號=‘%s‘?“edi4);
cnn->Execute((_bstr_t)sqlNULLadCmdText);
?????????::MessageBox(NULL“操作成功!““提示“MB_OK|MB_ICONWARNING);?
?CDialog::OnCancel();
}
?catch(_com_error?&e)
?{
????????????::MessageBox(NULL“輸入錯誤請重新輸入!““提示“MB_OK|MB_ICONWARNING);
?}
//?TODO:?Add?extra?validation?here
}
else?if(edi2==s2&&edi3==s1)
{??????
???????CString?edi5edi6;
???????m_edi5.GetWindowText(edi5);
???m_edi6.GetWindowText(edi6);
???????m_edi5.SetWindowText(““);
???????m_edi6.SetWindowText(““);
???????float?i=(float)atof(edi5);
????????try{
sql.Format(“delete??from?借書信息?where?借書證號=‘%s‘?and?編號=‘%s‘?“edi4edi1);
cnn->Execute((_bstr_t)sqlNULLadCmdText);
????????sql.Format(“insert?into?罰單?values(‘%s‘‘%s‘%f)?“edi6edi4i);
cnn->Execute((_bstr_t)sqlNULLadCmdText);
????sql.Format(“update?圖書???set?數量=數量+1?where?編號=‘%s‘?“edi1);
cnn->Execute((_bstr_t)sqlNULLadCmdText);
????sql.Format(“update?用戶
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????159??2008-09-15?17:45??梅正剛012005013911\readme.txt
?????文件?????265728??2008-09-15?17:40??梅正剛012005013911\梅正剛012005013911.doc
?????文件???????4583??2008-09-15?09:57??梅正剛012005013911\源代碼文件\library\accbook.cpp
?????文件???????1235??2008-09-15?09:57??梅正剛012005013911\源代碼文件\library\accbook.h
?????文件???????2396??2008-09-01?22:47??梅正剛012005013911\源代碼文件\library\addbook.cpp
?????文件???????1252??2008-09-01?22:42??梅正剛012005013911\源代碼文件\library\addbook.h
?????文件???????2358??2008-09-01?22:21??梅正剛012005013911\源代碼文件\library\alteruser.cpp
?????文件???????1254??2008-09-01?22:18??梅正剛012005013911\源代碼文件\library\alteruser.h
?????文件???????1757??2008-09-01?12:35??梅正剛012005013911\源代碼文件\library\bookselect.cpp
?????文件???????1236??2008-09-01?12:29??梅正剛012005013911\源代碼文件\library\bookselect.h
?????文件???????7389??2008-09-15?10:43??梅正剛012005013911\源代碼文件\library\cmain.cpp
?????文件???????1453??2008-09-02?13:51??梅正剛012005013911\源代碼文件\library\cmain.h
?????文件???????2433??2008-09-01?22:21??梅正剛012005013911\源代碼文件\library\createuser.cpp
?????文件???????1285??2008-09-01?21:44??梅正剛012005013911\源代碼文件\library\createuser.h
?????文件???????1734??2008-09-01?22:56??梅正剛012005013911\源代碼文件\library\delbook.cpp
?????文件???????1155??2008-09-01?22:53??梅正剛012005013911\源代碼文件\library\delbook.h
?????文件???????4708??2008-09-15?10:41??梅正剛012005013911\源代碼文件\library\lend.cpp
?????文件???????1339??2008-09-01?16:23??梅正剛012005013911\源代碼文件\library\lend.h
?????文件????2488412??2008-09-17?10:57??梅正剛012005013911\源代碼文件\library\library.aps
?????文件???????9878??2008-09-17?11:01??梅正剛012005013911\源代碼文件\library\library.clw
?????文件???????2032??2008-08-31?22:20??梅正剛012005013911\源代碼文件\library\library.cpp
?????文件???????5624??2008-09-02?14:36??梅正剛012005013911\源代碼文件\library\library.dsp
?????文件????????522??2008-08-30?19:13??梅正剛012005013911\源代碼文件\library\library.dsw
?????文件???????1335??2008-08-30?19:13??梅正剛012005013911\源代碼文件\library\library.h
?????文件?????410624??2008-09-17?11:01??梅正剛012005013911\源代碼文件\library\library.ncb
?????文件????????932??2008-09-15?15:58??梅正剛012005013911\源代碼文件\library\library.plg
?????文件??????18359??2008-09-15?15:56??梅正剛012005013911\源代碼文件\library\library.rc
?????文件???????8430??2008-09-15?15:10??梅正剛012005013911\源代碼文件\library\libraryDlg.cpp
?????文件???????1390??2008-09-01?20:17??梅正剛012005013911\源代碼文件\library\libraryDlg.h
?????文件??????10005??2008-09-15?15:58??梅正剛012005013911\源代碼文件\library\main.cpp
............此處省略36個文件信息
評論
共有 條評論