【MOOC答案】《C-C++程序設(shè)計與編程方法》(北京郵電大學(xué))中國慕課章節(jié)網(wǎng)課答案_第1頁
【MOOC答案】《C-C++程序設(shè)計與編程方法》(北京郵電大學(xué))中國慕課章節(jié)網(wǎng)課答案_第2頁
【MOOC答案】《C-C++程序設(shè)計與編程方法》(北京郵電大學(xué))中國慕課章節(jié)網(wǎng)課答案_第3頁
【MOOC答案】《C-C++程序設(shè)計與編程方法》(北京郵電大學(xué))中國慕課章節(jié)網(wǎng)課答案_第4頁
【MOOC答案】《C-C++程序設(shè)計與編程方法》(北京郵電大學(xué))中國慕課章節(jié)網(wǎng)課答案_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

【MOOC答案】《C_C++程序設(shè)計與編程方法》(北京郵電大學(xué))中國慕課章節(jié)網(wǎng)課答案1.程序設(shè)計概述(第1周)計算A+B1.計算A+B:題目內(nèi)容:輸入兩個整數(shù),計算兩個數(shù)的和,然后輸出計算結(jié)果。輸入格式:用空格分隔輸出格式:輸入樣例:35輸出樣例:8#include<stdio.h>intmain(){inta,b,sum;//提示用戶輸入兩個整數(shù)printf("請輸入兩個整數(shù),用空格分隔:");scanf("%d%d",&a,&b);//計算兩個整數(shù)的和sum=a+b;//輸出結(jié)果printf("%d\n",sum);return0;}說明:#include<stdio.h>:包含標準輸入輸出庫,用于使用

printf

scanf

函數(shù).intmain():程序的入口點.inta,b,sum;:聲明三個整數(shù)變量

a、b

sum,分別用于存儲輸入的兩個整數(shù)和它們的和.printf("請輸入兩個整數(shù),用空格分隔:");:提示用戶輸入兩個整數(shù).scanf("%d%d",&a,&b);:從標準輸入讀取兩個整數(shù),并將它們分別存儲在變量

a

b

中.sum=a+b;:計算兩個整數(shù)的和,并將結(jié)果存儲在變量

sum

中.printf("%d\n",sum);:輸出計算結(jié)果.return0;:程序正常結(jié)束,返回值為0.第一個C/C++程序1.編寫第一個C/C++程序,輸出“HelloBUPT”題目內(nèi)容:編寫第一個C/C++程序,輸出“HelloBUPT”輸入格式:輸出格式:兩個單詞之間用空格分隔輸入樣例:輸出樣例:HelloBUPT#includeintmain(){//輸出字符串"HelloBUPT"printf("HelloBUPT\n");return0;}說明:#include<stdio.h>:包含標準輸入輸出庫,用于使用

printf

函數(shù).intmain():程序的入口點.printf("HelloBUPT\n");:輸出字符串“HelloBUPT”,并在末尾加上換行符.return0;:程序正常結(jié)束,返回值為0.2.基本數(shù)據(jù)類型與表達式(第2-3周)輸出最大值1.輸入3個整數(shù),找出其中的最大值并輸出。題目內(nèi)容:輸入3個整數(shù),找出其中的最大值并輸出。輸入格式:3個整數(shù)用空格分隔輸出格式:輸入樣例:385輸出樣例:8#includeintmain(){inta,b,c,max;//提示用戶輸入三個整數(shù)printf("請輸入三個整數(shù),用空格分隔:");scanf("%d%d%d",&a,&b,&c);//找出最大值max=a;//假設(shè)a是最大值if(b>max){max=b;}if(c>max){max=c;}//輸出最大值printf("%d\n",max);return0;}說明:#include<stdio.h>:包含標準輸入輸出庫,用于使用

printf

scanf

函數(shù).intmain():程序的入口點.inta,b,c,max;:聲明四個整數(shù)變量

a、b、c

max,分別用于存儲輸入的三個整數(shù)和最大值.printf("請輸入三個整數(shù),用空格分隔:");:提示用戶輸入三個整數(shù).scanf("%d%d%d",&a,&b,&c);:從標準輸入讀取三個整數(shù),并將它們分別存儲在變量

a、b

c

中.max=a;:假設(shè)

a

是最大值,然后通過比較

b

c

來更新

max.if(b>max){max=b;}:如果

b

大于當前的

max,則更新

max

b.if(c>max){max=c;}:如果

c

大于當前的

max,則更新

max

c.printf("%d\n",max);:輸出最大值.return0;:程序正常結(jié)束,返回值為0.輸出ASCII碼1.輸入一個字符,輸出對應(yīng)的16進制ASCII碼。題目內(nèi)容:輸入一個字符,輸出對應(yīng)的16進制ASCII碼。輸入格式:輸入一個字符然后回車輸出格式:輸入樣例:a輸出樣例:613.控制語句(第4周)輸入3個整數(shù),按從小到大的順序輸出1.輸入3個整數(shù),按從小到大的順序輸出。

題目內(nèi)容:輸入3個整數(shù),按從小到大的順序輸出。輸入格式:輸入3個整數(shù),用空格分隔,以回車結(jié)束輸出格式:輸出3個數(shù),用逗號分隔輸入樣例:285輸出樣例:2,5,8#includeintmain(){charch;intascii;//提示用戶輸入一個字符printf("請輸入一個字符:");scanf("%c",&ch);//獲取字符的ASCII碼值ascii=(int)ch;//輸出字符的16進制ASCII碼printf("%x\n",ascii);return0;}說明:#include<stdio.h>:包含標準輸入輸出庫,用于使用

printf

scanf

函數(shù).intmain():程序的入口點.charch;:聲明一個字符變量

ch,用于存儲輸入的字符.intascii;:聲明一個整數(shù)變量

ascii,用于存儲字符的ASCII碼值.printf("請輸入一個字符:");:提示用戶輸入一個字符.scanf("%c",&ch);:從標準輸入讀取一個字符,并將其存儲在變量

ch

中.ascii=(int)ch;:將字符

ch

轉(zhuǎn)換為整數(shù)類型,得到其ASCII碼值.printf("%x\n",ascii);:以16進制格式輸出ASCII碼值.

%x

是格式說明符,用于輸出整數(shù)的16進制表示.return0;:程序正常結(jié)束,返回值為0.編程找出100-500之間有哪些數(shù)其各位數(shù)字之和為k1.請輸入一個0-9的數(shù)字k,編程找出100-500之間有哪些數(shù)其各位數(shù)字之和為k。把這些數(shù)輸出到屏幕顯示。題目內(nèi)容:請輸入一個0-9的數(shù)字k,編程找出100-500之間有哪些數(shù)其各位數(shù)字之和為k。把這些數(shù)輸出到屏幕顯示。輸入格式:輸入一位數(shù)字后回車輸出格式:符合條件的數(shù)輸出到屏幕顯示,每個數(shù)占一行輸入樣例:3輸出樣例:102111120201210300#includeintmain(){intk;intnum,sum,digit;//提示用戶輸入一個0-9之間的數(shù)字printf("請輸入一個0-9之間的數(shù)字:");scanf("%d",&k);//檢查輸入是否在0-9之間if(k<0||k>9){printf("輸入的數(shù)字不在0-9之間。\n");return1;}//遍歷100-500之間的所有數(shù)for(num=100;num<=500;num++){sum=0;inttemp=num;//計算當前數(shù)的各位數(shù)字之和while(temp>0){digit=temp%10;sum+=digit;temp/=10;}//如果各位數(shù)字之和等于k,則輸出該數(shù)if(sum==k){printf("%d\n",num);}}return0;}說明:#include<stdio.h>:包含標準輸入輸出庫,用于使用

printf

scanf

函數(shù).intmain():程序的入口點.intk;:聲明一個整數(shù)變量

k,用于存儲用戶輸入的數(shù)字.printf("請輸入一個0-9之間的數(shù)字:");:提示用戶輸入一個0-9之間的數(shù)字.scanf("%d",&k);:從標準輸入讀取一個整數(shù),并將其存儲在變量

k

中.if(k<0||k>9){...}:檢查輸入的數(shù)字是否在0-9之間,如果不在則輸出錯誤信息并退出程序.for(num=100;num<=500;num++){...}:遍歷100-500之間的所有數(shù).sum=0;:初始化各位數(shù)字之和為0.inttemp=num;:用一個臨時變量

temp

來存儲當前數(shù),以便在計算各位數(shù)字之和時不改變原數(shù).while(temp>0){...}:計算當前數(shù)的各位數(shù)字之和.digit=temp%10;:獲取當前最低位的數(shù)字.sum+=digit;:將該數(shù)字加到

sum

中.temp/=10;:去掉當前最低位的數(shù)字.if(sum==k){printf("%d\n",num);}:如果各位數(shù)字之和等于

k,則輸出該數(shù).return0;:程序正常結(jié)束,返回值為0.4.數(shù)組及自定義類型(第5周)編寫評分統(tǒng)計程序1.某項體育賽事會邀請N位評委(最多十位),每位評委會給出1-9之間的一個整數(shù)作為評分值。評分統(tǒng)計程序要去掉一個最高分,去掉一個最低分,然后計算平均值并顯示,輸出顯示時保留兩位小數(shù)。題目內(nèi)容:編寫評分統(tǒng)計程序。某項體育賽事會邀請N位評委(最多十位),每位評委會給出1-9之間的一個整數(shù)作為評分值。評分統(tǒng)計程序要去掉一個最高分,去掉一個最低分,然后計算平均值并顯示,輸出顯示時保留兩位小數(shù)。輸入格式:首先需要輸入N的值,N大于3小于等于10,然后輸入N個1-9之間的整數(shù)作為評分值??梢杂每崭穹指?,或者每個數(shù)占一行。輸出格式:帶兩位小數(shù)的定點數(shù)輸入樣例:812345678輸出樣例:4.50#includeintmain(){intN;intscores[10];//最多10位評委inti,maxIndex,minIndex;doublesum=0.0,average;//輸入評委數(shù)量Nprintf("請輸入評委數(shù)量N(3<N<=10):");scanf("%d",&N);//檢查輸入的N是否在有效范圍內(nèi)if(N<=3||N>10){printf("評委數(shù)量不在有效范圍內(nèi)。\n");return1;}//輸入每個評委的評分printf("請輸入%d個1-9之間的評分值:\n",N);for(i=0;i<N;i++){scanf("%d",&scores[i]);}//初始化最高分和最低分的索引maxIndex=minIndex=0;//找出最高分和最低分的索引for(i=1;i<N;i++){if(scores[i]>scores[maxIndex]){maxIndex=i;}if(scores[i]<scores[minIndex]){minIndex=i;}}//計算去掉最高分和最低分后的總分for(i=0;i<N;i++){if(i!=maxIndex&&i!=minIndex){sum+=scores[i];}}//計算平均分average=sum/(N-2);//輸出平均分,保留兩位小數(shù)printf("%.2f\n",average);return0;}說明:#include<stdio.h>:包含標準輸入輸出庫,用于使用

printf

scanf

函數(shù).intmain():程序的入口點.intN;:聲明一個整數(shù)變量

N,用于存儲評委的數(shù)量.intscores[10];:聲明一個整數(shù)數(shù)組

scores,用于存儲最多10位評委的評分.inti,maxIndex,minIndex;:聲明循環(huán)變量

i

和用于存儲最高分和最低分索引的變量

maxIndex

minIndex.doublesum=0.0,average;:聲明用于存儲總分和平均分的變量

sum

average.scanf("%d",&N);:從標準輸入讀取評委數(shù)量

N.if(N<=3||N>10){...}:檢查輸入的

N

是否在有效范圍內(nèi),如果不在則輸出錯誤信息并退出程序.for(i=0;i<N;i++){...}:循環(huán)輸入每個評委的評分.maxIndex=minIndex=0;:初始化最高分和最低分的索引為0.for(i=1;i<N;i++){...}:遍歷評分數(shù)組,找出最高分和最低分的索引.for(i=0;i<N;i++){...}:計算去掉最高分和最低分后的總分.average=sum/(N-2);:計算平均分.printf("%.2f\n",average);:以兩位小數(shù)的格式輸出平均分.return0;:程序正常結(jié)束,返回值為0.計算學(xué)生總成績1.每個學(xué)生的信息包括:學(xué)號(整型)、姓名(字符串)、數(shù)學(xué)成績(浮點數(shù))、語文成績(浮點數(shù))、程序設(shè)計課程成績(浮點數(shù))?,F(xiàn)有一個小班5個學(xué)生的信息,按行讀入,然后計算每個學(xué)生的總成績,輸出顯示學(xué)生的學(xué)號、姓名和總成績。題目內(nèi)容:每個學(xué)生的信息包括:學(xué)號(整型)、姓名(字符串)、數(shù)學(xué)成績(浮點數(shù))、語文成績(浮點數(shù))、程序設(shè)計課程成績(浮點數(shù))?,F(xiàn)有一個小班5個學(xué)生的信息,按行讀入,然后計算每個學(xué)生的總成績,輸出顯示學(xué)生的學(xué)號、姓名和總成績。輸入格式:每行是一個學(xué)生的學(xué)號、姓名、數(shù)學(xué)成績、語文成績、程序設(shè)計課程成績,用空格分隔。輸出格式:一共輸出5行,每行是一個學(xué)生的信息:學(xué)號,姓名,總成績。用逗號分隔。輸入樣例:1zhang8080852wang9090753zhao6090894yang8585895qian906288輸出樣例:1,zhang,2452,wang,2553,zhao,2394,yang,2595,qian,240#includeintmain(){structStudent{intid;charname[50];floatmath;floatchinese;floatprogramming;floattotal;};structStudentstudents[5];//讀取學(xué)生信息for(inti=0;i<5;i++){scanf("%d%s%f%f%f",&students[i].id,students[i].name,&students[i].math,&students[i].chinese,&students[i].programming);students[i].total=students[i].math+students[i].chinese+students[i].programming;}//輸出學(xué)生信息for(inti=0;i<5;i++){printf("%d,%s,%.0f\n",students[i].id,students[i].name,students[i].total);}return0;}說明:#include<stdio.h>:包含標準輸入輸出庫,用于使用

printf

scanf

函數(shù).structStudent:定義一個結(jié)構(gòu)體

Student,用于存儲學(xué)生的信息,包括學(xué)號、姓名、數(shù)學(xué)成績、語文成績、程序設(shè)計課程成績和總成績.structStudentstudents[5];:聲明一個結(jié)構(gòu)體數(shù)組

students,用于存儲5個學(xué)生的信息.for(inti=0;i<5;i++){...}:循環(huán)讀取每個學(xué)生的信息,并計算總成績.scanf("%d%s%f%f%f",&students[i].id,students[i].name,&students[i].math,&students[i].chinese,&students[i].programming);:從標準輸入讀取學(xué)生信息.students[i].total=students[i].math+students[i].chinese+students[i].programming;:計算總成績.for(inti=0;i<5;i++){...}:循環(huán)輸出每個學(xué)生的信息.printf("%d,%s,%.0f\n",students[i].id,students[i].name,students[i].total);:以逗號分隔的格式輸出學(xué)生的學(xué)號、姓名和總成績,總成績保留整數(shù)部分.return0;:程序正常結(jié)束,返回值為0.5.函數(shù)(第6-7周)遞歸函數(shù)1.按如下遞歸公式求函數(shù)值:x=1時f(x)=10;x不等于1時f(x)=f(x-1)+2。題目內(nèi)容:按如下遞歸公式求函數(shù)值:x=1時f(x)=10;x不等于1時f(x)=f(x-1)+2。輸入格式:讀取一位十進制正整數(shù),賦值給x輸出格式:輸出遞歸函數(shù)的計算值輸入樣例:3輸出樣例:14#include//定義遞歸函數(shù)intf(intx){if(x==1){return10;}else{returnf(x-1)+2;}}intmain(){intx;//讀取輸入的正整數(shù)xprintf("請輸入一個正整數(shù)x:");scanf("%d",&x);//檢查輸入是否為正整數(shù)if(x<=0){printf("輸入的不是正整數(shù)。\n");return1;}//計算并輸出f(x)的值printf("%d\n",f(x));return0;}說明:#include<stdio.h>:包含標準輸入輸出庫,用于使用

printf

scanf

函數(shù).intf(intx):定義遞歸函數(shù)

f,根據(jù)給定的遞歸公式計算函數(shù)值.if(x==1){return10;}:當

x

等于1時,返回10.else{returnf(x-1)+2;}:當

x

不等于1時,遞歸調(diào)用

f(x-1)

并加2.intmain():程序的入口點.intx;:聲明一個整數(shù)變量

x,用于存儲輸入的正整數(shù).scanf("%d",&x);:從標準輸入讀取一個整數(shù),并將其存儲在變量

x

中.if(x<=0){...}:檢查輸入是否為正整數(shù),如果不是則輸出錯誤信息并退出程序.printf("%d\n",f(x));:調(diào)用遞歸函數(shù)

f

計算

f(x)

的值,并輸出結(jié)果.return0;:程序正常結(jié)束,返回值為0.凱撒密碼1.凱撒密碼的加密方法是:給定一串字符,把其中每個大寫字母變換成按順序向后移N位的字母,遇到26個字母結(jié)束要環(huán)回到字母A計算順序,其他字符不變。編程實現(xiàn)凱撒加密,輸出密文。題目內(nèi)容:凱撒密碼的加密方法是:給定一串字符,把其中每個大寫字母變換成按順序向后移N位的字母,遇到26個字母結(jié)束要環(huán)回到字母A計算順序,其他字符不變。編程實現(xiàn)凱撒加密,輸出密文。輸入格式:首先輸入N的值。然后輸入一串包含一些大寫字母的字符串,不包含空格,串長小于20個字符。輸出格式:輸出加密后的密文字符串。輸入樣例:3ABC123&*XYZ輸出樣例:DEF123&*ABC

[vk-content]#includeintmain(){intN;charstr[21];//字符串長度小于20個字符,加上終止符'\0'charencrypted[21];//讀取N的值printf("請輸入N的值:");scanf("%d",&N);//讀取字符串printf("請輸入字符串:");scanf("%s",str);//加密字符串for(inti=0;str[i]!='\0';i++){if(str[i]>='A'&&str[i]<='Z'){//計算加密后的字符encrypted[i]=((str[i]-'A'+N)%26)+'A';}else{//非大寫字母字符不變encrypted[i]=str[i];}}encrypted[i]='\0';//添加字符串終止符//輸出加密后的字符串printf("%s\n",encrypted);return0;}說明:#include<stdio.h>:包含標準輸入輸出庫,用于使用

printf

scanf

函數(shù).intmain():程序的入口點.intN;:聲明一個整數(shù)變量

N,用于存儲加密位移量.charstr[21];:聲明一個字符數(shù)組

str,用于存儲輸入的字符串,長度為21(20個字符加上終止符).charencrypted[21];:聲明一個字符數(shù)組

encrypted,用于存儲加密后的字符串.scanf("%d",&N);:從標準輸入讀取整數(shù)

N.scanf("%s",str);:從標準輸入讀取字符串

str.for(inti=0;str[i]!='\0';i++){...}:遍歷字符串中的每個字符.if(str[i]>='A'&&str[i]<='Z'){...}:如果字符是大寫字母,則進行加密.encrypted[i]=((str[i]-'A'+N)%26)+'A';:計算加密后的字符,使用模運算確保字母循環(huán).else{...}:如果字符不是大寫字母,則保持不變.encrypted[i]='\0';:在加密后的字符串末尾添加終止符.printf("%s\n",encrypted);:輸出加密后的字符串.return0;:程序正常結(jié)束,返回值為0.6.指針和引用(第8-9周)計算向量距離1.平面直角坐標系下兩點A(x1,x2)、B(y1,y2),它們之間的歐氏距離為:sqrt((x1-y1)*(x1-y1)+(x2-y2)*(x2-y2))。擴展到N維空間,每個點的坐標有N維,例如點A(x1,x2,......,xN),類似地也可以計算兩點之間的歐氏距離。編程計算N位向量的歐氏距離。題目內(nèi)容:平面直角坐標系下兩點A(x1,x2)、B(y1,y2),它們之間的歐氏距離為:sqrt((x1-y1)*(x1-y1)+(x2-y2)*(x2-y2))。擴展到N維空間,每個點的坐標有N維,例如點A(x1,x2,......,xN),類似地也可以計算兩點之間的歐氏距離。編程計算N位向量的歐氏距離。輸入格式:首先輸入N;然后輸入第一個點的N位坐標,取整數(shù)值,用空格分隔;再輸入第二個點的N位坐標,取整數(shù)值,用空格分隔。輸出格式:輸出浮點數(shù),保留兩位小數(shù)。輸入樣例:23456輸出樣例:2.83#include#includeintmain(){intN;inti;doublesum=0.0;intx[100],y[100];//假設(shè)N不超過100//讀取N的值printf("請輸入N的值:");scanf("%d",&N);//讀取第一個點的N維坐標printf("請輸入第一個點的%d維坐標,用空格分隔:",N);for(i=0;i<N;i++){scanf("%d",&x[i]);}//讀取第二個點的N維坐標printf("請輸入第二個點的%d維坐標,用空格分隔:",N);for(i=0;i<N;i++){scanf("%d",&y[i]);}//計算歐氏距離的平方和for(i=0;i<N;i++){sum+=(x[i]-y[i])*(x[i]-y[i]);}//計算歐氏距離doubledistance=sqrt(sum);//輸出歐氏距離,保留兩位小數(shù)printf("%.2f\n",distance);return0;}說明:#include<stdio.h>:包含標準輸入輸出庫,用于使用

printf

scanf

函數(shù).#include<math.h>:包含數(shù)學(xué)庫,用于使用

sqrt

函數(shù).intN;:聲明一個整數(shù)變量

N,用于存儲向量的維度.intx[100],y[100];:聲明兩個整數(shù)數(shù)組

x

y,用于存儲兩個點的坐標,假設(shè)維度不超過100.doublesum=0.0;:聲明一個雙精度浮點數(shù)變量

sum,用于累加坐標差的平方和.scanf("%d",&N);:從標準輸入讀取維度

N.for(i=0;i<N;i++){...}:循環(huán)讀取第一個點的N維坐標.for(i=0;i<N;i++){...}:循環(huán)讀取第二個點的N維坐標.for(i=0;i<N;i++){...}:計算歐氏距離的平方和.doubledistance=sqrt(sum);:計算歐氏距離.printf("%.2f\n",distance);:以兩位小數(shù)的格式輸出歐氏距離.return0;:程序正常結(jié)束,返回值為0.求數(shù)組的平均值1.編寫一個函數(shù)get_average()獲取整型數(shù)組元素的平均值。要求這個函數(shù)既可以用來求一維數(shù)組元素的平均值,也可以求二維數(shù)組元素的平均值。在main()函數(shù)中通過具體的一維數(shù)組Array_1D和二維數(shù)組Array_2D測試這個函數(shù)。假定一維數(shù)組為a[5],二維數(shù)組為b[2][3],一維數(shù)組和二維數(shù)組的變量值由鍵盤分別輸入,在屏幕上輸出一維數(shù)組和二維數(shù)組的平均值,平均值間用一個空格分開。題目內(nèi)容:編寫一個函數(shù)get_average()獲取整型數(shù)組元素的平均值。要求這個函數(shù)既可以用來求一維數(shù)組元素的平均值,也可以求二維數(shù)組元素的平均值。在main()函數(shù)中通過具體的一維數(shù)組Array_1D和二維數(shù)組Array_2D測試這個函數(shù)。假定一維數(shù)組為a[5],二維數(shù)組為b[2][3],一維數(shù)組和二維數(shù)組的變量值由鍵盤分別輸入,在屏幕上輸出一維數(shù)組和二維數(shù)組的平均值,平均值間用一個空格分開。輸入格式:第一行輸入5個整數(shù),用空格分隔,賦值給一維數(shù)組;第二行輸入6個整數(shù),用空格分隔,賦值給二維數(shù)組。輸出格式:在一行上輸出兩個平均值(整數(shù)),用空格分隔。輸入樣例:12345456789輸出樣例:36#includeusingnamespacestd;//函數(shù)重載:計算一維數(shù)組的平均值doubleget_average(intarr[],intsize){doublesum=0.0;for(inti=0;i<size;i++){sum+=arr[i];}returnsum/size;}//函數(shù)重載:計算二維數(shù)組的平均值doubleget_average(intarr[][3],introws){doublesum=0.0;inttotal_elements=rows*3;for(inti=0;i<rows;i++){for(intj=0;j<3;j++){sum+=arr[i][j];}}returnsum/total_elements;}intmain(){intArray_1D[5];intArray_2D[2][3];//輸入一維數(shù)組cout<<"請輸入5個整數(shù),用空格分隔:";for(inti=0;i<5;i++){cin>>Array_1D[i];}//輸入二維數(shù)組cout<<"請輸入6個整數(shù),用空格分隔:";for(inti=0;i<2;i++){for(intj=0;j<3;j++){cin>>Array_2D[i][j];}}//計算并輸出平均值說明:函數(shù)重載:在C++中,我們可以通過函數(shù)重載來實現(xiàn)同一個函數(shù)名處理不同類型的數(shù)組。這里定義了兩個

get_average()

函數(shù),一個用于一維數(shù)組,另一個用于二維數(shù)組.一維數(shù)組處理:get_average(intarr[],intsize)

函數(shù)計算一維數(shù)組的平均值,通過遍歷數(shù)組并累加元素值來實現(xiàn).二維數(shù)組處理:get_average(intarr[][3],introws)

函數(shù)計算二維數(shù)組的平均值,通過嵌套循環(huán)遍歷數(shù)組并累加元素值來實現(xiàn).注意這里假設(shè)二維數(shù)組的列數(shù)是固定的(3列).輸入和輸出:在

main()

函數(shù)中,從標準輸入讀取一維和二維數(shù)組的值,然后調(diào)用

get_average()

函數(shù)計算平均值,并輸出結(jié)果.輸出時將平均值轉(zhuǎn)換為整數(shù)以滿足題目要求.注意:如果需要處理不同列數(shù)的二維數(shù)組,可以考慮使用模板或更靈活的函數(shù)參數(shù)設(shè)計.第7章類和對象(第10-11周)學(xué)生信息輸出1.設(shè)計學(xué)生類,數(shù)據(jù)成員包括學(xué)號、姓名、年齡、成績;成員函數(shù)有構(gòu)造函數(shù)、學(xué)生信息輸出函數(shù)。定義帶默認參數(shù)值的構(gòu)造函數(shù),默認值為:2021001,“Lili”,19,89.5。編寫一個普通函數(shù),以學(xué)生對象作為函數(shù)參數(shù),實現(xiàn)學(xué)生信息輸出。編寫主程序測試代碼,定義一個不帶參數(shù)的對象,調(diào)用類成員函數(shù)輸出學(xué)生信息,再調(diào)用普通函數(shù)輸出學(xué)生信息,對比兩種函數(shù)形式的區(qū)別。題目內(nèi)容:設(shè)計學(xué)生類,數(shù)據(jù)成員包括學(xué)號、姓名、年齡、成績;成員函數(shù)有構(gòu)造函數(shù)、學(xué)生信息輸出函數(shù)。定義帶默認參數(shù)值的構(gòu)造函數(shù),默認值為:2021001,“Lili”,19,89.5。再編寫一個普通函數(shù),以學(xué)生對象作為函數(shù)參數(shù),實現(xiàn)學(xué)生信息輸出。編寫主程序測試代碼,定義一個不帶參數(shù)的對象,調(diào)用類成員函數(shù)輸出學(xué)生信息,再調(diào)用普通函數(shù)輸出學(xué)生信息,對比兩種輸出函數(shù)形式的區(qū)別。輸入格式:輸出格式:輸出學(xué)號、姓名、年齡、成績,在一行顯示,逗號分隔輸入樣例:輸出樣例:2021001,Lili,19,89.52021001,Lili,19,89.5#include#includeusingnamespacestd;classStudent{public://數(shù)據(jù)成員intid;stringname;intage;doublescore;//帶默認參數(shù)值的構(gòu)造函數(shù)Student(intid=2021001,stringname="Lili",intage=19,doublescore=89.5):id(id),name(name),age(age),score(score){}//學(xué)生信息輸出函數(shù)voidprintInfo()const{cout<<id<<","<<name<<","<<age<<","<<score<<endl;}};//普通函數(shù),以學(xué)生對象作為參數(shù)輸出學(xué)生信息voidprintStudentInfo(constStudent&student){cout<<student.id<<","<<<<","<<student.age<<","<<student.score<<endl;}intmain(){//定義一個不帶參數(shù)的對象Studentstudent;//使用類成員函數(shù)輸出學(xué)生信息cout<<"使用類成員函數(shù)輸出學(xué)生信息:"<<endl;student.printInfo();//使用普通函數(shù)輸出學(xué)生信息cout<<"使用普通函數(shù)輸出學(xué)生信息:"<<endl;printStudentInfo(student);return0;}

說明:類定義:classStudent:定義了一個學(xué)生類,包含學(xué)號、姓名、年齡和成績四個數(shù)據(jù)成員.Student(intid=2021001,stringname="Lili",intage=19,doublescore=89.5):定義了一個帶默認參數(shù)值的構(gòu)造函數(shù),如果創(chuàng)建對象時不提供參數(shù),則使用默認值.voidprintInfo()const:定義了一個成員函數(shù),用于輸出學(xué)生的信息.普通函數(shù):voidprintStudentInfo(constStudent&student):定義了一個普通函數(shù),接受一個學(xué)生對象作為參數(shù),并輸出學(xué)生的信息.主程序:Studentstudent;:定義一個學(xué)生對象,使用默認構(gòu)造函數(shù)初始化.student.printInfo();:調(diào)用類成員函數(shù)輸出學(xué)生信息.printStudentInfo(student);:調(diào)用普通函數(shù)輸出學(xué)生信息.輸出格式:在一行中輸出學(xué)號、姓名、年齡和成績,用逗號分隔.對比兩種輸出函數(shù)形式的區(qū)別:類成員函數(shù):直接訪問對象的數(shù)據(jù)成員,不需要傳遞對象作為參數(shù).通常用于類內(nèi)部的操作和訪問類的私有成員.普通函數(shù):需要顯式地傳遞對象作為參數(shù).可以用于類外部的操作,特別是在需要對多個對象進行操作時更為靈活.設(shè)計學(xué)生類并編程測試1.設(shè)計學(xué)生類,數(shù)據(jù)成員包括學(xué)號、姓名、年齡、成績;成員函數(shù)有構(gòu)造函數(shù)、析構(gòu)函數(shù)。定義帶默認參數(shù)值的構(gòu)造函數(shù),默認值為:2021001,“Lili”,19,89.5。定義析構(gòu)函數(shù),析構(gòu)時輸出:學(xué)號,姓名,以及提示字符串“~~~”。編寫主程序測試代碼,定義一個不帶參數(shù)的對象,讀取用戶輸入信息作為構(gòu)造函數(shù)的參數(shù)再定義一個對象。題目內(nèi)容:設(shè)計學(xué)生類,數(shù)據(jù)成員包括學(xué)號、姓名、年齡、成績;成員函數(shù)有構(gòu)造函數(shù)、析構(gòu)函數(shù)。定義帶默認參數(shù)值的構(gòu)造函數(shù),默認值為:2021001,“Lili”,19,89.5。定義析構(gòu)函數(shù),析構(gòu)時輸出:學(xué)號,姓名,以及提示字符串“~~~”。編寫主程序測試代碼,定義一個不帶參數(shù)的對象,讀取用戶輸入信息作為構(gòu)造函數(shù)的參數(shù)再定義一個對象。輸入格式:輸入學(xué)生的4項信息,每個占一行,學(xué)號為整數(shù),姓名是字符串,年齡是整數(shù),成績是浮點數(shù)。輸出格式:每行輸出3項:學(xué)號,姓名,~~~,以逗號分隔輸入樣例:2021002zhang1888.5輸出樣例:2021002,zhang,~~~2021001,Lili,~~~#include#includeusingnamespacestd;classStudent{public://數(shù)據(jù)成員intid;stringname;intage;doublescore;//帶默認參數(shù)值的構(gòu)造函數(shù)Student(intid=2021001,stringname="Lili",intage=19,doublescore=89.5):id(id),name(name),age(age),score(score){cout<<"構(gòu)造函數(shù)被調(diào)用:"<<id<<","<<name<<endl;}//析構(gòu)函數(shù)~Student(){cout<<id<<","<<name<<",~~~"<<endl;}};intmain(){//定義一個不帶參數(shù)的對象Studentstudent1;//讀取用戶輸入信息作為構(gòu)造函數(shù)的參數(shù)再定義一個對象intid;stringname;intage;doublescore;cout<<"請輸入學(xué)生的學(xué)號:";cin>>id;cout<<"請輸入學(xué)生的姓名:";cin>>name;cout<<"請輸入學(xué)生的年齡:";cin>>age;cout<<"請輸入學(xué)生的成績:";cin>>score;Studentstudent2(id,name,age,score);//注意:析構(gòu)函數(shù)將在對象生命周期結(jié)束時自動調(diào)用return0;}說明:類定義:classStudent:定義了一個學(xué)生類,包含學(xué)號、姓名、年齡和成績四個數(shù)據(jù)成員.Student(intid=2021001,stringname="Lili",intage=19,doublescore=89.5):定義了一個帶默認參數(shù)值的構(gòu)造函數(shù),如果創(chuàng)建對象時不提供參數(shù),則使用默認值.構(gòu)造函數(shù)中輸出構(gòu)造信息.~Student():定義了一個析構(gòu)函數(shù),在析構(gòu)時輸出學(xué)號、姓名和提示字符串“~~~”.主程序:Studentstudent1;:定義一個學(xué)生對象,使用默認構(gòu)造函數(shù)初始化.讀取用戶輸入的學(xué)生信息,并使用這些信息創(chuàng)建另一個學(xué)生對象

student2.析構(gòu)函數(shù)將在對象生命周期結(jié)束時自動調(diào)用,輸出相關(guān)信息.輸出格式:每行輸出學(xué)號、姓名和提示字符串“~~~”,以逗號分隔.注意:析構(gòu)函數(shù)的輸出將在對象生命周期結(jié)束時自動觸發(fā),因此不需要顯式調(diào)用.程序的輸出順序可能會受到對象生命周期的影響,具體輸出順序取決于對象的創(chuàng)建和銷毀時機.第8章繼承(第12周)基類指針指向派生類對象1.設(shè)計學(xué)生類,數(shù)據(jù)成員包括學(xué)號、姓名、年齡、成績,為保護成員;成員函數(shù)有構(gòu)造函數(shù)、信息輸出函數(shù)pr。定義帶默認參數(shù)值的構(gòu)造函數(shù),默認值為:2021001,“Lili”,19,89.5。定義信息輸出函數(shù)pr,輸出:學(xué)號,姓名,年齡,成績。設(shè)計研究生類,從學(xué)生類公有繼承,數(shù)據(jù)成員增加:研究方向(字符串類型);成員函數(shù)有構(gòu)造函數(shù)、信息輸出函數(shù)pr。構(gòu)造函數(shù)中輸出提示信息“construction”,并讀取用戶輸入的研究方向信息給新增成員初始化;定義信息輸出函數(shù)pr,輸出:學(xué)號,姓名,研究方向。編寫主程序測試代碼,定義一個學(xué)生指針,指向一個研究生類對象(申請堆空間),通過指針調(diào)用信息輸出函數(shù)pr,看看能不能輸出研究方向。題目內(nèi)容:設(shè)計學(xué)生類,數(shù)據(jù)成員包括學(xué)號、姓名、年齡、成績,為保護成員;成員函數(shù)有構(gòu)造函數(shù)、信息輸出函數(shù)pr。定義帶默認參數(shù)值的構(gòu)造函數(shù),默認值為:2021001,“Lili”,19,89.5。定義信息輸出函數(shù)pr,輸出:學(xué)號,姓名,年齡,成績。設(shè)計研究生類,從學(xué)生類公有繼承,數(shù)據(jù)成員增加:研究方向(字符串類型);成員函數(shù)有構(gòu)造函數(shù)、信息輸出函數(shù)pr。構(gòu)造函數(shù)中輸出提示信息“construction”,并讀取用戶輸入的研究方向信息給新增成員初始化;定義信息輸出函數(shù)pr,輸出:學(xué)號,姓名,研究方向。編寫主程序測試代碼,定義一個學(xué)生指針,指向一個研究生類對象(申請堆空間),通過指針調(diào)用信息輸出函數(shù)pr,看看能不能輸出研究方向。輸入格式:輸入研究方向字符串,不帶空格,以回車結(jié)束。輸出格式:每行輸出一個學(xué)生或研究生的信息,例如:學(xué)號,姓名,年齡,成績,以逗號分隔輸入樣例:AI輸出樣例:construction2021001,Lili,19,89.5#include#includeusingnamespacestd;classStudent{protected:intid;stringname;intage;doublescore;public://帶默認參數(shù)值的構(gòu)造函數(shù)Student(intid=2021001,stringname="Lili",intage=19,doublescore=89.5):id(id),name(name),age(age),score(score){}//信息輸出函數(shù)voidpr()const{cout<<id<<","<<name<<","<<age<<","<<score<<endl;}};classGraduateStudent:publicStudent{private:stringresearchDirection;public://構(gòu)造函數(shù)GraduateStudent(intid=2021001,stringname="Lili",intage=19,doublescore=89.5):Student(id,name,age,score){cout<<"construction"<<endl;cout<<"請輸入研究方向:";cin>>researchDirection;}//信息輸出函數(shù)voidpr()constoverride{Student::pr();//調(diào)用基類的pr函數(shù)輸出基本信息cout<<researchDirection<<endl;}};intmain(){//定義一個學(xué)生指針,指向一個研究生類對象(申請堆空間)Student*studentPtr=newGraduateStudent();//通過指針調(diào)用信息輸出函數(shù)prstudentPtr->pr();//釋放堆空間deletestudentPtr;return0;}說明:學(xué)生類(Student):數(shù)據(jù)成員:id、name、age、score,均為受保護成員,以便在派生類中訪問.構(gòu)造函數(shù):帶默認參數(shù)值的構(gòu)造函數(shù),用于初始化學(xué)生的基本信息.成員函數(shù):pr(),用于輸出學(xué)生的基本信息.研究生類(GraduateStudent):數(shù)據(jù)成員:增加

researchDirection,用于存儲研究方向.構(gòu)造函數(shù):調(diào)用基類的構(gòu)造函數(shù)初始化基本信息,并讀取用戶輸入的研究方向信息.構(gòu)造函數(shù)中輸出提示信息“construction”.成員函數(shù):pr(),重寫基類的

pr()

函數(shù),先調(diào)用基類的

pr()

輸出基本信息,然后輸出研究方向.主程序:使用

new

關(guān)鍵字在堆上創(chuàng)建一個

GraduateStudent

對象,并通過

Student

類型的指針

studentPtr

指向該對象.通過指針調(diào)用

pr()

函數(shù)輸出研究生的信息.使用

delete

關(guān)鍵字釋放堆空間.輸出格式:每行輸出一個學(xué)生或研究生的信息,以逗號分隔.研究生的信息包括學(xué)號、姓名、年齡、成績和研究方向.設(shè)計基類和派生類1.設(shè)計學(xué)生類,數(shù)據(jù)成員包括學(xué)號、姓名、年齡、成績,為保護成員;成員函數(shù)有構(gòu)造函數(shù)、析構(gòu)函數(shù)。定義帶默認參數(shù)值的構(gòu)造函數(shù),默認值為:2021001,“Lili”,19,89.5。定義析構(gòu)函數(shù),析構(gòu)時輸出:學(xué)號,姓名,以及提示字符串“~~~”。設(shè)計研究生類,從學(xué)生類公有繼承,數(shù)據(jù)成員增加:研究方向(字符串類型);成員函數(shù)有構(gòu)造函數(shù)、析構(gòu)函數(shù)。構(gòu)造函數(shù)中輸出提示信息“construction”,并讀取用戶輸入的研究方向信息給新增成員初始化;定義析構(gòu)函數(shù),析構(gòu)時輸出:學(xué)號,姓名,研究方向,以及提示字符串“~~~”。編寫主程序測試代碼,定義一個不帶參數(shù)的學(xué)生類對象。再定義一個不帶參數(shù)的研究生類對象。題目內(nèi)容:設(shè)計學(xué)生類,數(shù)據(jù)成員包括學(xué)號、姓名、年齡、成績,為保護成員;成員函數(shù)有構(gòu)造函數(shù)、析構(gòu)函數(shù)。定義帶默認參數(shù)值的構(gòu)造函數(shù),默認值為:2021001,“Lili”,19,89.5。定義析構(gòu)函數(shù),析構(gòu)時輸出:學(xué)號,姓名,以及提示字符串“~~~”。設(shè)計研究生類,從學(xué)生類公有繼承,數(shù)據(jù)成員增加:研究方向(字符串類型);成員函數(shù)有構(gòu)造函數(shù)、析構(gòu)函數(shù)。構(gòu)造函數(shù)中輸出提示信息“construction”,并讀取用戶輸入的研究方向信息給新增成員初始化;定義析構(gòu)函數(shù),析構(gòu)時輸出:學(xué)號,姓名,研究方向,以及提示字符串“~~~”。編寫主程序測試代碼,定義一個不帶參數(shù)的學(xué)生類對象。再定義一個不帶參數(shù)的研究生類對象。輸入格式:輸入研究方向字符串,不帶空格,以回車結(jié)束輸出格式:每行輸出一個學(xué)生或研究生信息,例如:學(xué)號,姓名,~~~,以逗號分隔輸入樣例:AI輸出樣例:constructionAI2021001,Lili,AI,~~~2021001,Lili,~~~2021001,Lili,~~~#include#includeusingnamespacestd;classStudent{protected:intid;stringname;intage;doublescore;public://帶默認參數(shù)值的構(gòu)造函數(shù)Student(intid=2021001,stringname="Lili",intage=19,doublescore=89.5):id(id),name(name),age(age),score(score){cout<<"Studentconstructorcalled:"<<id<<","<<name<<endl;}//析構(gòu)函數(shù)virtual~Student(){cout<<id<<","<<name<<",~~~"<<endl;}};classGraduateStudent:publicStudent{private:stringresearchDirection;public://構(gòu)造函數(shù)GraduateStudent(intid=2021001,stringname="Lili",intage=19,doublescore=89.5):Student(id,name,age,score){cout<<"construction"<<endl;cout<<"請輸入研究方向:";cin>>researchDirection;}//析構(gòu)函數(shù)~GraduateStudent(){cout<<id<<","<<name<<","<<researchDirection<<",~~~"<<endl;}};intmain(){//定義一個不帶參數(shù)的學(xué)生類對象Studentstudent;//定義一個不帶參數(shù)的研究生類對象GraduateStudentgraduateStudent;return0;}說明:學(xué)生類(Student):數(shù)據(jù)成員:id、name、age、score,均為受保護成員,以便在派生類中訪問.構(gòu)造函數(shù):帶默認參數(shù)值的構(gòu)造函數(shù),用于初始化學(xué)生的基本信息,并輸出構(gòu)造信息.析構(gòu)函數(shù):輸出學(xué)號、姓名和提示字符串“~~~”.研究生類(GraduateStudent):數(shù)據(jù)成員:增加

researchDirection,用于存儲研究方向.構(gòu)造函數(shù):調(diào)用基類的構(gòu)造函數(shù)初始化基本信息,輸出提示信息“construction”,并讀取用戶輸入的研究方向信息.析構(gòu)函數(shù):輸出學(xué)號、姓名、研究方向和提示字符串“~~~”.主程序:創(chuàng)建一個學(xué)生對象

student,使用默認構(gòu)造函數(shù)初始化.創(chuàng)建一個研究生對象

graduateStudent,使用默認構(gòu)造函數(shù)初始化,并讀取研究方向.輸出格式:每行輸出一個學(xué)生或研究生的信息,以逗號分隔.研究生的信息包括學(xué)號、姓名、研究方向和提示字符串“~~~”.注意:析構(gòu)函數(shù)的輸出將在對象生命周期結(jié)束時自動觸發(fā),因此不需要顯式調(diào)用.第9章類的特殊成員(第13-14周)復(fù)數(shù)相加1.定義復(fù)數(shù)類,數(shù)據(jù)成員包括實部和虛部;成員函數(shù)有構(gòu)造函數(shù),帶默認參數(shù)值(1,1)。以成員函數(shù)或友元函數(shù)的方式重載+運算符,實現(xiàn)兩個復(fù)數(shù)相加的功能。還有一個成員函數(shù),輸出復(fù)數(shù)a+bi。編寫主程序測試復(fù)數(shù)相加,輸入4個整數(shù),分別作為兩個復(fù)數(shù)的實部和虛部,如果第3個整數(shù)為-1000,則使用輸入的前兩個整數(shù)構(gòu)造一個復(fù)數(shù),利用默認參數(shù)構(gòu)造另一個復(fù)數(shù),并相加。最后輸出兩個復(fù)數(shù)之和。題目內(nèi)容:定義復(fù)數(shù)類,數(shù)據(jù)成員包括實部和虛部;成員函數(shù)有構(gòu)造函數(shù),帶默認參數(shù)值(1,1)。以成員函數(shù)或友元函數(shù)的方式重載+運算符,實現(xiàn)兩個復(fù)數(shù)相加的功能。還有一個成員函數(shù),輸出復(fù)數(shù)a+bi。編寫主程序測試復(fù)數(shù)相加,輸入4個整數(shù),分別作為兩個復(fù)數(shù)的實部和虛部,如果第3個整數(shù)為-1000,則使用輸入的前兩個整數(shù)構(gòu)造一個復(fù)數(shù),利用默認參數(shù)構(gòu)造另一個復(fù)數(shù),并相加。最后輸出兩個復(fù)數(shù)之和。輸入格式:輸入4個整數(shù),用空格分隔,分別作為兩個復(fù)數(shù)的實部和虛部輸出格式:輸出兩個復(fù)數(shù)的和輸入樣例:12-35輸出樣例:-2+7i#includeusingnamespacestd;classComplex{private:intreal;intimag;public://帶默認參數(shù)值的構(gòu)造函數(shù)Complex(intr=1,inti=1):real(r),imag(i){}//重載+運算符,實現(xiàn)兩個復(fù)數(shù)相加Complexoperator+(constComplex&other)const{returnComplex(real+other.real,imag+other.imag);}//輸出復(fù)數(shù)a+bivoidprint()const{cout<<real<<"+"<<imag<<"i"<<endl;}};intmain(){intreal1,imag1,real2,imag2;//讀取輸入的4個整數(shù)cin>>real1>>imag1>>real2>>imag2;Complexc1(real1,imag1);//如果第3個整數(shù)為-1000,則使用默認參數(shù)構(gòu)造另一個復(fù)數(shù)Complexc2;if(real2==-1000){c2=Complex(real1,imag1);}else{c2=Complex(real2,imag2);}//計算兩個復(fù)數(shù)之和Complexsum=c1+c2;//輸出兩個復(fù)數(shù)之和sum.print();return0;}說明:復(fù)數(shù)類(Complex):數(shù)據(jù)成員:real

imag,分別表示復(fù)數(shù)的實部和虛部.構(gòu)造函數(shù):帶默認參數(shù)值的構(gòu)造函數(shù),如果未提供參數(shù),則默認構(gòu)造復(fù)數(shù)

1+1i.運算符重載:重載

+

運算符,實現(xiàn)兩個復(fù)數(shù)相加的功能.成員函數(shù):print(),用于輸出復(fù)數(shù)的形式

a+bi.主程序:讀取輸入的4個整數(shù),分別作為兩個復(fù)數(shù)的實部和虛部.如果第3個整數(shù)為

-1000,則使用輸入的前兩個整數(shù)構(gòu)造一個復(fù)數(shù),并利用默認參數(shù)構(gòu)造另一個復(fù)數(shù).計算兩個復(fù)數(shù)之和,并調(diào)用

print()

函數(shù)輸出結(jié)果.輸出格式:輸出兩個復(fù)數(shù)的和,格式為

a+bi.注意:運算符重載可以作為成員函數(shù)或友元函數(shù)實現(xiàn),這里使用了成員函數(shù)的方式.如果需要處理更復(fù)雜的復(fù)數(shù)運算或輸出格式,可以在類中添加更多的成員函數(shù)或友元函數(shù).類的組合應(yīng)用1.定義屏幕上的坐標點point為類類型,數(shù)據(jù)成員包括x坐標、y坐標、顏色,均為私有成員;成員函數(shù)有構(gòu)造函數(shù),帶默認參數(shù)值(0,0,255),會輸出提示信息“point(x,y,color)”,其中x,y,color輸出實際值。還有g(shù)etx和gety以及getColor函數(shù),分別返回3個數(shù)據(jù)成員的值,析構(gòu)函數(shù)中輸出提示信息“point~~~”。定義矩形類,數(shù)據(jù)成員包括左上角的坐標點(內(nèi)嵌point類對象),還有矩形的長、寬;成員函數(shù)有構(gòu)造函數(shù),會輸出提示信息“rect”,信息輸出函數(shù),輸出矩形的x坐標、y坐標、長、寬,析構(gòu)函數(shù)中輸出提示信息“rect~~~”。編寫主程序,讀取用戶輸入的x坐標、y坐標、長、寬的值,定義矩陣類對象,然后調(diào)用信息輸出函數(shù),測試類的組合應(yīng)用。題目內(nèi)容:定義屏幕上的坐標點point為類類型,數(shù)據(jù)成員包括x坐標、y坐標、顏色,均為私有成員;成員函數(shù)有構(gòu)造函數(shù),帶默認參數(shù)值(0,0,255),會輸出提示信息“point(x,y,color)”,其中x,y,color輸出實際值。還有g(shù)etx和gety以及getColor函數(shù),分別返回3個數(shù)據(jù)成員的值,析構(gòu)函數(shù)中輸出提示信息“point~~~”。定義矩形類,數(shù)據(jù)成員包括左上角的坐標點(內(nèi)嵌point類對象),還有矩形的長、寬;成員函數(shù)有構(gòu)造函數(shù),會輸出提示信息“rect”,信息輸出函數(shù),輸出矩形的x坐標、y坐標、長、寬,析構(gòu)函數(shù)中輸出提示信息“rect~~~”。編寫主程序,讀取用戶輸入的x坐標、y坐標、長、寬的值,定義矩陣類對象,然后調(diào)用信息輸出函數(shù),測試類的組合應(yīng)用。輸入格式:輸入4個整數(shù),用空格分隔輸出格式:每個函數(shù)的輸出占一行,如果需要輸出多項內(nèi)容則用逗號分隔輸入樣例:1234輸出樣例:point(1,2,255)rect1,2,3,4rect~~~point~~~#includeusingnamespacestd;classPoint{private:intx,y,color;public://帶默認參數(shù)值的構(gòu)造函數(shù)Point(intx=0,inty=0,intcolor=255):x(x),y(y),color(color){cout<<"point("<<x<<","<<y<<","<<color<<")"<<endl;}//獲取x坐標intgetx()const{returnx;}//獲取y坐標intgety()const{returny;}//獲取顏色intgetColor()const{returncolor;}//析構(gòu)函數(shù)~Point(){cout<<"point~~~"<<endl;}};classRectangle{private:PointtopLeft;//左上角坐標點intlength,width;public://構(gòu)造函數(shù)Rectangle(intx,inty,intlength,intwidth):topLeft(x,y),length(length),width(width){cout<<"rect"<<endl;}//信息輸出函數(shù)voidprintInfo()const{cout<<topLeft.getx()<<","<<topLeft.gety()<<","<<length<<","<<width<<endl;}//析構(gòu)函數(shù)~Rectangle(){cout<<"rect~~~"<<endl;}};intmain(){intx,y,length,width;//讀取用戶輸入的x坐標、y坐標、長、寬的值cin>>x>>y>>length>>width;//定義矩形類對象Rectanglerect(x,y,length,width);//調(diào)用信息輸出函數(shù)rect.printInfo();return0;}說明:Point類:數(shù)據(jù)成員:x、y、color,均為私有成員.構(gòu)造函數(shù):帶默認參數(shù)值的構(gòu)造函數(shù),輸出提示信息

point(x,y,color).成員函數(shù):getx()、gety()、getColor(),分別返回

x、y、color

的值.析構(gòu)函數(shù):輸出提示信息

point~~~.Rectangle類:數(shù)據(jù)成員:topLeft(內(nèi)嵌

Point

類對象)、length、width.構(gòu)造函數(shù):初始化左上角坐標點和長寬,輸出提示信息

rect.成員函數(shù):printInfo(),輸出矩形的

x

坐標、y

坐標、長、寬.析構(gòu)函數(shù):輸出提示信息

rect~~~.主程序:讀取用戶輸入的

x

坐標、y

坐標、長、寬的值.創(chuàng)建

Rectangle

對象

rect,并調(diào)用其

printInfo()

函數(shù)輸出信息.第10章多態(tài)(第15-16周)虛函數(shù)和抽象類練習(xí)1.定義簡單的抽象類shape作為基類:有兩個保護數(shù)據(jù)成員表示x坐標和y坐標;帶有默認參數(shù)值的構(gòu)造函數(shù)對數(shù)據(jù)成員進行初始化;虛析構(gòu)函數(shù)中輸出提示信息“~~~shape”;虛函數(shù)area求面積,返回值為double類型。定義派生類circle,從shape類公有繼承:有一個私有數(shù)據(jù)成員“半徑”;構(gòu)造函數(shù)中請用戶輸入半徑進行初始化;虛析構(gòu)函數(shù)中輸出提示信息“~~~circle”;虛函數(shù)area求圓的面積,返回值為double類型。在main函數(shù)中,定義shape類指針,指向circle堆對象,通過指針調(diào)用area求面積,并輸出顯示(小數(shù)點后保留2位小數(shù)),最后釋放堆空間。測試虛函數(shù)和虛析構(gòu)函數(shù)的應(yīng)用。題目內(nèi)容:定義簡單的抽象類shape作為基類:有兩個保護數(shù)據(jù)成員表示x坐標和y坐標;帶有默認參數(shù)值的構(gòu)造函數(shù)對數(shù)據(jù)成員進行初始化;虛析構(gòu)函數(shù)中輸出提示信息“~~~shape”;虛函數(shù)area求面積,返回值為double類型。定義派生類circle,從shape類公有繼承:有一個私有數(shù)據(jù)成員“半徑”;構(gòu)造函數(shù)中請用戶輸入半徑進行初始化;虛析構(gòu)函數(shù)中輸出提示信息“~~~circle”;虛函數(shù)area求圓的面積,返回值為double類型。在main函數(shù)中,定義shape類指針,指向circle堆對象,通過指針調(diào)用area求面積,并輸出顯示(小數(shù)點后保留2位小數(shù)),最后釋放堆空間。測試虛函數(shù)和虛析構(gòu)函數(shù)的應(yīng)用。輸入格式:輸入一個整數(shù)值作為半徑輸出格式:輸出面積,保留2位小數(shù)。析構(gòu)函數(shù)中輸出提示信息,各占一行。輸入樣例:2輸出樣例:12.56~~~circle~~~shape#include#includeusingnamespacestd;classShape{protected:intx,y;public://帶有默認參數(shù)值的構(gòu)造函數(shù)Shape(intx=0,inty=0):x(x),y(y){

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論