C++上機題目復(fù)習(xí)及答案2_第1頁
C++上機題目復(fù)習(xí)及答案2_第2頁
C++上機題目復(fù)習(xí)及答案2_第3頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第十周上機題目題目:1. 建立一個矩陣類Array,存儲一個nxn矩陣并能完成矩陣轉(zhuǎn)置運算。要求如下:(1) 私有成員數(shù)據(jù)int*x:指向存儲一個nxn矩陣值的內(nèi)存區(qū)域(二維數(shù)組作為一維數(shù)組存儲)intn:存儲矩陣行數(shù)(2)公有成員函數(shù)構(gòu)造函數(shù):用參數(shù)指定的值或缺省值3初始化n,并用n的值為矩陣動態(tài)申請內(nèi)存空間;析構(gòu)函數(shù):釋放對象存儲矩陣時占用的內(nèi)存空間;viodinput(int*a):將一個矩陣賦值給對象中的數(shù)組。voidprint():按行輸出矩陣的值。voidchange():轉(zhuǎn)置矩陣。編寫一個程序測試該類。定義對象A,將一個矩陣存入A中,并輸出矩陣的值,轉(zhuǎn)置對象A中的矩陣并輸出,使用

2、以下測試數(shù)據(jù):135127A=246A轉(zhuǎn)置后的矩陣=34979115611#include<iostream.h>#defineN3classArrayint*x;/指向存儲一個nxn矩陣值的內(nèi)存區(qū)域(二維數(shù)組作為一維數(shù)組存儲)intn;/存儲矩陣行數(shù)public:Array(ints=3)n=s;x=newintN*N;voidinput(int*a);/將一個矩陣賦值給對象中的數(shù)組。voidprint();/按行輸出矩陣的值。voidchange();/轉(zhuǎn)置矩陣。Array()if(x)deletex;voidmain()intaN3;inti,j;cout<<&q

3、uot;請輸入"<<N<<'*'<<N<<"的矩陣"<<endl;for(i=0;i<N;i+)for(j=0;j<N;j+)cin>>aij;Arrayd(N);d.input(aO);cout<<"原始數(shù)組為:n"d.print();d.change();cout<<"轉(zhuǎn)置后的數(shù)組為:n"d.print();voidArray:input(int*a)for(inti=0;i<N*N;i+)x

4、i=*a+;voidArray:print()for(inti=0;i<N*N;i+)(i+1)%3)?cout<<xi<<'t':cout<<xi<<endl;voidArray:change()inttemp;for(inti=0;i<N;i+)for(intj=0;j<i;j+)temp=xi*N+j;xi*N+j=xj*N+i;xj*N+i=temp;編程題模擬人腦神經(jīng)網(wǎng)絡(luò)的神經(jīng)元結(jié)構(gòu)模型如下圖所示:wi表示輸入信號的加權(quán)系數(shù),其中,xi表示輸入信號y表示神經(jīng)元的輸出,它們的之間的關(guān)系為:expXi2Wi

5、,xXi,X2,|”Xn這里,刀表示各項的和,exp(z)為求z的自然指數(shù)值ex的函數(shù),包含在頭文件math.h中,其函數(shù)原型為doubleexp(doublez)。試定義一個NN類實現(xiàn)上述模型。具體要求如下:私有成員floatx5,dt:數(shù)組x和數(shù)組w分別存放輸入信號xi及其加權(quán)系數(shù)wi;dt存放非零參數(shù)dodoubley:神經(jīng)元的突出。1) 公有成員:NN(floatt,floatd)用數(shù)組t初始化加權(quán)系統(tǒng)wi,用d初始化dt。voidfun(floatt):用數(shù)組t初始化xi,并根據(jù)上述公式計算y的值。voidprint():輸出輸入信號和輸出信號的值在主函數(shù)中,用輸入信號1.2,3.5

6、,2.3,3.2,2.8以及加權(quán)系數(shù)o.5,0.8,1.2,1.8,1.1對該類進行測試。#include<iostream.h>#include<math.h>classNNfloatx5,w5,dt;doubley;public:NN(floatt,floatd);用數(shù)組t初始化加權(quán)系統(tǒng)wi,用d初始化dt。voidfun(floatt);/用數(shù)組t初始化xi,并根據(jù)上述公式計算y的值。voidprint();/輸出輸入信號和輸出信號的值;voidmain()floata5=1.2,3.5,2.3,3.2,2.8;floatb5=0.5,0.8,1.2,1.8,1.

7、1;NNt(b,0.2);t.fun(a);t.print();NN:NN(floatt,floatd)for(inti=0;i<5;i+)wi=ti;dt=d;voidNN:fun(floatt)for(inti=0;i<5;i+)xi=ti;doublen=0.0;for(i=0;i<5;i+)n+=(xi-wi)*(xi-wi);y=exp(-n/(2*dt*dt);voidNN:print()cout<<"xi="for(inti=0;i<5;i+)cout<<xi<<''cout<&

8、lt;endl;cout<<"y="<<y<<endl;附加題:面向?qū)ο缶幊蹋簬缀螆D形類【要求】按以下描述和要求建立兩個類:基類Rectangle和派生類Cube:Rectangle私有成員:doublex1,y1;/左下角的坐標(biāo)doublex2,y2;/右上角的坐標(biāo)公有成員Rectangle(doublea=0,doubleb=0,doublec=0,doubled=0);/帶缺省值的構(gòu)造函數(shù)doublegetwidth();/計算并返回矩形的寬doublegetlength();/計算并返回矩形的長virtualvoiddisplay

9、();/輸出矩形的各坐標(biāo)及長寬注:正立方體Cube的底面矩形從基類繼承Cube:私有成員:stringname;/立方體名稱(字符串對象)doubleh;/立方體高度公有成員:Cube(string="",double=0,);/帶缺省值的構(gòu)造函數(shù)voidset(string,double);/修改立方體標(biāo)識符和高度值voiddisplay();/輸出立方體全部信息,并計算輸出體積Cubeadd(Cube&S);/將參數(shù)對象S的高度加到this對象上。以上成員函數(shù)的參數(shù)名如有未給出的則自已命名。頭文件包含語句為:#include<iostream.h>#

10、include<string.h>主函數(shù)要求:(1) 定義Rectangle類對象A坐標(biāo):10,10,30,40;定義Cube類對象B坐標(biāo):20,10,30,40名稱和高度:Box,60、C(C數(shù)據(jù)由B拷貝生成)和D(D數(shù)據(jù)暫無)。(2) 調(diào)用函數(shù)set修改對象C的名稱和高度值。數(shù)據(jù)為Trunk,95。調(diào)用函數(shù)display及相關(guān)函數(shù)輸出對象A、B和C的全部數(shù)據(jù),計算輸出B和C的體積。每個對象的信息占一行。(3) 調(diào)用add函數(shù),計算D=B+C。輸出D的全部數(shù)據(jù),計算并輸出D的體積。#include<iostream.h>#include<string.h>

11、classRectangledoublex1,y1;/左下角的坐標(biāo)doublex2,y2;/右上角的坐標(biāo)public:Rectangle(doublea=0,doubleb=0,doublec=0,doubled=0)x1=a,y1=b;x2=c,y2=d;doublegetwidth()return(x2-x1);/計算并返回矩形的寬doublegetlength()return(y2-y1);/計算并返回矩形的長voiddisplay();/輸出矩形的各坐標(biāo)及長寬;classCube:publicRectanglecharname10;/立方體名稱(字符串對象)doubleh;/立方體高度

12、public:Cube(doublea=0,doubleb=0,doublec=0,doubled=0,char*s=0,doubleh1=0):Rectangle(a,b,c,d)/帶缺省值的構(gòu)造函數(shù)if(s)strcpy(name,s);h=h1;voidset(char*,double);/修改立方體標(biāo)識符和高度值voiddisplay();/輸出立方體全部信息,并計算輸出體積Cubeadd(Cube&S);/將參數(shù)對象S的高度加到this對象上。;voidmain()RectangleA(10,10,30,40);CubeB(20,10,30,40,"Box"

13、;,60),C(B),D;B. set("Trunk",95);A.display();B.display();C. display();D=B.add(C);display();voidRectangle:display()cout<<"矩形:"cout<<"左下角的坐標(biāo):"<<x1<<','<<y1<<",右上角的坐標(biāo):"<<x2<<','<<y2<<'

14、,'cout<<"長:"<<(x2-x1)<<",寬:"<<(y2-y1)<<endl;voidCube:set(char*s,doubleh1)h=h1;strcpy(name,s);voidCube:display()doublemj=getwidth()*getlength();cout<<"長方體:"cout<<"底面積為:"<<mj<<','cout<<"

15、;體積為:"<<mj*h<<endl;CubeCube:add(Cube&S)h+=S.h;return*this;第十一周上機題目題目:1. 建立一個類NUM,求指定范圍內(nèi)的所有素數(shù)(質(zhì)數(shù))。具體要求如下:1) 私有數(shù)據(jù)成員。intdata25;依次存放指定范圍內(nèi)的所有素數(shù)。intspanl,span2;存放要求計算的素數(shù)的范圍。intnum;存放span1與span2之間的素數(shù)個數(shù)。2) 公有成員函數(shù)。構(gòu)造函數(shù)NUM(inta,intb);初始化所要求的素數(shù)的范圍span1、span2及num(值為0)。voidprocess():求出指定范圍內(nèi)的

16、所有素數(shù),把它們依次存放在數(shù)組data中,并將求出的素數(shù)的個數(shù)賦給num。voidprint():輸出求出的所有素數(shù)。3) 在主程序中對該類進行測試。使用測試數(shù)據(jù)span1=100,span2=200。即求100200之間的所有素數(shù)。#include<iostream.h>#include<math.h>classNUMintdata25;/依次存放指定范圍內(nèi)的所有素數(shù)。intspan1,span2;/存放要求計算的素數(shù)的范圍。intnum;/存放span1與span2之間的素數(shù)個數(shù)。public:NUM(inta,intb);voidprocess();voidpri

17、nt();voidmain()NUMa(100,200);cess();a.print();NUM:NUM(inta,intb)span1=a;span2=b;num=0;voidNUM:process()inti,n,f=0;for(i=span1;i<=span2;i+)for(n=2,f=0;n<=sqrt(i);n+)if(i%n=0)f=1;break;if(f=1)continue;datanum+=i;voidNUM:print()for(inti=0;i<num;)cout<<datai<<'t'if(+i%6

18、=0)cout<<endl;cout<<endl;編程題已知由一個數(shù)組派生出另一個數(shù)組的派生規(guī)則如下:假定原始數(shù)組為a10,新數(shù)組為b10,則bi的值為數(shù)組a中大于ai的元素的個數(shù)。例如,對于說明“inta=1,2,3,4,5;intb5;”,其中a1=2,數(shù)組a中有3個元素比a1大,則b1=3。試建立一個實現(xiàn)此功能的類ARRAY。具體要求如下:1) 私有數(shù)據(jù)成員。inta10,b10;a存放原始數(shù)組,b存放派生數(shù)組。2) 公有成員函數(shù)。構(gòu)造函數(shù)ARRAY(intdata10);初始化成員數(shù)組a。voidprocess();由數(shù)組a根據(jù)上述派生類規(guī)則,用循環(huán)語句計算數(shù)組

19、b的各元素。voidprint();屏幕顯示數(shù)組a和b。#include<iostream.h>classARRAYinta10,b10;public:ARRAY(intdata10);/初始化成員數(shù)組a。voidprocess();/由數(shù)組a根據(jù)上述派生類規(guī)則,用循環(huán)語句計算數(shù)組b的各元素。voidprint();/屏幕顯示數(shù)組a和b。;voidmain()inta=7,4,9,23,56,44,18,33,21,17;ARRAYarray(a);cess();array.print();ARRAY:ARRAY(intdata10)for(inti=0;i<

20、;10;i+)ai=datai;bi=0;voidARRAY:process()for(inti=0;i<10;i+)for(intk=0;k<10;k+)if(ak>ai)bi+;voidARRAY:print()cout<<"a10="for(inti=0;i<10;i+)cout<<ai<<''cout<<endl;cout<<"b10="for(i=0;i<10;i+)cout<<bi<<''cout&

21、lt;<endl;附加題:2. 面向?qū)ο缶幊蹋何锲繁9芟涔芾響?yīng)用程序【要求】按以下描述和要求建立一個類Boxes,執(zhí)行主函數(shù)對其測試。私有成員:int*box;/指向保管箱數(shù)組,下標(biāo)為箱號,元素值為0表示空箱;大于0表示該箱中存入的物品數(shù)量。char*flag;/指向客戶標(biāo)識符數(shù)組(下標(biāo)為箱號,與box數(shù)組配對使用)staticintsum;/累計存入物品數(shù)量intxh;/保管箱的個數(shù)公有成員:Boxes(intnum=10);/構(gòu)造函數(shù),動態(tài)分配box和flag數(shù)組空間,長度為num。Boxes();/析構(gòu)函數(shù),釋放分配的內(nèi)存voidput(intn,charm);/選擇一個空箱存入n

22、件物品,填寫客戶標(biāo)識符,并將物品數(shù)量累加到sum;若找不到空箱則輸出提示信息。voidget(charm);/根據(jù)客戶標(biāo)識符(元素下標(biāo))查找存儲的物品,找到后取出并清空保管箱(置0)。若找不到指定則輸出提示信息。voiddisplay();/輸出保管箱類所有數(shù)據(jù),統(tǒng)計占用箱個數(shù)和空閑箱個數(shù)。最后輸出存入物品數(shù)量頭文件包含語句為:#include<iostream.h>在類定義外面對靜態(tài)成員做定義性說明并賦初值為零:intBoxes:sum=0;主函數(shù)要求:1) 定義Boxes類對象A,B(2)。數(shù)組元素初始值為零。2) 調(diào)用函數(shù)put為對象A和B做存儲操作:A.put(5,R

23、9;);B.put(9,'K'A.put(8,P');B.put(15,H');B.put(40,F');調(diào)用函數(shù)display輸出對象A和B的全部數(shù)據(jù)。3) 調(diào)用函數(shù)put和get為對象A和B做存儲和取出操作:B.get(H');B.put(40,F');get(S');A.get(R');A.put(12,M');4) 調(diào)用函數(shù)display輸出對象A和B的全部數(shù)據(jù)。#include<iostream.h>classBoxesint*box;/指向保管箱數(shù)組,下標(biāo)為箱號,元素值為0表示空箱;大于0表

24、示該箱中存入的物品數(shù)量。char*flag;/指向客戶標(biāo)識符數(shù)組(下標(biāo)為箱號,與box數(shù)組配對使用)staticintsum;/累計存入物品數(shù)量intxh;public:Boxes(intnum=10);/構(gòu)造函數(shù),動態(tài)分配box和flag數(shù)組空間,長度為num。Boxes();/析構(gòu)函數(shù),釋放分配的內(nèi)存voidput(intn,charm);/選擇一個空箱存入n件物品,填寫客戶標(biāo)識符,并將物品數(shù)量累加到sum;若找不到空箱則輸出提示信息。voidget(charm);/根據(jù)客戶標(biāo)識符(元素下標(biāo))查找存儲的物品,找到后取出并清空保管箱(置0)。若找不到指定則輸出提示信息。voiddisplay

25、();/輸出保管箱類所有數(shù)據(jù),統(tǒng)計占用箱個數(shù)和空閑箱個數(shù)。后輸出存入物品數(shù)量;intBoxes:sum=0;voidmain()BoxesA,B(2);/數(shù)組元素初始值為零。A.put(5,'R');put(9,'K');A.put(8,'P');B.put(15,'H');B.put(40,'F');cout<<"A庫:n"A.display();cout<<"B庫:n"B.display();B.get('H');B.put(40,

26、'F');A.get('S');A.get('R');A.put(12,'M');cout<<"A庫:n"A.display();cout<<"B庫:n"B.display();Boxes:Boxes(intnum)box=newintnum;flag=newcharnum;xh=num;for(inti=0;i<num;i+)boxi=flagi=0;Boxes:Boxes()deletebox;deleteflag;voidBoxes:put(intn,ch

27、arm)inti=0;while(boxi!=0&&i+<xh);if(i<xh&&boxi=0)boxi=n;flagi=m;sum+=n;elsecout<<"無空箱存放客戶"<<m<<"的物品!nn"voidBoxes:get(charm)inti=0;while(flagi!=m&&i<xh)i+;if(flagi!=m)cout<<"沒有找到客戶"<<m<<"物品!nn"

28、;elsesum-=boxi;boxi=0;voidBoxes:display()intn=0;for(inti=0;i<xh;i+)if(boxi>0)cout<<"客戶"<<flagi<<":存放物品數(shù)量:"<<boxi<<"件。n"elsen+;cout<<"占用箱個數(shù):"<<xh-n<<"個,空閑箱個數(shù):"<<n<<"個。n存入物品總數(shù)量有:&qu

29、ot;<<sum<<"nn"第十二周上機題目一.編程題【程序功能】找出給定范圍內(nèi)的和親數(shù)。,其和對于兩個正整數(shù),如果其中的一個整數(shù)是另一個整數(shù)的全部真因子之和,反之亦然,則稱這兩個數(shù)為“和親數(shù)”。例如,220有真因子“1,2,4,5,10,11,20,22,44,55,110為284,而284有真因子“1,2,4,71,142”,22其0,和因為此220和284就是一對和親數(shù)。【編程要求】試建立一個類NNM私有數(shù)據(jù)成員intn1,n2;/查找數(shù)據(jù)的范圍inta102;/存儲mn(m<n)之間的所有和親數(shù)對,并存儲到a數(shù)組中1) intnum;/

30、統(tǒng)計和親數(shù)對的個數(shù)公有成員函數(shù)缺省構(gòu)造函數(shù):初始化數(shù)據(jù)成員n1,n2為0。2) 帶參構(gòu)造函數(shù)NNM(intm,intn):用參數(shù)初始化數(shù)據(jù)成員n1,n2。voidfind()函數(shù)用于查找n1n2之間的所有和親數(shù)對并存儲到數(shù)組中打印函數(shù)voidprint(),將結(jié)果輸出到屏幕#include<iostream.h>classNNMintn1,n2;inta102;intnum;public:1. NNM()n1=0;n2=0;num=0;NNM(inta,intb)n1=a,n2=b,num=0;voidfind();voidprint();voidmain()NNMa(2,500)

31、;a.find();a.print();voidNNM:find()intsum1=0,sum2=0;inti,n;for(i=n1;i<=n2;i+)for(sum1=0,n=1;n<i/2+1;n+)if(i%n=0)sum1+=n;for(sum2=0,n=1;n<sum1/2+1;n+)if(sum1%n=0)sum2+=n;if(sum2!=i|sum1=i)continue;anum0=i,anum+1=sum1;voidNNM:print()for(inti=0;i<num;i+)cout<<ai0<<','<

32、<ai1<<endl;編寫main函數(shù),接收鍵盤輸入的兩個正整數(shù)m和n(m<n),建立對象,通過調(diào)用成員函數(shù)完成親和數(shù)的查找及結(jié)果輸出的任務(wù)。【測試數(shù)據(jù)與運行結(jié)果】測試數(shù)據(jù):m=2,n=500。運行結(jié)果:(220,284)(284,220)二.編程題【要求】試建立一個類Student用于描述學(xué)生信息,具體要求如下:私有數(shù)據(jù)成員intid:學(xué)生學(xué)號。charyuwen:語文成績(五級分制:A、B、C、D和E,其它無效)。floatshuxue:數(shù)學(xué)成績(百分制)。公有成員函數(shù)1)缺省構(gòu)造函數(shù):初始化數(shù)據(jù)成員為0或NULL值。2)帶參構(gòu)造函數(shù):用參數(shù)初始化數(shù)據(jù)成員。3) v

33、oidPrint():輸出本對象的學(xué)號、語文成績和數(shù)學(xué)成績。4) 修改函數(shù)voidChange():從鍵盤輸入新的學(xué)號、語文成績和數(shù)學(xué)成績,修改相應(yīng)數(shù)據(jù)成員的值。5) 比較函數(shù)voidComp(Student&a,Student&b):比較a學(xué)生和b學(xué)生的數(shù)學(xué)成績,找出數(shù)學(xué)成績最高和最低的學(xué)生,輸出他們的信息。主程序:定義三個以上的對象,并且每個成員函數(shù)至少被調(diào)用一次。#include<iostream.h>classStudentintid;/學(xué)生學(xué)號。charyuwen;/語文成績(五級分制:A、B、C、D和E,其它無效)floatshuxue;/數(shù)學(xué)成績(百分

34、制)。public:Student()id=0,yuwen=NULL;shuxue=0;Student(int,char,float);voidPrint();voidChange();voidComp(Student&a,Student&b);voidmain()StudentA(78,'E',86),B(84,'D',82),C;A. Change();A.Comp(B,C);Student:Student(inta,charb,floatc)id=a,yuwen=b;shuxue=c;voidStudent:Print()cout<&

35、lt;"學(xué)號:"<<id<<",語文成績:"<<yuwen<<",數(shù)學(xué)成績:"<<shuxue<<endl;,其它無效)和數(shù)學(xué)成績:voidStudent:Change()cout<<"請輸入學(xué)生的學(xué)號、語文成績(五級分制:A/B/C/D/En"cin>>id>>yuwen>>shuxue;voidStudent:Comp(Student&a,Student&b)Studentma

36、x,min;max=shuxue>a.shuxue?(shuxue>b.shuxue?*this:b):(a.shuxue>b.shuxue?a:b);min=shuxue<a.shuxue?(shuxue<b.shuxue?*this:b):(a.shuxue<b.shuxue?a:b);cout<<"數(shù)學(xué)成績最高和最低的學(xué)生分別是:n"max.Print();min.Print();附加題:三.編程題:1. 實現(xiàn)描述超市的的類Suppermacket類,記錄系統(tǒng)中現(xiàn)有商品(用指針實現(xiàn)),定義增加商品的函數(shù)Append,刪除

37、商品的函數(shù)Delete,查詢商品的函數(shù)Query,并顯示查詢結(jié)果;定義商品類Goods,具有商品名稱Name,商品價格Price,商品數(shù)量number等屬性,操作Sale(銷售商品,余額不足時給予提示)、Add(商品上架操作)和ShowMe(顯示商品信息)。2. 編寫main函數(shù),測試以上所要求的各種功能,完成商品的增加、刪除和查詢商品,以及商品銷售和商品上架的操作。3. 可以利用對象成員來實現(xiàn)。#include<iostream.h>#include<string.h>classSuppermacket;classGoodscharname10;intPrice;in

38、tnumber;public:Goods()strcpy(name,"");Price=0;number=0;voidSale(intn);voidAdd();voidShowME()cout<<"商品:"<<name<<",價格:"<<Price<<",有"<<number<<"件。nn"friendSuppermacket;classSuppermacketGoods*PGoods;intnum;public

39、:Suppermacket(intn=10)PGoods=newGoodsn;num=n;voidAppend();voidDelete();voidQuery();Suppermacket()deletePGoods;voidmain()SuppermacketA(3);A.Append();A.Append();A.Delete();A.Query();voidSuppermacket:Append()for(inti=0;i<num;i+)if(PGoodsi.number=0)PGoodsi.Add();PGoodsi.ShowME();return;cout<<&q

40、uot;沒有空貨架上貨了!n"voidSuppermacket:Delete()charname10;intn;cout<<"請輸入需要銷售商品名稱和數(shù)量cin>>name>>n;for(inti=0;i<num;i+)if(strcmp(PG,name)=0)PGoodsi.Sale(n);return;cout<<"查無此商品!n"voidSuppermacket:Query()charname10;cout<<"請輸入需要查詢的商品名稱;"ci

41、n>>name;for(inti=0;i<num;i+)if(strcmp(PG,name)=0)PGoodsi.ShowME();return;cout<<"查無此商品!n"voidGoods:Sale(intn)if(n<number)number-=n;ShowME();elsecout<<"商品數(shù)量不夠,無法銷售!n"voidGoods:Add()cout<<"請輸入上架的商品名稱、價格及數(shù)量:"cin>>name>>Pri

42、ce>>number;第十三周上機題目1、編程題/*編寫一個程序,輸入N個學(xué)生數(shù)據(jù),包括學(xué)號、姓名、C+成績,要求輸出這些學(xué)生的數(shù)據(jù)、平均分與成績等級。提示:設(shè)計一個學(xué)生類Stud,除了包括id(學(xué)號卜name姓名)和C(成績)數(shù)據(jù)成員外,還有兩個靜態(tài)成員數(shù)據(jù)sum和num,分別存放總分和人數(shù),另有兩個普通成員函數(shù)setdata(和print(),分別用于給數(shù)據(jù)成員賦值和輸出數(shù)據(jù)成員的值,另有一個靜態(tài)成員函數(shù)avg(),它用于計算平均分,并輸出平均分。同時設(shè)計一個友元函數(shù),輸出成績對應(yīng)的等級:大于等于90:優(yōu);8090:良;7079:中;6069:及格;小于60:不及格在main(

43、)函數(shù)中定義了一個對象數(shù)組用于存儲輸入的學(xué)生數(shù)據(jù),設(shè)計一個完整的程序。*/#defineN3#include<iostream.h>#include<string.h>classStudintid;charname20;intdeg;staticintsum;/靜態(tài)成員變量staticintnum;public:Stud()Stud();voidsetdata();voiddisplay();staticvoidavg();friendvoidgrade(Stud&);intStud:num=0;intStud:sum=0;voidStud:setdata()/

44、設(shè)置學(xué)號、姓名、成績cout<<"PleaseinputId.:"cin>>id;cout<<"PleaseinputName:"cin>>name;cout<<"Pleaseinputscore:"cin>>deg;num+;/學(xué)生人數(shù)sum+=deg;/總成績voidStud:display()/輸出學(xué)生信息cout<<"Id="<<id<<",name="<<name&l

45、t;<",deg="<<deg<<endl;voidStud:avg()/計算平均成績cout<<"Averagescoreis"<<(float)sum/num<<endl;voidgrade(Stud&s)switch(s.deg/10)case0:case1:case2:case3:case4:case5:cout<<"不及格"break;case6:cout<<"及格"break;case7:cout<&

46、lt;"中”;break;case8:cout<<"良"break;case9:case10:cout<<"優(yōu)"break;voidmain()StudstuN;for(inti=1;i<=N;i+)stui.setdata();for(i=1;i<=N;i+)stui.display();cout<<"C+成績等級:"grade(stui);cout<<endl;Stud:avg();2、編程題/*=,直接實現(xiàn)兩個復(fù)定義一個復(fù)數(shù)類,通過重載運算符:=、+=、-=、

47、+、-、*、/、=、!數(shù)之間的各種運算。編寫一個完整的程序(包括測試各運算符的程序部分)。*/#include"iostream.h"classcomplexfloatReal,Image;public:complex(floatr=0,floati=0)Real=r;Image=i;floatgetR()returnReal;floatgetI()returnImage;voidshow()cout<<"Real="<<Real<<'t'<<"Image="<&l

48、t;Image<<'n'complexoperator+(complex&);complexoperator-(complex&);complexoperator*(complex&);complexoperator/(complex&);voidoperator=(complex&);intoperator=(complex&);intoperator!=(complex&);voidoperator+=(complex&);voidoperator-=(complex&);complexco

49、mplex:operator+(complex&c)complext;t.Real=Real+c.Real;t.Image=Image+c.Image;returnt;complexcomplex:operator-(complex&c)complext;t.Real=Real-c.Real;t.Image=Image-c.Image;returnt;complexcomplex:operator*(complex&c)complext;t.Real=Real*c.Real-Image*c.Image;t.Image=Real*c.Image+Image*c.Real;

50、returnt;complexcomplex:operator/(complex&c)complext;t.Real=(Real*c.Real+Image*c.Image)/(c.Real*c.Real+c.Image*c.Image);t.Image=(Image*c.Real-Real*c.Image)/(c.Real*c.Real+c.Image*c.Image);returnt;voidcomplex:operator=(complex&c)Real=c.Real;Image=c.Image;intcomplex:operator=(complex&c)if(R

51、eal=c.Real&&Image=c.Image)return1;elsereturn0;intcomplex:operator!=(complex&c)if(Real=c.Real|Image=c.Image)return0;elsereturn1;voidcomplex:operator+=(complex&c)Real=Real+c.Real;Image=Image+c.Image;voidcomplex:operator-=(complex&c)Real=Real-c.Real;Image=Image-c.Image;voidmain()com

52、plexc1(1,2),c2,c3(3,5);complexc,c4(5,6);c1.show();c2=c1;c2.show();c=c1+c3;c.show();c+=c1;c.show();c-=c1;c.show();c=c1/c3;c.show();c4+=c1*c2;c4.show();cout<<(c1=c2)<<'n'cout<<(c1!=c2)<<'n'第十四周上機題目1、編程題/*設(shè)計一個三角形類Triangle,包含三角形三條邊長的私有數(shù)據(jù)成員,另有重載運算符"+與“-”,以實現(xiàn)求兩個三角形對象的面積之和與之差。提示:在Triangle類中設(shè)計兩個友元函數(shù),重載運算符"+"與"-"。*/#include<iostream.h>#include<math.h>cl

溫馨提示

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

評論

0/150

提交評論