張浩然
摘要:C#語言是微軟公司研發(fā)的最新語言,是一種面向?qū)ο蟮?、運(yùn)行于.NET Framework之上的高級程序設(shè)計語言。本文旨在介紹利用基于C#編程語言的winform開發(fā)工具,實(shí)現(xiàn)用概率法計算π的演示系統(tǒng)。本系統(tǒng)由GDI技術(shù)、計算機(jī)圖形學(xué)、概率算法作為實(shí)現(xiàn)原理,由winform工具顯示其演示過程,同時本地配置.Net Fromwork框架環(huán)境保證系統(tǒng)正常運(yùn)行。
關(guān)鍵詞:C# winform 概率法
中圖分類號:TP312 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2016)09-0192-01
C#語言是微軟公司研發(fā)的最新語言,其優(yōu)勢特點(diǎn)明顯,借助此語言的優(yōu)勢,由winform工具顯示其演示過程,實(shí)現(xiàn)用概率法計算π的演示系統(tǒng)。
1 系統(tǒng)要求
1.1 系統(tǒng)綜合要求
本系統(tǒng)要求是一個設(shè)計合理、實(shí)現(xiàn)方便的利用隨機(jī)性算法計算π的程序,特別是需要注意程序的表現(xiàn)形式,要合理、明了、簡單,有說服力。在此基礎(chǔ)上可以提供利用隨機(jī)性算法計算一些常見函數(shù)圖形的計算定積分近似值輔助程序。
1.2 系統(tǒng)界面要求
界面是用戶接觸系統(tǒng)的第一個環(huán)節(jié),是人機(jī)交互的樞紐,界面的設(shè)計是否合理關(guān)系到整個系統(tǒng)的用戶體驗(yàn),所以界面設(shè)計是重中之重,本系統(tǒng)要求界面必須簡潔明了,易操作,方便用戶使用,重要的輸入框和結(jié)果顯示必須放在明顯的地方,使用戶可以一眼看到,盡可能的提高用戶體驗(yàn)程度。
2 系統(tǒng)結(jié)構(gòu)設(shè)計
系統(tǒng)為滿足功能需求,設(shè)計了四個功能窗體界面,主窗體界面功能為計算π的近似值:由用戶在輸入框內(nèi)輸入投放的點(diǎn)的數(shù)量,點(diǎn)擊“計算π”按鈕,空白區(qū)域會自動開始演示隨機(jī)點(diǎn)的降落過程,可以清晰的顯示出隨機(jī)點(diǎn)的降落位置,然后再右下角顯示出計算結(jié)果。在該窗體中還設(shè)置了三個跳轉(zhuǎn)按鈕:“計算sin”、“計算cos”、“計算半立方拋物線”,用來跳轉(zhuǎn)到相應(yīng)的功能界面。
3 開發(fā)工具簡介
3.1 Visual Studio 2010
Visual Studio是微軟公司推出的在Windows平臺應(yīng)用程序d的開發(fā)環(huán)境,是一個非常龐大的軟件,甚至包含代碼測試功能,而且由于其強(qiáng)大的編碼輔助功能,還被廣大程序員稱為“宇宙第一IDE”。
3.2 C#
C#的問世是來源于C和C++,不僅保持著 C++的高運(yùn)行效率還提供了VB簡單的可視化操作。C#讓編寫各種基于MICROSOFT .NET平臺的應(yīng)用程序變得簡單快捷。
3.3 Winform
Winform具備功能強(qiáng)大、操作方便、使用安全、控件靈活、數(shù)據(jù)管理等特點(diǎn),能夠設(shè)計窗體和可視控件,還可以在瀏覽器中運(yùn)行的不可信控件和用戶硬盤上安裝的完全可信的應(yīng)用程序,開發(fā)人員可以定義自己有特色的新的控件,方便的數(shù)據(jù)顯示和操作。
4 主要界面設(shè)計
(1)計算π界面實(shí)現(xiàn):用戶在“測試總點(diǎn)數(shù)n”后面的輸入框內(nèi)輸入要投放的點(diǎn)數(shù),左邊標(biāo)有取值范圍,需要用戶按范圍輸入。(2)利用sin、cos函數(shù)圖像、半立方拋物線求陰影面積界面實(shí)現(xiàn):由用戶按上方的取值范圍輸入起點(diǎn)和終點(diǎn),點(diǎn)擊“開始計算按鈕”后,系統(tǒng)開始計算,計算結(jié)果會顯示在界面的右下角處。
5 主要功能設(shè)計
5.1 計算π功能實(shí)現(xiàn)
當(dāng)系統(tǒng)開始計算時,界面會實(shí)時更新落點(diǎn)的位置,但是有一個難題,就是無法讓一個像素點(diǎn)改變顏色,所有我采取了另一種方法,就是畫線!假設(shè)投放的隨機(jī)點(diǎn)的坐標(biāo)為(x,y),則由該點(diǎn)當(dāng)做起點(diǎn),將(x+1,y+1)當(dāng)做終點(diǎn),兩點(diǎn)之間畫直線,這樣既可以達(dá)到想要的效果,而且由于這條線1個像素的長度,所以并不影響視覺效果;當(dāng)計算結(jié)束后,結(jié)果會顯示在右下角處。
5.2 利用sin、cos函數(shù)圖像、半立方拋物線求陰影面積功能實(shí)現(xiàn)
統(tǒng)開始計算時,界面會實(shí)時更新落點(diǎn)的位置,使用戶可以更直觀的看到這個過程,當(dāng)計束后,結(jié)果會顯示在右下角處。
6 測試結(jié)果與數(shù)據(jù)分析
在系統(tǒng)的各項的開發(fā)環(huán)節(jié)都陸續(xù)完成之后,為了測試系統(tǒng)運(yùn)行的準(zhǔn)確性,進(jìn)行了大量的數(shù)據(jù)測試,并得到了一些測試結(jié)果。
6.1 概率法計算π的近似值的測試結(jié)果(見表1)
π的取值大概在3.1415~3.1416之間,通過測試得到的結(jié)果可以看出,當(dāng)投放的點(diǎn)足夠多時,此系統(tǒng)計算π的近似值得出的結(jié)果還是比較接近真實(shí)值的。
6.2 測試計算sin函數(shù)定積分的近似值
測試的函數(shù)表達(dá)式為:f(x)=sin(x/180 * π) * 100,投放的點(diǎn)數(shù)為5000點(diǎn),可以看出,此系統(tǒng)經(jīng)過計算所得出的近似值與實(shí)際值還是有一定的誤差的,但是誤差在10以內(nèi),是可以接受的。
6.3 測試計算定積分的近似值
測試的函數(shù)表達(dá)式為:f(x) = cos( x/180 * π) * 100),投放的點(diǎn)數(shù)為5000點(diǎn),可以看出,此系統(tǒng)經(jīng)過計算所得出的近似值與實(shí)際值還是有一定的誤差的,但是誤差也比較小,同樣可以接受。
參考文獻(xiàn)
[1]范策.算法與數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:機(jī)械工業(yè)出版社,2004.
[2]許卓群.數(shù)據(jù)結(jié)構(gòu)與算法[M].北京:高等教育出版社,2005.
[3]葉其孝.大學(xué)生數(shù)學(xué)建模競賽輔導(dǎo)教材(一)[M].長沙:湖南教育出版社,1993.
[4]趙靜.數(shù)學(xué)建模與數(shù)學(xué)實(shí)驗(yàn)[M].北京:高等教育出版社,2000.