




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)一檢查程序的可維護(hù)性實(shí)驗(yàn)內(nèi)容a、認(rèn)真分析程序代碼,了解程序的功能;b、找出程序中的錯(cuò)誤,對(duì)其進(jìn)行修改;c、找出程序中不符合規(guī)范的地方,進(jìn)行修改;d、對(duì)輸入的分?jǐn)?shù)進(jìn)行檢測(cè),規(guī)定不小于零,不大于100;e、為了檢測(cè)程序輸出的對(duì)錯(cuò),規(guī)定通過(guò)在輸入結(jié)束后,顯示輸入的學(xué)生數(shù)據(jù);f、假如學(xué)生人數(shù)為6,每個(gè)同學(xué)有4門(mén)課,請(qǐng)?jiān)谠闯绦蛏闲薷摹3绦虼a:structstudent{charnum[6];charname[8];intfenshuintmain(){?inti,j,sum;?FILE*fp; /*input*/ for(i=0,i<5,i++){printf("\npleaseinputNo.%dfenshu:\n",i); printf("stuNo:");scanf("%s",stu[i].num);printf("name:"); scanf("%s",stu[i].name);sum=0; for(j=0,j<3,j++){printf("fenshu%d.",j+1);?scanf("%d",&stu[i].fenshu[j]); sum+=stu[i].fenshu[j];} stu[i].avr=sum/3.0;}fp=fopen("stud","w"); for(i=0,i<5,i++)fprintf(fp,"%s\t%s\t%d\t%d\t%d\t%f\n",stu[i].num,stu[i].name,stu[i].fenshu[0],stu[i].fenshu[1],stu[i].fenshu[2],stu[i].avr);?fclose(fp);}實(shí)驗(yàn)環(huán)節(jié)將代碼拷貝到c++編譯器中,這里使用的是devc++。將代碼格式規(guī)范一下。由于程序用到了文獻(xiàn)流,所以加上”#include<iostream>”。注意到程序中的for語(yǔ)句中的語(yǔ)句是用逗號(hào)分隔的,將逗號(hào)改為分號(hào)。程序中的scanf語(yǔ)句,輸入的對(duì)象應(yīng)當(dāng)是一個(gè)地址,在對(duì)象前加上取地址符號(hào)&。編譯成功,修改后的程序代碼如下:(最后一個(gè)’}’沒(méi)截到)這個(gè)程序?qū)⒔Y(jié)果輸出到項(xiàng)目下的一個(gè)名為”stud.txt”的文本文獻(xiàn)里。程序運(yùn)營(yíng)情況如下:打開(kāi)”stud.txt”,發(fā)現(xiàn)成績(jī)信息已經(jīng)被寫(xiě)入文獻(xiàn):至于實(shí)驗(yàn)規(guī)定的最后三點(diǎn),e.在scanf語(yǔ)句后加一個(gè)if語(yǔ)句判斷得到的數(shù)據(jù)是否小于一百,若不是,重新輸入f.在最后加一個(gè)輸出語(yǔ)句就行了,輸出語(yǔ)句就跟最后一個(gè)for循環(huán)同樣。g.修改一下structstudent類型的成員就行了,程序中的for循環(huán)的變量也要改一下。鑒于篇幅因素這里不再貼代碼了。實(shí)驗(yàn)心得實(shí)驗(yàn)二使用Understand程序理解工具實(shí)驗(yàn)?zāi)康?.了解Understand程序理解工具的重要功能。2.學(xué)會(huì)使用Understand理解程序代碼。二.實(shí)驗(yàn)環(huán)境安裝Understand的PC機(jī)一臺(tái)。三.實(shí)驗(yàn)內(nèi)容1、創(chuàng)建新工程;2、導(dǎo)入程序代碼;3、導(dǎo)出程序相應(yīng)的可視化圖形;創(chuàng)建新工程:1)在GettingStarted標(biāo)簽頁(yè)點(diǎn)擊NewProject鏈接,或者在菜單欄選擇File>New>Project。在引導(dǎo)程序Creat(yī)eaprojectfile頁(yè)面,輸入工程名稱,指定工程文獻(xiàn)保存的途徑。推薦將工程文獻(xiàn)保存到源代碼所在目錄的頂級(jí)目錄。假如指定途徑不存在,會(huì)彈出提醒窗口,向用戶詢問(wèn)是否需要?jiǎng)?chuàng)建該目錄。2)點(diǎn)擊Next,跳轉(zhuǎn)到Language頁(yè)面。3)通過(guò)頁(yè)面上的多選框?yàn)楣こ踢x擇當(dāng)前使用語(yǔ)言(詳見(jiàn)語(yǔ)言類別配置),對(duì)于MicroSoftVisualC創(chuàng)建的C/C++/C#工程,可以選擇最下面的多選框直接導(dǎo)入工程設(shè)立。然后繼續(xù)點(diǎn)擊Next。4)選擇從Visual工程導(dǎo)入,可以看到VisualStudioFile(s)頁(yè)面,否則可以直接跳轉(zhuǎn)到下一步。點(diǎn)擊Add,彈出AddanewVisualStudiofile對(duì)話框,可以將Understand工程與VisualStudio工程進(jìn)行同步。在彈出對(duì)話框中點(diǎn)擊…,擬定VisualStudio工程文獻(xiàn),選擇Understand分析代碼需要遵循的工程設(shè)立,然后點(diǎn)擊OK。然后繼續(xù)點(diǎn)擊Next。5)點(diǎn)擊Next。6)點(diǎn)擊Finish。7)選擇Graphs>ProjectGraphs>UMLClassDiagram8)右鍵單擊函數(shù)api_(kāi)new_file_operator,選擇GraphicalViews>ControlFlow9)右鍵單擊類IFileOperator,選擇GraphicalViews>Declaration實(shí)驗(yàn)心得為了更好的理解程序,有時(shí)候圖是一個(gè)很好的方法。不僅可以把程序的邏輯直觀的展示出來(lái),并且可以方便與別人分享,很多邏輯上的問(wèn)題也許代碼上看不出來(lái),但是采用圖的方法就很方便了。實(shí)驗(yàn)三提高程序的可維護(hù)性實(shí)驗(yàn)?zāi)康?.理解程序的可維護(hù)性。2.提高程序的可維護(hù)性。3.實(shí)現(xiàn)程序的維護(hù)。二.實(shí)驗(yàn)環(huán)境安裝MicrosoftVisualC++的PC機(jī)一臺(tái)。三.實(shí)驗(yàn)內(nèi)容:兩人一組,分別從三個(gè)題目中選擇一題(兩人不要選同一題)完畢,然后由對(duì)方進(jìn)行維護(hù),涉及修改程序中不合理的地方,補(bǔ)充注釋,擴(kuò)展程序功能等。題目一:有n個(gè)人圍成一圈,順序排號(hào)。從第1個(gè)人開(kāi)始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3的人退出圈子,問(wèn)最后留下的是本來(lái)第幾號(hào)的那位??傮w思緒:用一個(gè)數(shù)組代表所有人,其中每個(gè)數(shù)的值代表這個(gè)人還在不在圈內(nèi)。(0代表已出局,1代表還在圈內(nèi))通過(guò)一個(gè)指針循環(huán)訪問(wèn)數(shù)組內(nèi)各個(gè)成員,若數(shù)組成員值為1,則計(jì)數(shù)器+1,每當(dāng)計(jì)數(shù)器加到3時(shí),將該數(shù)組成員置0(即這個(gè)人出圈),最后指針指向的數(shù)組成員的下標(biāo)就是最后留下的人。#include<stdio.h>usingnamespacestd;
voidmain()
{
inti,k,m,n,num[50],*p;??printf("inputnumberofperson:n=");
scanf("%d",&n);
?p=num;? for(i=0;i<n;i++)
? *(p+i)=i+1;
i=0;
k=0;??m=0;
while(m<n-1)//m是指出局的人數(shù),由于有n個(gè)人,最后剩下一個(gè)人,所以最多余局(n-1)個(gè)人,構(gòu)成循環(huán)??{
??if(*(p+i)!=0)//判斷這個(gè)號(hào)(本來(lái)的序號(hào))是否出局
? ?k++;//這個(gè)號(hào)沒(méi)有出局,就報(bào)數(shù),計(jì)數(shù)器加1???if(k==3)//報(bào)3的出局?? {?? ?*(p+i)=0;//將出局的這個(gè)人標(biāo)記
? ?k=0;//使計(jì)數(shù)器置零,以便后面的人報(bào)數(shù)?? m++;//出局人數(shù)計(jì)數(shù)器加1
}
i++;//將指針后移,雖然i不是指針,但p+i就是指針了,所以i就是為指針?lè)?wù)的
??if(i==n)//假如指針移到了尾部,則返回到頭部? ? i=0;
}
//以上的循環(huán)是重要焦點(diǎn),后面的就是找出最后那個(gè)人,這個(gè)好理解
while(*p==0)//用這個(gè)可以只判斷所找號(hào)的前面的號(hào)(涉及所找號(hào)),不用判斷后面的。?? p++;
printf("ThelastoneisN0.%d\n",*p);system(“pause”);?}四.實(shí)驗(yàn)心得編寫(xiě)代碼的時(shí)候添加注釋能提高程序的可理解性。實(shí)驗(yàn)四實(shí)現(xiàn)程序的重構(gòu)實(shí)驗(yàn)?zāi)康?.理解程序的重構(gòu)。2.實(shí)現(xiàn)效率驅(qū)動(dòng)下的程序重構(gòu)。二.實(shí)驗(yàn)環(huán)境安裝MicrosoftVisualC++的PC機(jī)一臺(tái)。三.實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容:對(duì)下列代碼進(jìn)行調(diào)整以提高效率。#include"stdio.h"voidmain(){ inta[100];?for(inti=0;i<100;i++) ?scanf("%d",&a[i]); ?for(i=0;i<100;i++)?{? if(a[i]>=80)? {printf("% elseif(a[i]>=70) {printf("% elseif(a[i]>=60) ?{?printf("% else ?{printf("% }?}思緒:用switch語(yǔ)句替代if語(yǔ)句修改后的代碼如下:#include<iostream>usingnamespacestd;intmain(){?inta[100];?intx,i; for(i=0;i<100;i++)??scanf("%d",&a[i]); for(i=0;i<100;i++){x=a[i]/10; switch(x){? ? case10:??? case9:case8:printf("%d\t%c\n",a[i],'A');break;case7:printf("%d\t%c\n",a[i],'B');break;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 塑膠翻新施工方案
- 通道平臺(tái)施工方案
- 油壓樁施工方案
- 跨河吊橋施工方案
- 瀝青攪拌施工方案
- 2025-2030年中國(guó)窗簾窗飾行業(yè)市場(chǎng)深度調(diào)研及前景趨勢(shì)與投資研究報(bào)告
- 2025-2030年中國(guó)移動(dòng)醫(yī)院屏幕行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國(guó)禮品筷子行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及投資與發(fā)展前景研究報(bào)告
- 2025-2030年中國(guó)碳水化合物酶的制備行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年中國(guó)硬脂酰2乳酸鈉行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 麥克維爾冷水機(jī)組使用說(shuō)明書(shū)
- 第三單元整體教學(xué)設(shè)計(jì) 統(tǒng)編版語(yǔ)文八年級(jí)上冊(cè)
- .司機(jī)服務(wù)禮儀培訓(xùn)
- 工廠車輛道閘系統(tǒng)設(shè)計(jì)方案
- 旅游專業(yè)群建設(shè)方案
- 項(xiàng)目總工程師技術(shù)負(fù)責(zé)人績(jī)效考核表
- 2023春國(guó)開(kāi)農(nóng)業(yè)經(jīng)濟(jì)基礎(chǔ)單元自測(cè)1-16試題及答案
- 美克爾憩室課件
- 火車廣播詞范本范文
- 超星爾雅-《知識(shí)論導(dǎo)論》答案
- 集團(tuán)公司全員安全生產(chǎn)職責(zé)清單(含目錄)
評(píng)論
0/150
提交評(píng)論