隨機點名系統(tǒng)_第1頁
隨機點名系統(tǒng)_第2頁
隨機點名系統(tǒng)_第3頁
隨機點名系統(tǒng)_第4頁
隨機點名系統(tǒng)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

堂隨機點名系統(tǒng)題目:課堂隨機點名系統(tǒng)班級:姓名:學號:指導教師:朱新峰成績:—2013年12月一、任務(wù)描述本次任務(wù)要求完成一個課堂隨機點名系統(tǒng)。具體內(nèi)容為:教師在每次上課時,有時需要叫學生起來回答問題,為了公平起見,使每個學生被叫起來回答問題的概率相同,故采用ctt來編寫一個隨機點名系統(tǒng)。具體要求如下:(一)完成一個點名系統(tǒng)界面的設(shè)計,具體設(shè)計如下:安置一個“開始”按鈕,當按下“開始”按鈕時,按鈕上面的字顯示為“停止”,并且開始在界面上隨機抽取數(shù)字。安置一個“被點名單”按鈕,可以查看己經(jīng)被點過的學生的學號以及被點次數(shù)。添加兩個標簽,分別在上面顯示“歡迎進入點名系統(tǒng)”和抽取的隨機數(shù)字。添加一個listbox用來存放己經(jīng)被點過的學生的學號以及被點次數(shù)。安置一個“清除”按鈕,用來清除listbox中的數(shù)據(jù)。安置一個“保存被點名單”按鈕,保存本次點名的數(shù)據(jù)。(二)該點名系統(tǒng)能夠?qū)崿F(xiàn)隨機點名,并且當一個學生被點次數(shù)超過三次時,會提醒老師重新點名。(三)能將本節(jié)課點名的情況記錄到文件中,有利于老師下課后查看分析學生上課回答問題的情況并且有利于老師下節(jié)課點其他未被點過的學生。二、系統(tǒng)概要設(shè)計(一)模塊整體設(shè)計圖

模塊功能介紹窗體類窗體事件FormlQ功能:對各變量進行初始化開始按鈕事件button1_Click(objectsender,EventAigse)功能:進行隨機點名,將點到的學號和被點次數(shù)寫入listbox,并在某學號點到三次后提醒老師定時器事件timer1_Tick(objectsender,EventAigse)功能:產(chǎn)生隨機學號并將數(shù)據(jù)在界面上顯示出來被點名單按鈕事件button2_Click(objectsender,EventArgse)功能:顯示和隱藏listbox

清除按鈕事件button3_Click(objectsender,EventAigse)功能:清除listbox中的內(nèi)容保存被點名單事件button4_Click(objectsendei;EventAigse)功能:將被點名單寫入文件并記錄點名時間寫文件類(1)寫文件函數(shù)WtiteData(stringfilestr,strmgst)功能:將點到的學號和被點次數(shù)寫入文件三、系統(tǒng)詳細設(shè)計(一)數(shù)據(jù)結(jié)構(gòu)設(shè)計本系統(tǒng)采用文件保存點到的學號及其被點次數(shù)定義全局變量n,num以及名為count的數(shù)組分別用來存放班級人數(shù),產(chǎn)生的隨機學號以及每個學號被點次數(shù)1.各類的原型為:public1.各類的原型為:publicpartialclassForml:FormpublicclassFileWrite2.各事件原型為:publicForml()privatevoidbuttonl_Click(objectsender,/*窗體類*//*寫文件類*//*窗體事件*/EventArgse)timerl_Tick(objectsender,EventArgse)privatevoidbutton2_Click(objectsender,/*“開始”按鈕事件*//*定時器事件*/EventArgstimerl_Tick(objectsender,EventArgse)privatevoidbutton2_Click(objectsender,privatevoidbutton3_Click(objectsender,publicstaticvoidWriteData(stringfilestr,stringst)/*寫文件函數(shù)*/系統(tǒng)實現(xiàn)1?界面設(shè)計

2.點名界面3.開始點名4.顯示被點名單□?浬堂漣機點名奈統(tǒng)歡迎進入點名系統(tǒng)29激點名單開始1A111A110^1*11CMo/ta111A111*CMCO889589899316289102200220010212保存被點名單5.文檔數(shù)據(jù)文件⑥霍(E)格式(。)辭M幫期H)112/13/20130110210310400510600710800920000100100100206.提醒界面g課堂隨機點名系統(tǒng)221111231213132499316289960848482001021210112020歡迎進入點名系統(tǒng)29開始保存被點名單該名同學已被點過三次,清重新點名!確定五、系統(tǒng)調(diào)試在做這個系統(tǒng)的時候,由于對C#的語法不太了解,所以即使是這樣一個簡單的系統(tǒng),還是花了我一個星期的時間,并且還有許多不完善的地方。剛開始的時候,我是先在控制臺完成了一個能每次產(chǎn)生3個隨機數(shù)的程序,在做這個程序的時候,我不知道如何將數(shù)值數(shù)據(jù)轉(zhuǎn)換為文本數(shù)據(jù)輸出,上網(wǎng)查資料后,才知道應(yīng)該調(diào)用ToString()函數(shù)。在做界面程序的時候,我在如何不斷顯示隨機數(shù)據(jù)上遇到了難題,查找了相關(guān)書籍后,發(fā)現(xiàn)C#中有一個定時器事件,它可以設(shè)置時間間隔,間歇性執(zhí)行某一函數(shù),從而解決了顯示隨機數(shù)的時間問題。在編寫寫文件類的時候,我糾結(jié)了好久,一剛開始,我直接調(diào)用了老師給的程序,但總是不成功,后來,我采用了最簡單的寫文件的方法,將字符一個一個地寫進去,終于解決了問題。六、系統(tǒng)進一步擴充由于時間原因,該系統(tǒng)還有以下兒個方面未完善:(一)系統(tǒng)界面過于簡單,美化程度有待提高。(二)沒有進行讀文件操作,如果能夠?qū)W號存入一個文件中,從此文件中讀取學號的范圍,那么該系統(tǒng)的適用性將會更好。(三)本系統(tǒng)采用的是三次點名后提醒的操作,如果將被點次數(shù)按照學號順序單獨存放起來,并且自動去除被點三次的學號,將更有利于用戶操作(四)本系統(tǒng)沒有實現(xiàn)覆蓋技術(shù),每次存文件時雖然記錄了點名的時間,但是會造成空間的浪費,如果能夠每次點名之前將之前的數(shù)據(jù)讀進來,然后在和新的數(shù)據(jù)想合并,這樣看起來比較簡單方便,也節(jié)省了空間,也能增加上節(jié)課未被到的同學在這節(jié)課被點到的概率。雖然有過上個學期做過C語言課程設(shè)計的經(jīng)驗,但這次的C#課堂隨機點名系統(tǒng)仍然花了我兒個晚上的時間,主要原因是對C#語法不太了解,所以,在這次編寫程序的過程當中遇到了不少難題。每次遇到難題的時候,我都會上網(wǎng)查資料或到圖書館去查找相關(guān)書籍,最后終于將這些問題解決了。編寫程序的過程其實也是一個自學的過程。在這次編寫程序的過程中,我雖然遇到了不少難題,但是在解決這些難題的時候,我學會了不少東西,對有些知識的理解也更加深刻,也讓讓我初步了解編寫一個小型系統(tǒng)的過程,那就是設(shè)計程序,發(fā)現(xiàn)問題,解決問題,繼續(xù)完善。我相信,在以后的編程過程中,我會不斷的運用這些解決問題的方法。這次課堂隨機點名系統(tǒng)的編寫讓我收獲頗豐。附錄(源程序)usingSystem;usingSystem.10;usingSystem.Collections.Generic;usingSystem.ComponentMode1;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Collections:usingSystem.Timers;usingSystem.Linq;namespacedianming(publicpartialclassForml:Form/*窗體類*/(boolfirst_click=true;/*定義全局變量*/intn=30,num;/*n為全班人數(shù),num為隨機產(chǎn)生的學號*/Randomr=newRandom();int[]count=newint[31];ArrayListcontent=newArrayList();ArrayListresult=newArrayList();publicForml()/*隨機對象r*//*記錄每個學號被點到的次數(shù)*/InitializeComponent();timerl.Interval=10;timerl.Stop();inti;for(i=0;i<31;i++)count[i]=0;/*設(shè)置定時器開始計時兩次調(diào)用控件的間隔時間*//*開始時定時器是停止的*//*初始化點名次數(shù)*/}privatevoidbuttonl_Click(objectsender,EventArgse){一/*定義“開始”按鈕事件*/first_click=!first_click;if(!firstclick)/*開始抽取隨機數(shù)*/timerl.Start();buttonl.Text=〃停止〃;}else(timerl.Stop();count[num]++;strings=num.ToString()+〃+count[num].ToString();if(num<10)s=〃0〃+s;result.Add(num.ToString());this.listBoxl.Items.Add(s);/*將點名的學號和被點次數(shù)寫到1istbox中*/buttonl.Text=〃開始〃;if(count[num]>3)/*學生被點次數(shù)超過三次時提醒老師重新點名*/MessageBox.Show(,z該名同學己被點過三次,請重新點名!〃);})privatevoidtimerl_Tick(objectsender,EventArgse){~/*定義定時器事件*/num=r.Next(1,n);/*產(chǎn)生隨機學號*/labell.Text=num.ToString():/*將數(shù)據(jù)在界面上顯示出來*/)privatevoidbutton2_Click(objectsender,EventArgse){~/*定義“被點名單”按鈕事件*/this.listBoxl.Visible=!this.listBoxl.Visible;this.button3.Visible=!this.button3.Visible;)privatevoidbutton3_Click(objectsender,EventArgse){~/*定義“清除”按鈕事件*/this.listBoxl.Items.Clear();result.Clear();)}privatevoidbutton4_Click(objectsender,EventArgse)inti,y,m,d;stringsi,s2;DateTimet=DateTime.Now;y=t.Year;m=t.Month;d=t.Day;s2=m.ToString()+'7〃+d.ToString()+〃/〃+y.ToString();Stringfile=.\LML\test.txt〃;FileWrite.WriteData(file,s2);/*記錄時間*/for(i=1;i<=n;i++)/*將點名的學號和(被點次數(shù)寫到test,txt中*/si=i.ToString()+"+count[i].ToString();if(i<10)si=〃0〃+si;FileWrite.WriteData(file,si);}})publicclassFileWrite/*定義寫文件類*/(publicstaticvoidWriteData(stringfilestr,stringst){/*定義寫文件函數(shù)*/FileStreamfs=newFileStream(Filestr,FileMode.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論