曉莊-C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告1_第1頁(yè)
曉莊-C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告1_第2頁(yè)
曉莊-C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告1_第3頁(yè)
曉莊-C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告1_第4頁(yè)
曉莊-C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告1_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告學(xué)院班級(jí)學(xué)號(hào)姓名指導(dǎo)教師

實(shí)驗(yàn)1簡(jiǎn)單程序設(shè)計(jì)1.實(shí)驗(yàn)?zāi)康模?)熟悉C語(yǔ)言開(kāi)發(fā)環(huán)境并掌握在該環(huán)境下如何編輯、編譯、連接和運(yùn)行一個(gè)C程序。(2)通過(guò)運(yùn)行一個(gè)簡(jiǎn)單的C程序過(guò)程,初步了解C程序的基本結(jié)構(gòu)及特點(diǎn)。2.實(shí)驗(yàn)要求將主菜單輸出在屏幕上。運(yùn)行程序后,其結(jié)果如下:圖1-1成績(jī)管理系統(tǒng)主菜單3.實(shí)驗(yàn)步驟編寫(xiě)頭文件sgms1.h,對(duì)menu函數(shù)進(jìn)行聲明。將sgms1.c源文件補(bǔ)充完整4.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)C程序是由一個(gè)個(gè)函數(shù)構(gòu)成,當(dāng)一個(gè)函數(shù)調(diào)用另一個(gè)函數(shù)時(shí),需要對(duì)被調(diào)函數(shù)作聲明。用戶自定以的函數(shù)最好寫(xiě)在一個(gè)頭文件中,在需要的地方用文件包含命令即可。system(“cls”)函數(shù)的作用是清屏,它的聲明在頭文件stdlib.h中。如果是在Linux操作系統(tǒng)的gcc環(huán)境下,清屏用system(”clear”)。5.常見(jiàn)錯(cuò)誤(1)數(shù)據(jù)聲明或語(yǔ)句后面缺少分號(hào)。(2)對(duì)被調(diào)函數(shù)沒(méi)有聲明。(3)沒(méi)有main函數(shù)或者有多個(gè)main函數(shù)。6.程序代碼7.實(shí)驗(yàn)結(jié)果8.心得體會(huì)

實(shí)驗(yàn)2順序結(jié)構(gòu)程序設(shè)計(jì)1.實(shí)驗(yàn)?zāi)康恼莆誄語(yǔ)言數(shù)據(jù)類型,熟悉如何定義一個(gè)整型、字符型、實(shí)型變量。掌握數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式控制符。掌握算術(shù)運(yùn)算符和賦值運(yùn)算符。2.實(shí)驗(yàn)要求當(dāng)用戶選擇0后,在屏幕上輸出“Youwillquit,thankyouforusingthesystem!”信息,然后結(jié)束程序運(yùn)行。當(dāng)用戶選擇1后,進(jìn)入輸入記錄,輸入完后,顯示輸入結(jié)果。運(yùn)行程序后,其結(jié)果如下:首先出現(xiàn)主菜單界面圖2-1主菜單界面當(dāng)用戶輸入0回車后,出現(xiàn)退出系統(tǒng)界面當(dāng)用戶在主菜單界面上輸入1回車后,出現(xiàn)輸入記錄界面圖2-3輸入記錄界面3.實(shí)驗(yàn)步驟將quit和addRecord函數(shù)的聲明添加到實(shí)驗(yàn)提供的頭文件sgms2.h中。將實(shí)驗(yàn)提供的sgms2.c文件的main函數(shù)和addRecord函數(shù)補(bǔ)充完整。運(yùn)行由sgms2.h和sgms2.c構(gòu)成的程序。4.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)(1)用scanf和printf對(duì)數(shù)據(jù)進(jìn)行輸入輸出時(shí),不同的數(shù)據(jù)類型用不同的格式控制符。(2)scanf函數(shù)中的格式控制后面應(yīng)當(dāng)是變量地址,而不是變量名。5.常見(jiàn)錯(cuò)誤變量沒(méi)有定義,直接使用。企圖利用整數(shù)除以整數(shù)得到精確結(jié)果。例如1/4結(jié)果不是0.25而是0,1/4.0結(jié)果才是0.25。printf和scanf函數(shù)中格式控制符的個(gè)數(shù)與變量或變量地址的個(gè)數(shù)不一致。scanf函數(shù)的地址表列因該是變量地址,而不是變量名。scanf函數(shù)在格式控制字符串中除了格式說(shuō)明以外還有其他字符時(shí),在輸入數(shù)據(jù)沒(méi)有在對(duì)應(yīng)的位置輸入與這些字符相同的字符。6.程序代碼7.實(shí)驗(yàn)結(jié)果8.心得體會(huì)

實(shí)驗(yàn)3選擇結(jié)構(gòu)程序設(shè)計(jì)1.實(shí)驗(yàn)?zāi)康牧私釩語(yǔ)言表示邏輯變量的方法學(xué)會(huì)正確使用關(guān)系運(yùn)算符和邏輯運(yùn)算符。熟練掌握if語(yǔ)句和switch語(yǔ)句。2.實(shí)驗(yàn)要求將sgms3.c文件中main函數(shù)中的用于功能選擇的if語(yǔ)句改為switch語(yǔ)句。在輸入分?jǐn)?shù)時(shí),如果輸入的分?jǐn)?shù)在0到100之外,則輸出提示信息,并等待重新輸入。輸入記錄界面如下:圖3-1輸入記錄界面3.實(shí)驗(yàn)步驟將sgms3.c文件中main函數(shù)中的用于功能選擇的if語(yǔ)句改為switch語(yǔ)句。將sgms3.c文件中的addRecord函數(shù)補(bǔ)充完整。運(yùn)行由sgms3.h和sgms3.c構(gòu)成的程序。4.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)(1)注意關(guān)系運(yùn)算符==和復(fù)制運(yùn)算符=的區(qū)別。(2)if和else的匹配原則。(3)在switch語(yǔ)句中正確使用break。5.常見(jiàn)錯(cuò)誤(1)賦值運(yùn)算符=和關(guān)系運(yùn)算符等號(hào)=搞混。(2)在if語(yǔ)句為復(fù)合語(yǔ)句時(shí),忘記寫(xiě){}。(3)if語(yǔ)句出現(xiàn)嵌套時(shí),沒(méi)正確配對(duì)。(4)switch語(yǔ)句中,沒(méi)正確使用break。6.程序代碼7.實(shí)驗(yàn)結(jié)果8.心得體會(huì)

實(shí)驗(yàn)4循環(huán)結(jié)構(gòu)程序設(shè)計(jì)1.實(shí)驗(yàn)?zāi)康氖炀氄莆昭h(huán)語(yǔ)句中的for語(yǔ)句、while語(yǔ)句和dowhile語(yǔ)句的使用方法,以及這三種循環(huán)語(yǔ)句之間的轉(zhuǎn)換方法。掌握編寫(xiě)循環(huán)結(jié)構(gòu)程序的方法。2.實(shí)驗(yàn)要求實(shí)現(xiàn)在一次程序運(yùn)行中用戶能多次進(jìn)行功能選擇。也就是當(dāng)用戶完成添加或者后面實(shí)驗(yàn).中的顯示、刪除等等功能后,系統(tǒng)又會(huì)回到主菜單,等待用戶的下一次功能選擇。在輸入分?jǐn)?shù)時(shí),如果輸入的分?jǐn)?shù)在0到100之外,則等待用戶重新輸入,直到輸入的分?jǐn)?shù)在0到100之間才結(jié)束。運(yùn)行程序后,首先出現(xiàn)主菜單界面:圖4-1系統(tǒng)主菜單用戶輸入1回車后,進(jìn)入輸入,在輸入分?jǐn)?shù)時(shí),分?jǐn)?shù)必須在0-100之間,否則需要重新輸入,直到分?jǐn)?shù)滿足要求:圖4-2輸入記錄界面輸入記錄完后,按任意鍵又回到主菜單界面,見(jiàn)圖4-1。3.實(shí)驗(yàn)步驟完善sgms4.c中的main的函數(shù),以達(dá)到實(shí)驗(yàn)要求1。將sgms4.c中addRecord函數(shù)的while循環(huán)改為dowhile循環(huán),以達(dá)到實(shí)驗(yàn)要求。運(yùn)行由sgms4.h和sgms4.c構(gòu)成的程序。4.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)循環(huán)結(jié)構(gòu)程序的設(shè)計(jì)方法。while和dowhile循環(huán)之間的轉(zhuǎn)換方法。getch函數(shù)從鍵盤接收一個(gè)字符,該函數(shù)被調(diào)用后程序會(huì)暫停,等待按任意鍵,再繼續(xù)執(zhí)行后續(xù)的語(yǔ)句,以便我們觀察中間結(jié)果。在VC++下需要包含conio.h頭文件,在Linux下需要包含頭文件curses.h。由于在Linux下getch函數(shù)還需要與其它函數(shù)配合使用才能達(dá)到上面所說(shuō)的功能并且在編譯時(shí)還要指定鏈接所使用的庫(kù)文件,所以在Linux環(huán)境建議使用兩次調(diào)用getchar函數(shù)來(lái)替換getch函數(shù)。5.常見(jiàn)錯(cuò)誤(1)循環(huán)體為復(fù)合語(yǔ)句時(shí),沒(méi)用{}括起來(lái)。(2)在while()和for()后面添加分號(hào),使得循環(huán)體為空語(yǔ)句。(3)for括號(hào)里的分號(hào)和逗號(hào)用錯(cuò)。(4)循環(huán)嵌套時(shí),內(nèi)循環(huán)的初始條件和循環(huán)體沒(méi)正確設(shè)計(jì)好。6.程序代碼7.實(shí)驗(yàn)結(jié)果8.心得體會(huì)

實(shí)驗(yàn)5數(shù)組的應(yīng)用實(shí)驗(yàn)?zāi)康模?)掌握一維數(shù)組和二維數(shù)組的定義和引用。(2)掌握字符數(shù)組和字符串函數(shù)的使用。(3)掌握與數(shù)組有關(guān)的算法(特別是排序算法)。2.實(shí)驗(yàn)要求將學(xué)生信息用二維數(shù)組存放。增加顯示功能。增加排序功能,排序時(shí)按照平均成績(jī)有小到大。運(yùn)行程序后,首先添加學(xué)生記錄。設(shè)添加三個(gè)學(xué)生信息,他們的各科成績(jī)分別為:1號(hào)30、40、80,2號(hào)80、60、60,3號(hào)60、70、70?;氐街鞑藛谓缑妫绻斎?,則進(jìn)入顯示記錄:圖5-1顯示記錄界面在主菜單界面,如果輸入3,則進(jìn)行排序,結(jié)果如下:圖5-2排序界面3.實(shí)驗(yàn)步驟在sgms5.c中將main函數(shù)補(bǔ)充完整,完成數(shù)組定義。在sgms5.c中的addRecord函數(shù)添加代碼,將學(xué)生數(shù)目加1。在sgms5.c中的dispRecord和sortRecord函數(shù)中添加代碼,將所有學(xué)生成績(jī)一一顯示出來(lái)。將sgms5.c中sortRecord函數(shù)的選擇排序法改為起泡排序法。運(yùn)行由sgms5.h和sgms5.c構(gòu)成的程序。4.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)(1)在循環(huán)中,數(shù)組元素的引用。(2)起泡排序法、選擇排序法和插入排序法。5.常見(jiàn)錯(cuò)誤(1)數(shù)組定義時(shí),沒(méi)規(guī)定數(shù)組長(zhǎng)度或者長(zhǎng)度為一變量。(2)循環(huán)中數(shù)組元素的下標(biāo)沒(méi)正確表示。(3)起泡排序、選擇排序和插入排序算法沒(méi)理解透。(4)起泡排序、選擇排序和插入排序中,循環(huán)的初始條件和終止條件出現(xiàn)錯(cuò)誤。(5)字符串的復(fù)制和比較直接使用賦值運(yùn)算符和關(guān)系運(yùn)算符。6.程序代碼7.實(shí)驗(yàn)結(jié)果8.心得體會(huì)

實(shí)驗(yàn)6函數(shù)的應(yīng)用1.實(shí)驗(yàn)?zāi)康恼莆蘸瘮?shù)的定義和調(diào)用方法。掌握函數(shù)實(shí)參與形參的對(duì)應(yīng)關(guān)系,以及“值傳遞”的方式。掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法。掌握全局變量和局部變量,動(dòng)態(tài)變量以及靜態(tài)變量的概念和使用方法。2.實(shí)驗(yàn)要求增加全局變量用以表示學(xué)生記錄是否需要存盤。在添加學(xué)生記錄時(shí),輸入的學(xué)號(hào)不能和已有的重復(fù),否則需要重新輸入,直到不相同。增加按學(xué)號(hào)查詢功能。增加按學(xué)號(hào)修改功能。設(shè)已添加1號(hào)2號(hào)3號(hào)學(xué)生,則在增加學(xué)生記錄時(shí),出現(xiàn)下面界面:圖6-1輸入學(xué)生記錄在主菜單,如果輸入4,則進(jìn)入查詢。圖6-2查詢記錄界面1在查詢時(shí),如果輸入的學(xué)號(hào)不存在,則出現(xiàn)下面界面。圖6-3查詢記錄界面2在主菜單界面,如果輸入5,則進(jìn)行修改記錄。圖6-4修改記錄界面3.實(shí)驗(yàn)步驟在sgms6.h頭文件中增加3個(gè)函數(shù)的聲明,它們的函數(shù)原型分別為intlocationRecord(intstuArray[][5],intnum),voidfindRecord(intstuArray[][5]),voidmodiRecord(intstuArray[][5])。在sgms6.c中定義全局變量SAVEFLAG,初始值為0,并在addRecord和sortRecord函數(shù)中將其值修改為1,表示數(shù)據(jù)有修改,需要存盤。將sgms6.c中main函數(shù)的case4和case5后面的內(nèi)容補(bǔ)充完整。將sgms6.c中addRecord函數(shù)的while循環(huán)體補(bǔ)充完整,以滿足實(shí)驗(yàn)要求2。在sgms6.c中編程完成locationRecord函數(shù)的定義。在sgms6.c的findRecord函數(shù)中添加locationRecord函數(shù)的調(diào)用。在sgms6.c中編程完成modiRecord函數(shù)的定義。運(yùn)行由sgms6.h和sgms6.c構(gòu)成的程序。4.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)(1)函數(shù)的定義和調(diào)用方法。(2)函數(shù)的實(shí)參數(shù)為數(shù)組時(shí),形參的形式以及實(shí)參和形參之間的數(shù)據(jù)傳遞方式。(3)函數(shù)的遞歸調(diào)用。5.常見(jiàn)錯(cuò)誤(1)函數(shù)沒(méi)定義,就被調(diào)用。(2)函數(shù)定義了,又沒(méi)被調(diào)用。(3)定義函數(shù)時(shí),形參沒(méi)規(guī)定類型。(4)函數(shù)調(diào)用時(shí),實(shí)參前加類型。(5)被調(diào)函數(shù)沒(méi)有聲明(6)嵌套調(diào)用和遞歸調(diào)用沒(méi)理解透,使用錯(cuò)誤。(7)全局變量和局部變量有效范圍沒(méi)能正確區(qū)分。6.程序代碼7.實(shí)驗(yàn)結(jié)果8.心得體會(huì)

實(shí)驗(yàn)7指針的應(yīng)用1.實(shí)驗(yàn)?zāi)康模?)熟練掌握指針的定義、賦值和使用。(2)掌握用指針引用數(shù)組的元素、熟悉指向數(shù)組的指針的使用。(3)熟練掌握字符數(shù)組與字符串的使用,掌握指針數(shù)組。(4)掌握指針函數(shù)與函數(shù)指針的用法。2.實(shí)驗(yàn)要求將添加、顯示、排序、定位、查找、修改等函數(shù)全部用指針?lè)绞教幚?。增加統(tǒng)計(jì)各科不及格人數(shù)、平均成績(jī)和最高成績(jī)功能。增加按學(xué)號(hào)刪除記錄功能。設(shè)已添加三個(gè)學(xué)生信息,他們的各科成績(jī)分別為:1號(hào)30、40、80,2號(hào)80、60、60,3號(hào)60、70、70。則在主菜單界面上,選擇7,進(jìn)行統(tǒng)計(jì)。圖7-1統(tǒng)計(jì)記錄界面在主菜單界面上,如果選擇6,則進(jìn)入刪除記錄功能。圖7-2刪除記錄界面3.實(shí)驗(yàn)步驟在sgms7.h文件中增加刪除和統(tǒng)計(jì)函數(shù)的聲明,它們的函數(shù)原型分別為voiddeleRecord(int(*stuArray)[5])和voidcountRecord(int(*stuArray)[5])。將sgms7.c文件中addRecord函數(shù)的錯(cuò)誤進(jìn)行改正。完善sgms7.c文件中dispRecord和sortRecord函數(shù)。編寫(xiě)sgms7.c文件中l(wèi)ocationRecord函數(shù)體,要用指針?lè)绞教幚碓趕gms7.c文件中findRecord和modiRecord函數(shù)定義指向locationRecord函數(shù)的指針變量,并利用它調(diào)用locationRecord函數(shù)。在sgms7.c文件中編程完成deleRecord函數(shù)定義。在sgms7.c文件中編程完成countRecord函數(shù)定義。運(yùn)行由sgms7.h和sgms7.c構(gòu)成的程序。4.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)(1)列指針變量的定義、賦值以及利用它引用數(shù)組元素。(2)行指針變量的定義、賦值以及它在二維數(shù)組中的使用。(3)函數(shù)指針變量的定義、賦值和利用它進(jìn)行函數(shù)調(diào)用。5.常見(jiàn)錯(cuò)誤(1)混淆變量值和變量地址。(2)指針變量沒(méi)有初始化,就利用該指針變量引用變量。(3)利用指針變量引用一維數(shù)組元素和二維數(shù)組元素或地址時(shí),引用的方法不對(duì)。(4)函數(shù)指針概念清楚。(5)混淆行指針變量和指針數(shù)組。6.程序代碼7.實(shí)驗(yàn)結(jié)果8.心得體會(huì)

實(shí)驗(yàn)8結(jié)構(gòu)體的應(yīng)用1.實(shí)驗(yàn)?zāi)康模?)掌握結(jié)構(gòu)體變量、結(jié)構(gòu)體數(shù)組以及結(jié)構(gòu)體指針的定義和使用。(2)掌握動(dòng)態(tài)存儲(chǔ)分配函數(shù)的用法和單向鏈表的創(chuàng)建、輸出等操作。(3)掌握用typedef定義類型。2.實(shí)驗(yàn)要求用單向鏈表來(lái)存儲(chǔ)學(xué)生信息,并實(shí)現(xiàn)添加記錄和輸出記錄等功能。3.實(shí)驗(yàn)步驟完善sgms8.h文件中的結(jié)構(gòu)體類型的定義。將sgms8.c文件中main函數(shù)補(bǔ)充完整。將sgms8.c文件中addRecord函數(shù)進(jìn)行改錯(cuò)和完善。編程實(shí)現(xiàn)sgms8.c文件中dispRecord函數(shù)。運(yùn)行由sgms8.h和sgms8.c構(gòu)成的程序。4.實(shí)驗(yàn)重點(diǎn)和難點(diǎn)結(jié)構(gòu)成員引用的三種方法。鏈表節(jié)點(diǎn)數(shù)據(jù)類型的定義。malloc函數(shù)用于動(dòng)態(tài)分配存儲(chǔ)空間,它的返回值類型是void*,在實(shí)際使用中一般需要強(qiáng)類型轉(zhuǎn)換成多需要的類型。該函數(shù)的聲明在stdlib.h頭文件中。鏈表操作中,節(jié)點(diǎn)指針域的使用。5.常見(jiàn)錯(cuò)誤(1)引用結(jié)構(gòu)體成員時(shí),成員運(yùn)算符.和指向運(yùn)算符->的使用混淆。(2)鏈表操作過(guò)程中不能正確利用指針域進(jìn)行操作。(3)不能正確使用typedef聲明新類型名。6.程序代碼7.實(shí)驗(yàn)結(jié)果8.心得體會(huì)

實(shí)驗(yàn)9文件的應(yīng)用1.實(shí)驗(yàn)?zāi)康模?)掌握文件、緩沖文件系統(tǒng)以

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論