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

下載本文檔

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

文檔簡介

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

printf

scanf

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

a、b

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

a

b

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

sum

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

printf

函數(shù).intmain():程序的入口點(diǎn).printf("HelloBUPT\n");:輸出字符串“HelloBUPT”,并在末尾加上換行符.return0;:程序正常結(jié)束,返回值為0.2.基本數(shù)據(jù)類型與表達(dá)式(第2-3周)輸出最大值1.輸入3個(gè)整數(shù),找出其中的最大值并輸出。題目內(nèi)容:輸入3個(gè)整數(shù),找出其中的最大值并輸出。輸入格式:3個(gè)整數(shù)用空格分隔輸出格式:輸入樣例:385輸出樣例:8#includeintmain(){inta,b,c,max;//提示用戶輸入三個(gè)整數(shù)printf("請(qǐng)輸入三個(gè)整數(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>:包含標(biāo)準(zhǔn)輸入輸出庫,用于使用

printf

scanf

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

a、b、c

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

a、b

c

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

a

是最大值,然后通過比較

b

c

來更新

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

b

大于當(dāng)前的

max,則更新

max

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

c

大于當(dāng)前的

max,則更新

max

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

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

printf

scanf

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

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

ascii,用于存儲(chǔ)字符的ASCII碼值.printf("請(qǐng)輸入一個(gè)字符:");:提示用戶輸入一個(gè)字符.scanf("%c",&ch);:從標(biāo)準(zhǔn)輸入讀取一個(gè)字符,并將其存儲(chǔ)在變量

ch

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

ch

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

%x

是格式說明符,用于輸出整數(shù)的16進(jìn)制表示.return0;:程序正常結(jié)束,返回值為0.編程找出100-500之間有哪些數(shù)其各位數(shù)字之和為k1.請(qǐng)輸入一個(gè)0-9的數(shù)字k,編程找出100-500之間有哪些數(shù)其各位數(shù)字之和為k。把這些數(shù)輸出到屏幕顯示。題目內(nèi)容:請(qǐng)輸入一個(gè)0-9的數(shù)字k,編程找出100-500之間有哪些數(shù)其各位數(shù)字之和為k。把這些數(shù)輸出到屏幕顯示。輸入格式:輸入一位數(shù)字后回車輸出格式:符合條件的數(shù)輸出到屏幕顯示,每個(gè)數(shù)占一行輸入樣例:3輸出樣例:102111120201210300#includeintmain(){intk;intnum,sum,digit;//提示用戶輸入一個(gè)0-9之間的數(shù)字printf("請(qǐng)輸入一個(gè)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;//計(jì)算當(dāng)前數(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>:包含標(biāo)準(zhǔn)輸入輸出庫,用于使用

printf

scanf

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

k,用于存儲(chǔ)用戶輸入的數(shù)字.printf("請(qǐng)輸入一個(gè)0-9之間的數(shù)字:");:提示用戶輸入一個(gè)0-9之間的數(shù)字.scanf("%d",&k);:從標(biāo)準(zhǔn)輸入讀取一個(gè)整數(shù),并將其存儲(chǔ)在變量

k

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

temp

來存儲(chǔ)當(dāng)前數(shù),以便在計(jì)算各位數(shù)字之和時(shí)不改變?cè)瓟?shù).while(temp>0){...}:計(jì)算當(dāng)前數(shù)的各位數(shù)字之和.digit=temp%10;:獲取當(dāng)前最低位的數(shù)字.sum+=digit;:將該數(shù)字加到

sum

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

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

printf

scanf

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

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

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

i

和用于存儲(chǔ)最高分和最低分索引的變量

maxIndex

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

sum

average.scanf("%d",&N);:從標(biāo)準(zhǔn)輸入讀取評(píng)委數(shù)量

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

N

是否在有效范圍內(nèi),如果不在則輸出錯(cuò)誤信息并退出程序.for(i=0;i<N;i++){...}:循環(huán)輸入每個(gè)評(píng)委的評(píng)分.maxIndex=minIndex=0;:初始化最高分和最低分的索引為0.for(i=1;i<N;i++){...}:遍歷評(píng)分?jǐn)?shù)組,找出最高分和最低分的索引.for(i=0;i<N;i++){...}:計(jì)算去掉最高分和最低分后的總分.average=sum/(N-2);:計(jì)算平均分.printf("%.2f\n",average);:以兩位小數(shù)的格式輸出平均分.return0;:程序正常結(jié)束,返回值為0.計(jì)算學(xué)生總成績1.每個(gè)學(xué)生的信息包括:學(xué)號(hào)(整型)、姓名(字符串)、數(shù)學(xué)成績(浮點(diǎn)數(shù))、語文成績(浮點(diǎn)數(shù))、程序設(shè)計(jì)課程成績(浮點(diǎn)數(shù))。現(xiàn)有一個(gè)小班5個(gè)學(xué)生的信息,按行讀入,然后計(jì)算每個(gè)學(xué)生的總成績,輸出顯示學(xué)生的學(xué)號(hào)、姓名和總成績。題目內(nèi)容:每個(gè)學(xué)生的信息包括:學(xué)號(hào)(整型)、姓名(字符串)、數(shù)學(xué)成績(浮點(diǎn)數(shù))、語文成績(浮點(diǎn)數(shù))、程序設(shè)計(jì)課程成績(浮點(diǎn)數(shù))。現(xiàn)有一個(gè)小班5個(gè)學(xué)生的信息,按行讀入,然后計(jì)算每個(gè)學(xué)生的總成績,輸出顯示學(xué)生的學(xué)號(hào)、姓名和總成績。輸入格式:每行是一個(gè)學(xué)生的學(xué)號(hào)、姓名、數(shù)學(xué)成績、語文成績、程序設(shè)計(jì)課程成績,用空格分隔。輸出格式:一共輸出5行,每行是一個(gè)學(xué)生的信息:學(xué)號(hào),姓名,總成績。用逗號(hào)分隔。輸入樣例: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>:包含標(biāo)準(zhǔn)輸入輸出庫,用于使用

printf

scanf

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

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

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

printf

scanf

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

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

x

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

x

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

f(x-1)

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

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

x

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

f

計(jì)算

f(x)

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

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

printf

scanf

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

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

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

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

N.scanf("%s",str);:從標(biāo)準(zhǔn)輸入讀取字符串

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

printf

scanf

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

sqrt

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

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

x

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

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

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

get_average()

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

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

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

main()

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

get_average()

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

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

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

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

pr()

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

pr()

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

new

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

GraduateStudent

對(duì)象,并通過

Student

類型的指針

studentPtr

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

pr()

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

delete

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

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

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

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

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

1+1i.運(yùn)算符重載:重載

+

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

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

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

print()

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

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

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

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

x

坐標(biāo)、y

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

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

x

坐標(biāo)、y

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

Rectangle

對(duì)象

rect,并調(diào)用其

printInfo()

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論