版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院 課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)報(bào)告 課程名稱:數(shù)據(jù)庫(kù)原理課程設(shè)計(jì) 論文題目: 學(xué)生考試管理系統(tǒng) 姓 名: 系: 計(jì)算機(jī)科學(xué)與技術(shù) 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 年 級(jí): 2012 學(xué) 號(hào): 指導(dǎo)教師: 2014 年 12 月 28 日 福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院 課程設(shè)計(jì)報(bào)告結(jié)果評(píng)定課程設(shè)計(jì)報(bào)告結(jié)果評(píng)定 評(píng)語(yǔ) 評(píng)分內(nèi)容標(biāo)準(zhǔn)分得分 用軟件工程的方法進(jìn)行系統(tǒng)需求分析和系統(tǒng)設(shè)計(jì)得 出系統(tǒng)的數(shù)據(jù)流圖數(shù)據(jù)字典和信息模型,寫出需求 規(guī)格說(shuō)明書(shū)。 15 按數(shù)據(jù)庫(kù)設(shè)計(jì)方法和規(guī)范化理論得出符合 3NF 的邏 輯模型,外模型和物理模型。
2、25 定義 MySQL 的基本表和安全性、完整性要求。 10 設(shè)計(jì)并編寫輸入輸出、查詢統(tǒng)計(jì)、數(shù)據(jù)維護(hù)等功 能模塊的應(yīng)用程序。 35 對(duì)系統(tǒng)的各個(gè)功能模塊進(jìn)行集成、總調(diào)試和優(yōu)化工 作,優(yōu)化用戶界面、撰寫設(shè)計(jì)報(bào)告。 15 總分 指導(dǎo)教師簽字:評(píng)定日期: 目目 錄錄 一一 考試管理系統(tǒng)可行性分析考試管理系統(tǒng)可行性分析 .1 1.1 問(wèn)題描述及開(kāi)發(fā)背景.1 1.2 開(kāi)發(fā)意義、資金消耗及應(yīng)用范圍分析.1 二二 考試管理系統(tǒng)需求分析考試管理系統(tǒng)需求分析 .1 2.1 用戶需求及功能分析匯總.1 2.2 系統(tǒng)流程圖及數(shù)據(jù)流圖.2 2.3 數(shù)據(jù)字典.2 2.4 數(shù)據(jù)庫(kù)設(shè)計(jì).4 三三 考試管理系統(tǒng)概要設(shè)計(jì)考試管
3、理系統(tǒng)概要設(shè)計(jì) .4 3.1 系統(tǒng)模塊劃分.4 3.2 確定目標(biāo)系統(tǒng)實(shí)現(xiàn)方案.5 四四 目標(biāo)系統(tǒng)詳細(xì)設(shè)計(jì)目標(biāo)系統(tǒng)詳細(xì)設(shè)計(jì) .6 4.1 數(shù)據(jù)庫(kù)設(shè)計(jì).6 4.2 創(chuàng)建數(shù)據(jù)源并通過(guò)數(shù)據(jù)庫(kù)操作事務(wù)對(duì)象連接.6 4.3 創(chuàng)建前臺(tái)控件與數(shù)據(jù)源間數(shù)據(jù)傳輸?shù)臄?shù)據(jù)窗口對(duì)象和查詢對(duì)象.7 4.3 創(chuàng)建數(shù)據(jù)管道.8 五五 系統(tǒng)編碼系統(tǒng)編碼(幾個(gè)重要部分)(幾個(gè)重要部分) .9 5.1EXAMONLINE.9-10 5.2ADDSUBJECT.11 5.3EXAMINFO.14-16 5.4TESTRESULT. .16-18 六六 測(cè)試測(cè)試 .18 6.1 單元模塊測(cè)試與分析.18 6.2 集成測(cè)試與分析.18
4、6.3 系統(tǒng)運(yùn)行截圖.18-23 七七 總結(jié)總結(jié).23-24 參考文獻(xiàn)參考文獻(xiàn) .23 學(xué)生考試管理系統(tǒng)學(xué)生考試管理系統(tǒng) 開(kāi)發(fā)環(huán)境:開(kāi)發(fā)環(huán)境:Virtual C+ 一一 考試管理系統(tǒng)可行性分析考試管理系統(tǒng)可行性分析 1.11.1 問(wèn)題描述及開(kāi)發(fā)背景問(wèn)題描述及開(kāi)發(fā)背景 隨著教育改革的進(jìn)行,目前高中階段教學(xué)已逐步采用同大學(xué)教學(xué)類似的學(xué) 分制,原先對(duì)于學(xué)生考試管理成績(jī)資料的那種人工或半人工的管理方式的低效 性越來(lái)越明顯;而對(duì)于中學(xué)若采購(gòu)成套資料管理系統(tǒng),無(wú)論從資金還是人員配 置方面多少都有些小題大做。鑒于以上話題的諸多特征,策劃設(shè)計(jì)一個(gè)功能、 可操縱性以及資金消耗與之適合的學(xué)生考試管理系統(tǒng)。 1.2
5、1.2 開(kāi)發(fā)意義、資金消耗及應(yīng)用范圍分析開(kāi)發(fā)意義、資金消耗及應(yīng)用范圍分析 開(kāi)發(fā)此類系統(tǒng)主要是想,在兼顧到性能和資金消耗的前提下,加速中學(xué)的 信息管理方式同教育改革相適應(yīng)的速度。 該系統(tǒng)預(yù)定開(kāi)發(fā)周期為一周,開(kāi)發(fā)人員三人,每天工作八小時(shí)。規(guī)劃同勞 動(dòng)量等值市場(chǎng)開(kāi)發(fā)經(jīng)費(fèi)為 500 元(具體規(guī)劃為:人員酬勞每人每小時(shí)酬勞為 20 元,共計(jì) 420 元;市場(chǎng)調(diào)研、計(jì)算機(jī)設(shè)備使用以及交付客戶初期的系統(tǒng)適應(yīng)性 維護(hù)等經(jīng)費(fèi) 80 元。 該系統(tǒng)主要面向中學(xué)學(xué)生考試成績(jī)資料管理人員。 二二 考試管理系統(tǒng)需求分析考試管理系統(tǒng)需求分析 2.12.1 用戶需求及功能分析匯總用戶需求及功能分析匯總 (1)保密方面:采用密
6、碼登陸方式啟動(dòng)。 (2) 數(shù)據(jù)存儲(chǔ)管理方面:采用服務(wù)器工作站方式,僅在服務(wù)器上運(yùn)行數(shù)據(jù) 庫(kù)管理軟件,各年級(jí)辦公室的計(jì)算機(jī)共享數(shù)據(jù)資源;具備不同服務(wù)器間、已購(gòu)數(shù) 據(jù)庫(kù)系統(tǒng)間數(shù)據(jù)塊的傳輸功能。 (3)數(shù)據(jù)操作方面:注冊(cè)賬號(hào)。學(xué)生基本信息的錄入、修改和查詢功能; 課程添加、題庫(kù)修改和刪除功能;學(xué)生成績(jī)的查詢功能。 (4)易以操縱性:窗口界面布置風(fēng)格盡量一致,要求輸入類的操作盡量少。 (5)容錯(cuò)性能:由于操作人員主要為教師或?qū)W生,所以對(duì)誤操作的處理能能 力要相對(duì)強(qiáng)一些。 (6)硬件及系統(tǒng)軟件要求:基本的 windowsXP 平臺(tái)即可。 (7)提供必要的維護(hù)文檔。 2.22.2 系統(tǒng)流程圖及數(shù)據(jù)流圖系統(tǒng)
7、流程圖及數(shù)據(jù)流圖 系統(tǒng)流程圖如圖 2-1 所示(其中:“”表示后臺(tái)數(shù)據(jù)流動(dòng), “” 表示信息管理員的前端操作) 。 數(shù)據(jù)流圖如圖 2-2 所示。 2.32.3 數(shù)據(jù)字典數(shù)據(jù)字典 (1)名字:事務(wù) 描述:需管理員操作的活動(dòng); (2)名字:后臺(tái)事務(wù) 描述:通過(guò)激活的事件或數(shù)據(jù)庫(kù)系統(tǒng)完成的活動(dòng),對(duì)于管理員是透明的。 圖 2-1 系統(tǒng)流程圖 (3)名字:學(xué)生基本信息 定義:學(xué)生基本信息=學(xué)號(hào)+姓名+性別+身份證+手機(jī)號(hào) 位置:數(shù)據(jù)庫(kù) (4)名字:課程信息 定義:課程信息=課程名+課程考題+考題答案+成績(jī) 位置:數(shù)據(jù)庫(kù) (5)名字:學(xué)生成績(jī) 定義:學(xué)生成績(jī)=學(xué)號(hào)+課程名+成績(jī) 圖 2-2 系統(tǒng)數(shù)據(jù)流圖
8、2.42.4 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì) E-R 圖如圖 2-3 所示。 圖 2-3 E-R 圖 三三 考試管理系統(tǒng)概要設(shè)計(jì)考試管理系統(tǒng)概要設(shè)計(jì) 3.13.1 系統(tǒng)模塊劃分系統(tǒng)模塊劃分 系統(tǒng)層次結(jié)構(gòu)如圖 3-1 所示,模塊劃分如圖 3-2 所示。 圖 3-1 系統(tǒng)層次結(jié)構(gòu)示意圖 圖 3-2 系統(tǒng)設(shè)計(jì)模塊劃分示意圖 說(shuō)明:我負(fù)責(zé)數(shù)據(jù)庫(kù)構(gòu)建模塊的設(shè)計(jì)。 3.23.2 確定目標(biāo)系統(tǒng)實(shí)現(xiàn)方案確定目標(biāo)系統(tǒng)實(shí)現(xiàn)方案 方案一:方案一:快速原型增量模式開(kāi)發(fā) 優(yōu)點(diǎn):開(kāi)發(fā)出最終版本的系統(tǒng)之前,所有原型系統(tǒng)都已通過(guò)與用戶交互 而得到驗(yàn)證,據(jù)此產(chǎn)生的規(guī)格說(shuō)明文檔正確地描述了用戶的要求,因此,在開(kāi) 發(fā)過(guò)程的后續(xù)階段不會(huì)因?yàn)榘l(fā)
9、現(xiàn)了規(guī)格說(shuō)明文檔錯(cuò)誤而進(jìn)行較大的返工。 開(kāi)發(fā)人員通過(guò)建立原型系統(tǒng)已經(jīng)學(xué)到了許多東西(至少知道了“系統(tǒng)不 應(yīng)該做什么,以及怎樣不去做不該做的事情” ) ,因此,在設(shè)計(jì)和編碼階段發(fā)生 錯(cuò)誤的可能性也比較小,這自然減少了在后續(xù)階段需要改正前面階段所犯錯(cuò)誤 的可能性。 劣勢(shì):該模式的本質(zhì)特征是“快速” ,但由于原型系統(tǒng)的用途是獲知用戶的 真正需求,一旦需求確定了,原型版本就將被拋棄。這也決定了其對(duì)人員配備 和勞動(dòng)量有較高的要求。 方案二:方案二:文檔驅(qū)動(dòng)模塊化一次性開(kāi)發(fā) 優(yōu)點(diǎn):由其文檔驅(qū)動(dòng)的特性,決定了這種方案具有階段性和依賴性,同 時(shí)可最大限度推遲系統(tǒng)的具體代碼實(shí)現(xiàn)。實(shí)踐表明,對(duì)于規(guī)模相對(duì)較大的軟件
10、 項(xiàng)目來(lái)說(shuō),往往編碼開(kāi)始的越早,最終完成開(kāi)發(fā)工作所需要的時(shí)間反而越長(zhǎng)。 因?yàn)椋懊骐A段的工作沒(méi)做或做得不扎實(shí),過(guò)早地考慮進(jìn)行程序?qū)崿F(xiàn),往往導(dǎo) 致大量返工,有時(shí)甚至發(fā)生無(wú)法彌補(bǔ)的問(wèn)題,帶來(lái)災(zāi)難性結(jié)果。 可強(qiáng)迫開(kāi)發(fā)人員采用規(guī)范的方法嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔, 這將使軟件開(kāi)發(fā)設(shè)計(jì)變得相對(duì)容易一些。 由于是模塊化設(shè)計(jì),單元編碼和測(cè)試,最后總裝,正使得系統(tǒng)具有了一 定的開(kāi)放性。一者簡(jiǎn)化了測(cè)試階段復(fù)雜度,另一方面也有利于軟件發(fā)布以后的 運(yùn)行為階段完善性維護(hù)和適應(yīng)性維護(hù)。 劣勢(shì):系統(tǒng)的開(kāi)發(fā)過(guò)程完全由文檔驅(qū)動(dòng),同方案一相比,開(kāi)發(fā)周期可能會(huì) 較長(zhǎng)些。 確定:確定:從該系統(tǒng)的規(guī)模、應(yīng)用范圍、開(kāi)發(fā)經(jīng)費(fèi)消耗
11、和現(xiàn)實(shí)的開(kāi)發(fā)意義等方面綜 合考慮,決定開(kāi)發(fā)過(guò)程采用方案二進(jìn)行。 四四 目標(biāo)系統(tǒng)詳細(xì)設(shè)計(jì)目標(biāo)系統(tǒng)詳細(xì)設(shè)計(jì) 說(shuō)明:由于在開(kāi)發(fā)過(guò)程中我主要負(fù)責(zé)數(shù)據(jù)庫(kù)模塊的設(shè)計(jì),故接下來(lái)的內(nèi)容 將主要敘述數(shù)據(jù)庫(kù)模塊的詳細(xì)設(shè)計(jì)思路。 4.14.1 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì) 根據(jù)第二章中圖 2-3 所示的 E-R 數(shù)據(jù)結(jié)構(gòu)示意圖設(shè)計(jì)了四個(gè)而為關(guān)系表,分 別是:學(xué)生基本信息表,如表 4-1 所示; 課程信息表,如表 4-2 所示; 學(xué)生成績(jī)表,如表 4-3 所示; 4.24.2 創(chuàng)建數(shù)據(jù)源并通過(guò)數(shù)據(jù)庫(kù)操作事務(wù)對(duì)象連接創(chuàng)建數(shù)據(jù)源并通過(guò)數(shù)據(jù)庫(kù)操作事務(wù)對(duì)象連接 總共創(chuàng)建兩個(gè)數(shù)據(jù)源:本地服務(wù)器數(shù)據(jù)源(用于本校日常管理) ,遠(yuǎn)程數(shù)據(jù) 源
12、(用于上傳或下載數(shù)據(jù)) 。 采用 PowerBuilder 的初始化文件 PB.INI 文件,利用通用方式通過(guò)事務(wù)對(duì)象 連接數(shù)據(jù)源。連接的程序流程如圖 4-1 所示。 表 4-1 學(xué)生基本信息表定義 名稱數(shù)據(jù)類型字節(jié)大小可為空默認(rèn)值備注 學(xué)號(hào)char10否主鍵 姓名char8否 身份證號(hào)char20否 性別char2否 聯(lián)系電話char11否 成績(jī)int4可Null 表 4-2 課程信息表定義 名稱數(shù)據(jù)類型字節(jié)大小可為空默認(rèn)值備注 課程名稱Char3否主鍵,外鍵 考題Char50可 考試成績(jī)int 4否 表 4-3 學(xué)生成績(jī)表定義 名稱數(shù)據(jù)類型字節(jié)大小可為空默認(rèn)值備注 學(xué)生用戶名Char6否主
13、鍵,外鍵 課程名稱Char3否主鍵,外鍵 成績(jī)Float8可 表 4.1 的數(shù)據(jù)庫(kù)操作語(yǔ)句: 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ù)據(jù)庫(kù)操作語(yǔ)句: create table Course( Cname Varchar(8), primary key, Ctitle Varchar(50), Cpoint Varint(4) ) ; 表
14、 4.3 的數(shù)據(jù)庫(kù)操作語(yǔ)句: create table SC( SCno varchar(10) primary key, SCname Varchar(8), SCpoint Varchar(10) ) ; 4.34.3 創(chuàng)建前臺(tái)控件與數(shù)據(jù)源間數(shù)據(jù)傳輸?shù)臄?shù)據(jù)窗口對(duì)象和查詢對(duì)象創(chuàng)建前臺(tái)控件與數(shù)據(jù)源間數(shù)據(jù)傳輸?shù)臄?shù)據(jù)窗口對(duì)象和查詢對(duì)象 d_cjupdata:存儲(chǔ)過(guò)程類數(shù)據(jù)窗口對(duì)象,用于錄入、修改、刪除學(xué)生成績(jī)表 中的記錄; d_kc:sql 類數(shù)據(jù)窗口對(duì)象,用于通過(guò)課程號(hào)參數(shù)查詢課程表中的對(duì)應(yīng)記錄; d_kcpudata:quickSelect 類型數(shù)據(jù)窗口對(duì)象,用于錄入、修改、刪除課程表 中的記
15、錄; d_stuupdata:quickSelect 類型數(shù)據(jù)窗口對(duì)象,用于錄入、修改、刪除學(xué)生 基本信息表中的記錄; d_score:sql 類數(shù)據(jù)窗口對(duì)象,用于通過(guò)學(xué)號(hào)參數(shù)查詢學(xué)生成績(jī)表中的相應(yīng) 記錄; d_xs:sql 類數(shù)據(jù)窗口對(duì)象,用于通過(guò)學(xué)號(hào)參數(shù)查詢學(xué)生基本信息表中的相 應(yīng)記錄; query_xs:查詢對(duì)象,與 d_xs 搭配使用; query_kc: 查詢對(duì)象,與 d_kc 搭配使用; query_xs_xscj: 查詢對(duì)象,與 d_score 搭配使用; 圖 4-1 通過(guò)事務(wù)對(duì)象連接數(shù)據(jù)源程序流程示意圖 4.34.3 創(chuàng)建數(shù)據(jù)管道創(chuàng)建數(shù)據(jù)管道 表結(jié)構(gòu)定義時(shí)曾強(qiáng)調(diào),表名、列名、類
16、型、寬度、Null 值等一經(jīng)確定,便 難以修改。要更改表的這些屬性,只有利用數(shù)據(jù)管道。此外我們還經(jīng)常要復(fù)制 表的結(jié)構(gòu)及表中部分后全部數(shù)據(jù)、講一個(gè)表中數(shù)據(jù)加到另一個(gè)表中去(即使兩 個(gè)表的結(jié)構(gòu)不一樣),還有講一個(gè)數(shù)據(jù)庫(kù)中的表復(fù)制到另一個(gè)數(shù)據(jù)庫(kù)(可能是兩 個(gè)不同類型的數(shù)據(jù)庫(kù)包括服務(wù)器和本地庫(kù)) 。數(shù)據(jù)管道都能滿足這些要求。具體 創(chuàng)建使用程序流程如圖 4-2 所示。 圖 4-2 數(shù)據(jù)管道創(chuàng)建和使用程序流程示意圖 五五 系統(tǒng)編碼系統(tǒng)編碼 5.1C+主程序源代碼主程序源代碼 系統(tǒng)實(shí)現(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 學(xué)生考試科目,成績(jī)的錄入,保存 / 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(請(qǐng)選擇科目); 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(該考生以進(jìn)行過(guò)本科目的考試); 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,題號(hào),LVCFMT_CENTER,200,0); m_ResultList.InsertColumn(1,結(jié)果,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,錯(cuò)誤); 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(); 六六 測(cè)試測(cè)試 6.16.1 單元模塊測(cè)試與分析單元模塊測(cè)試與分析 (1)數(shù)據(jù)操作測(cè)試:由于該單元的錄入、修改、查詢、刪除和更新這些操作的 控制均由后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)管理,而后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)采用的是 Microsoft 發(fā)布的成 熟系統(tǒng),故可能出問(wèn)題主要發(fā)生在前臺(tái)向后臺(tái)傳送操作參數(shù)過(guò)程中,而
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024幼兒教育機(jī)構(gòu)教師勞動(dòng)合同范本3篇
- 2024年防火門質(zhì)量保障體系合同
- 2024年高端汽車零部件技術(shù)保密與全球銷售代理合同3篇
- 2024私人住宅施工項(xiàng)目協(xié)議范本版B版
- 營(yíng)銷策劃方案模板合集五篇(可編輯)
- 2025年度金融科技解決方案合同3篇
- 月考分析發(fā)言稿(15篇)
- 2025年度廠區(qū)食堂承包合同:綠色環(huán)保食材采購(gòu)協(xié)議3篇
- 2024年鋁制品供貨條款
- 鄭州信息工程職業(yè)學(xué)院《燃燒理論》2023-2024學(xué)年第一學(xué)期期末試卷
- 《UI界面設(shè)計(jì)》教案
- 食品技術(shù)咨詢服務(wù)
- 2023年浙江大學(xué)醫(yī)學(xué)院附屬邵逸夫醫(yī)院招聘考試真題及答案
- 自愈合防水施工工藝
- DL T 5745-2016 電力建設(shè)工程工程量清單計(jì)價(jià)規(guī)范
- DB13T5614-2022 變配電室安全管理規(guī)范
- 二手車出口實(shí)施方案
- 化妝品活性成分作用機(jī)制研究
- 獅子王臺(tái)詞本
- 《紀(jì)檢監(jiān)察培訓(xùn)課件》課件
- 15crmo鋼焊接工藝-機(jī)構(gòu)培訓(xùn)
評(píng)論
0/150
提交評(píng)論