- 相關(guān)推薦
實(shí)驗(yàn)總結(jié)及心得體會(huì)
總結(jié)就是對(duì)一個(gè)時(shí)期的學(xué)習(xí)、工作或其完成情況進(jìn)行一次全面系統(tǒng)的回顧和分析的書(shū)面材料,通過(guò)它可以全面地、系統(tǒng)地了解以往的學(xué)習(xí)和工作情況,因此十分有必須要寫(xiě)一份總結(jié)哦?偨Y(jié)一般是怎么寫(xiě)的呢?以下是小編整理的實(shí)驗(yàn)總結(jié)及心得體會(huì),歡迎閱讀與收藏。
之前我在編程的過(guò)程中寫(xiě)過(guò)一份實(shí)驗(yàn)總結(jié),里面詳細(xì)的記錄了實(shí)驗(yàn)中遇到的各種問(wèn)題以及解決辦法,當(dāng)我完成了整個(gè)實(shí)驗(yàn)整理文檔的時(shí)候,看到程序說(shuō)明文檔的后面標(biāo)著0kB,心里一下子就忐忑起來(lái)了,打開(kāi)文檔,果然,0KB,什么也沒(méi)有了。當(dāng)初編寫(xiě)程序之前,面對(duì)著完全不熟悉的C++,就好像是面對(duì)著一座小山,當(dāng)我一點(diǎn)一點(diǎn)的把它啃下來(lái)了,再看這些程序的時(shí)候,也不覺(jué)得有多少內(nèi)容了,期間遇到的一些問(wèn)題,現(xiàn)在都覺(jué)得很順理成章,因此只能記錄下一些大體的認(rèn)識(shí)和看法了。
實(shí)驗(yàn)一其實(shí)就是對(duì)類的一些基本操作和文件操作,其中文件操作也是使用了C++封裝了的類。主要的工作就是構(gòu)造兩個(gè)保存男女嘉賓信息的數(shù)據(jù)結(jié)構(gòu),男女嘉賓的信息分別保存在兩個(gè)文檔里,運(yùn)行的時(shí)候?qū)⑿畔⒀b載到元素為男女嘉賓信息類的向量里,實(shí)際是對(duì)這個(gè)向量的操作,添加,刪除,查找,然后再把添加和刪除的操作反應(yīng)到文檔里。我覺(jué)得實(shí)現(xiàn)中仍然存在的問(wèn)題是我在內(nèi)存中保存男女嘉賓信息是選擇了標(biāo)準(zhǔn)模板庫(kù)的向量(vector)這個(gè)類,在試驗(yàn)的小數(shù)據(jù)量下添加,查找等操作都很方便,但是實(shí)際應(yīng)用中如果要維護(hù)大的數(shù)據(jù)量的話,使用向量結(jié)構(gòu)估計(jì)就會(huì)性能下降,這樣的結(jié)構(gòu)不方便查找。這個(gè)試驗(yàn)讓我初步認(rèn)識(shí)了C++類的概念,運(yùn)算符的重載和函數(shù)的重載,不過(guò)我在使用類的時(shí)候,為了引用方便,都把變量和函數(shù)改成公有類型了,這樣做似乎是違反了C++封裝的思想,再以后寫(xiě)代碼的話,一定注意把成員變量私有化。另外一個(gè)很大的收獲就是讓我體會(huì)到了C++標(biāo)準(zhǔn)模板庫(kù)的方便,我以前寫(xiě)程序總是首選C語(yǔ)言,但是寫(xiě)了這個(gè)程序之后感覺(jué)C++其實(shí)要方便好多,而且也用C++標(biāo)準(zhǔn)模板庫(kù)做了很多其他課程的實(shí)驗(yàn)。還有一個(gè)深刻的體會(huì)就是寫(xiě)程序之前一定要做好用戶分析,雖然我們以前總是忽略這個(gè)問(wèn)題,我是看了題目之后就直接上手去編的,但是寫(xiě)到第二個(gè)程序我發(fā)現(xiàn)之前的思路似乎不是很對(duì),我覺(jué)得這個(gè)非誠(chéng)勿擾管理程序應(yīng)該是面對(duì)非誠(chéng)勿擾內(nèi)部的工作人員的,而之前就把面對(duì)工作人員和面對(duì)嘉賓本身混為一談了。其實(shí)對(duì)于這兩種不同的用戶,實(shí)現(xiàn)的要求還是有差別的,嘉賓的話他會(huì)只關(guān)注自己關(guān)心的事,所以對(duì)他的操著都應(yīng)該是單個(gè)人的,工作人員的話他們不會(huì)太關(guān)注單個(gè)的注冊(cè)嘉賓,他們的操作一般都是真的一批注冊(cè)的嘉賓,所以在寫(xiě)到實(shí)驗(yàn)二的時(shí)候我又對(duì)前面的函數(shù)做了一些修改,雖然修改的代碼量也不是很大,但是也確實(shí)很麻煩,這件事讓我認(rèn)識(shí)到編程之前的用戶分析真的很重要。
實(shí)驗(yàn)二是在實(shí)驗(yàn)一的基礎(chǔ)上修改了,就是增加了兩個(gè)更具體的查找方案,反應(yīng)到程序上就是增加了兩個(gè)函數(shù),對(duì)于在輸入條件下查找的那個(gè)函數(shù),我為了實(shí)現(xiàn)的簡(jiǎn)單一點(diǎn),就限定了一下用戶輸入的內(nèi)容,要按照程序的要求輸入,這樣做或許會(huì)給用戶帶來(lái)一些麻煩,更好的實(shí)現(xiàn)方案是對(duì)用戶輸入的字符串進(jìn)行分詞處理然后再邏輯判斷,由于精力有限,就沒(méi)有實(shí)現(xiàn)。只好讓用戶多替我做些工作了。
實(shí)驗(yàn)三是網(wǎng)絡(luò)編程,用socket實(shí)現(xiàn)的支持遠(yuǎn)程訪問(wèn)的功能。我選擇了最簡(jiǎn)單的UDP協(xié)議,收發(fā)雙方交替?zhèn)魉蛿?shù)據(jù)。這個(gè)試驗(yàn)主要涉及到一個(gè)問(wèn)題是成禎方法,為了減少傳送的次數(shù),我是讓發(fā)方把要發(fā)送的所有信息都收集起來(lái)放在數(shù)組中,不同的數(shù)據(jù)用‘|’隔開(kāi),然后一起傳送出去,再在收方將這些數(shù)據(jù)分離出來(lái);另一個(gè)問(wèn)題我覺(jué)得是各種數(shù)據(jù)類型之間的轉(zhuǎn)換,因?yàn)樵诎l(fā)送的過(guò)程中所有的變量都是以字符型傳送的,所有就需要在收發(fā)雙方將各種數(shù)據(jù)轉(zhuǎn)換成字符型。其他的操作就要試驗(yàn)一二類似了,只是涉及到數(shù)據(jù)的來(lái)源問(wèn)題。我看很多資料中都把socket通信與文件操作類比,不過(guò)我覺(jué)得其實(shí)它更像是鍵盤輸入和屏幕顯示,只是數(shù)據(jù)來(lái)源不同。
在完成了三個(gè)字符行界面的編程后,我又學(xué)習(xí)了一下MFC,把試驗(yàn)一二的圖形界面做了出來(lái)。使用了MFC,才對(duì)C++類的封裝有了更深刻的理解。由于時(shí)間倉(cāng)促,我學(xué)習(xí)的MFC只是冰山一角,很多地方都還不清楚,只是了解了一下消息映射并把自己的函數(shù)添加到按鍵對(duì)應(yīng)的函數(shù)中。由于我學(xué)習(xí)的例子是一個(gè)單文檔加一個(gè)對(duì)話框的程序,所以我在實(shí)現(xiàn)的時(shí)候也選擇了使用單文檔模式,其實(shí)文檔對(duì)這個(gè)程序好像也沒(méi)有多大用處,用對(duì)話框模式更加方便一點(diǎn)。因?yàn)槭菃挝臋n加對(duì)話框,在實(shí)現(xiàn)第一個(gè)對(duì)話框的時(shí)候還沒(méi)有什么問(wèn)題,但是實(shí)現(xiàn)第二個(gè)對(duì)話框時(shí)就有一個(gè)我用了很長(zhǎng)時(shí)間才解決的問(wèn)題:我用到的全局變量和全局函數(shù)沒(méi)有地方添加,因此程序一直在變量重定義和外部變量不可用這兩個(gè)鏈接錯(cuò)誤之間徘徊,最后我查到有人說(shuō)在VC的工程里,由于用到的文件很多,為了體現(xiàn)C++的封裝性,可以把全局變量和全局函數(shù)定義在一個(gè)Public類里面,變量和函數(shù)全部定義為靜態(tài)的共有的,這樣不僅體現(xiàn)了變量和函數(shù)的全局性,還把他們作為一類封裝在了一個(gè)結(jié)構(gòu)里,很好的和C++程序融合,這一部分也是我認(rèn)為我在這次試驗(yàn)中實(shí)現(xiàn)的最成功的部分。我感受比較深的另外一個(gè)問(wèn)題就是實(shí)現(xiàn)的位置問(wèn)題,雖然以前也知道頭文件里要放聲明,實(shí)現(xiàn)放在文件里,但是因?yàn)榉旁谀抢飳?duì)程序結(jié)果也沒(méi)有什么影響,所以有時(shí)候?qū)懗绦蚓捅容^隨便,實(shí)現(xiàn)也寫(xiě)在。h里,這次實(shí)驗(yàn)就給了我很大的教訓(xùn),因?yàn)槎鄠(gè)對(duì)話框都要用到一些公用的頭文件,把實(shí)現(xiàn)放在頭文件里之后就一直出現(xiàn)重定義的問(wèn)題,我找了很久這個(gè)錯(cuò)誤的原因,最后才發(fā)現(xiàn)是我寫(xiě)程序結(jié)構(gòu)不嚴(yán)謹(jǐn)?shù)膯?wèn)題;而且因?yàn)檫@個(gè)試驗(yàn)的對(duì)話框要初始化,我有時(shí)候把初始化的代碼全在按鍵實(shí)現(xiàn)里,雖然不會(huì)出現(xiàn)編譯鏈接錯(cuò)誤,程序運(yùn)行結(jié)果也會(huì)有一些問(wèn)題出現(xiàn)。這些給我的經(jīng)驗(yàn)是,程序的各個(gè)部分一定要各司其職,各就各位,老老實(shí)實(shí)的把該放在什么位置的代碼放在什么位置,會(huì)給編寫(xiě)程序省很多事。
本次實(shí)驗(yàn)一共用時(shí)兩個(gè)多星期,期間遇到了很多的問(wèn)題,其實(shí)我覺(jué)得編寫(xiě)程序,調(diào)試,遇到問(wèn)題耐心的查錯(cuò),總會(huì)有解決辦法的,比較困難的錯(cuò)誤其實(shí)是能夠運(yùn)行之后結(jié)果不穩(wěn)定,有時(shí)候?qū)Γ袝r(shí)候錯(cuò),這樣的問(wèn)題往往是程序設(shè)計(jì)的算法的問(wèn)題,雖然這次程序沒(méi)有太復(fù)雜的算法,但是一些小的地方?jīng)]有考慮到,往往會(huì)給運(yùn)行結(jié)果造成很多難以解釋的錯(cuò)誤。我覺(jué)得我的程序在經(jīng)過(guò)很多種情況的測(cè)試后,基本上能滿足我自己的要求了,可能還有很多不完善的地方,但是確實(shí)收獲了很多東西,隨著以后的學(xué)習(xí)運(yùn)用,估計(jì)會(huì)有更深入的認(rèn)識(shí)。
最后,很是要感謝百度知道上那些不知名的作者,還有我的同學(xué)們,在我調(diào)程序調(diào)的不知所以然的時(shí)候給了我很大的幫助,也支持我能夠最終完成這個(gè)程序。
【實(shí)驗(yàn)總結(jié)及心得體會(huì)】相關(guān)文章:
(精選)實(shí)驗(yàn)心得體會(huì)05-19
化學(xué)實(shí)驗(yàn)心得體會(huì)07-16
數(shù)學(xué)實(shí)驗(yàn)心得體會(huì)04-30
實(shí)驗(yàn)心得體會(huì)(熱門)01-02