版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
南昌大學實驗報告學生姓名:學號:專業(yè)班級:實驗類型:□驗證eq\o\ac(□,√)綜合□設計□創(chuàng)新實驗日期:2023.04.16實驗成績:實驗3控制語句二.實驗目的1.熟練掌握if、if…else、if…elseif語句和switch語句格式及使用方法,掌握if語句中的嵌套關系和匹配原那么,利用if語句和switch語句實現(xiàn)分支選擇結構。2.熟練掌握while語句、do...while語句和for語句格式及使用方法,掌握三種循環(huán)控制語句的循環(huán)過程以及循環(huán)結構的嵌套,利用循環(huán)語句實現(xiàn)循環(huán)結構。3.掌握簡單、常用的算法,并在編程過程中體驗各種算法的編程技巧。進一步學習調試程序,掌握語法錯誤和邏輯錯誤的檢查方法。三.實驗內容選擇結構程序設計;if語句的使用;使用switch語句實現(xiàn)多分支選擇結構;三種循環(huán)語句的應用;循環(huán)結構的嵌套;break和continue語句的使用。三.實驗環(huán)境PC微機DOS操作系統(tǒng)或Windows操作系統(tǒng)Visualc++程序集成環(huán)境四.實驗內容和步驟本實驗要求事先編好解決下面問題的程序,然后上機輸入程序并調試運行程序。學會單步調試和斷點調試程序及變量跟蹤方法。1.通過鍵盤輸入一個字符,判斷該字符是數字字符、大寫字母、小寫字母、空格還是其他字符。2.編程實現(xiàn):輸入一個整數,判斷該數的正負性和奇偶性之后,將其數值按照①小于10,②10~99,③100~999,④1000以上四個類別分類并顯示。要求:〔1〕將變量定義為整型?!?〕輸入整數前,利用cout給出提示信息。〔3〕輸出結果時要有必要的說明,例如:輸入358時,顯示358is100to999?!?〕該程序利用if語句實現(xiàn)。運行程序,分別輸入9,21,321,4321數據檢查輸出信息的正確性。3.從鍵盤輸入學生的考試成績,利用計算機將學生的成績劃分等級并輸出。學生的成績可分成5個等級,90-100分為A級,80-89分為B級,70-79分為C級,60-69分為D級,0-59分為E級。要求在輸入負數時,給出錯誤提示。①事先編好程序,要求分別用if語句和switch語句實現(xiàn)。運行程序,并檢查結果是否正確。②再運行一次程序,輸入分數為負值〔如-70〕,這顯然是輸入時出錯,不應給出等級。修改程序,使之能正確處理任何數據。當輸入數據大于100或小于0時,通知用戶“輸入數據錯〞,程序結束4.某航空公司規(guī)定:在旅游旺季7~9月份,如果訂票20張及其以上,優(yōu)惠票價的10%,20張以下,優(yōu)惠5%;在旅游淡季1~6月份,10~12月份,訂票20張及其以上,優(yōu)惠票價的20%,20張以下,優(yōu)惠10%。編寫一個C程序,根據月份和旅客訂票張數決定優(yōu)惠率。機票單價,請算出旅客的總付款。請使用不同的測試數據進行測試。5.編寫程序:根據公式,輸出π的值。要求:〔1〕變量π為單精度類型,n為整型;〔2〕計算當n的取值分別為20,50,100,200時的π值,說明什么問題?〔3〕修改程序,不給出n值,而改為求π值,直到最后一項的數值小于10-4為止?!?〕對修改后的程序,輸出π值以及總的項數n。輸出格式為:π=值;n=值。6.從鍵盤輸入一個0~1000之間的任意整數,輸出該整數的所有因子〔例如:輸入12,其因子為1,2,3,4,6,12〕。要求:〔1〕采用while循環(huán)語句實現(xiàn)?!?〕輸出格式為:Input:12Output:1,2,3,4,6,127.計算并輸出N以內最大的10個素數以及它們的和,N為用戶任意輸入的正整數〔如:1000〕。要求:〔1〕在程序內部加必要的注釋。〔2〕由于偶數不是素數,可以不考慮對偶數的處理?!?〕需要考慮N以內的素數個數沒有超過10個的情況處理。(4)輸出形式為:素數1+素數2+素數+…+素數10=總和值。五.實驗數據及處理結果/*寫出實驗內容的算法〔用流程圖表示〕、完整的程序、結果并能對結果的正確性及上機時產生的問題進行分析,*/習題一:問題分析:輸入一個字符,要判斷其的字符形式,可以用單個字符的ascll碼值采用if結構進行選擇,分步判斷字符的類型。數據需求:輸入數據:單個字符常量a;輸出數據:1請輸入一個字符a:;2這是空格〔a==''〕、這是小寫字母(a<='z'&&a>='a')、這是大寫字母(a<='Z'&&a>'A')、這是數字(a>='0'&&a<='9')、這是其他符號〔a非上述符號時,輸出〕?!病硟葹楣?以下各題都如此表示)。算法設計:輸入字符a判斷字符的類型輸出字符類型程序實現(xiàn):#include<iostream>#include<cstdio>usingnamespacestd;intmain(){chara;cout<<"請輸入一個字符a:";//提示輸入字符aa=getchar();if(a=='')//判斷a的字符類型cout<<"這是空格";elseif(a<='z'&&a>='a')cout<<"這是小寫字母";elseif(a<='Z'&&a>'A')cout<<"這是大寫字母";elseif(a>='0'&&a<='9')cout<<"這是數字";elsecout<<"這是其他符號";}程序測試:習題二:問題分析:對于輸入的數字A,首先要判斷其正負和奇偶,再判斷其取值范圍。數據需求:輸入數據:數字A,輸出數據:A是負偶數〔A<0&&A%2==0)、A是0〔A==0〕、A是正偶數〔A>0&&A%2==0〕、A是負奇數〔A<0&&A%2!=0〕、A是正奇數〔A>0&&A%2!=0〕、A小于10〔A<10〕、A在10到99〔10<A<99〕、A在100到999〔100<=A<=999〕、A大于1000〔A>1000〕算法設計:輸入數字A判斷A的正負和奇偶輸出A的正負和奇偶性判斷A的取值范圍輸出A的取值范圍程序實現(xiàn):程序測試:#include<iostream>usingnamespacestd;intmain(){inta;cout<<"請輸入數字A:"<<endl;cin>>a;if(a%2==0)if(a<0)//當a滿足條件時,執(zhí)行下一句cout,否那么執(zhí)行elsecout<<a<<"是負偶數"<<endl;elseif(a==0)//當a滿足條件時,執(zhí)行下一句cout,否那么執(zhí)行elsecout<<a<<"是0"<<endl;else//當a滿足條件時,執(zhí)行下一句cout,否那么執(zhí)行elsecout<<a<<"是正偶數"<<endl;elseif(a<0)//當a滿足條件時,執(zhí)行下一句cout,否那么執(zhí)行elsecout<<a<<"是負奇數"<<endl;else//當a滿足條件時,執(zhí)行下一句cout,否那么執(zhí)行elsecout<<a<<"是正奇數"<<endl;if(a<10)//當a滿足條件時,執(zhí)行下一句cout,否那么執(zhí)行elsecout<<a<<"小于10"<<endl;elseif(a>=10&&a<=99)//當a滿足條件時,執(zhí)行下一句cout,否那么執(zhí)行elsecout<<a<<"在10到99之間"<<endl;elseif(a>=100&&a<=999)//當a滿足條件時,執(zhí)行下一句cout,否那么執(zhí)行elsecout<<a<<"在100到999之間"<<endl;else//a大于1000時,輸出以下語句cout<<a<<"大于等于1000"<<endl;}程序實現(xiàn):習題三:問題分析:對于學生成績判斷等級,輸入附負數時,應該報錯,可以用if或switch語句進行編譯,選擇好條件,可以解決。數據需求:輸入數據:學生成績gra,輸出數據:ERROR(C=abs(gra),gra-C=0||gra+1>101)、E〔gra/10=0,1,2,3,4,5〕、D(gra/10=6)、C(gra/10=7)、B(gra/10=8)、A(gra/10=9),A(gra+1=101)算法設計:輸入成績A判斷成績是否在0~~100如果不在,報錯,程序結束如果在,那么判斷其成績所在檔次輸出等級程序實現(xiàn):#include<iostream>#include<cmath>usingnamespacestd;intmain(){intgra,C;//定義整形變量cout<<"Pleaseinputyourgrade:"<<endl;cin>>gra;C=abs(gra);//對gra取絕對值,賦值給Cswitch(gra-C){default:cout<<"ERROR!";break;//gra為負數,報錯case0:switch(gra/10)//gea為非負數{case0:case1:case2:case3:case4:case5:cout<<"E";break;//gra在0到59分為E級case6:cout<<"D";break;case7:cout<<"C";break;case8:cout<<"B";break;case9:cout<<"A";break;default:switch(gra+1){case101:cout<<"A";break;//gra為100,輸出Adefault:cout<<"Thegradeoutnumbers100!";break;//gra大于100,報錯}}}}第二種方法:#include<iostream>#include<cmath>usingnamespacestd;intmain(){intgra;//定義變量cout<<"Pleaseinputyourgrade:"<<endl;cin>>gra;if(gra>=0&&gra<60)//gra在0到59分為E級cout<<"E";elseif(gra>=60&&gra<70)cout<<"D";elseif(gra>=70&&gra<80)cout<<"C";elseif(gra>=80&&gra<90)cout<<"B";elseif(gra>=90&&gra<=100)cout<<"A";elsecout<<"ERROR";//分數不在0到100,報錯}程序測試:第一種:第二種:習題四:問題分析:顧客在購票時,輸入日期和飛機票的張數,根據輸入信息綜合判斷所優(yōu)惠的工程。運用if語句可以書寫。數據需求:輸入需求:需要客戶給出乘機月份Mon和乘機人數Num,輸出信息:月份為7~9月份,如果訂票20張及其以上,票價Sum=Num*Cost*10%,20張以下,Sum=Cost*Num*5%;為1~6月份或10~12月份,訂票20張及其以上,票價Sum=Num*Cost*20%,20張以下,Sum=Num*Cost*10%算法設計:輸入Cost,Num,Mon判斷Mon是否在7到9月在,那么判斷Sum>=20?不在,判斷Sum>=20?是,那么Sum=Num*Cost*10%否,那么Sum=Cost*Num*5%是,那么Sum=Num*Cost*20%否,那么Sum=Num*Cost*10%輸出Sum;程序實現(xiàn):#include<iostream>usingnamespacestd;intmain(){intNum,Mon;floatSum,Cost;cout<<"pleaseenterpriceofticketeach"<<endl;cin>>Cost;//給票價賦值cout<<"Pleaseenterthemunberofticketsyouwanttooeder:"<<endl;cin>>Num;cout<<"Pleaseenterthemonth(innumber,like:Januaryis1)youwanttotravel:"<<endl;cin>>Mon;if((Mon>=1&&Mon<=6)||(Mon>=10&&Mon<=12))//購票在1到6月或者10到12月時,執(zhí)行以下語句if(Num<20)//訂票小于20張,執(zhí)行以下語句Sum=Num*Cost*0.9;else//訂票大于等于20張執(zhí)行以下語句Sum=Num*Cost*0.8;elseif(Num<20)//在7到9月定票時,且小于20張,執(zhí)行以下語句Sum=Num*Cost*0.95;else//在7到9月定票時,且大于20張,執(zhí)行以下語句Sum=Num*Cost*0.9;cout<<"Youneedtopaytheamountis:"<<Sum<<"$";//輸出總費用}程序測試:第五題:問題分析:首先,要計算1除以n的平方〔取1到n值〕,while循環(huán)累加求和,直到滿足條件為止。數據需求:輸入數據:n,輸出數據:π=PI,〔I+=1/(i*i);i++;PI=sqrt(PI*6);〕算法設計:第一個:PI=0,i=1輸出Pleaseentern:輸入n當i<=n時,執(zhí)行PI+=1/(i*i);i++;直到i不滿足條件PI=sqrt(PI*6)輸出π=PI第二個:PI=0,a=3,i=1當a>=1e-4,執(zhí)行a=1.0/(i*i);I=PI+a;i++;直到i不滿足條件PI=sqrt(PI*6);i=i-1;輸出π=PI程序實現(xiàn):第一個:#include<iostream>#include<cmath>usingnamespacestd;intmain(){intn,i=1,a;floatPI=0;//定義變量cout<<"Pleaseentern:"<<endl;cin>>n;while(i<=n)//當i<=n時執(zhí)行循環(huán){PI+=1/(i*i);i++;}PI=sqrt(PI*6);//將PI乘以6再開平方cout<<"π="<<PI;}第二個:#include<iostream>#include<cmath>usingnamespacestd;intmain(){inti=1;floatPI=0,a=3;//定義變量while(a>=1e-4)//當a>=1e-4時,執(zhí)行循環(huán){a=1.0/(i*i);//將1/i*i賦值給aPI=PI+a;//對a求和i++;}PI=sqrt(PI*6);//對PI乘以6再開平方賦值給PIi=i-1;cout<<"π="<<PI<<";"<<"n="<<i;}程序測試:第一個:說明輸入的數字越大,PI越確第二個:習題六:問題分析:對于求整數的因子,只要一個一個數的嘗試就可以了,滿足條件就輸出,建立一個while循環(huán)就可以了。數據需求:輸入數據:整數Nnm,輸出數據;Pleaseenteraintegerbetween0to1000:Input:NumOutput:Deter,公式:Deter=Num/i;if(Num%i==0〕,輸出Deter,輸出Num,算法實現(xiàn):輸出Pleaseenteraintegerbetween0to1000:輸入Num輸出Input:NumOutput:i=Num當i>1時,Deter=Num/i;如果Num%i==0輸出DEter和;i--,執(zhí)行該循環(huán),直到i不滿足條件;輸出Num程序實現(xiàn):#include<iostream>usingnamespacestd;intmain(){intNum,i,Deter;//定義變量cout<<"Pleaseenteraintegerbetween0to1000:"<<endl;//原樣輸出cin>>Num;cout<<"Input:"<<Num<<endl<<"Output:";i=Num;while(i>1)//在i>1時,執(zhí)行循環(huán){Deter=Num/i;if(Num%i==0)//當Num能被i整除,那么Deter是Num的因子cout<<Deter<<",";i--;}cout<<Num;//輸出最大的因子Num}程序測試:第七題:問題分析:對輸入的數字Num偶判斷,如果是偶數,那么減去1,變成奇數,賦值給Num,對Num進行整除運算,假設只有1和數字本身能整除數字,即輸出該數字,否那么數字減2,再進行上述計算,直到輸出10個數字或者Num小于1時,對于10個最大素數中含有2的要單獨進行討論,運用選擇結構進行編譯,同時需要在輸出素數是進行素數求和,輸出素數和。數據需求;輸入數據:Num;輸出數據:Num的最大素數相加的形式以及它們的和。對于Num小于等于30,i=3,b=1,〔做循環(huán)時,兩個數字都需回歸3和1〕,首先使得Num為奇數,做循環(huán)b=nNum%i,i=i+2,直到b=0,判斷此時i是否等于Num+2,是那么輸出Num+,并求和Sum+=Num;Num-=2,做循環(huán),直到Num=3,Sum+=2,輸出2+,運用退格符,輸出等=Sum。對于大于30的數,i=3,b=1,〔做循環(huán)時,兩個數字都需回歸3和1〕,首先使得Num為奇數,做循環(huán)b=nNum%i,i=i+2,直到b=0,判斷此時i是否等于Num+2,是那么輸出Num+,并求和Sum+=Num;Num-=2,做循環(huán),直到求出10個素數。以下步驟輸出和上述一樣。算法設計;b=1,sum=0輸出Pleaseenterapositiveintger:判斷輸入數字的范圍n==1n==2n>2&&n<=30n>30輸出1isn'ttheprime輸出2=2判斷n是否為偶數,是偶數,那么n=n-1做循環(huán)1當判斷條件n!=1,循環(huán)控制變量n-=2做for循環(huán)3,初始條件c=0判斷條件c<10循環(huán)控制變量n=n-2i=3,b=1i=n做循2循環(huán)條件b!=0。計算b=n%i;i+=2;b=n%i;i+=2;循環(huán)2出去后,判斷i是否等于n+2,是的,那么sum+=n,并輸出數n和+號,否那么不做改變。后回到循環(huán)1開頭循環(huán)4出去后,判斷i是否等于1,是的,那么sum+=n,并輸出數n和+號,c++,sum+=n,輸出數n和+號,否那么不做改變。后回到循環(huán)3開頭Sum+=2輸出2+輸出'\b'=sum程序實現(xiàn):#include<iostream>usingnamespacestd;intmain(){intn,i,b=1,c,sum=0;cout<<"Pleaseenterapositiveintger:";cin>>n;if(n==1)cout<<"1isn'ttheprime";elseif(n==2)cout<<"2=2";else{if(n>2&&n<=30){if(n%2==0)n=n-1;//將數字n變成奇數for(;n!=1;n-=2){i=3;b=1;while(b!=0)//對n進行整除取余運算,當b=0時,跳出循環(huán){b=n%i;i+=2;}if(i==(n+2))//當i=n+2時,即n只能被自身整除時{sum+=n;cout<<n<<"+";}}sum=sum+2;//n數中的素數包括2,故sum加上2cout<<"2+";}elsefor(c=0;c<10;n=n-2){if(n%2==0)n=n-1;i=n;while(b!=0){i-=2;b=n%i;}b=1;if(i!=1)continue;//i不等于1時,此時n不是素數,回到for循環(huán),c++;//i=1,計數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度醫(yī)院門診部承包經營服務合同3篇
- 2025年度海洋工程承包勞務服務協(xié)議3篇
- 2025年物業(yè)公司物業(yè)費收入權轉讓合同3篇
- 2025版高端景觀工程毛石材料供應合作協(xié)議4篇
- XX公司2024年度采購協(xié)議樣本版B版
- 二零二五版數據中心網絡安全設備安裝協(xié)議2篇
- 二零二五年度鐵路客票運輸合同樣本3篇
- 2024綠色照明推廣與實施合同
- 游戲化教學法在小學生閱讀能力培養(yǎng)中的應用
- 文化背景下創(chuàng)新金融產品的市場反應研究
- 2024年國家公務員考試公共基礎知識復習題庫及答案(共三套)
- 《社會工作實務》全冊配套完整課件3
- 單位違反會風會書檢討書
- 2024年4月自考00832英語詞匯學試題
- 《電力用直流電源系統(tǒng)蓄電池組遠程充放電技術規(guī)范》
- 《哪吒之魔童降世》中的哪吒形象分析
- 信息化運維服務信息化運維方案
- 汽車修理廠員工守則
- 公安交通管理行政處罰決定書式樣
- 10.《運動技能學習與控制》李強
- 1神經外科分級護理制度
評論
0/150
提交評論