課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計算機(jī)應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。
成都創(chuàng)新互聯(lián)長期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為保德企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè),保德網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
回顧起此次單片機(jī)課程設(shè)計,至今我仍感慨頗多,的確,從選題到定稿,從理論到實踐,在整整兩星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如說三極管PNP管腳不懂怎么放置,不懂分得二極管的正負(fù)極,對單片機(jī)匯編語言掌握得不好……通過這次課程設(shè)計之后,一定把以前所學(xué)過的知識重新溫故。
這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多編程問題,最后在梁強(qiáng)老師的辛勤指導(dǎo)下,終于游逆而解。同時,在梁強(qiáng)老師的身上我學(xué)得到很多實用的知識,在次我表示感謝!同時,對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝!
通過這次實訓(xùn),增加了我學(xué)習(xí)軟件技術(shù)的興趣,雖然還不明確軟件技術(shù)包含的具體內(nèi)容,但從C語言這門課程開始,已發(fā)現(xiàn)程序設(shè)計的樂趣,在學(xué)習(xí)C語言的過程中也學(xué)到了許多計算機(jī)應(yīng)用基礎(chǔ)知識,對計算機(jī)的機(jī)體也有了一個大體的了解。
這次實訓(xùn)是老師給了范例程序,經(jīng)過自己的改寫,實現(xiàn)要求。先做簡單的輸出,一步步的再做其它圖案,在實際操作過程中犯的一些錯誤還會有意外的收獲,感覺實訓(xùn)很有意思。在具體操作中對這學(xué)期所學(xué)的C語言的理論知識得到鞏固,達(dá)到實訓(xùn)的基本目的,也發(fā)現(xiàn)自己的不足之出,在以后的上機(jī)中應(yīng)更加注意,同時體會到C語言具有的語句簡潔,使用靈活,執(zhí)行效率高等特點。發(fā)現(xiàn)上機(jī)實訓(xùn)的重要作用,特別是對數(shù)組和循環(huán)有了深刻的理解。
通過實際操作,學(xué)會C語言程序編程的基本步驟、基本方法,開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問題、解決問題的能力。深刻體會到“沒有做不到的,只有想不到的”,“團(tuán)結(jié)就是力量”,“實踐是檢驗真理的標(biāo)準(zhǔn)”,“不恥下問”……的寓意。
計時在此希望以后應(yīng)多進(jìn)行這樣的實訓(xùn),加長設(shè)間,培養(yǎng)學(xué)生獨立思考問題的能力,提高實際操作水平。
八、參考資料:《C語言程序設(shè)計教程》
參考資料:《C語言程序設(shè)計教程》1.總結(jié)
通過本次的C++課程設(shè)計,讓我學(xué)會了把書本上的知識應(yīng)用到了實際中來。雖然在這幾周中有過挫折和坎坷,有的問題一直到了最后才被解決,但是我認(rèn)為這未必就不是好事,這樣能鍛煉我的意志,磨練我的耐心,失敗是成功之母,這話一點都沒錯,沒有失敗就沒有成功。
讓我沒有失去信心的是關(guān)懷我們的老師,當(dāng)我們有了問題和疑問,老師就很耐心的給予講解,讓我們有了一個良好的學(xué)習(xí)氛圍。
* 掌握C語言的基本語法和規(guī)定。 * 掌握程序設(shè)計基本算法和思路,開拓思路, * 提高上機(jī)操作能力,掌握上機(jī)調(diào)試程序的方法 * 培養(yǎng)自學(xué)能力,強(qiáng)調(diào)自主學(xué)習(xí)。 * 養(yǎng)成良好的程序設(shè)計習(xí)慣。 通過總結(jié)多年的教學(xué)經(jīng)驗,總結(jié)學(xué)生在學(xué)習(xí)過程中具有規(guī)律性的特點,可以發(fā)現(xiàn),在本課程學(xué)習(xí)過程中學(xué)生經(jīng)常出現(xiàn)下面這些問題: * 注重理論學(xué)習(xí),忽視上機(jī)編程實踐,造成"只能用筆在紙上編程"的奇怪現(xiàn)象。特別是一些女同學(xué),一到機(jī)器前面就手忙腳亂,如果程序再出現(xiàn)錯誤,就更不知道該如何查找錯誤,如何排除錯誤了。 *入門時自以為難度大,產(chǎn)生畏難情緒,總是怕,最后因為怕學(xué)不好而導(dǎo)致沒有學(xué)好。 *前期沒有抓緊,希望通過突擊完成課程學(xué)習(xí)。本課程要靠平時的積累,幾乎不能靠臨時突擊,由于前面基礎(chǔ)補(bǔ)扎實,到了后面已經(jīng)無法彌補(bǔ)。 *太注重學(xué)習(xí)語句的語法規(guī)定,忽視了對編程的思路和方法的訓(xùn)練。有些同學(xué)再學(xué)習(xí)結(jié)束的感覺就是:對每一個語句的語法和每一條規(guī)定都明白,就是面對實際問題的時候不知道該如何思考,該如何編程。 *急于求成,總想編寫綜合性的程序,忽視基本概念,忽視基本功的訓(xùn)練和練習(xí)。在編寫程序中發(fā)現(xiàn)問題,一追根源,全是概念或基礎(chǔ)問題。 1.不要看到別人的回復(fù)第一句話就說:給個代碼吧!你應(yīng)該想想為什么。當(dāng)你自己想 出來再參考別人的提示,你就知道自己和別人思路的差異。 2.初學(xué)者請不要看太多太多的書那會誤人子弟的,先找本系統(tǒng)的學(xué),很多人用了很久 都是只對部分功能熟悉而已,不系統(tǒng)還是不夠的。 3.看幫助,不要因為很難而自己是初學(xué)者所以就不看;幫助永遠(yuǎn)是最好的參考手冊, 雖然幫助的文字有時候很難看懂,總覺得不夠直觀。 4.不要被對象、屬性、方法等詞匯所迷惑;最根本的是先了解最基礎(chǔ)知識。 5.不要放過任何一個看上去很簡單的小問題--他們往往并不那么簡單,或者可以引伸 出很多知識點;不會舉一反三你就永遠(yuǎn)學(xué)不會。 6.知道一點東西,并不能說明你會寫腳本,腳本是需要經(jīng)驗積累的。 7.學(xué)腳本并不難,JSP、ASP、PHP等等也不過如此--難的是長期堅持實踐和不遺余力的博覽 群書; 8.看再多的書是學(xué)不全腳本的,要多實踐 9.把時髦的技術(shù)掛在嘴邊,還不如把過時的技術(shù)記在心里; 10.學(xué)習(xí)腳本最好的方法之一就是多練習(xí); 11.在任何時刻都不要認(rèn)為自己手中的書已經(jīng)足夠了; 12.看得懂的書,請仔細(xì)看;看不懂的書,請硬著頭皮看; 13.別指望看第一遍書就能記住和掌握什么--請看第二遍、第三遍; 14.請把書上的例子親手到電腦上實踐,即使配套光盤中有源文件; 15.把在書中看到的有意義的例子擴(kuò)充;并將其切實的運用到自己的工作中; 16.不要漏掉書中任何一個練習(xí)--請全部做完并記錄下思路; 17.當(dāng)你用腳本到一半?yún)s發(fā)現(xiàn)自己用的方法很拙劣時,請不要馬上停手;請盡快將余 下的部分粗略的完成以保證這個代碼的完整性,然后分析自己的錯誤并重新編寫和工 作。 18.別心急,寫腳本確實不容易;水平是在不斷的實踐中完善和發(fā)展的; 19.每學(xué)到一個腳本難點的時候,嘗試著對別人講解這個知識點并讓他理解----你能 講清楚才說明你真的理解了; 20.記錄下在和別人交流時發(fā)現(xiàn)的自己忽視或不理解的知識點; 21.保存好你做過的所有的源文件----那是你最好的積累之一; 22.對于網(wǎng)絡(luò),還是希望大家能多利用一下,很多問題不是非要到論壇來問的,首先 你要學(xué)會自己找答案,比如google、百度都是很好的搜索引擎,你只要輸入關(guān)鍵字就 能找到很多相關(guān)資料,別老是等待別人給你希望,看的出你平時一定也很懶! 23.到一個論壇,你學(xué)會去看以前的帖子,不要什么都不看就發(fā)帖子問,也許你的問 題早就有人問過了,你再問,別人已經(jīng)不想再重復(fù)了,做為初學(xué)者,誰也不希望自己 的帖子沒人回的。 24.雖然不是打擊初學(xué)者,但是這句話還是要說:論壇論壇,就是大家討論的地方, 如果你總期望有高手總無償指點你,除非他是你親戚??!討論者,起碼是水平相當(dāng)?shù)? 才有討論的說法,如果水平真差距太遠(yuǎn)了,連基本操作都需要別人給解答,誰還跟你 討論呢。能找到很多相關(guān)資料,別老是等待別人給你希望,看的出你平時一定也很懶! 25.到一個論壇,你學(xué)會去看以前的帖子,不要什么都不看就發(fā)帖子問,也許你的問 題早就有人問過了,你再問,別人已經(jīng)不想再重復(fù)了,做為初學(xué)者,誰也不希望自己 的帖子沒人回的。 26.雖然不是打擊初學(xué)者,但是這句話還是要說:論壇論壇,就是大家討論的地方, 如果你總期望有高手總無償指點你,除非他是你親戚??!討論者,起碼是水平相當(dāng)?shù)? 才有討論的說法,如果水平真差距太遠(yuǎn)了,連基本操作都需要別人給解答,誰還跟你 討論呢。 別做浮躁的人 浮躁的人容易問:我到底該學(xué)什么;----別問,學(xué)就對了; 浮躁的人容易問:JS有錢途嗎;----建議你去搶銀行; 浮躁的人容易說:我要中文版!我英文不行!----不行?學(xué)呀! 浮躁的人分兩種:只觀望而不學(xué)的人;只學(xué)而不堅持的人; 浮躁的人永遠(yuǎn)不是一個
1.編程模型
所有計算機(jī)均由兩種元素組成:代碼和數(shù)據(jù).精確的說,有些程序是圍繞著"什么正在發(fā)生"而編寫,有些則是圍繞"誰正在受影響"而編寫的.
第一種編程方式叫做"面向過程的模型",按這種模型編寫的程序以一系列的線性步驟(代碼)為特征,可被理解為作用于數(shù)據(jù)的代碼.如 C 等過程化語言.
第二種編程方式叫做"面向?qū)ο蟮哪P?,按這種模型編寫的程序圍繞著程序的數(shù)據(jù)(對象)和針對該對象而嚴(yán)格定義的接口來組織程序,它的特點是數(shù)據(jù)控制代碼的訪問.通過把控制權(quán)轉(zhuǎn)移到數(shù)據(jù)上,面向?qū)ο蟮哪P驮诮M織方式上有:抽象,封裝,繼承和多態(tài)的好處.
2.抽象
面向?qū)ο蟪绦蛟O(shè)計的基本要素是抽象,程序員通過抽象來管理復(fù)雜性.
管理抽象的有效方法是使用層次式的分類特性,這種方法允許用戶根據(jù)物理含義分解一個復(fù)雜的系統(tǒng),把它劃分成更容易管理的塊.例如,一個計算機(jī)系統(tǒng)是一個獨立的對象.而在計算機(jī)系統(tǒng)內(nèi)部由幾個子系統(tǒng)組成:顯示器,鍵盤,硬盤驅(qū)動器,DVD-ROM,軟盤,音響等,這些子系統(tǒng)每個又由專門的部件組成.關(guān)鍵是需要使用層次抽象來管理計算機(jī)系統(tǒng)(或其他任何復(fù)雜系統(tǒng))的復(fù)雜性.
面向?qū)ο蟪绦蛟O(shè)計的本質(zhì):這些抽象的對象可以被看作具體的實體,這些實體對用來告訴我們作什么的消息進(jìn)行響應(yīng).
/* (我的理解)
*計算機(jī)是一個實體,我要輸入字符,顯示器顯示出來,那么
*計算機(jī)(對象).輸入(鍵盤屬性).顯示(顯示方法)
*使用分層來引用,操作.而不用管計算機(jī)內(nèi)部如何處理.
*只要有計算機(jī)對象,它就能響應(yīng)我的操作,而我敲鍵盤,
*計算機(jī)對象就把這個消息傳給屏幕,屏幕顯示.
*/
計算機(jī)對象包含了它所有的屬性,以及操作,這就是面向?qū)ο蟪绦蛟O(shè)計的三大原則之一:封裝.
3.封裝
封裝是一種把代碼和代碼所操作的數(shù)據(jù)捆綁在一起,使這兩者不受外界干擾和誤用的機(jī)制.封裝可被理解為一種用做保護(hù)的包裝器,以防止代碼和數(shù)據(jù)被包裝器外部所定義的其他代碼任意訪問.對包裝器內(nèi)部代碼與數(shù)據(jù)的訪問通過一個明確定義的接口來控制.封裝代碼的好處是每個人都知道怎樣訪問代碼,進(jìn)而無需考慮實現(xiàn)細(xì)節(jié)就能直接使用它,同時不用擔(dān)心不可預(yù)料的副作用.
在JAVA中,最基本的封裝單元是類,一個類定義著將由一組對象所共享的行為(數(shù)據(jù)和代碼).一個類的每個對象均包含它所定義的結(jié)構(gòu)與行為,這些對象就好象是一個模子鑄造出來的.所以對象也叫做類的實例.
在定義一個類時,需要指定構(gòu)成該類的代碼與數(shù)據(jù).特別是,類所定義的對象叫做成員變量或?qū)嵗兞?操作數(shù)據(jù)的代碼叫做成員方法.方法定義怎樣使用成員變量,這意味著類的行為和接口要由操作實例數(shù)據(jù)的方法來定義.
由于類的用途是封裝復(fù)雜性,所以類的內(nèi)部有隱藏實現(xiàn)復(fù)雜性的機(jī)制.所以JAVA中提供了私有和公有的訪問模式,類的公有接口代表外部的用戶應(yīng)該知道或可以知道的每件東西.私有的方法數(shù)據(jù)只能通過該類的成員代碼來訪問.這就可以確保不會發(fā)生不希望的事情.
4.繼承
繼承是指一個對象從另一個對象中獲得屬性的過程.是面向?qū)ο蟪绦蛟O(shè)計的三大原則之二,它支持按層次分類的概念.例如,波斯貓是貓的一種,貓又是哺乳動物的一種,哺乳動物又是動物的一種.如果不使用層次的概念,每個對象需要明確定義各自的全部特征.通過層次分類方式,一個對象只需要在它的類中定義是它成為唯一的 各個屬性,然后從父類中繼承它的通用屬性.因此,正是由于繼承機(jī)制,才使得一個對象可以成為一個通用類的一個特定實例.一個深度繼承的子類將繼承它在類層次中的每個祖先的所有屬性.
繼承與封裝可以互相作用.如果一個給定的類封裝了某些屬性,它的任何子類將會含有同樣得屬性,另加各個子類所有得屬性.這是面向?qū)ο蟪绦蛟趶?fù)雜性上呈線性而非幾何增長的一個重要概念.新的子類繼承其所有祖先的所有屬性.子類和系統(tǒng)中的其他代碼不會產(chǎn)生無法預(yù)料的交互作用.
5.多態(tài)
多態(tài)是指一個方法只能有一個名稱,但可以有許多形態(tài),也就是程序中可以定義多個同名的方法,用"一個接口,多個方法"來描述.可以通過方法的參數(shù)和類型引用.
6.封裝,繼承,多態(tài)的組合使用
在由封裝,繼承,多態(tài)所組成的環(huán)境中,程序員可以編寫出比面向過程模型更健壯,更具擴(kuò)展性的程序.經(jīng)過仔細(xì)設(shè)計的類層次結(jié)構(gòu)是重用代碼的基礎(chǔ).封裝能讓程序員不必修改公有接口的代碼即可實現(xiàn)程序的移植.多態(tài)能使程序員開發(fā)出簡潔,易懂,易修改的代碼.例如:汽車
從繼承的角度看,駕駛員都依靠繼承性來駕駛不同類型(子類)的汽車,無論這輛車是轎車還是卡車,是奔馳牌還是菲亞特牌,駕駛員都能找到方向盤,手剎,換檔器.經(jīng)過一段時間駕駛后,都能知道手動檔與自動檔之間的差別,因為他們實際上都知道這兩者的共同超類:傳動裝置.
從封裝的角度看,駕駛員總是看到封裝好的特性.剎車隱藏了許多復(fù)雜性,其外觀如此簡單,用腳就能操作它.發(fā)動機(jī),手剎,輪胎大小的實現(xiàn)對與剎車類的定義沒有影響.
從多態(tài)的角度看,剎車系統(tǒng)有正鎖反鎖之分,駕駛員只用腳踩剎車停車,同樣的接口可以用來控制若干種不同的實現(xiàn)(正鎖或反鎖).
這樣各個獨立的構(gòu)件才被轉(zhuǎn)換為汽車這個對象的.同樣,通過使用面向?qū)ο蟮脑O(shè)計原則,程序員可以把一個復(fù)雜程序的各個構(gòu)件組合在一起,形成一個一致,健壯,可維護(hù)的程序
#include stdio.h
#include stdlib.h
#define STU_NUM 10 /*宏定義學(xué)生的數(shù)量*/
struct student /*定義一個結(jié)構(gòu)體用來存放學(xué)生學(xué)號、三門課成績、總分及平均成績*/
{
char stu_id[20]; /*學(xué)生學(xué)號;*/
float score[3]; /*三門課成績;*/
float total; /*總成績;*/
float aver; /*平均成績;*/
};
/*排序用一個函數(shù)來實現(xiàn)*/
void SortScore(student *stu,int n)
{
student stud;
for(int i = 0; i n-1; i++)
for(int j = i+1 ; j n; j++)
{
if(stu[i].total stu[j].total)
{
stud = stu[i];
stu[i] = stu[j];
stu[j] = stud;
}
}
}
int main( )
{
student stu[STU_NUM]; /*創(chuàng)建結(jié)構(gòu)體數(shù)組中有10個元素,分別用來保存這10個人的相關(guān)信息。*/
/*輸入這十個學(xué)生的相關(guān)信息*/
for(int i = 0; iSTU_NUM; i++)
{
printf("請輸入第%d個學(xué)生的學(xué)號:",i+1);
scanf("%s",stu[i].stu_id);
printf("輸入第%d個學(xué)生的數(shù)學(xué)成績:",i+1);
scanf("%f",stu[i].score[0]);
printf("輸入第%d個學(xué)生的英語成績:",i+1);
scanf("%f",stu[i].score[1]);
printf("輸入第%d個學(xué)生的計算機(jī)成績:",i+1);
scanf("%f",stu[i].score[2]);
stu[i].total = stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
stu[i].aver = stu[i].total/3;
}
printf("\n");
SortScore(stu,STU_NUM);/*調(diào)用排序函數(shù)*/
/*輸出排序后的各學(xué)生的成績*/
for(i = 0 ; i STU_NUM; i++)
{
printf("序號: %d\t",i);
printf("學(xué)號:%s\t",stu[i].stu_id);
printf("數(shù)學(xué):%f\t",stu[i].score[0]);
printf("英語:%f\t",stu[i].score[1]);
printf("計算機(jī):%f\t",stu[i].score[2]);
printf("平均成績:%f\t",stu[i].aver);
printf("總分:%f\t",stu[i].total);
printf("\n\n");
}
return 0;
}
注:(源程序中主要標(biāo)識符含義說明)
#define STU_NUM 10 /*宏定義學(xué)生的數(shù)量*/
struct student /*定義一個結(jié)構(gòu)體用來存放學(xué)生學(xué)號、三門課成績、總分及平均成績*/
{
char stu_id[20]; /*學(xué)生學(xué)號;*/
float score[3]; /*三門課成績;*/
float total; /*總成績;*/
float aver; /*平均成績;*/
}
1.最初接觸C語言時要弄清楚各種變量的定義方法,特別是常用的類型,int、float、char等等,還要掌握各種類型的輸入、輸出格式。這一步做到后,上機(jī)就沒有多大的問題了。
2.在對函數(shù)的學(xué)習(xí)過程中,一定要弄明白函數(shù)的作用和具體格式。值得強(qiáng)調(diào)的是在寫循環(huán)程序時,一定要弄清楚循環(huán)的條件。
3.對每一個知識點,都應(yīng)該立即編出對應(yīng)的程序,有時可能還會有語法錯誤,碰到更好的方法也可以試一下,很多時候你想想代碼怎么寫和你真的寫出來了是有很大的差距的。
4.學(xué)習(xí)時一定有很多疑惑的,要及時弄清楚。
5.找一本好的課本,我并不推薦譚浩強(qiáng)的《C語言程序設(shè)計》,因為這本書把知識點講的太細(xì)碎太理論。我推薦《c語言程序設(shè)計:現(xiàn)代方法》這本書,書中奧妙非凡,值得深讀體驗。
6.不要認(rèn)為上課認(rèn)真聽課有用,寫程序不可能從課堂上學(xué)會太多的,偉大的程序員或者是很多的黑客,不是老師教出來的,你的有自己的想法自己的思路自己的,學(xué)習(xí)一門語言才有用,也才會得到別人傳教不了的東西。
網(wǎng)站欄目:函數(shù)c語言心得體會 學(xué)c語言心得
本文地址:http://jinyejixie.com/article36/doddopg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、App設(shè)計、域名注冊、小程序開發(fā)、電子商務(wù)、網(wǎng)頁設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)