資源描述:
《C語言程序設(shè)計(jì)A綜合程序設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、C語言程序設(shè)計(jì)A實(shí)驗(yàn)綜合程序設(shè)計(jì)桂林電子科技大學(xué)教學(xué)實(shí)踐部秦興國(guó)Email:xgqin@guet.edu.cnOutline實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)要求綜合程序設(shè)計(jì)實(shí)驗(yàn)要求實(shí)驗(yàn)提示實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)要求利用所學(xué)過的C語言編程的基礎(chǔ)知識(shí)如綜合順序、分支、循環(huán)結(jié)構(gòu)和函數(shù),以及數(shù)組、指針、結(jié)構(gòu)體和共用體、文件等進(jìn)行編程,較全面地掌握C語言的知識(shí);初步掌握輸入、輸出、查找、排序的編程方法;逐步掌握C語言編程基本方法和技能。綜合程序設(shè)計(jì)實(shí)驗(yàn)要求-1綜合程序設(shè)計(jì)實(shí)驗(yàn)(對(duì)應(yīng)指導(dǎo)書上實(shí)驗(yàn)13)由同學(xué)們?cè)谡n外完成;綜合程序設(shè)計(jì)實(shí)驗(yàn)內(nèi)容涉及文件、結(jié)構(gòu)體、指針等概念;對(duì)這些概念不熟悉的同學(xué)了解相關(guān)理
2、論知識(shí)或者對(duì)照實(shí)驗(yàn)指導(dǎo)書中相關(guān)內(nèi)容進(jìn)行學(xué)習(xí);實(shí)驗(yàn)內(nèi)容為1~3(任選一題),實(shí)驗(yàn)內(nèi)容4不要求;綜合程序設(shè)計(jì)實(shí)驗(yàn)要求-2提交報(bào)告時(shí)間為第18周周3;過期未提交者則該次實(shí)驗(yàn)為0分;提交報(bào)告時(shí),請(qǐng)將源代碼與實(shí)驗(yàn)報(bào)告分別單獨(dú)提交;不要抄襲,報(bào)告提交系統(tǒng)有檢測(cè)抄襲功能;實(shí)驗(yàn)提示:水費(fèi)電費(fèi)問題-1題目及要求如實(shí)驗(yàn)指導(dǎo)書p69所述提示所有輸入數(shù)據(jù)均從文件input.dat中讀取,注意input.dat為文本文件,讀取該文件時(shí),應(yīng)采文本文件格式讀取(fp=fopen(“input.dat”,“r”));input.dat文件第一行分別為水費(fèi)和電費(fèi)的單價(jià);讀取文件時(shí)應(yīng)注意文件指針是否
3、已經(jīng)到達(dá)文件尾;實(shí)驗(yàn)提示:水費(fèi)電費(fèi)問題-2提示對(duì)于住戶地址、水耗、電耗等信息可以采用多種形式進(jìn)行存儲(chǔ):以下列出2種使用三個(gè)數(shù)組分別存儲(chǔ)住戶地址、水耗、電耗三個(gè)數(shù)組(例如a[N],b[N],c[N])的長(zhǎng)度分別為總的用戶數(shù),可以通過#defineN6等宏定義進(jìn)行定義使用結(jié)構(gòu)體數(shù)組存儲(chǔ)住戶地址、水耗、電耗定義的結(jié)構(gòu)體應(yīng)該至少包含3個(gè)成員,例如:structinfo{intaddress;intwater_consume;intelec_consume;}arrary[N];//定義長(zhǎng)度為N的結(jié)構(gòu)數(shù)組實(shí)驗(yàn)提示:水費(fèi)電費(fèi)問題-3提示所編寫的程序,應(yīng)該給出足夠的提示信息,以
4、便程序運(yùn)行者能知道程序的功能,以及程序的狀態(tài)和完成的工作。程序編寫應(yīng)該具有擴(kuò)展性,能針對(duì)同一格式的輸入數(shù)據(jù)文件,產(chǎn)生一致的結(jié)果。程序應(yīng)該能夠?qū)γ黠@的數(shù)據(jù)錯(cuò)誤進(jìn)行檢查。讀寫文件可考慮使用fscanf、fprintf等文件操作函數(shù)。實(shí)驗(yàn)提示:學(xué)生課程信息管理-1題目及要求如實(shí)驗(yàn)指導(dǎo)書p70所述提示input函數(shù)要自己編寫,其功能是從鍵盤中輸入所有學(xué)生的課程信息(包括:學(xué)號(hào)、姓名、5門課程成績(jī));保存鍵盤輸入的學(xué)生數(shù)據(jù)至文件cj.dat中;PrintScore函數(shù)要自己編寫,其功能是輸出每一門課程的成績(jī)表,注意其輸出按照學(xué)號(hào)從小到大的順序輸出;PrintScore函數(shù)還
5、負(fù)責(zé)輸出全班成績(jī)的統(tǒng)計(jì)信息,具體信息如p70最后5行所述;實(shí)驗(yàn)提示:學(xué)生課程信息管理-2提示學(xué)生信息的描述,可以采用與“水電費(fèi)問題”中關(guān)于用戶信息描述相類似的做法:定義3個(gè)數(shù)組用于描述學(xué)生的相關(guān)信息,例如:charid[N][20];charname[N][20];intscore[N][7];其中N代表學(xué)生總數(shù),對(duì)于某一個(gè)學(xué)生的id,姓名可以通過scanf(“%s”,id[i]);scanf(“%s”,name[i]);進(jìn)行輸入;實(shí)驗(yàn)提示:學(xué)生課程信息管理-3提示score數(shù)組則用于存儲(chǔ)學(xué)生的成績(jī)和總分以及平均分;對(duì)于某一個(gè)學(xué)生而言,其對(duì)應(yīng)score[i]開始的
6、數(shù)組元素;則score[i][0]~score[i][4]可用于保存學(xué)生的5門課程成績(jī);score[i][5]、score[i][6]則可分別用于保存總分和平均分;通過這樣,則可在每輸入完一個(gè)學(xué)生的成績(jī)后即可算出其總分和平均分,并將其保存至score數(shù)組相應(yīng)元素中,方便后續(xù)操作使用;注意輸入成績(jī)應(yīng)使用類似的格式:scanf(“%d”,&score[i][j]);其中0<=j<=4,0<=i7、trcmp(id[i],id[j])>0){//說明id[i]對(duì)應(yīng)的學(xué)號(hào)比id[j]對(duì)應(yīng)的學(xué)號(hào)要大…}else{//說明id[i]對(duì)應(yīng)的學(xué)號(hào)比id[j]對(duì)應(yīng)的學(xué)號(hào)要小…}實(shí)驗(yàn)提示:學(xué)生課程信息管理-5提示課程成績(jī)表按學(xué)號(hào)大小進(jìn)行排序時(shí),可采用簡(jiǎn)單的排序算法,但應(yīng)該注意在排序算法中進(jìn)行元素交換時(shí),不應(yīng)該只是某2個(gè)學(xué)生的學(xué)號(hào)進(jìn)行交換,而應(yīng)該包括與這2個(gè)學(xué)號(hào)對(duì)應(yīng)的學(xué)生的所有信息都進(jìn)行交換。if(strcmp(id[i],id[j])>0){//說明id[i]對(duì)應(yīng)的學(xué)號(hào)比id[j]對(duì)應(yīng)的學(xué)號(hào)要大//學(xué)號(hào)對(duì)應(yīng)的位置進(jìn)行交換strcpy(temp_id,id[i]);//te
8、mp_id