曉莊-C語言程序設(shè)計實驗報告1_第1頁
曉莊-C語言程序設(shè)計實驗報告1_第2頁
曉莊-C語言程序設(shè)計實驗報告1_第3頁
曉莊-C語言程序設(shè)計實驗報告1_第4頁
曉莊-C語言程序設(shè)計實驗報告1_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計實驗報告學(xué)院班級學(xué)號姓名指導(dǎo)教師

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論