一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

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

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

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

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

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

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

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


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

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

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

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

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

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

 

  圖6-1

  簡(jiǎn)單的解釋一下添加試題的過(guò)程:

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

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

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

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

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

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

  public partial class TitleAdd :From

改成:

  public partial class TitleAdd :SurveryWin

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

  圖6-2

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

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

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

 

         private void TRichTitleText_MouseLeave(object sender, EventArgs e)
{
if (TRichTitleText.Text.Trim() != "")//判斷是否為空,如不為空,則執(zhí)行如下操作
{
//在問(wèn)卷與題庫(kù)中分別進(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)存在于問(wèn)卷中了,則執(zhí)行如下操作
{
IsStorageCoMBox.SelectedIndex
= 1;
IsStorageCoMBox.Enabled
= false;//將是否存入題庫(kù)設(shè)為不可選擇
TAddBtn.Enabled = false;//將添加按鈕設(shè)為不可用
IsStorageLab.Visible = true;//顯示提示標(biāo)簽
IsStorageLab.Text = "*該題已在此問(wèn)卷中存在!請(qǐng)重新輸入!";
}
else if (dboperate.ExcuteScrSql(istSql) == 0 && dboperate.ExcuteScrSql(stSql) > 0)//
如果已經(jīng)存在于題庫(kù)中了,則執(zhí)行如下操作
{
IsStorageCoMBox.SelectedIndex
= 1;
IsStorageCoMBox.Enabled
= false;
IsStorageLab.Visible
= true;
IsStorageLab.Text
= "*題庫(kù)中已經(jīng)存在該題了!";
LookStLinkLab.Enabled
= true; //將"點(diǎn)擊查看"按鈕設(shè)為可用可見(jiàn),以便用戶點(diǎn)擊連接到題
庫(kù)中題目進(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平臺(tái)的Windows編程實(shí)戰(zhàn)(六)—— 題目管理功能的實(shí)現(xiàn),轉(zhuǎn)載需保留來(lái)源!

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

主站蜘蛛池模板: 国产精品一区二区在线观看 | 41sao.can在线观看国产 | 四虎影视免费永久在线观看 | 黄色大片免费看 | 欧美人与禽交片在线播放 | 久久伊人精品青青草原2021 | 91在线永久 | 国产高颜值露脸在线观看 | 欧美激情网站 | 成人国产精品视频频 | 在线视频第二页 | 国产成人精品日本亚洲网站 | 精品久久九九 | 一区二区3区免费视频 | 免费在线色 | 国产二级毛片 | 激情15p | 中文一区在线观看 | 亚洲人成a在线网站 | 免费韩国一级毛片 | 91视频区 | 四虎影视永久在线精品免费播放 | 91免费观看视频 | 四虎影视精品永久免费网站 | 久久精品网 | 亚洲青草 | 国产人成午夜免视频网站 | 黄网站观看 | 国产一区二区三区在线观看视频 | 色综合久久九月婷婷色综合 | 欧美视频 亚洲视频 | 自拍视频一区二区 | 国产大片91精品免费看3 | 亚洲欧洲国产经精品香蕉网 | 性视频小说 | 国产在视频线精品视频2021 | 欧美日韩亚洲一区二区三区 | 亚洲黄色在线看 | 黄色在线观看网站 | 欧美日韩一区二区三区视频 | 一区二区三区日韩精品 |