版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p><b> 課 程 設 計</b></p><p> 課程名稱_ 數(shù)據(jù)庫課程設計___</p><p> 題目名稱____小型記賬系統(tǒng)______</p><p> 學生學院______</p><p> 專業(yè)班級___ _</p><p> 學 號__
2、________</p><p> 學生姓名___________</p><p> 指導教師_________</p><p> 2011 年 6 月</p><p><b> 目錄</b></p><p><b> 相關技術(shù)介紹2</b></p>
3、<p> 1.1 Visual Studio 2008的簡介2</p><p> 1.2 Microsoft Access 2007的簡介2</p><p> 1.3 C/S結(jié)構(gòu)的簡介2</p><p><b> 需求分析3</b></p><p><b> 2.1需求簡介3&
4、lt;/b></p><p><b> 2.2數(shù)據(jù)字典3</b></p><p> 2.2.1數(shù)據(jù)項3</p><p> 2.2.2數(shù)據(jù)結(jié)構(gòu)4</p><p><b> 2.3用例圖4</b></p><p><b> 總體設計5</
5、b></p><p> 3.1系統(tǒng)總體功能模塊圖5</p><p><b> 數(shù)據(jù)庫設計5</b></p><p> 4.1 ER圖設計6</p><p><b> 4.2關系模式6</b></p><p><b> 4.3邏輯模型7<
6、;/b></p><p><b> 4.4物理設計7</b></p><p> 4.4.1 數(shù)據(jù)庫建立7</p><p> 4.4.2 數(shù)據(jù)庫備份和恢復8</p><p> 用戶界面的設計和實現(xiàn)和應用程序編碼8</p><p> 5.1用戶界面設計8</p>
7、<p> 系統(tǒng)測試方案和測試報告16</p><p> 6.1系統(tǒng)測試17</p><p> 6.1.1錯誤數(shù)據(jù)17</p><p> 6.1.2正確數(shù)據(jù)21</p><p> 安裝和使用說明23</p><p><b> 7.1 安裝23</b></p&
8、gt;<p> 7.2 使用說明24</p><p><b> 參考文獻25</b></p><p><b> 相關技術(shù)介紹</b></p><p> 1.1 Visual Studio 2008的簡介</p><p> 對于應用程序開發(fā)工具的選擇,很多人都聽過這句經(jīng)典的
9、說法:聰明的程序員使用Delphi,真正的程序員使用Visual C++ 。Visual Studio是微軟公司推出的開發(fā)Win32應用程序(Windows 95/98/2000/XP/NT)的、面向?qū)ο蟮目梢暬砷_發(fā)工具。它的最大優(yōu)點就是提供了功能強大的MFC類庫,MFC是一個很大的C++類層次結(jié)構(gòu),其中封裝了大量的類及其函數(shù),很多Windows程序所共有的標準內(nèi)容可以由MFC的類來提供,MFC類為這些內(nèi)容提供了用戶接口的標準實現(xiàn)方
10、法,程序員所要做的就是通過預定義的接口把具體應用程序特有的東西填入這個輪廓,這將簡化編程工作,大大的減少程序員編寫的代碼數(shù)量,使編程工作變得更加輕松容易。</p><p> 1.2 Microsoft Access 2007的簡介</p><p> Microsoft Access 數(shù)據(jù)庫管理系統(tǒng)是Microsoft Office 套件的重要組成部分,先后出現(xiàn)了Access 97、Ac
11、cess 2000 和Access 2007。其中Access 2007是最新版本。Access適用于小型商務活動,用以存貯和管理商務活動所需要的數(shù)據(jù)。Access不僅是一個數(shù)據(jù)庫,而且它具有強大的數(shù)據(jù)管理功能,它可以方便地利用各種數(shù)據(jù)源,生成窗體(表單),查詢,報表和應用程序等。</p><p> Access 2007數(shù)據(jù)庫由七種對象組成:表、查詢、窗體、報表、頁、宏和模塊。表(Table) ——表是數(shù)據(jù)
12、庫的基本對象,是創(chuàng)建其他6種對象的基礎。表由記錄組成,記錄由字段組成,表用來存貯數(shù)據(jù)庫的數(shù)據(jù),故又稱數(shù)據(jù)表。查詢(Query)——查詢可以按索引快速查找到需要的記錄,按要求篩選記錄并能連接若干個表的字段組成新表。窗體(Form)——窗體提供了一種方便的瀏覽、輸入及更改數(shù)據(jù)的窗口。還可以創(chuàng)建子窗體顯示相關聯(lián)的表的內(nèi)容。窗體也稱表單。報表(Report)——報表的功能是將數(shù)據(jù)庫中的數(shù)據(jù)分類匯總,然后打印出來,以便分析。 頁(Page
13、) ——也叫數(shù)據(jù)訪問頁。是連接到數(shù)據(jù)庫的 Web 頁,在數(shù)據(jù)訪問頁中,可以查看、添加、編輯和操作存儲在數(shù)據(jù)庫中的數(shù)據(jù)。數(shù)據(jù)訪問頁還可以包括其他來源的數(shù)據(jù),例如 Microsoft Excel。宏(Macro)——宏相當于DOS中的批處理,用來自動執(zhí)行一系列操作。Access列出了一些常用的操作供用戶選擇,使用起來十分方便。模塊(Module)——模塊的功能與宏類似,但它定義的操作比宏更精細和復雜,用戶可以根據(jù)自己的需要編寫程序。模塊
14、使用Vi</p><p> 1.3 C/S結(jié)構(gòu)的簡介</p><p> 隨著網(wǎng)絡的發(fā)展,出現(xiàn)了C/S模式,應用被分為前端(客戶機部分)和后端(服務器部分)。C/S結(jié)構(gòu)的系統(tǒng)有三個基本組成部分:客戶機、服務器、客戶機與服務器的連接件??蛻魴C一般運行在微機上,而服務器一般運行在大型機或高性能微機上。這種模式的最大特點就在于利用客戶機和服務器雙方的資源來共同執(zhí)行一個特定的任務,也就是一個應用
15、由客戶機和服務器共同承擔完成。C/S結(jié)構(gòu)的優(yōu)點有:交互性強,運行效率高,開放性強,可擴充性好,應用服務器運行負荷較輕,提供了更安全的存儲模式。由于C/S模式在邏輯結(jié)構(gòu)上比B/S模式少一層,對于相同的任務,C/S完成的速度總比B/S快。</p><p><b> 需求分析</b></p><p><b> 2.1需求簡介</b></p&g
16、t;<p> 在生活節(jié)奏非??斓漠斀裆鐣藗冃枰獙θ粘5拈_支有一個明確的但是簡單的記錄方式,迷你一個記賬系統(tǒng)就是提供這樣一種方式的小型管理系統(tǒng)。它可以用來管理日常生活的支出,可以對消費進行分類、統(tǒng)計、查詢,使支出更加清晰明確,你可以根據(jù)時間段進行統(tǒng)計出消費的情況,打印出消費單。</p><p> 因為是面向?qū)嵱玫模怨δ懿恍枰^于復雜,只需要實用就可以了,考慮到用戶的需求,界面需要比較簡潔
17、和美觀,操作盡量簡單。</p><p><b> 2.2數(shù)據(jù)字典</b></p><p><b> 2.2.1數(shù)據(jù)項</b></p><p><b> 數(shù)據(jù)項名稱:用戶名</b></p><p> 簡述:用戶的名稱,用于登錄系統(tǒng)</p><p>
18、<b> 類型:字符串</b></p><p><b> 長度:20</b></p><p> 數(shù)據(jù)項之間的聯(lián)系:用戶名→密碼</p><p> 數(shù)據(jù)項名稱:條目編號</p><p> 簡述:消費的條目編號</p><p><b> 類型:字符串<
19、/b></p><p><b> 長度:7</b></p><p> 取值范圍:0000000~9999999</p><p> 數(shù)據(jù)項之間的聯(lián)系:條目編號→條目名稱,條目編號→消費類型,條目編號→單價,條目編號→數(shù)量,條目編號→消費時間</p><p> 數(shù)據(jù)項名稱:消費類型</p><
20、;p><b> 簡述:消費的類型</b></p><p><b> 類型:字符串</b></p><p><b> 長度:20</b></p><p><b> 2.2.2數(shù)據(jù)結(jié)構(gòu)</b></p><p> 數(shù)據(jù)結(jié)構(gòu)名稱:用戶信息</
21、p><p> 含義說明:使用系統(tǒng)的用戶的具體信息</p><p> 組成:用戶名 + 密碼</p><p> 數(shù)據(jù)結(jié)構(gòu)名稱:消費信息</p><p> 含義說明:消費的條目的具體信息</p><p> 組成:條目編號 + 條目名稱 + 消費類型 + 單價 + 數(shù)量 + 消費時間</p><p&
22、gt; 數(shù)據(jù)結(jié)構(gòu)名稱:類型信息</p><p> 含義說明:消費類型的具體信息</p><p><b> 組成:消費類型</b></p><p><b> 2.3用例圖</b></p><p><b> 總體設計</b></p><p> 3
23、.1系統(tǒng)總體功能模塊圖</p><p><b> 數(shù)據(jù)庫設計</b></p><p><b> 4.1 ER圖設計</b></p><p><b> 4.2關系模式</b></p><p> 用戶(用戶名,密碼)</p><p> 消費類型(消
24、費類型)</p><p> 消費(條目編號,條目名稱,消費類型,單價,數(shù)量,消費時間)</p><p> 關系模式對應的基本表</p><p><b> 4.3邏輯模型</b></p><p><b> 4.4物理設計</b></p><p> 4.4.1 數(shù)據(jù)庫建
25、立</p><p> Access數(shù)據(jù)庫本身就是一個文件,創(chuàng)建一個文件就創(chuàng)建一個數(shù)據(jù)庫,所以不需要再建立數(shù)據(jù)庫。</p><p><b> 建立表users</b></p><p> CREATE TABLE users</p><p><b> (</b></p><p
26、> u_name VARCHAR(20) PRIMARY KEY,</p><p> u_password VARCHAR(20)</p><p><b> );</b></p><p><b> 建立表class</b></p><p> CREATE TABLE class<
27、;/p><p><b> (</b></p><p> c_name VARCHAR(20) PRIMARY KEY</p><p><b> );</b></p><p><b> 建立表entry</b></p><p> CREATE TAB
28、LE entry</p><p><b> (</b></p><p> e_no VARCHAR(7) PRIMARY KEY,</p><p> e_tag VARCHAR(15),</p><p> e_class VARCHAR(20),</p><p> e_price MON
29、EY,</p><p> e_quantity INT,</p><p> e_date DATE,</p><p> e_description TEXT,</p><p> FOREIGN KEY (e_class) REFERENCES class(c_name)</p><p><b> )
30、;</b></p><p> 4.4.2 數(shù)據(jù)庫備份和恢復</p><p> 因為Access數(shù)據(jù)庫本身就是一個數(shù)據(jù)文件,所以可以直接對這個文件進行備份,如果數(shù)據(jù)遭到破壞需要恢復,那么將備份文件覆蓋到原來的數(shù)據(jù)文件就可以恢復數(shù)據(jù)了,非常方便。</p><p> 用戶界面的設計和實現(xiàn)和應用程序編碼</p><p><b&
31、gt; 5.1用戶界面設計</b></p><p> 用戶界面使用MFC(微軟基礎類庫)進行開發(fā),其中的界面元素主要用的是BCG Control Bar框架,這個框架是BCG Soft公司的界面庫產(chǎn)品,后來被微軟收購,并在后續(xù)發(fā)布的VS2008 SP版本中將其嵌入到MFC中作為MFC的一部分。用該框架可以開發(fā)出類似于office2007的界面。</p><p><b&
32、gt; 登錄界面</b></p><p><b> 關鍵代碼</b></p><p> void CLoginDlg::OnBnClickedBnLogin()</p><p><b> {</b></p><p> // TODO: 在此添加控件通知處理程序代碼</p&
33、gt;<p> UpdateData();</p><p> CString strSQL;</p><p> strSQL = _T("SELECT * FROM users");</p><p> CAdoRecordSet rs;</p><p> if (CPayoutManagerApp:
34、:OpenRecordSet(rs, strSQL))</p><p><b> {</b></p><p> if (rs.GetRecordCount() > 0)</p><p><b> {</b></p><p> CString strUsername;</p>
35、<p> CString strPassword;</p><p> rs.GetCollect(_T("u_name"), strUsername);</p><p> rs.GetCollect(_T("u_password"), strPassword);</p><p> if (strUsern
36、ame.Compare(m_strUsername) == 0)</p><p><b> {</b></p><p> if (strPassword.Compare(m_strPassword) == 0)</p><p><b> {</b></p><p> EndDialog(TR
37、UE);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> AfxMessageBox(_T("密碼錯誤!"));</p><p><
38、;b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> AfxMessageBox(_T("用戶名錯誤!"));</p&g
39、t;<p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> AfxMessageBox(_T("用戶表為空!&
40、quot;));</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 主界面</b></p><p><b> 面板<
41、/b></p><p> ////////////////////////////////////////////////////////////////////////////////////</p><p> // 添加管理主面板</p><p> bNameValid = strTemp.LoadString(IDS_RIBBON_MANAGER)
42、;</p><p> ASSERT(bNameValid);</p><p> CMFCRibbonCategory* pManagerCategory = m_wndRibbonBar.AddCategory(strTemp, IDB_WRITESMALL, IDB_WRITELARGE);</p><p> // 面板工廠(管理)</p>&
43、lt;p> CPanelFactory managerFactory(pManagerCategory);</p><p> // 利用面板工廠創(chuàng)建類別面板</p><p> m_pClassPanel = new CClassPanel(IDS_RIBBON_CLASS, managerFactory);</p><p> // 初始化面板內(nèi)容<
44、;/p><p> m_pClassPanel->InitializeContainer();</p><p> // 利用面板工廠創(chuàng)建條目面板</p><p> m_pEntryPanel = new CEntryPanel(IDS_RIBBON_ENTRY, managerFactory);</p><p> // 初始化面板內(nèi)容
45、</p><p> m_pEntryPanel->InitializeContainer();</p><p> ////////////////////////////////////////////////////////////////////////////////////</p><p> // 添加搜索主面板</p><p
46、> bNameValid = strTemp.LoadString(IDS_RIBBON_SEARCH);</p><p> ASSERT(bNameValid);</p><p> CMFCRibbonCategory* pSearchCategory = m_wndRibbonBar.AddCategory(strTemp, IDB_WRITESMALL, IDB_WRIT
47、ELARGE);</p><p> // 面板工廠(搜索)</p><p> CPanelFactory searchFactory(pSearchCategory);</p><p> // 利用面板工廠創(chuàng)建搜索面板</p><p> m_pSearchPanel = new CSearchPanel(IDS_RIBBON_SEAR
48、CH, searchFactory);</p><p> // 初始化面板內(nèi)容</p><p> m_pSearchPanel->InitializeContainer();</p><p> /////////////////////////////////////////////////////////////////////////////////
49、///</p><p> // 添加統(tǒng)計主面板</p><p> bNameValid = strTemp.LoadString(IDS_RIBBON_STAT);</p><p> ASSERT(bNameValid);</p><p> CMFCRibbonCategory* pStatCategory = m_wndRibbon
50、Bar.AddCategory(strTemp, IDB_WRITESMALL, IDB_WRITELARGE);</p><p> // 面板工廠(統(tǒng)計)</p><p> CPanelFactory statFactory(pStatCategory);</p><p> // 利用面板工廠創(chuàng)建統(tǒng)計面板</p><p> m_pS
51、tatPanel = new CStatPanel(IDS_RIBBON_STAT, statFactory);</p><p> // 初始化面板內(nèi)容</p><p> m_pStatPanel->InitializeContainer();</p><p><b> 列表視圖</b></p><p>
52、void CEntryGrid::OnInitialUpdate()</p><p><b> {</b></p><p> CListView::OnInitialUpdate();</p><p> // TODO: 在此添加專用代碼和/或調(diào)用基類</p><p><b> // 設定列表樣式<
53、;/b></p><p> DWORD dwStyle = ::GetWindowLong(m_hWnd, GWL_STYLE);</p><p> dwStyle |= LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL;</p><p> ::SetWindowLong(m_hWnd, GWL_STYLE,
54、dwStyle);</p><p> dwStyle = m_listCtrl.GetExtendedStyle();</p><p> dwStyle |= LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT;</p><p> m_listCtrl.SetExtendedStyle(dwStyle);</p>&l
55、t;p> CAdoRecordSet rs;</p><p> CString strSQL;</p><p> strSQL = _T("SELECT e_no AS 條目編號, e_tag AS 條目名稱, e_class AS 消費類型, e_price AS 單價, e_quantity AS 數(shù)量, e_date AS 購買時間, e_description
56、 AS 備注FROM entry");</p><p> CPayoutManagerApp::OpenRecordSet(rs, strSQL + _T(" ORDER BY e_no"), adCmdText);</p><p> long colCount = rs.GetFieldsCount();</p><p><
57、b> // 插入列名</b></p><p> for (long i = 0; i < colCount; i++)</p><p><b> {</b></p><p> CString columnName = rs.GetFieldName(i);</p><p> m_list
58、Ctrl.InsertColumn((int)i, columnName, 0, 100);</p><p><b> }</b></p><p> ListData(&rs);</p><p><b> }</b></p><p> void CEntryGrid::ListDat
59、a(CAdoRecordSet* pRs)</p><p><b> {</b></p><p> BOOL bCreated(FALSE);</p><p> if (pRs == NULL)</p><p><b> {</b></p><p> bCreate
60、d = TRUE;</p><p> pRs = new CAdoRecordSet();</p><p> CString strSQL;</p><p> strSQL = _T("SELECT e_no AS 條目編號, e_tag AS 條目名稱, e_class AS 消費類型, e_price AS 單價, e_quantity AS 數(shù)
61、量, e_date AS 購買時間, e_description AS 備注FROM entry");</p><p> CPayoutManagerApp::OpenRecordSet(*pRs, strSQL + _T(" ORDER BY e_no"), adCmdText);</p><p><b> }</b></p&
62、gt;<p> m_listCtrl.DeleteAllItems();</p><p> long colCount = pRs->GetFieldsCount();</p><p> long rowCount = pRs->GetRecordCount();</p><p> m_listCtrl.SetColumnWidth
63、(colCount - 1, 200);</p><p> pRs->MoveFirst();</p><p> for (long i = 0; i < rowCount; i++)</p><p><b> {</b></p><p> CString item;</p><p
64、> long j = 0;</p><p><b> // 插入條目編號</b></p><p> pRs->GetCollect(j, item);</p><p> m_listCtrl.InsertItem(i, item);</p><p><b> // 插入內(nèi)容</b&g
65、t;</p><p> for (j = 1; j < colCount; j++)</p><p><b> {</b></p><p> if (j == (colCount - 2))</p><p><b> {</b></p><p> COleDa
66、teTime dtDate;</p><p> pRs->GetCollect(_T("購買時間"), dtDate);</p><p> item = dtDate.Format(_T("%Y-%m-%d"));</p><p><b> }</b></p><p>
67、<b> else</b></p><p><b> {</b></p><p> pRs->GetCollect(j, item);</p><p><b> }</b></p><p> m_listCtrl.SetItemText(i, j, item);
68、</p><p><b> }</b></p><p> pRs->MoveNext();</p><p><b> }</b></p><p> if (bCreated == TRUE)</p><p><b> {</b></
69、p><p> delete pRs;</p><p><b> }</b></p><p><b> }</b></p><p><b> 管理面板</b></p><p> void CEntryPanel::OnClickedBnAdd(voi
70、d)</p><p><b> {</b></p><p> UpdateData();</p><p> CEntry entry(m_strNo, m_strTag, m_strClass, m_strPrice, m_strQuantity, m_strDate, m_strDescription);</p><
71、p> if (entry.Add())</p><p><b> {</b></p><p> AfxMessageBox(_T("添加成功"));</p><p> NotifyOthersToUpdate();</p><p><b> }</b></p
72、><p><b> else</b></p><p><b> {</b></p><p> AfxMessageBox(_T("添加失敗"));</p><p><b> }</b></p><p><b> }&l
73、t;/b></p><p> void CEntryPanel::OnClickedBnMod(void)</p><p><b> {</b></p><p> UpdateData();</p><p> CEntry entry;</p><p> MakeEntry(ent
74、ry);</p><p> if (entry.Update() == TRUE)</p><p><b> {</b></p><p> AfxMessageBox(_T("修改成功"));</p><p> NotifyOthersToUpdate();</p><p&
75、gt;<b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> AfxMessageBox(_T("修改失敗"));</p><p><b> }</b><
76、/p><p><b> }</b></p><p> void CEntryPanel::OnClickedBnDel(void)</p><p><b> {</b></p><p> CEntry entry;</p><p> MakeEntry(entry);&
77、lt;/p><p> if (entry.Delete() == TRUE)</p><p><b> {</b></p><p> AfxMessageBox(_T("刪除成功"));</p><p> NotifyOthersToUpdate();</p><p>&l
78、t;b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> AfxMessageBox(_T("刪除失敗"));</p><p><b> }</b></p>
79、;<p><b> }</b></p><p><b> 搜索面板</b></p><p> void CSearchPanel::OnBnSearch(void)</p><p><b> {</b></p><p> CString strText
80、= m_pBnSearch->GetText();</p><p> CString strField = m_pCBField->GetEditText();</p><p> CString strValue = m_pEditValue->GetEditText();</p><p> if (strField.Compare(_T(&
81、quot;條目編號")) == 0)</p><p><b> {</b></p><p> strField = _T("e_no");</p><p><b> }</b></p><p> else if (strField.Compare(_T(&quo
82、t;條目名稱")) == 0)</p><p><b> {</b></p><p> strField = _T("e_tag");</p><p><b> }</b></p><p> else if (strField.Compare(_T("
83、消費類型")) == 0)</p><p><b> {</b></p><p> strField = _T("e_class");</p><p><b> }</b></p><p> CString strStatement;</p>&l
84、t;p> if (strText.Compare(_T("精確搜索")) == 0)</p><p><b> {</b></p><p> strStatement.Format(_T("%s = '%s'"), strField, strValue);</p><p>&l
85、t;b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> strStatement.Format(_T("%s LIKE '%s%s%s'"), strField, _T("%"
86、), strValue, _T("%"));</p><p><b> }</b></p><p> CString strSQL;</p><p> strSQL.Format(_T("SELECT e_no AS 條目編號, e_tag AS 條目名稱, e_class AS 消費類型, e_price
87、AS 單價, e_quantity AS 數(shù)量, e_date AS 購買時間, e_description AS 備注FROM %s WHERE %s ORDER BY e_no"), m_strTable, strStatement);</p><p> CAdoRecordSet rs;</p><p> if (OpenRecordSet(rs, strSQL))&l
88、t;/p><p><b> {</b></p><p> CMainFrame* pMainFrame = (CMainFrame*)theApp.m_pMainWnd;</p><p> CEntryGrid* pEntryGrid = (CEntryGrid*)pMainFrame->GetActiveView();</p&g
89、t;<p> pEntryGrid->ListData(&rs);</p><p><b> }</b></p><p><b> }</b></p><p><b> 統(tǒng)計面板</b></p><p> void CStatPanel::
90、OnBnStat(void)</p><p><b> {</b></p><p> CString strStart = m_pCBStart->GetEditText();</p><p> CString strEnd = m_pCBEnd->GetEditText();</p><p> CS
91、tring strCount = _T("0");</p><p> CString strSum = _T("0");</p><p> CString strHighest = _T("0");</p><p> CString strStatement;</p><p>
92、 strStatement.Format(_T("e_date BETWEEN #%s# AND #%s#"), strStart, strEnd);</p><p> CString strSQL;</p><p> strSQL.Format(_T("SELECT SUM(e_price * e_quantity) AS 消費總額, MAX(e_pr
93、ice * e_quantity) AS 最高消費FROM %s WHERE %s"), m_strTable, strStatement);</p><p> CAdoRecordSet rs;</p><p> if (OpenRecordSet(rs, strSQL))</p><p><b> {</b></p&g
94、t;<p> if (!rs.IsFieldNull(0l))</p><p><b> {</b></p><p> rs.GetCollect(_T("消費總額"), strSum);</p><p> rs.GetCollect(_T("最高消費"), strHighest);
95、</p><p><b> }</b></p><p><b> }</b></p><p> strSQL.Format(_T("SELECT e_no AS 條目編號, e_tag AS 條目名稱, e_class AS 消費類型, e_price AS 單價, e_quantity AS 數(shù)量, e_
96、date AS 購買時間, e_description AS 備注FROM %s WHERE %s ORDER BY e_no"), m_strTable, strStatement);</p><p> if (OpenRecordSet(rs, strSQL))</p><p><b> {</b></p><p> str
97、Count.Format(_T("%d"), rs.GetRecordCount());</p><p> CMainFrame* pMainFrame = (CMainFrame*)theApp.m_pMainWnd;</p><p> CEntryGrid* pEntryGrid = (CEntryGrid*)pMainFrame->GetActiveVi
98、ew();</p><p> pEntryGrid->ListData(&rs);</p><p><b> }</b></p><p> m_pEditCount->SetEditText(strCount);</p><p> m_pEditSum->SetEditText(strS
99、um);</p><p> m_pEditHighest->SetEditText(strHighest);</p><p><b> }</b></p><p> 系統(tǒng)測試方案和測試報告</p><p><b> 6.1系統(tǒng)測試</b></p><p><
100、;b> 6.1.1錯誤數(shù)據(jù)</b></p><p><b> 登錄測試</b></p><p><b> 用戶名錯誤</b></p><p><b> 密碼錯誤</b></p><p><b> 修改用戶測試</b></p
101、><p><b> 價格非數(shù)字</b></p><p><b> 數(shù)量非數(shù)字</b></p><p><b> 類別重復</b></p><p><b> 6.1.2正確數(shù)據(jù)</b></p><p><b> 添加類
102、別</b></p><p><b> 添加消費</b></p><p><b> 結(jié)果圖</b></p><p> 搜索測試(精確搜索)</p><p> 搜索測試(模糊搜索)</p><p><b> 統(tǒng)計測試</b></p
103、><p><b> 安裝和使用說明</b></p><p><b> 7.1 安裝</b></p><p> 該程序為綠色程序,不需要安裝,附帶Access數(shù)據(jù)庫文件放在同級目錄下,就可以直接運行。</p><p><b> 7.2 使用說明</b></p>
104、<p> 打開程序后出現(xiàn)登陸提示框,輸入用戶名:admin,密碼:admin,之后進入主界面,如下圖所示</p><p><b> 編輯類別</b></p><p> 在類別編輯框里輸入類別,點擊“添加類別”,就完成添加類別的操作,相應的,你可以在這個面板中刪除一個選中的類別。</p><p><b> 編輯消費&l
105、t;/b></p><p> 在條目區(qū)域填寫消費的信息,然后點擊添加條目,就完成添加消費的操作,也可以在下列列表中選擇一個條目進行編輯</p><p><b> 搜索</b></p><p> 點擊頂部的選項卡切換到搜索面板,選擇進行搜索的字段,然后輸入搜索關鍵字,再點擊“精確搜索”就可以進行精確搜索了,如果需要進行模糊搜索,點擊搜
106、索按鈕的下拉箭頭,切換到模糊搜索模式,點擊搜索就可以進行模糊搜索了。</p><p><b> 統(tǒng)計</b></p><p> 點擊頂部的選項卡切換到統(tǒng)計面板,選擇需要統(tǒng)計的時間段,然后點擊統(tǒng)計,就會將時間段內(nèi)的消費統(tǒng)計出來,這時候用戶可以點擊下面的“導出統(tǒng)計表”,將會彈出保存對話框,用戶選定路徑后,將統(tǒng)計結(jié)果導出。</p><p><
107、;b> 使用技巧</b></p><p> 用戶可以搜索指定的消費出來(參考搜索),然后切換到統(tǒng)計面板,點擊“導出統(tǒng)計表”也可以將搜索的結(jié)果導出。</p><p><b> 修改用戶資料</b></p><p> 點擊主菜單按鈕,選擇修改用戶資料,進入修改用戶資料界面,輸入舊用戶的資料和新用戶資料,驗證成功后就修改了用
108、戶信息。</p><p><b> 參考文獻</b></p><p> 1、王珊 主編 數(shù)據(jù)庫系統(tǒng)概論(第四版)高等教育出版社</p><p> 2、李代平 主編 軟件工程(第二版) 冶金工業(yè)出版社</p><p> 3、姚領田 編著 精通MFC程序設計
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設計報告-個人記賬系統(tǒng)
- 數(shù)據(jù)庫課程設計--小型超市管理系統(tǒng)
- 數(shù)據(jù)庫課程設計--java_個人記賬管理系統(tǒng)
- 數(shù)據(jù)庫課程設計---小型超市管理系統(tǒng)
- 小型超市管理系統(tǒng)數(shù)據(jù)庫課程設計
- 小型超市管理系統(tǒng)數(shù)據(jù)庫課程設計
- 小型超市管理系統(tǒng)數(shù)據(jù)庫課程設計
- 數(shù)據(jù)庫課程設計---中小型超市銷售管理系統(tǒng)數(shù)據(jù)庫設計
- 數(shù)據(jù)庫課程設計--bbs系統(tǒng)數(shù)據(jù)庫設計
- sql數(shù)據(jù)庫課程設計-- 小型超市管理系統(tǒng)
- 小型辦公系統(tǒng)(數(shù)據(jù)庫課程設計)word格式
- 數(shù)據(jù)庫課程設計---數(shù)據(jù)庫
- 中小型超市銷售管理系統(tǒng)數(shù)據(jù)庫設計數(shù)據(jù)庫課程設計
- 數(shù)據(jù)庫課程設計--中小型工廠管理系統(tǒng)
- 數(shù)據(jù)庫課程設計--快餐訂餐系統(tǒng)數(shù)據(jù)庫設計
- 數(shù)據(jù)庫課程設計--數(shù)據(jù)庫設計
- 數(shù)據(jù)庫課程設計--數(shù)據(jù)庫系統(tǒng)原理
- 數(shù)據(jù)庫課程設計--數(shù)據(jù)庫設計—公司管理系統(tǒng)
- 數(shù)據(jù)庫課程設計快餐訂餐系統(tǒng)數(shù)據(jù)庫設計
- 數(shù)據(jù)庫課程設計--數(shù)據(jù)庫原理及應用課程設計
評論
0/150
提交評論