版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課 程 設(shè) 計</b></p><p> 課程名稱_ 數(shù)據(jù)庫課程設(shè)計___</p><p> 題目名稱____小型記賬系統(tǒng)______</p><p> 學(xué)生學(xué)院______</p><p> 專業(yè)班級___ _</p><p> 學(xué) 號__
2、________</p><p> 學(xué)生姓名___________</p><p> 指導(dǎo)教師_________</p><p> 2011 年 6 月</p><p><b> 目錄</b></p><p><b> 相關(guān)技術(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> 總體設(shè)計5</
5、b></p><p> 3.1系統(tǒng)總體功能模塊圖5</p><p><b> 數(shù)據(jù)庫設(shè)計5</b></p><p> 4.1 ER圖設(shè)計6</p><p><b> 4.2關(guān)系模式6</b></p><p><b> 4.3邏輯模型7<
6、;/b></p><p><b> 4.4物理設(shè)計7</b></p><p> 4.4.1 數(shù)據(jù)庫建立7</p><p> 4.4.2 數(shù)據(jù)庫備份和恢復(fù)8</p><p> 用戶界面的設(shè)計和實現(xiàn)和應(yīng)用程序編碼8</p><p> 5.1用戶界面設(shè)計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> 參考文獻(xiàn)25</b></p><p><b> 相關(guān)技術(shù)介紹</b></p><p> 1.1 Visual Studio 2008的簡介</p><p> 對于應(yīng)用程序開發(fā)工具的選擇,很多人都聽過這句經(jīng)典的
9、說法:聰明的程序員使用Delphi,真正的程序員使用Visual C++ 。Visual Studio是微軟公司推出的開發(fā)Win32應(yīng)用程序(Windows 95/98/2000/XP/NT)的、面向?qū)ο蟮目梢暬砷_發(fā)工具。它的最大優(yōu)點就是提供了功能強(qiáng)大的MFC類庫,MFC是一個很大的C++類層次結(jié)構(gòu),其中封裝了大量的類及其函數(shù),很多Windows程序所共有的標(biāo)準(zhǔn)內(nèi)容可以由MFC的類來提供,MFC類為這些內(nèi)容提供了用戶接口的標(biāo)準(zhǔn)實現(xiàn)方
10、法,程序員所要做的就是通過預(yù)定義的接口把具體應(yīng)用程序特有的東西填入這個輪廓,這將簡化編程工作,大大的減少程序員編寫的代碼數(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適用于小型商務(wù)活動,用以存貯和管理商務(wù)活動所需要的數(shù)據(jù)。Access不僅是一個數(shù)據(jù)庫,而且它具有強(qiáng)大的數(shù)據(jù)管理功能,它可以方便地利用各種數(shù)據(jù)源,生成窗體(表單),查詢,報表和應(yīng)用程序等。</p><p> Access 2007數(shù)據(jù)庫由七種對象組成:表、查詢、窗體、報表、頁、宏和模塊。表(Table) ——表是數(shù)據(jù)
12、庫的基本對象,是創(chuàng)建其他6種對象的基礎(chǔ)。表由記錄組成,記錄由字段組成,表用來存貯數(shù)據(jù)庫的數(shù)據(jù),故又稱數(shù)據(jù)表。查詢(Query)——查詢可以按索引快速查找到需要的記錄,按要求篩選記錄并能連接若干個表的字段組成新表。窗體(Form)——窗體提供了一種方便的瀏覽、輸入及更改數(shù)據(jù)的窗口。還可以創(chuàng)建子窗體顯示相關(guān)聯(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)——宏相當(dāng)于DOS中的批處理,用來自動執(zhí)行一系列操作。Access列出了一些常用的操作供用戶選擇,使用起來十分方便。模塊(Module)——模塊的功能與宏類似,但它定義的操作比宏更精細(xì)和復(fù)雜,用戶可以根據(jù)自己的需要編寫程序。模塊
14、使用Vi</p><p> 1.3 C/S結(jié)構(gòu)的簡介</p><p> 隨著網(wǎng)絡(luò)的發(fā)展,出現(xiàn)了C/S模式,應(yīng)用被分為前端(客戶機(jī)部分)和后端(服務(wù)器部分)。C/S結(jié)構(gòu)的系統(tǒng)有三個基本組成部分:客戶機(jī)、服務(wù)器、客戶機(jī)與服務(wù)器的連接件??蛻魴C(jī)一般運(yùn)行在微機(jī)上,而服務(wù)器一般運(yùn)行在大型機(jī)或高性能微機(jī)上。這種模式的最大特點就在于利用客戶機(jī)和服務(wù)器雙方的資源來共同執(zhí)行一個特定的任務(wù),也就是一個應(yīng)用
15、由客戶機(jī)和服務(wù)器共同承擔(dān)完成。C/S結(jié)構(gòu)的優(yōu)點有:交互性強(qiáng),運(yùn)行效率高,開放性強(qiáng),可擴(kuò)充性好,應(yīng)用服務(wù)器運(yùn)行負(fù)荷較輕,提供了更安全的存儲模式。由于C/S模式在邏輯結(jié)構(gòu)上比B/S模式少一層,對于相同的任務(wù),C/S完成的速度總比B/S快。</p><p><b> 需求分析</b></p><p><b> 2.1需求簡介</b></p&g
16、t;<p> 在生活節(jié)奏非常快的當(dāng)今社會,人們需要對日常的開支有一個明確的但是簡單的記錄方式,迷你一個記賬系統(tǒng)就是提供這樣一種方式的小型管理系統(tǒng)。它可以用來管理日常生活的支出,可以對消費(fèi)進(jìn)行分類、統(tǒng)計、查詢,使支出更加清晰明確,你可以根據(jù)時間段進(jìn)行統(tǒng)計出消費(fèi)的情況,打印出消費(fèi)單。</p><p> 因為是面向?qū)嵱玫?,所以功能不需要太過于復(fù)雜,只需要實用就可以了,考慮到用戶的需求,界面需要比較簡潔
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> 簡述:消費(fèi)的條目編號</p><p><b> 類型:字符串<
19、/b></p><p><b> 長度:7</b></p><p> 取值范圍:0000000~9999999</p><p> 數(shù)據(jù)項之間的聯(lián)系:條目編號→條目名稱,條目編號→消費(fèi)類型,條目編號→單價,條目編號→數(shù)量,條目編號→消費(fèi)時間</p><p> 數(shù)據(jù)項名稱:消費(fèi)類型</p><
20、;p><b> 簡述:消費(fèi)的類型</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)名稱:消費(fèi)信息</p><p> 含義說明:消費(fèi)的條目的具體信息</p><p> 組成:條目編號 + 條目名稱 + 消費(fèi)類型 + 單價 + 數(shù)量 + 消費(fèi)時間</p><p&
22、gt; 數(shù)據(jù)結(jié)構(gòu)名稱:類型信息</p><p> 含義說明:消費(fèi)類型的具體信息</p><p><b> 組成:消費(fèi)類型</b></p><p><b> 2.3用例圖</b></p><p><b> 總體設(shè)計</b></p><p> 3
23、.1系統(tǒng)總體功能模塊圖</p><p><b> 數(shù)據(jù)庫設(shè)計</b></p><p><b> 4.1 ER圖設(shè)計</b></p><p><b> 4.2關(guān)系模式</b></p><p> 用戶(用戶名,密碼)</p><p> 消費(fèi)類型(消
24、費(fèi)類型)</p><p> 消費(fèi)(條目編號,條目名稱,消費(fèi)類型,單價,數(shù)量,消費(fèi)時間)</p><p> 關(guān)系模式對應(yīng)的基本表</p><p><b> 4.3邏輯模型</b></p><p><b> 4.4物理設(shè)計</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ù)庫備份和恢復(fù)</p><p> 因為Access數(shù)據(jù)庫本身就是一個數(shù)據(jù)文件,所以可以直接對這個文件進(jìn)行備份,如果數(shù)據(jù)遭到破壞需要恢復(fù),那么將備份文件覆蓋到原來的數(shù)據(jù)文件就可以恢復(fù)數(shù)據(jù)了,非常方便。</p><p> 用戶界面的設(shè)計和實現(xiàn)和應(yīng)用程序編碼</p><p><b&
31、gt; 5.1用戶界面設(shè)計</b></p><p> 用戶界面使用MFC(微軟基礎(chǔ)類庫)進(jìn)行開發(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> 關(guān)鍵代碼</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> // 設(shè)定列表樣式<
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 消費(fèi)類型, 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 消費(fèi)類型, 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、消費(fèi)類型")) == 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 消費(fèi)類型, 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 消費(fèi)總額, MAX(e_pr
93、ice * e_quantity) AS 最高消費(fèi)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("消費(fèi)總額"), strSum);</p><p> rs.GetCollect(_T("最高消費(fèi)"), 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 消費(fèi)類型, 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> 類別重復(fù)</b></p><p><b> 6.1.2正確數(shù)據(jù)</b></p><p><b> 添加類
102、別</b></p><p><b> 添加消費(fèi)</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ù)庫文件放在同級目錄下,就可以直接運(yùn)行。</p><p><b> 7.2 使用說明</b></p>
104、<p> 打開程序后出現(xiàn)登陸提示框,輸入用戶名:admin,密碼:admin,之后進(jìn)入主界面,如下圖所示</p><p><b> 編輯類別</b></p><p> 在類別編輯框里輸入類別,點擊“添加類別”,就完成添加類別的操作,相應(yīng)的,你可以在這個面板中刪除一個選中的類別。</p><p><b> 編輯消費(fèi)&l
105、t;/b></p><p> 在條目區(qū)域填寫消費(fèi)的信息,然后點擊添加條目,就完成添加消費(fèi)的操作,也可以在下列列表中選擇一個條目進(jìn)行編輯</p><p><b> 搜索</b></p><p> 點擊頂部的選項卡切換到搜索面板,選擇進(jìn)行搜索的字段,然后輸入搜索關(guān)鍵字,再點擊“精確搜索”就可以進(jìn)行精確搜索了,如果需要進(jìn)行模糊搜索,點擊搜
106、索按鈕的下拉箭頭,切換到模糊搜索模式,點擊搜索就可以進(jìn)行模糊搜索了。</p><p><b> 統(tǒng)計</b></p><p> 點擊頂部的選項卡切換到統(tǒng)計面板,選擇需要統(tǒng)計的時間段,然后點擊統(tǒng)計,就會將時間段內(nèi)的消費(fèi)統(tǒng)計出來,這時候用戶可以點擊下面的“導(dǎo)出統(tǒng)計表”,將會彈出保存對話框,用戶選定路徑后,將統(tǒng)計結(jié)果導(dǎo)出。</p><p><
107、;b> 使用技巧</b></p><p> 用戶可以搜索指定的消費(fèi)出來(參考搜索),然后切換到統(tǒng)計面板,點擊“導(dǎo)出統(tǒng)計表”也可以將搜索的結(jié)果導(dǎo)出。</p><p><b> 修改用戶資料</b></p><p> 點擊主菜單按鈕,選擇修改用戶資料,進(jìn)入修改用戶資料界面,輸入舊用戶的資料和新用戶資料,驗證成功后就修改了用
108、戶信息。</p><p><b> 參考文獻(xiàn)</b></p><p> 1、王珊 主編 數(shù)據(jù)庫系統(tǒng)概論(第四版)高等教育出版社</p><p> 2、李代平 主編 軟件工程(第二版) 冶金工業(yè)出版社</p><p> 3、姚領(lǐng)田 編著 精通MFC程序設(shè)計
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計報告-個人記賬系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--小型超市管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--java_個人記賬管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---小型超市管理系統(tǒng)
- 小型超市管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 小型超市管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 小型超市管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計---中小型超市銷售管理系統(tǒng)數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--bbs系統(tǒng)數(shù)據(jù)庫設(shè)計
- sql數(shù)據(jù)庫課程設(shè)計-- 小型超市管理系統(tǒng)
- 小型辦公系統(tǒng)(數(shù)據(jù)庫課程設(shè)計)word格式
- 數(shù)據(jù)庫課程設(shè)計---數(shù)據(jù)庫
- 中小型超市銷售管理系統(tǒng)數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--中小型工廠管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--快餐訂餐系統(tǒng)數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--數(shù)據(jù)庫系統(tǒng)原理
- 數(shù)據(jù)庫課程設(shè)計--數(shù)據(jù)庫設(shè)計—公司管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計快餐訂餐系統(tǒng)數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--數(shù)據(jù)庫原理及應(yīng)用課程設(shè)計
評論
0/150
提交評論