




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、福建農林大學計算機與信息學院福建農林大學計算機與信息學院 課程設計報告課程設計報告 課程名稱:數(shù)據庫原理課程設計 論文題目: 學生考試管理系統(tǒng) 姓 名: 系: 計算機科學與技術 專 業(yè): 計算機科學與技術 年 級: 2012 學 號: 指導教師: 2014 年 12 月 28 日 福建農林大學計算機與信息學院福建農林大學計算機與信息學院 課程設計報告結果評定課程設計報告結果評定 評語 評分內容標準分得分 用軟件工程的方法進行系統(tǒng)需求分析和系統(tǒng)設計得 出系統(tǒng)的數(shù)據流圖數(shù)據字典和信息模型,寫出需求 規(guī)格說明書。 15 按數(shù)據庫設計方法和規(guī)范化理論得出符合 3NF 的邏 輯模型,外模型和物理模型。
2、25 定義 MySQL 的基本表和安全性、完整性要求。 10 設計并編寫輸入輸出、查詢統(tǒng)計、數(shù)據維護等功 能模塊的應用程序。 35 對系統(tǒng)的各個功能模塊進行集成、總調試和優(yōu)化工 作,優(yōu)化用戶界面、撰寫設計報告。 15 總分 指導教師簽字:評定日期: 目目 錄錄 一一 考試管理系統(tǒng)可行性分析考試管理系統(tǒng)可行性分析 .1 1.1 問題描述及開發(fā)背景.1 1.2 開發(fā)意義、資金消耗及應用范圍分析.1 二二 考試管理系統(tǒng)需求分析考試管理系統(tǒng)需求分析 .1 2.1 用戶需求及功能分析匯總.1 2.2 系統(tǒng)流程圖及數(shù)據流圖.2 2.3 數(shù)據字典.2 2.4 數(shù)據庫設計.4 三三 考試管理系統(tǒng)概要設計考試管
3、理系統(tǒng)概要設計 .4 3.1 系統(tǒng)模塊劃分.4 3.2 確定目標系統(tǒng)實現(xiàn)方案.5 四四 目標系統(tǒng)詳細設計目標系統(tǒng)詳細設計 .6 4.1 數(shù)據庫設計.6 4.2 創(chuàng)建數(shù)據源并通過數(shù)據庫操作事務對象連接.6 4.3 創(chuàng)建前臺控件與數(shù)據源間數(shù)據傳輸?shù)臄?shù)據窗口對象和查詢對象.7 4.3 創(chuàng)建數(shù)據管道.8 五五 系統(tǒng)編碼系統(tǒng)編碼(幾個重要部分)(幾個重要部分) .9 5.1EXAMONLINE.9-10 5.2ADDSUBJECT.11 5.3EXAMINFO.14-16 5.4TESTRESULT. .16-18 六六 測試測試 .18 6.1 單元模塊測試與分析.18 6.2 集成測試與分析.18
4、6.3 系統(tǒng)運行截圖.18-23 七七 總結總結.23-24 參考文獻參考文獻 .23 學生考試管理系統(tǒng)學生考試管理系統(tǒng) 開發(fā)環(huán)境:開發(fā)環(huán)境:Virtual C+ 一一 考試管理系統(tǒng)可行性分析考試管理系統(tǒng)可行性分析 1.11.1 問題描述及開發(fā)背景問題描述及開發(fā)背景 隨著教育改革的進行,目前高中階段教學已逐步采用同大學教學類似的學 分制,原先對于學生考試管理成績資料的那種人工或半人工的管理方式的低效 性越來越明顯;而對于中學若采購成套資料管理系統(tǒng),無論從資金還是人員配 置方面多少都有些小題大做。鑒于以上話題的諸多特征,策劃設計一個功能、 可操縱性以及資金消耗與之適合的學生考試管理系統(tǒng)。 1.2
5、1.2 開發(fā)意義、資金消耗及應用范圍分析開發(fā)意義、資金消耗及應用范圍分析 開發(fā)此類系統(tǒng)主要是想,在兼顧到性能和資金消耗的前提下,加速中學的 信息管理方式同教育改革相適應的速度。 該系統(tǒng)預定開發(fā)周期為一周,開發(fā)人員三人,每天工作八小時。規(guī)劃同勞 動量等值市場開發(fā)經費為 500 元(具體規(guī)劃為:人員酬勞每人每小時酬勞為 20 元,共計 420 元;市場調研、計算機設備使用以及交付客戶初期的系統(tǒng)適應性 維護等經費 80 元。 該系統(tǒng)主要面向中學學生考試成績資料管理人員。 二二 考試管理系統(tǒng)需求分析考試管理系統(tǒng)需求分析 2.12.1 用戶需求及功能分析匯總用戶需求及功能分析匯總 (1)保密方面:采用密
6、碼登陸方式啟動。 (2) 數(shù)據存儲管理方面:采用服務器工作站方式,僅在服務器上運行數(shù)據 庫管理軟件,各年級辦公室的計算機共享數(shù)據資源;具備不同服務器間、已購數(shù) 據庫系統(tǒng)間數(shù)據塊的傳輸功能。 (3)數(shù)據操作方面:注冊賬號。學生基本信息的錄入、修改和查詢功能; 課程添加、題庫修改和刪除功能;學生成績的查詢功能。 (4)易以操縱性:窗口界面布置風格盡量一致,要求輸入類的操作盡量少。 (5)容錯性能:由于操作人員主要為教師或學生,所以對誤操作的處理能能 力要相對強一些。 (6)硬件及系統(tǒng)軟件要求:基本的 windowsXP 平臺即可。 (7)提供必要的維護文檔。 2.22.2 系統(tǒng)流程圖及數(shù)據流圖系統(tǒng)
7、流程圖及數(shù)據流圖 系統(tǒng)流程圖如圖 2-1 所示(其中:“”表示后臺數(shù)據流動, “” 表示信息管理員的前端操作) 。 數(shù)據流圖如圖 2-2 所示。 2.32.3 數(shù)據字典數(shù)據字典 (1)名字:事務 描述:需管理員操作的活動; (2)名字:后臺事務 描述:通過激活的事件或數(shù)據庫系統(tǒng)完成的活動,對于管理員是透明的。 圖 2-1 系統(tǒng)流程圖 (3)名字:學生基本信息 定義:學生基本信息=學號+姓名+性別+身份證+手機號 位置:數(shù)據庫 (4)名字:課程信息 定義:課程信息=課程名+課程考題+考題答案+成績 位置:數(shù)據庫 (5)名字:學生成績 定義:學生成績=學號+課程名+成績 圖 2-2 系統(tǒng)數(shù)據流圖
8、2.42.4 數(shù)據庫設計數(shù)據庫設計 E-R 圖如圖 2-3 所示。 圖 2-3 E-R 圖 三三 考試管理系統(tǒng)概要設計考試管理系統(tǒng)概要設計 3.13.1 系統(tǒng)模塊劃分系統(tǒng)模塊劃分 系統(tǒng)層次結構如圖 3-1 所示,模塊劃分如圖 3-2 所示。 圖 3-1 系統(tǒng)層次結構示意圖 圖 3-2 系統(tǒng)設計模塊劃分示意圖 說明:我負責數(shù)據庫構建模塊的設計。 3.23.2 確定目標系統(tǒng)實現(xiàn)方案確定目標系統(tǒng)實現(xiàn)方案 方案一:方案一:快速原型增量模式開發(fā) 優(yōu)點:開發(fā)出最終版本的系統(tǒng)之前,所有原型系統(tǒng)都已通過與用戶交互 而得到驗證,據此產生的規(guī)格說明文檔正確地描述了用戶的要求,因此,在開 發(fā)過程的后續(xù)階段不會因為發(fā)
9、現(xiàn)了規(guī)格說明文檔錯誤而進行較大的返工。 開發(fā)人員通過建立原型系統(tǒng)已經學到了許多東西(至少知道了“系統(tǒng)不 應該做什么,以及怎樣不去做不該做的事情” ) ,因此,在設計和編碼階段發(fā)生 錯誤的可能性也比較小,這自然減少了在后續(xù)階段需要改正前面階段所犯錯誤 的可能性。 劣勢:該模式的本質特征是“快速” ,但由于原型系統(tǒng)的用途是獲知用戶的 真正需求,一旦需求確定了,原型版本就將被拋棄。這也決定了其對人員配備 和勞動量有較高的要求。 方案二:方案二:文檔驅動模塊化一次性開發(fā) 優(yōu)點:由其文檔驅動的特性,決定了這種方案具有階段性和依賴性,同 時可最大限度推遲系統(tǒng)的具體代碼實現(xiàn)。實踐表明,對于規(guī)模相對較大的軟件
10、 項目來說,往往編碼開始的越早,最終完成開發(fā)工作所需要的時間反而越長。 因為,前面階段的工作沒做或做得不扎實,過早地考慮進行程序實現(xiàn),往往導 致大量返工,有時甚至發(fā)生無法彌補的問題,帶來災難性結果。 可強迫開發(fā)人員采用規(guī)范的方法嚴格地規(guī)定了每個階段必須提交的文檔, 這將使軟件開發(fā)設計變得相對容易一些。 由于是模塊化設計,單元編碼和測試,最后總裝,正使得系統(tǒng)具有了一 定的開放性。一者簡化了測試階段復雜度,另一方面也有利于軟件發(fā)布以后的 運行為階段完善性維護和適應性維護。 劣勢:系統(tǒng)的開發(fā)過程完全由文檔驅動,同方案一相比,開發(fā)周期可能會 較長些。 確定:確定:從該系統(tǒng)的規(guī)模、應用范圍、開發(fā)經費消耗
11、和現(xiàn)實的開發(fā)意義等方面綜 合考慮,決定開發(fā)過程采用方案二進行。 四四 目標系統(tǒng)詳細設計目標系統(tǒng)詳細設計 說明:由于在開發(fā)過程中我主要負責數(shù)據庫模塊的設計,故接下來的內容 將主要敘述數(shù)據庫模塊的詳細設計思路。 4.14.1 數(shù)據庫設計數(shù)據庫設計 根據第二章中圖 2-3 所示的 E-R 數(shù)據結構示意圖設計了四個而為關系表,分 別是:學生基本信息表,如表 4-1 所示; 課程信息表,如表 4-2 所示; 學生成績表,如表 4-3 所示; 4.24.2 創(chuàng)建數(shù)據源并通過數(shù)據庫操作事務對象連接創(chuàng)建數(shù)據源并通過數(shù)據庫操作事務對象連接 總共創(chuàng)建兩個數(shù)據源:本地服務器數(shù)據源(用于本校日常管理) ,遠程數(shù)據 源
12、(用于上傳或下載數(shù)據) 。 采用 PowerBuilder 的初始化文件 PB.INI 文件,利用通用方式通過事務對象 連接數(shù)據源。連接的程序流程如圖 4-1 所示。 表 4-1 學生基本信息表定義 名稱數(shù)據類型字節(jié)大小可為空默認值備注 學號char10否主鍵 姓名char8否 身份證號char20否 性別char2否 聯(lián)系電話char11否 成績int4可Null 表 4-2 課程信息表定義 名稱數(shù)據類型字節(jié)大小可為空默認值備注 課程名稱Char3否主鍵,外鍵 考題Char50可 考試成績int 4否 表 4-3 學生成績表定義 名稱數(shù)據類型字節(jié)大小可為空默認值備注 學生用戶名Char6否主
13、鍵,外鍵 課程名稱Char3否主鍵,外鍵 成績Float8可 表 4.1 的數(shù)據庫操作語句: create table Student( Sno varchar(10) primary key, Sname Varchar(8), Snum Varchar(20), Ssex varchar(2), Stel Varchar(11), Spoint Varint(4) ) ; 表 4.2 的數(shù)據庫操作語句: create table Course( Cname Varchar(8), primary key, Ctitle Varchar(50), Cpoint Varint(4) ) ; 表
14、 4.3 的數(shù)據庫操作語句: create table SC( SCno varchar(10) primary key, SCname Varchar(8), SCpoint Varchar(10) ) ; 4.34.3 創(chuàng)建前臺控件與數(shù)據源間數(shù)據傳輸?shù)臄?shù)據窗口對象和查詢對象創(chuàng)建前臺控件與數(shù)據源間數(shù)據傳輸?shù)臄?shù)據窗口對象和查詢對象 d_cjupdata:存儲過程類數(shù)據窗口對象,用于錄入、修改、刪除學生成績表 中的記錄; d_kc:sql 類數(shù)據窗口對象,用于通過課程號參數(shù)查詢課程表中的對應記錄; d_kcpudata:quickSelect 類型數(shù)據窗口對象,用于錄入、修改、刪除課程表 中的記
15、錄; d_stuupdata:quickSelect 類型數(shù)據窗口對象,用于錄入、修改、刪除學生 基本信息表中的記錄; d_score:sql 類數(shù)據窗口對象,用于通過學號參數(shù)查詢學生成績表中的相應 記錄; d_xs:sql 類數(shù)據窗口對象,用于通過學號參數(shù)查詢學生基本信息表中的相 應記錄; query_xs:查詢對象,與 d_xs 搭配使用; query_kc: 查詢對象,與 d_kc 搭配使用; query_xs_xscj: 查詢對象,與 d_score 搭配使用; 圖 4-1 通過事務對象連接數(shù)據源程序流程示意圖 4.34.3 創(chuàng)建數(shù)據管道創(chuàng)建數(shù)據管道 表結構定義時曾強調,表名、列名、類
16、型、寬度、Null 值等一經確定,便 難以修改。要更改表的這些屬性,只有利用數(shù)據管道。此外我們還經常要復制 表的結構及表中部分后全部數(shù)據、講一個表中數(shù)據加到另一個表中去(即使兩 個表的結構不一樣),還有講一個數(shù)據庫中的表復制到另一個數(shù)據庫(可能是兩 個不同類型的數(shù)據庫包括服務器和本地庫) 。數(shù)據管道都能滿足這些要求。具體 創(chuàng)建使用程序流程如圖 4-2 所示。 圖 4-2 數(shù)據管道創(chuàng)建和使用程序流程示意圖 五五 系統(tǒng)編碼系統(tǒng)編碼 5.1C+主程序源代碼主程序源代碼 系統(tǒng)實現(xiàn)的主程序 / ExamOnline.cpp : Defines the class behaviors for the ap
17、plication. / #include stdafx.h #include ExamOnline.h #include ExamOnlineDlg.h #include LOGIN.h #include Back.h #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE = _FILE_; #endif / CExamOnlineApp BEGIN_MESSAGE_MAP(CExamOnlineApp, CWinApp) /AFX_MSG_MAP(CExamOnlineApp) / NOTE -
18、 the ClassWizard will add and remove mapping macros here. / DO NOT EDIT what you see in these blocks of generated code! /AFX_MSG ON_COMMAND(ID_HELP, CWinApp:OnHelp) END_MESSAGE_MAP() / CExamOnlineApp construction CExamOnlineApp:CExamOnlineApp() / TODO: add construction code here, / Place all signifi
19、cant initialization in InitInstance / The one and only CExamOnlineApp object CExamOnlineApp theApp; / CExamOnlineApp initialization BOOL CExamOnlineApp:InitInstance() AfxEnableControlContainer(); :CoInitialize(NULL); / Standard initialization / If you are not using these features and wish to reduce
20、the size / of your final executable, you should remove from the following / the specific initialization routines you do not need. #ifdef _AFXDLL Enable3dControls();/ Call this when using MFC in a shared DLL #else Enable3dControlsStatic();/ Call this when linking to MFC statically #endif /CBack dlg;
21、/dlg.DoModal(); CLOGIN logindlg; if(logindlg.DoModal()=IDOK) CString Name; Name=logindlg.m_UserName; CString sql=select * from register where username=+Name+; m_AdoConn.OnInitADOConn(); m_pRs=m_AdoConn.GetRecordSet(_bstr_t)sql); studentid=atoi(char*)(_bstr_t)m_pRs-GetCollect(studentid); CExamOnlineD
22、lg dlg; m_pMainWnd = dlg.DoModal(); /int nResponse = dlg.DoModal(); /if (nResponse = IDOK) / TODO: Place code here to handle when the dialog is / dismissed with OK /else if (nResponse = IDCANCEL) / TODO: Place code here to handle when the dialog is / dismissed with Cancel :CoUninitialize(); / Since
23、the dialog has been closed, return FALSE so that we exit the / application, rather than start the applications message pump. return FALSE; 5.2.AddSubject 代碼代碼 添加部件(其他功能類似) / ExamOnline.cpp : Defines the class behaviors for the application. / #include stdafx.h #include ExamOnline.h #include ExamOnlin
24、eDlg.h #include LOGIN.h #include Back.h #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE = _FILE_; #endif / CExamOnlineApp BEGIN_MESSAGE_MAP(CExamOnlineApp, CWinApp) /AFX_MSG_MAP(CExamOnlineApp) / NOTE - the ClassWizard will add and remove mapping macros here. / DO NOT EDIT
25、 what you see in these blocks of generated code! /AFX_MSG ON_COMMAND(ID_HELP, CWinApp:OnHelp) END_MESSAGE_MAP() / CExamOnlineApp construction CExamOnlineApp:CExamOnlineApp() / TODO: add construction code here, / Place all significant initialization in InitInstance / The one and only CExamOnlineApp o
26、bject CExamOnlineApp theApp; / CExamOnlineApp initialization BOOL CExamOnlineApp:InitInstance() AfxEnableControlContainer(); :CoInitialize(NULL); / Standard initialization / If you are not using these features and wish to reduce the size / of your final executable, you should remove from the followi
27、ng / the specific initialization routines you do not need. #ifdef _AFXDLL Enable3dControls();/ Call this when using MFC in a shared DLL #else Enable3dControlsStatic();/ Call this when linking to MFC statically #endif /CBack dlg; /dlg.DoModal(); CLOGIN logindlg; if(logindlg.DoModal()=IDOK) CString Na
28、me; Name=logindlg.m_UserName; CString sql=select * from register where username=+Name+; m_AdoConn.OnInitADOConn(); m_pRs=m_AdoConn.GetRecordSet(_bstr_t)sql); studentid=atoi(char*)(_bstr_t)m_pRs-GetCollect(studentid); CExamOnlineDlg dlg; m_pMainWnd = dlg.DoModal(); /int nResponse = dlg.DoModal(); /if
29、 (nResponse = IDOK) / TODO: Place code here to handle when the dialog is / dismissed with OK /else if (nResponse = IDCANCEL) / TODO: Place code here to handle when the dialog is / dismissed with Cancel :CoUninitialize(); / Since the dialog has been closed, return FALSE so that we exit the / applicat
30、ion, rather than start the applications message pump. return FALSE; 5.3ExamInfo 學生考試科目,成績的錄入,保存 / ExamInfo.cpp : implementation file / #include stdafx.h #include ExamOnline.h #include ExamInfo.h #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE = _FILE_; #endif extern CExamO
31、nlineApp theApp; / CExamInfo dialog CExamInfo:CExamInfo(CWnd* pParent /*=NULL*/) : CDialog(CExamInfo:IDD, pParent) /AFX_DATA_INIT(CExamInfo) / NOTE: the ClassWizard will add member initialization here /AFX_DATA_INIT void CExamInfo:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); /AFX_
32、DATA_MAP(CExamInfo) DDX_Control(pDX, IDC_SUBJECTCOMBO, m_SubjectCombo); /AFX_DATA_MAP BEGIN_MESSAGE_MAP(CExamInfo, CDialog) /AFX_MSG_MAP(CExamInfo) ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk) ON_BN_CLICKED(IDC_BUTTON_CANCEL, OnButtonCancel) /AFX_MSG_MAP END_MESSAGE_MAP() / CExamInfo message handlers BO
33、OL CExamInfo:OnInitDialog() CDialog:OnInitDialog(); m_AdoConn.OnInitADOConn(); CString sql=select* from subject; m_pRs=m_AdoConn.GetRecordSet(_bstr_t)sql); while(m_pRs-adoEOF=0) CString subject=(char*)(_bstr_t)m_pRs-GetCollect(subjectname); m_SubjectCombo.AddString(subject); m_pRs-MoveNext(); m_AdoC
34、onn.ExitConn(); return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE void CExamInfo:OnButtonOk() UpdateData(); if(m_SubjectCombo.GetCurSel()=-1) AfxMessageBox(請選擇科目); return; int studentid=theApp.studentid; m_SubjectCombo.GetLBText(m_Su
35、bjectCombo.GetCurSel(),Subject); m_AdoConn.OnInitADOConn(); CString sql; sql.Format(select * from result where studentid=%d and Subject=%s ,studentid,Subject); m_pRs=m_AdoConn.GetRecordSet(_bstr_t)sql); if(m_pRs-adoEOF) sql=select * from subject where subjectname=+Subject+; m_pRs=m_AdoConn.GetRecord
36、Set(_bstr_t)sql); Sid=atoi(char*)(_bstr_t)m_pRs-GetCollect(subjectid); sql.Format(select *from test where subjectid=%d order by testid,Sid); m_pRs=m_AdoConn.GetRecordSet(_bstr_t)sql); Question=(char*)(_bstr_t)m_pRs-GetCollect(question); CDialog:OnOK(); else MessageBox(該考生以進行過本科目的考試); m_AdoConn.ExitC
37、onn(); void CExamInfo:OnButtonCancel() CDialog:OnCancel(); void CExamInfo:OnOK() OnButtonOk(); 5.4.TestResult 判斷考生做題是否正確的部件,正確便加分。 / TestResult.cpp : implementation file / #include stdafx.h #include ExamOnline.h #include TestResult.h #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char T
38、HIS_FILE = _FILE_; #endif / CTestResult dialog extern CExamOnlineApp theApp; CTestResult:CTestResult(CWnd* pParent /*=NULL*/) : CDialog(CTestResult:IDD, pParent) /AFX_DATA_INIT(CTestResult) / NOTE: the ClassWizard will add member initialization here /AFX_DATA_INIT void CTestResult:DoDataExchange(CDa
39、taExchange* pDX) CDialog:DoDataExchange(pDX); /AFX_DATA_MAP(CTestResult) DDX_Control(pDX, IDC_RESULTLIST, m_ResultList); /AFX_DATA_MAP BEGIN_MESSAGE_MAP(CTestResult, CDialog) /AFX_MSG_MAP(CTestResult) ON_BN_CLICKED(IDC_CANCEL, OnCancel) /AFX_MSG_MAP END_MESSAGE_MAP() / CTestResult message handlers B
40、OOL CTestResult:OnInitDialog() CDialog:OnInitDialog(); m_ResultList.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_E X_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE); m_ResultList.InsertColumn(0,題號,LVCFMT_CENTER,200,0); m_ResultList.InsertColumn(1,結果,LVCFMT_CENTER,200,1); m_AdoCon
41、n.OnInitADOConn(); CString sql=select*from examminginfo; m_pRs=m_AdoConn.GetRecordSet(_bstr_t)sql); int i=0; int sum=0; while(m_pRs-adoEOF=0) CString num=(char*)(_bstr_t)m_pRs-GetCollect(testnum); CString result=(char*)(_bstr_t)m_pRs-GetCollect(totle); m_ResultList.InsertItem(i,); m_ResultList.SetIt
42、emText(i,0,num); if(result=0) m_ResultList.SetItemText(i,1,錯誤); else m_ResultList.SetItemText(i,1,正確); i+; sum+=atoi(result); m_pRs-MoveNext(); CString str; str.Format(%d,sum); m_ResultList.InsertItem(i,); m_ResultList.SetItemText(i,0,總分:); m_ResultList.SetItemText(i,1,str+分); CTime time; time=CTime
43、:GetCurrentTime(); CString Tstr=time.Format(%m 月%d 日%H:%M); sql=update result set closetime=+Tstr+,totle=+str+ where starttime=+TimeStr+; m_AdoConn.ExecuteSQL(_bstr_t)sql); m_AdoConn.ExitConn(); return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should r
44、eturn FALSE void CTestResult:OnCancel() CString sql; sql.Format(delete from examminginfo); m_AdoConn.OnInitADOConn(); m_AdoConn.ExecuteSQL(_bstr_t)sql); m_AdoConn.m_pCon-Close(); CDialog:OnCancel(); 六六 測試測試 6.16.1 單元模塊測試與分析單元模塊測試與分析 (1)數(shù)據操作測試:由于該單元的錄入、修改、查詢、刪除和更新這些操作的 控制均由后臺數(shù)據庫系統(tǒng)管理,而后臺數(shù)據庫系統(tǒng)采用的是 Microsoft 發(fā)布的成 熟系統(tǒng),故可能出問題主要發(fā)生在前臺向后臺傳送操作參數(shù)過程中,而
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國2-硝基苯磺酰氯數(shù)據監(jiān)測報告
- 2025至2030年中國雞全翅市場分析及競爭策略研究報告
- 2025至2030年中國鐵制鉛球市場分析及競爭策略研究報告
- 2025至2030年中國自清洗血液變檢測儀市場分析及競爭策略研究報告
- 2025至2030年中國紅色拉絲鋰基潤滑脂市場分析及競爭策略研究報告
- 2025至2030年中國直流電變壓器市場分析及競爭策略研究報告
- 2025至2030年中國珍珠鍺球項鏈市場分析及競爭策略研究報告
- 2025至2030年中國液晶彩色監(jiān)視器市場分析及競爭策略研究報告
- 2025至2030年中國有機硅自干漆市場分析及競爭策略研究報告
- 2025至2030年中國干水果蠟燭市場分析及競爭策略研究報告
- 2025年 赤峰市巴林左旗社區(qū)工作者招聘考試筆試試卷附答案
- 中國新疆反恐課件
- 《民營經濟促進法》金融支持條款的解讀與實施路徑研究
- 2025年陜西省中考英語試題(附答案和音頻)
- 家庭急救包物品清單
- 回顧與展望講課件
- 護理安全管理課件
- 附件:小學2025年暑假跨學科實踐作業(yè)實施方案
- 2024年 北京市公務員考試(行測)考試真題試題(附答案)
- 2025循環(huán)流化床鍋爐停(備)用維護保養(yǎng)導則
- 2025年7月浙江省普通高中學業(yè)水平考試歷史仿真模擬卷01(含答案)
評論
0/150
提交評論