c語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告
隨著社會(huì)不斷地進(jìn)步,接觸并使用報(bào)告的人越來越多,通常情況下,報(bào)告的內(nèi)容含量大、篇幅較長(zhǎng)。相信很多朋友都對(duì)寫報(bào)告感到非常苦惱吧,下面是小編為大家整理的c語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告,希望能夠幫助到大家。
c語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告1
匯編語(yǔ)言課程是計(jì)算機(jī)專業(yè)的一門基礎(chǔ)主干課程,該課程與計(jì)算機(jī)硬件系統(tǒng)密切相關(guān)。主要介紹80x86cpu的指令系統(tǒng)、尋址方式、工作原理。通過該課程的學(xué)習(xí),培養(yǎng)學(xué)生使用匯編語(yǔ)言編寫程序的能力。加深學(xué)生對(duì)計(jì)算機(jī)內(nèi)部http://運(yùn)行機(jī)制的理解,為學(xué)生開發(fā)系統(tǒng)軟件和與硬件相關(guān)的軟件打下堅(jiān)實(shí)的基礎(chǔ)。
一、匯編語(yǔ)言課程教學(xué)現(xiàn)狀分析
1、與計(jì)算機(jī)硬件相關(guān),課程難度大
匯編語(yǔ)言課程是以特定的計(jì)算機(jī)硬件為基礎(chǔ)的,現(xiàn)在我國(guó)高等學(xué)校中普遍以80x86cpu系列計(jì)算機(jī)作為教學(xué)模型。首先介紹80x86cpu的工作方式、指令系統(tǒng)、尋址方式等與硬件有關(guān)的知識(shí),然后講解匯編語(yǔ)言的編程方法和技巧,最后介紹系統(tǒng)輸入/輸出功能調(diào)用和有關(guān)文件的編程方法。匯編語(yǔ)言課程通常開設(shè)在大學(xué)的第三學(xué)期或第四學(xué)期,學(xué)生只有高級(jí)語(yǔ)言的基礎(chǔ),習(xí)慣于高級(jí)語(yǔ)言的自然表達(dá)形式。學(xué)生具備的計(jì)算機(jī)硬件的知識(shí)非常少,所以學(xué)習(xí)匯編語(yǔ)言課程時(shí)會(huì)感到非常困難,難于適應(yīng)復(fù)雜的低級(jí)語(yǔ)言。特別是在開始學(xué)習(xí)階段,許多學(xué)生經(jīng);煜拇嫫、內(nèi)存,地址、內(nèi)容等基本概念。
2、課程內(nèi)容單一,學(xué)生學(xué)習(xí)興趣不足
目前多數(shù)高校講授匯編語(yǔ)言課程的主要目標(biāo)是使學(xué)生掌握一種編程語(yǔ)言。因?yàn)閰R編語(yǔ)言比較難學(xué),如果在教學(xué)中單純強(qiáng)調(diào)掌握編程技術(shù),學(xué)生可能失去學(xué)習(xí)該課程的興趣。在匯編語(yǔ)言中既沒有分支語(yǔ)句也沒有循環(huán)語(yǔ)句,學(xué)生必須使用比較指令和條件轉(zhuǎn)移指令來構(gòu)造出分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。學(xué)生更愿意選擇易于理解和編寫程序的高級(jí)語(yǔ)言,如c、c++、java等。不喜歡使用復(fù)雜的匯編語(yǔ)言來編寫程序。學(xué)生不了解匯編語(yǔ)言與其他課程的關(guān)系,只是把它當(dāng)作一門必須參加考試的課程對(duì)待。
二、匯編語(yǔ)言教學(xué)改革的思想和方法
1、明確課程的目標(biāo)
根據(jù)匯編語(yǔ)言教學(xué)大綱的要求,掌握一種基于硬件的匯編語(yǔ)言編程技術(shù)是課程的基本目標(biāo)和要求。在教學(xué)中可以將匯編語(yǔ)言與一種高級(jí)語(yǔ)言(如c語(yǔ)言)進(jìn)行比較,通過學(xué)習(xí)匯編語(yǔ)言使學(xué)生更深刻地理解高級(jí)語(yǔ)言的工作原理。例如c中數(shù)組是連續(xù)的存儲(chǔ)空間,相對(duì)于匯編語(yǔ)言中的寄存器相對(duì)尋址方式;c指針的概念在匯編中就是內(nèi)存單元的地址,是寄存器間接尋址方式;c函數(shù)中的參數(shù)傳遞,是用匯編語(yǔ)言中的堆棧段(stack)實(shí)現(xiàn)的。前面提到的幾個(gè)問題是c語(yǔ)言課程中的教學(xué)重點(diǎn)和難點(diǎn),學(xué)生不易理解和掌握。通過匯編語(yǔ)言課程分析c語(yǔ)言中的這些問題,可以使學(xué)生從計(jì)算機(jī)的工作原理角度出發(fā)真正理解了c語(yǔ)言中的這些知識(shí),并且掌握了c語(yǔ)言編譯執(zhí)行的過程,知道高級(jí)語(yǔ)言中分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)在執(zhí)行時(shí)需要翻譯成一條一條的指令來完成。從計(jì)算機(jī)工作原理入手講解匯編語(yǔ)言可以使學(xué)生在學(xué)習(xí)一門計(jì)算機(jī)語(yǔ)言的同時(shí)深入理解計(jì)算機(jī)的工作原理,這是在高級(jí)語(yǔ)言教學(xué)中很難實(shí)現(xiàn)的。
教師在開始上課時(shí),首先提出課程的目標(biāo)和要求,同時(shí)要告訴學(xué)生匯編語(yǔ)言課程是《計(jì)算機(jī)組成原理》、《計(jì)算機(jī)接口與通訊技術(shù)》、《計(jì)算機(jī)操作系統(tǒng)》、《單片機(jī)原理》等課程的先修課,學(xué)好本課程會(huì)為其他相關(guān)課程的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
2、課程群的建設(shè)
傳統(tǒng)的教學(xué)模式中,每位教師更多關(guān)注本課程的內(nèi)容,很少考慮本課程對(duì)后續(xù)課程的影響以及課程之間的知識(shí)重復(fù)和交叉的問題。為了更好地培養(yǎng)計(jì)算機(jī)專業(yè)學(xué)生的軟硬件綜合能力,將《計(jì)算機(jī)組成原理》、《匯編語(yǔ)言程序設(shè)計(jì)》及《計(jì)算機(jī)接口與通訊技術(shù)》三門課程納入到一個(gè)課程群來建設(shè)是十分必要的。建立基于軟硬件綜合能力培養(yǎng)的新教學(xué)體系和新實(shí)驗(yàn)?zāi)J。首先,這三門課程從內(nèi)容上是相互關(guān)聯(lián)的,例如匯編語(yǔ)言與計(jì)算機(jī)組成原理中都涉及到指令系統(tǒng)和尋址方式的章節(jié),區(qū)別在于匯編語(yǔ)言是針對(duì)80x86cpu機(jī)型的,而計(jì)算機(jī)組成原理是不針對(duì)具體機(jī)型的。學(xué)生如果已經(jīng)完全掌握了匯編語(yǔ)言中的指令系統(tǒng)和尋址方式的概念,學(xué)習(xí)計(jì)算機(jī)組成原理時(shí)就易于理解和掌握該章節(jié)的內(nèi)容,教師也可以花費(fèi)較少的學(xué)時(shí)來完成該部分的教學(xué)。其次,這三門課程是相互影響的,例如在計(jì)算機(jī)接口課程的實(shí)驗(yàn)中,學(xué)生需要使用匯編語(yǔ)言編寫接口程序。所以,匯編語(yǔ)言課程學(xué)習(xí)的好壞會(huì)直接影響到計(jì)算機(jī)組成原理和計(jì)算機(jī)接口課程的學(xué)習(xí)效果。
3、優(yōu)化整合教學(xué)內(nèi)容
匯編語(yǔ)言課程中會(huì)用到二進(jìn)制、十六進(jìn)制、補(bǔ)碼等知識(shí),這些知識(shí)是先修課程信息技術(shù)基礎(chǔ)中的內(nèi)容。在匯編語(yǔ)言課程中可以將本課程中使用頻繁的補(bǔ)碼概念、數(shù)的溢出判斷等知識(shí)點(diǎn)強(qiáng)調(diào)說明,其他的內(nèi)容讓學(xué)生自己復(fù)習(xí),教師不必重復(fù)講解。
匯編語(yǔ)言指令多達(dá)幾百條,其中有的指令很少使用。所以在教學(xué)中要精心選取常用的指令,將功能相似的指令分組講解,選擇一組中某幾個(gè)指令詳細(xì)介紹指令的格式、功能和使用。在講解指令時(shí)教會(huì)學(xué)生學(xué)習(xí)指令的方法,起到舉一反三的效果,當(dāng)學(xué)生今后遇到?jīng)]學(xué)過的'指令時(shí)可以自主學(xué)習(xí)。如果將所有的指令集中講解,學(xué)生不易掌握?梢詫⒅噶罘稚⒌礁鱾(gè)章節(jié)中,例如將比較指令和轉(zhuǎn)移指令分解到分支程序設(shè)計(jì)中,將串指令分解到循環(huán)程序設(shè)計(jì)中。指令要與程序相結(jié)合,讓學(xué)生在程序中學(xué)習(xí)指令、尋址方式和編程方法。
4、加強(qiáng)實(shí)驗(yàn)教學(xué)環(huán)節(jié)
匯編語(yǔ)言是實(shí)踐性很強(qiáng)的一門課程,學(xué)生為了學(xué)好這門課程,必須多做實(shí)驗(yàn)。教師需要科學(xué)合理地安排和布置實(shí)驗(yàn)的題目,從而達(dá)到通過實(shí)驗(yàn)提高學(xué)生能力的目的。同時(shí)要加強(qiáng)實(shí)驗(yàn)環(huán)節(jié)的管理,將實(shí)驗(yàn)分為實(shí)驗(yàn)前、實(shí)驗(yàn)中和實(shí)驗(yàn)后這三個(gè)重要的階段。實(shí)驗(yàn)前:教師提前一周布置實(shí)驗(yàn)的題目并給出實(shí)驗(yàn)的具體要求。學(xué)生根據(jù)題目要求給出解題方法;寄存器和內(nèi)存單元的分配說明;畫出程序的流程圖;寫出源程序;寫出實(shí)驗(yàn)的步驟;設(shè)計(jì)程序測(cè)試用例和預(yù)期的運(yùn)行結(jié)果。實(shí)驗(yàn)中:如果匯編源程序時(shí)出現(xiàn)錯(cuò)誤,學(xué)生需要記錄錯(cuò)誤的類型,按照系統(tǒng)的提示信息仔細(xì)檢查和分析,發(fā)現(xiàn)錯(cuò)誤的原因并改正。當(dāng)連接正確后,使用測(cè)試用例的數(shù)據(jù)運(yùn)行程序,若運(yùn)行結(jié)果不正確,利用debug調(diào)試工具分析產(chǎn)生錯(cuò)誤的原因,記錄段寄存器、通用寄存器、標(biāo)志位、內(nèi)存單元值的變化情況。找到產(chǎn)生錯(cuò)誤的指令并加以改正,直到運(yùn)行結(jié)果正確。實(shí)驗(yàn)后:學(xué)生按照教師的實(shí)驗(yàn)報(bào)告要求,認(rèn)真書寫本次實(shí)驗(yàn)的報(bào)告。實(shí)驗(yàn)報(bào)告中包括以下內(nèi)容:題目、要求、解題方法、寄存器和內(nèi)存單元的分配說明、程序的流程圖、源程序、實(shí)驗(yàn)的步驟、設(shè)計(jì)程序測(cè)試用例和預(yù)期的運(yùn)行結(jié)果、調(diào)試中出現(xiàn)的語(yǔ)法錯(cuò)誤、debug調(diào)試的斷點(diǎn)設(shè)置、寄存器和內(nèi)存單元的值、運(yùn)行結(jié)果和實(shí)驗(yàn)結(jié)論等。學(xué)生需在實(shí)驗(yàn)完成的三日內(nèi)完成并向教師提交實(shí)驗(yàn)報(bào)告。教師要認(rèn)真批閱學(xué)生的實(shí)驗(yàn)報(bào)告,總結(jié)學(xué)生容易出現(xiàn)的普遍性錯(cuò)誤,在下次實(shí)驗(yàn)時(shí)提醒學(xué)生注意。
5、新技術(shù)的引入
學(xué)生在學(xué)習(xí)匯編語(yǔ)言課程時(shí)會(huì)與高級(jí)語(yǔ)言比較,學(xué)生普遍認(rèn)為用高級(jí)語(yǔ)言編寫程序更簡(jiǎn)單,所以一方面要引導(dǎo)學(xué)生意識(shí)到匯編語(yǔ)言在編寫與硬件相關(guān)的底層系統(tǒng)軟件時(shí)具有高級(jí)語(yǔ)言所不具備的優(yōu)勢(shì),同時(shí)也要與時(shí)俱進(jìn)地將新的技術(shù)和理念引入課堂中。可以增加保護(hù)模式下編程和win32編程的技術(shù)。主要介紹基于windows窗口的應(yīng)用程序結(jié)構(gòu):主程序、窗口主程序、窗口消息處理程序和用戶處理程序等。
6、教學(xué)內(nèi)容與科研相結(jié)合
教學(xué)和科研是相輔相成的關(guān)系,在教學(xué)中及時(shí)引入科研成果可以提高學(xué)生學(xué)習(xí)的積極性,同時(shí)也可以保持教學(xué)內(nèi)容的先進(jìn)性和實(shí)用性。將用匯編語(yǔ)言實(shí)現(xiàn)軟件的跟蹤與反跟蹤技術(shù)介紹給學(xué)生,對(duì)于有興趣的學(xué)生可以組成研究小組,在教師的指導(dǎo)下深入研究,提高學(xué)生對(duì)于實(shí)際問題的分析和解決能力。
7、輔助教學(xué)資源的擴(kuò)充
充分利用校園網(wǎng)絡(luò)平臺(tái),建設(shè)匯編語(yǔ)言課程的學(xué)習(xí)網(wǎng)站,可以將課程的教學(xué)大綱、電子教案、課件、講課錄像等在網(wǎng)站上進(jìn)行,建立課程的題庫(kù),方便學(xué)生自測(cè)學(xué)習(xí)效果。設(shè)置該課程的學(xué)習(xí)論壇、課程qq群,教師和學(xué)生可以對(duì)課程學(xué)習(xí)和相關(guān)的熱點(diǎn)研究問題進(jìn)行在線討論。鼓勵(lì)學(xué)生多閱讀與匯編語(yǔ)言相關(guān)的英文原版書籍,如:the art of assembly language,randy hyde、ibm pc assembly language and programming,peter abel、電子工業(yè)出版社出版的intel 匯編語(yǔ)言程序設(shè)計(jì)(第4版),kip r、 irvine等。學(xué)生多看原版的教材可以開闊視野和獲取更多的知識(shí)。
c語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告2
實(shí)驗(yàn)名稱 計(jì)算出1000以內(nèi)10個(gè)最大素?cái)?shù)之和
實(shí)驗(yàn)?zāi)康?/strong>
1、熟練掌握if、if…else、if…else if語(yǔ)句和witch語(yǔ)句格式及使用方法,掌握if語(yǔ)句中的嵌套關(guān)系和匹配原則,利用if語(yǔ)句和switch語(yǔ)句實(shí)現(xiàn)分支選擇結(jié)構(gòu)。
2、熟練掌握while語(yǔ)句、do…while語(yǔ)句和for語(yǔ)句格式及使用方法,掌握三種循環(huán)控制語(yǔ)句的循環(huán)過程以及循環(huán)結(jié)構(gòu)的嵌套,利用循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)。
3、掌握簡(jiǎn)單、常用的算法,并在編程過程中體驗(yàn)各種算法的編程技巧。進(jìn)一步學(xué)習(xí)調(diào)試程序,掌握語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤的檢查方法。
實(shí)驗(yàn)內(nèi)容
計(jì)算并輸出1000以內(nèi)最大的10個(gè)素?cái)?shù)以及它們的和。
要求:
在程序內(nèi)部加必要的注釋。
由于偶數(shù)不是素?cái)?shù),可以不考慮對(duì)偶數(shù)的處理。
雖然在1000以內(nèi)的素?cái)?shù)超過10個(gè),但是要對(duì)1000以內(nèi)不夠10個(gè)素?cái)?shù)的情況進(jìn)行處理。
輸出形式為:素?cái)?shù)1+素?cái)?shù)2+素?cái)?shù)3+…+素?cái)?shù)10=總和值。
算法描述流程圖
main函數(shù):
判斷素?cái)?shù):
源程序
#include
#include
int sushu(int n)/* 判斷素?cái)?shù)的函數(shù) */
{
int t,i;
t=sqrt(n);
for(i=2;i<=t;i++)
if(n%i==0)/* 如果不是素?cái)?shù),返回 0 */
return 0;
return n;/* 如果是素?cái)?shù),返回該數(shù) */
}
void main()
{
int i,j=0,n,m=0,a[1000],x;
/*clrscr();*/
printf("please input a number form 1 to 1000:");
scanf("%d",&x);
if(x==2)/* x=2時(shí)的處理 */
printf("%dn",x);
else if(x<=1) /* x在1~1000范圍外時(shí)的處理 */
printf("error!n");
else
{
if(x%2==0)/* x為偶數(shù)時(shí),把x變?yōu)槠鏀?shù) */
x--;
for(i=x;i>1;i-=2)/* x為奇數(shù)時(shí),做函數(shù)計(jì)算 */
{
n=sushu(i); /* 做判斷素?cái)?shù)的函數(shù)調(diào)用 */
if(n!=0)/* 對(duì)素?cái)?shù)的處理 */
{
a[j]=n;/* 把素?cái)?shù)由大至小存入數(shù)組a[ ]中 */
j++;
if(j<11)
m+=n; /* 統(tǒng)計(jì)前10個(gè)素?cái)?shù)之和 */
}
}
if(j<10)/* 當(dāng)素?cái)?shù)個(gè)數(shù)小于10個(gè)時(shí),結(jié)果輸出 */
{
for(i=0;i
{
n=a[i];
printf("%d",n);
printf("+");
}
printf("2=");
printf("%dn",m+2);
}
else for(i=0;i<10;i++)/* 當(dāng)素?cái)?shù)個(gè)數(shù)大于等于10個(gè)時(shí),結(jié)果輸出 */
{
n=a[i];
printf("%d",n);
if(i<9)
printf("+");
else
{
printf("=");
printf("%dn",m);
}
}
}
}
測(cè)試數(shù)據(jù)
分別輸入1000、100、10測(cè)試。
運(yùn)行結(jié)果
出現(xiàn)問題及解決方法
當(dāng)素?cái)?shù)個(gè)數(shù)小于10時(shí)的處理不夠完善,考慮不夠周全。把“+2”的處理做的太勉強(qiáng)。
程序過大,不夠精簡(jiǎn),無用文字太多。
學(xué)習(xí)耐心與細(xì)心不足,如scanf(“%d”,&n);中的“&”經(jīng)常忘記。
編程思想不夠發(fā)散,例如如何判斷素?cái)?shù),只能想出2種方式(其中1種為參考教科書上內(nèi)容);在今后學(xué)習(xí)中應(yīng)更多的動(dòng)腦,綜合運(yùn)用所學(xué)。
基本功不夠,如清屏clrscr()等函數(shù)用的不好,有時(shí)同樣的.問題多次犯,給實(shí)驗(yàn)課老師帶來很大的麻煩。這說明我的知識(shí)不夠廣,有很多有用但不做考試要求的書中內(nèi)容沒有學(xué)好,認(rèn)識(shí)程度不夠深刻。就算以后c語(yǔ)言這門課程結(jié)束后,也應(yīng)多看相關(guān)東西,多上機(jī)練習(xí),才能真正從本質(zhì)上提高自己。
物理實(shí)驗(yàn)報(bào)告 ·化學(xué)實(shí)驗(yàn)報(bào)告 ·生物實(shí)驗(yàn)報(bào)告 ·實(shí)驗(yàn)報(bào)告格式 ·實(shí)驗(yàn)報(bào)告模板
知識(shí)不夠廣泛,如vc++6.0等程序,自己試了好一陣也不會(huì)用;說明我電腦水平還是不夠,自學(xué)能力不夠。已會(huì)的東西掌握的還是不夠好。
實(shí)驗(yàn)心得
通過本次c語(yǔ)言上機(jī)實(shí)驗(yàn),我對(duì)這個(gè)介于人類與非人類之間
的計(jì)算機(jī)編程語(yǔ)言有了一定的體驗(yàn)。其間開心過、郁悶過、無奈過、彷徨過……隨著實(shí)驗(yàn)的勝利成功與實(shí)驗(yàn)報(bào)告的勝利完成,有點(diǎn)微微的自豪感使人難忘。感謝高克寧老師的高標(biāo)準(zhǔn)、嚴(yán)要求,感謝實(shí)驗(yàn)課上小老師們的耐心指點(diǎn),也感謝我在實(shí)驗(yàn)中經(jīng)歷過的點(diǎn)點(diǎn)滴滴……伴隨著學(xué)習(xí)的深入,我發(fā)現(xiàn)高深的東西還有很多很多,等待著我自己去挖掘。對(duì)c語(yǔ)言,我會(huì)更加努力。
【c語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告】相關(guān)文章:
c語(yǔ)言實(shí)驗(yàn)報(bào)告范本03-18
c語(yǔ)言程序設(shè)計(jì)心得體會(huì)04-10
c語(yǔ)言程序設(shè)計(jì)心得體會(huì)(通用13篇)12-28
c語(yǔ)言程序設(shè)計(jì)心得體會(huì)經(jīng)典(5篇)09-29
C程序設(shè)計(jì)求職信02-13
c語(yǔ)言與c++基礎(chǔ)知識(shí)點(diǎn)總結(jié)12-17
C#程序設(shè)計(jì)下課程設(shè)計(jì)教學(xué)分析12-17
C語(yǔ)言專業(yè)求職信12-17