色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

基于.NET平臺的Windows編程實(shí)戰(zhàn)(六)—— 題目管理功能的實(shí)現(xiàn)

系列文章導(dǎo)航:

基于.NET平臺的Windows編程實(shí)戰(zhàn)(一)——前言

基于.NET平臺的Windows編程實(shí)戰(zhàn)(二)—— 需求分析與數(shù)據(jù)庫設(shè)計(jì)

基于.NET平臺的Windows編程實(shí)戰(zhàn)(四)—— 數(shù)據(jù)庫操作類的編寫

基于.NET平臺的Windows編程實(shí)戰(zhàn)(五)—— 問卷管理功能的實(shí)現(xiàn)

基于.NET平臺的Windows編程實(shí)戰(zhàn)(六)—— 題目管理功能的實(shí)現(xiàn)


  申明:本系列課程是專為新手們寫來入門練習(xí)用的,目的是想通過一個完整的問卷調(diào)查管理系統(tǒng)的案例開發(fā)來讓新手們了解、加深或是熟悉軟件項(xiàng)目的開發(fā)流程及在.NET平臺上使用VS2005和C# 進(jìn)行Windows方面的編程;在整個課程的設(shè)計(jì)上,我盡量避開或是根本不討論底層的以及性能優(yōu)化等方面的東西,故高手完全可以無視本系列課程。 

今天下班回來前查看了下早上放出去的第五課的課程,看到一朋友的評論,說實(shí)話當(dāng)時不好受,想想自己每晚寫課程到深夜,竟然被人說成白癡文章!于是帶著幾分沖動草草的回復(fù)之后,便帶著疑惑與思考回家了。剛才重新看了下昨晚寫的第五課的課程,果真發(fā)現(xiàn)了不少“白癡”的地方:概念模糊,思路不明,無整體模型,雜亂無章…… 如此之文章,新手如何看懂?如何練習(xí)?……自責(zé)、自問、自思之后,我決定改變一下后面課程的寫作方式,即先寫設(shè)計(jì)思路[流程圖],再動手實(shí)驗(yàn)并講解一些相關(guān)的實(shí)現(xiàn)原理[挑幾個比較有代表性的地方進(jìn)行講解],之后再把源碼放出來供大家參考練習(xí);這樣,我想對新手來說應(yīng)該會更加容易理解一些吧。當(dāng)然,在這里要感謝一下那位發(fā)表評論的朋友,因?yàn)槭撬ㄋ┨嵝蚜宋遥⑹刮抑匦氯ニ伎颊麄€課程的設(shè)計(jì),在此我向這位朋友說聲:謝謝!同時也希望他(她)以及更多的朋友能在以后的課程中提出更多的建議、指導(dǎo)以及批評 ^_^ 我將萬分感謝!你們的支持是我最大的動力!

  本課將帶領(lǐng)大家一起來實(shí)現(xiàn)題目管理:添加、編輯、查看、刪除、存入題庫;以及題庫管理:添加、編輯、查看、刪除、插入到問卷等功能。

  一、設(shè)計(jì)思路

我們知道:一份問卷是由若干條不同的題目組合而成的,而這些題目又是由用戶一條一條添加進(jìn)去的。那么我們來分析一下:假如需要對A區(qū)域做一份問卷調(diào)查試題,且這份問卷要求包含100條題目,于是我們通過系統(tǒng)[假設(shè)這個系統(tǒng)只具有添加/編輯/刪除/預(yù)覽問卷及添加題目的功能]創(chuàng)建好一份名為“A區(qū)域試題”的問卷,并向此問卷里輸入添加了100條的題目;幾天后,我們發(fā)現(xiàn)這份問卷有些地方做的不好,需要進(jìn)行修改,于是我們?yōu)榱朔奖悴僮鳎憬o系統(tǒng)增加了題目編輯、檢查[查看]、排序、刪除等題目管理功能;再過了幾天后,我們又需要對B區(qū)域及C區(qū)域各做一份包含100條試題的問卷,于是我們打開原來的系統(tǒng),并創(chuàng)建了二份名為“B區(qū)域試題”與“C區(qū)域試題”的問卷,但當(dāng)我們往里面添加題目的時候,我們發(fā)現(xiàn)三份問卷有許多相同或相似的題目,于是我們就會想:如果有一個題庫能將這些相同或相似的題目存起來,那么當(dāng)我們需要創(chuàng)建新的問卷的時候,我們直接從題庫里面把題目插入進(jìn)去不就可以了嗎?多方便呀!于是我們就有了建立一個題庫來存放題目的想法了,并且這個題目應(yīng)該具有編輯、查看、插入到問卷、刪除等功能……

好,現(xiàn)在我們來設(shè)計(jì)一下流程圖:

 

  圖6-1

  簡單的解釋一下添加試題的過程:

  用戶向問卷中添加題目時,先在所要添加的問卷中查找是否已經(jīng)存在了該題,如果存在了則提示,如果不存在,則去題庫中進(jìn)行查找是否存有該題了,如存在則提示從題庫中插入該題,

  否則直接添加進(jìn)問卷中,并提示是否將該存入到題庫中去。

  到這里相信大家應(yīng)該明白或是大致知道了整個的設(shè)計(jì)思路了吧!下面我們就來動手做做吧。

  二、動手實(shí)驗(yàn)及相關(guān)原理講解

  下面我挑選添加題目、排序以及窗口間的相互關(guān)聯(lián)中的部分設(shè)置或代碼來進(jìn)行動手實(shí)驗(yàn)及原理的講解,其余的請大家自行下載本課程源碼參考練習(xí)。

  首先,我們來創(chuàng)建一個添加題目的窗口(創(chuàng)建方法請參見前面的課程),命名為 “TitleAdd”,并使其繼承于“SurveyWin”母窗口,方法為將:

  public partial class TitleAdd :From

改成:

  public partial class TitleAdd :SurveryWin

  并將其設(shè)置成如下圖6-2所示[具體的屬性設(shè)置請參見本課程源碼]: 

  圖6-2

  其次,我們給這個窗口中的輸入題目標(biāo)題文本框添加了一個鼠標(biāo)離開事件,以便提示用戶所輸入的題目是否已經(jīng)存在于本問卷或題庫中了。

  其實(shí)現(xiàn)原理是這樣的:當(dāng)用戶往標(biāo)題文本框中輸入標(biāo)題后,鼠標(biāo)離開其文本框時,將用戶所輸入的標(biāo)題作為條件在其問卷與題庫中進(jìn)行相似題目的查詢,

  如查出則給出相關(guān)提示,否則作為新題添加進(jìn)問卷或題庫中。其實(shí)現(xiàn)的代碼如下所示:

 

         private void TRichTitleText_MouseLeave(object sender, EventArgs e)
{
if (TRichTitleText.Text.Trim() != "")//判斷是否為空,如不為空,則執(zhí)行如下操作
{
//在問卷與題庫中分別進(jìn)行查找,看是否已經(jīng)存在了?
string stSql = "Select Count(*) From Lj_TitleStorage Where TitleSt_Title like '" + TRichTitleText.Text.Trim() + "'";

string tcontent = TRichTitleText.Text.Trim() + "(" + TCombBtn.SelectedItem.ToString() + ")";
string istSql = "Select Count(*) From Lj_Title Where Title_Content like '" + tcontent + "'";

if (dboperate.ExcuteScrSql(istSql) > 0) //如果已經(jīng)存在于問卷中了,則執(zhí)行如下操作
{
IsStorageCoMBox.SelectedIndex
= 1;
IsStorageCoMBox.Enabled
= false;//將是否存入題庫設(shè)為不可選擇
TAddBtn.Enabled = false;//將添加按鈕設(shè)為不可用
IsStorageLab.Visible = true;//顯示提示標(biāo)簽
IsStorageLab.Text = "*該題已在此問卷中存在!請重新輸入!";
}
else if (dboperate.ExcuteScrSql(istSql) == 0 && dboperate.ExcuteScrSql(stSql) > 0)//
如果已經(jīng)存在于題庫中了,則執(zhí)行如下操作
{
IsStorageCoMBox.SelectedIndex
= 1;
IsStorageCoMBox.Enabled
= false;
IsStorageLab.Visible
= true;
IsStorageLab.Text
= "*題庫中已經(jīng)存在該題了!";
LookStLinkLab.Enabled
= true; //將"點(diǎn)擊查看"按鈕設(shè)為可用可見,以便用戶點(diǎn)擊連接到題
庫中題目進(jìn)行查看或插入操作
LookStLinkLab.Visible = true;
}
else
{
IsStorageCoMBox.SelectedIndex
= 0;
IsStorageCoMBox.Enabled
= true;
TAddBtn.Enabled
= true;
IsStorageLab.Visible
= false;
LookStLinkLab.Enabled
= false;
LookStLinkLab.Visible
= false;
}
}
}

NET技術(shù)基于.NET平臺的Windows編程實(shí)戰(zhàn)(六)—— 題目管理功能的實(shí)現(xiàn),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 晴隆县| 长葛市| 高州市| 临夏县| 大邑县| 旬邑县| 巴楚县| 若羌县| 昌都县| 武隆县| 广灵县| 阳谷县| 嘉峪关市| 平定县| 黎川县| 腾冲县| 东兰县| 丁青县| 岑巩县| 肥西县| 资源县| 建湖县| 花莲市| 镇安县| 栾川县| 和田县| 清镇市| 漳浦县| 托里县| 诸暨市| 思茅市| 和田县| 黑山县| 商水县| 奎屯市| 安康市| 云浮市| 西乌珠穆沁旗| 彰化市| 新绛县| 如东县|