![2021年C面向?qū)ο蟪绦蛟O(shè)計上機(jī)考試題庫_第1頁](http://file4.renrendoc.com/view11/M03/07/1F/wKhkGWX3eB-AWIf8AAD9CDypTlo016.jpg)
![2021年C面向?qū)ο蟪绦蛟O(shè)計上機(jī)考試題庫_第2頁](http://file4.renrendoc.com/view11/M03/07/1F/wKhkGWX3eB-AWIf8AAD9CDypTlo0162.jpg)
![2021年C面向?qū)ο蟪绦蛟O(shè)計上機(jī)考試題庫_第3頁](http://file4.renrendoc.com/view11/M03/07/1F/wKhkGWX3eB-AWIf8AAD9CDypTlo0163.jpg)
![2021年C面向?qū)ο蟪绦蛟O(shè)計上機(jī)考試題庫_第4頁](http://file4.renrendoc.com/view11/M03/07/1F/wKhkGWX3eB-AWIf8AAD9CDypTlo0164.jpg)
![2021年C面向?qū)ο蟪绦蛟O(shè)計上機(jī)考試題庫_第5頁](http://file4.renrendoc.com/view11/M03/07/1F/wKhkGWX3eB-AWIf8AAD9CDypTlo0165.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C++面向?qū)ο蟪绦蛟O(shè)計上機(jī)考試題庫一、第一類題目(20道,每題7分,在word中保存代碼并將輸出成果窗口保存)1.定義盒子Box類,規(guī)定具備如下成員:長、寬、高分別為x,y,z,可設(shè)立盒子形狀;可計算盒子體積;可計算盒子表面積。#include<iostream>classBox{private:intx,y,z;intv,s;public:voidint(intx1=0,inty1=0,intz1=0){x=x1;y=y1;z=z1;}voidvolue(){v=x*y*z;}voidarea(){s=2*(x*y+x*z+y*z);}voidshow(){cout<<"x="<<x<<"y="<<y<<"z="<<z<<endl;cout<<"s="<<s<<"v="<<v<<endl;}};voidmain(){Boxa;a.init(2,3,4);a.volue();a.area();a.show();}有兩個長方柱,其長、寬、高分別為:(1)30,20,10;(2)12,10,20。分別求她們體積。編一種基于對象程序,在類中用帶參數(shù)構(gòu)造函數(shù)。#include<iostream>usingnamespacestd;classBox{public:Box(int,int,int);//帶參數(shù)構(gòu)造函數(shù)intvolume();private:intlength;intwidth;intheight;};Box::Box(intlen,inth,intw){length=len;height=h;width=w;}//Box::Box(intlen,intw,int,h):length(len),height(h),width(w){}intBox::volume(){return(length*width*height);}intmain(){Boxbox1cout<<"Thevolumeofbox1is"<<box1.volume()<<endl;Boxbox2cout<<"Thevolumeofbox2is"<<box2.volume()<<endl;return0;}有兩個長方柱,其長、寬、高分別為:(1)12,20,25;(2)10,30,20。分別求她們體積。編一種基于對象程序,且定義兩個構(gòu)造函數(shù),其中一種有參數(shù),一種無參數(shù)。#include<iostream>usingnamespacestd;classBox{public:Box();Box(intlen,intw,inth):length(len),width(w),height(h){}intvolume();private:intlength;intwidth;intheight;};intBox::volume(){return(length*width*height);}intmain(){Boxbox1cout<<"Thevolumeofbox1is"<<box1.volume()<<endl;Boxbox2cout<<"Thevolumeofbox2is"<<box2.volume()<<endl;return0;}聲明一種類模板,運用它分別實現(xiàn)兩個整數(shù)、浮點數(shù)和字符比較,求出大數(shù)和小數(shù)。#include<iostream>usingnamespacestd;template<classnumtype>//聲明一種類模板classCompare{public:Compare(numtypea,numtypeb){x=a;y=b;}numtypemax(){return(x>y)?x:y;}numtypemin(){return(x<y)?x:y;}private:numtypex,y;};intmain(){Compare<int>cmp1(3,7);cout<<cmp1.max()<<"istheMaximumoftwointedernumbers."<<endl;cout<<cmp1.min()<<"istheMinimumoftwointedernumbers."<<endl<<endl;Compare<float>cmp2(45.78,93.6);cout<<cmp2.max()<<"istheMaximumoftwofloatnumbers."<<endl;cout<<cmp2.min()<<"istheMinimumoftwofloatnumbers."<<endl<<endl;Compare<char>cmp3('a','A');cout<<cmp3.max()<<"istheMaximumoftwocharacters."<<endl;cout<<cmp3.min()<<"istheMinimumoftwocharacters."<<endl;return0;}建立一種對象數(shù)組,內(nèi)放5個學(xué)生數(shù)據(jù)(學(xué)號、成績),用指針指向數(shù)組首元素,輸出第1,3,5個學(xué)生數(shù)據(jù)。初值自擬。#include<iostream>usingnamespacestd;classStudent{public:Student(intn,doubles):num(n),score(s){}voiddisplay();private:intnum;doublescore;};voidStudent::display(){cout<<num<<""<<score<<endl;}intmain(){Studentstud[5]={Student(101,78.5),Student(102,85.5),Student(103,98.5),Student(104,100.0),Student(105,95.5)};Student*p=stud;for(inti=0;i<=2;p=p+2,i++)p->display();return0;}建立一種對象數(shù)組,內(nèi)放5個學(xué)生數(shù)據(jù)(學(xué)號、成績),設(shè)立一種函數(shù)max,用指向?qū)ο笾羔樧骱瘮?shù)參數(shù),在max函數(shù)中找出5個學(xué)生中成績最高者,并輸出其學(xué)號。初值自擬。#include<iostream>usingnamespacestd;classStudent{public:Student(intn,floats):num(n),score(s){}intnum;floatscore;};voidmain(){Studentstud[5]={Student(101,78.5),Student(102,85.5),Student(103,98.5),Student(104,100.0),Student(105,95.5)};voidmax(Student*);Student*p=&stud[0];max(p);}voidmax(Student*arr){floatmax_score=arr[0].score;intk=0;for(inti=1;i<5;i++)if(arr[i].score>max_score){max_score=arr[i].score;k=i;}cout<<arr[k].num<<""<<max_score<<endl;}用new建立一種動態(tài)一維數(shù)組,并初始化int[10]={1,2,3,4,5,6,7,8,9,10},用指針輸出,最后銷毀數(shù)組所占空間。#include<iostream>#include<string>usingnamespacestd;voidmain(){int*p;p=newint[10];for(inti=1;i<=10;i++){*(p+i-1)=i;cout<<*(p+i-1)<<"";}cout<<endl;delete[]p;return;}定義一種復(fù)數(shù)類Complex,重載運算符“+”,使之能用于復(fù)數(shù)加法運算。將運算符函數(shù)重載為非成員、非友元普通函數(shù)。編寫程序,求兩個復(fù)數(shù)之和。初值自擬。#include<iostream>usingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}doubleget_real();doubleget_imag();voiddisplay();private:doublereal;doubleimag;};doubleComplex::get_real(){returnreal;}doubleComplex::get_imag(){returnimag;}voidComplex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}Complexoperator+(Complex&c1,Complex&c2){returnComplex(c1.get_real()+c2.get_real(),c1.get_imag()+c2.get_imag());}intmain(){Complexc1(3,4),c2(5,-10),c3;c3=c1+c2;cout<<"c3=";c3.display();return0;}定義一種復(fù)數(shù)類Complex,重載運算符“+”,“—”,使之能用于復(fù)數(shù)加,減運算,運算符重載函數(shù)作為Complex類成員函數(shù)。編程序,分別求出兩個復(fù)數(shù)之和,差。初值自擬。usingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}Complexoperator+(Complex&c2);Complexoperator-(Complex&c2);voiddisplay();private:doublereal;doubleimag;};ComplexComplex::operator+(Complex&c2){Complexc;c.real=real+c2.real;c.imag=imag+c2.imag;returnc;}ComplexComplex::operator-(Complex&c2){Complexc;c.real=real-c2.real;c.imag=imag-c2.imag;returnc;}voidComplex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}intmain(){Complexc1(3,4),c2(5,-10),c3;c3=c1+c2;cout<<"c1+c2=";c3.display();c3=c1-c2;cout<<"c1-c2=";c3.display();return0;}定義一種復(fù)數(shù)類Complex,重載運算符“*”,“/”,使之能用于復(fù)數(shù)乘,除。運算符重載函數(shù)作為Complex類成員函數(shù)。編程序,分別求出兩個復(fù)數(shù)之積和商。初值自擬。提示:兩復(fù)數(shù)相乘計算公式為:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i。兩復(fù)數(shù)相除計算公式為:(a+bi)/(c+di)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d)i。#include<iostream>usingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}Complexoperator*(Complex&c2);Complexoperator/(Complex&c2);voiddisplay();private:doublereal;doubleimag;};ComplexComplex::operator*(Complex&c2){Complexc;c.real=real*c2.real-imag*c2.imag;c.imag=imag*c2.real+real*c2.imag;returnc;}ComplexComplex::operator/(Complex&c2){Complexc;c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);returnc;}voidComplex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}intmain(){Complexc1(3,4),c2(5,-10),c3;c3=c1*c2;cout<<"c1*c2=";c3.display();c3=c1/c2;cout<<"c1/c2=";c3.display();return0;}定義一種復(fù)數(shù)類Complex,重載運算符“+”,使之能用于復(fù)數(shù)加法運算。參加運算兩個運算量可以都是類對象,也可以其中有一種是整數(shù),順序任意。例如:c1+c2,i+c1,c1+i均合法(設(shè)i為整數(shù),c1,c2為復(fù)數(shù))。編程序,分別求兩個復(fù)數(shù)之和、整數(shù)和復(fù)數(shù)之和。初值自擬。#include<iostream.h>classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}Complexoperator+(Complex&c2);Complexoperator+(int&i);friendComplexoperator+(int&,Complex&);voiddisplay();private:doublereal;doubleimag;};ComplexComplex::operator+(Complex&c){returnComplex(real+c.real,imag+c.imag);}ComplexComplex::operator+(int&i){returnComplex(real+i,imag);}voidComplex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}Complexoperator+(int&i,Complex&c){returnComplex(i+c.real,c.imag);}intmain(){Complexc1(3,4),c2(5,-10),c3;inti=5;c3=c1+c2;cout<<"c1+c2=";c3.display();c3=i+c1;cout<<"i+c1=";c3.display();c3=c1+i;cout<<"c1+i=";c3.display();return0;}有兩個矩陣a和b,均為2行3列。求兩個矩陣之和。重載運算符“+”,使之能用于矩陣相加。如c=a+b。初值自擬。#include<iostream.h>classMatrix{public:Matrix();friendMatrixoperator+(Matrix&,Matrix&);voidinput();voiddisplay();private:intmat[2][3];};Matrix::Matrix(){for(inti=0;i<2;i++)for(intj=0;j<3;j++)mat[i][j]=0;}Matrixoperator+(Matrix&a,Matrix&b){Matrixc;for(inti=0;i<2;i++)for(intj=0;j<3;j++){c.mat[i][j]=a.mat[i][j]+b.mat[i][j];}returnc;}voidMatrix::input(){cout<<"inputvalueofmatrix:"<<endl;for(inti=0;i<2;i++)for(intj=0;j<3;j++)cin>>mat[i][j];}voidMatrix::display(){for(inti=0;i<2;i++){for(intj=0;j<3;j++){cout<<mat[i][j]<<"";}cout<<endl;}}intmain(){Matrixa,b,c;a.input();b.input();cout<<endl<<"Matrixa:"<<endl;a.display();cout<<endl<<"Matrixb:"<<endl;b.display();c=a+b;cout<<endl<<"Matrixc=Matrixa+Matrixb:"<<endl;c.display();return0;}將運算符“+”重載為合用于復(fù)數(shù)加法,重載函數(shù)不作為成員函數(shù),而放在類外,作為Complex類友元函數(shù)。初值自擬。#include<iostream.h>classComplex{public:Complex(){real=0;imag=0;}Complex(doubler){real=r;imag=0;}Complex(doubler,doublei){real=r;imag=i;}friendComplexoperator+(Complex&c1,Complex&c2);voiddisplay();private:doublereal;doubleimag;};Complexoperator+(Complex&c1,Complex&c2){returnComplex(c1.real+c2.real,c1.imag+c2.imag);}voidComplex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}intmain(){Complexc1(3,4),c2(5,-10),c3;c3=c1+c2;cout<<"c1=";c1.display();cout<<"c2=";c2.display();cout<<"c1+c2=";c3.display();return0;}定義一種字符串類String,用來存儲不定長字符串,重載運算符“==”,,用于兩個字符串等于比較運算。初值自擬。#include<iostream.h>#include<string.h>classString{public:String(){p=NULL;}String(char*str);friendbooloperator==(String&string1,String&string2);voiddisplay();private:char*p;};String::String(char*str){p=str;}voidString::display(){cout<<p;}booloperator==(String&string1,String&string2){if(strcmp(string1.p,string2.p)==0)returntrue;elsereturnfalse;}voidcompare(String&string1,String&string2){if(operator==(string1,string2)==1){string1.display();cout<<"=";string2.display();}cout<<endl;}intmain(){Stringstring1("Hello"),string2("Hello");compare(string1,string2);return0;}定義一種字符串類String,用來存儲不定長字符串,重載運算符"<",用于兩個字符串不大于比較運算。初值自擬。#include<iostream.h>#include<string.h>classString{public:String(){p=NULL;}String(char*str);friendbooloperator<(String&string1,String&string2);voiddisplay();private:char*p;};String::String(char*str){p=str;}voidString::display(){cout<<p;}booloperator<(String&string1,String&string2){if(strcmp(string1.p,string2.p)<0)returntrue;elsereturnfalse;}voidcompare(String&string1,String&string2){if(operator<(string1,string2)==1){string1.display();cout<<"<";string2.display();}cout<<endl;}intmain(){Stringstring1("Book"),string2("Computer");compare(string1,string2);return0;}定義一種字符串類String,用來存儲不定長字符串,重載運算符">",用于兩個字符串不不大于比較運算。初值自擬。#include<iostream.h>#include<string.h>classString{public:String(){p=NULL;}String(char*str);friendbooloperator>(String&string1,String&string2);voiddisplay();private:char*p;};String::String(char*str){p=str;}voidString::display(){cout<<p;}booloperator>(String&string1,String&string2){if(strcmp(string1.p,string2.p)>0)returntrue;elsereturnfalse;}voidcompare(String&string1,String&string2){if(operator>(string1,string2)==1){string1.display();cout<<">";string2.display();}cout<<endl;}intmain(){Stringstring1("Hello"),string2("Book");compare(string1,string2);return0;}定義一種描述學(xué)生基本狀況類,數(shù)據(jù)成員涉及姓名、學(xué)號、C++成績、英語和數(shù)學(xué)成績,成員函數(shù)涉及輸出數(shù)據(jù),求出總成績和平均成績。數(shù)據(jù)自擬。#include"string.h"#include<iostream.h>classCStuScore{public: char strName[12]; char strStuNO[9]; void SetScore(charsname[12],charNO[9],floats0,floats1,floats2) {strcpy(strName,sname); strcpy(strStuNO,NO); fScore[0]=s0; fScore[1]=s1; fScore[2]=s2;} void print() {cout<< cout<<"姓名:"<<strName;cout<<"學(xué)號:"<<strStuNO;cout<<"C++成績:"<<fScore[0]<<"英語成績:"<<fScore[1]<<"數(shù)學(xué)成績:"<<fScore[2]<<endl;} floatGetSUM(){return(float)((fScore[0]+fScore[1]+fScore[2]));}float GetAverage();private: float fScore[3]; }; floatCStuScore::GetAverage(){return(float)((fScore[0]+fScore[1]+fScore[2])/3.0);}voidmain(){ CStuScoreone; floata,b,c; char Name[12]; char StuNO[9];cout<<"姓名:";cin>>Name;cout<<"學(xué)號:";cin>>StuNO;cout<<"成績1:"<<"成績2:"<<"成績3:"<<"\n";cin>>a>>b>>c;one.SetScore(Name,StuNO,a,b,c);one.print();cout<<"平均成績?yōu)?<<one.GetAverage()<<"\n";cout<<"總成績"<<one.GetSUM()<<"\n";}先建立一種Point(點)類,包括數(shù)據(jù)成員x,y(坐標(biāo)點)。以它為基類,派生出一種Circle(圓)類,增長數(shù)據(jù)成員r(半徑),再以Circle類為直接基類,派生出一種Cylinder(圓柱體)類,在增長數(shù)據(jù)成員h(高)。編寫程序,重載運算符“<<”和“>>”,使之可以用于輸出以上類對象。#include<iostream.h>classPoint{public:Point(float=0,float=0);voidsetPoint(float,float);floatgetX()const{returnx;}floatgetY()const{returny;}friendostream&operator<<(ostream&,constPoint&);protected:floatx,y;};Point::Point(floata,floatb){x=a;y=b;}voidPoint::setPoint(floata,floatb){x=a;y=b;}ostream&operator<<(ostream&output,constPoint&p){output<<"["<<p.x<<","<<p.y<<"]"<<endl;returnoutput;}classCircle:publicPoint{public:Circle(floatx=0,floaty=0,floatr=0);voidsetRadius(float);floatgetRadius()const;floatarea()const;friendostream&operator<<(ostream&,constCircle&);protected:floatradius;};Circle::Circle(floata,floatb,floatr):Point(a,b),radius(r){}voidCircle::setRadius(floatr){radius=r;}floatCircle::getRadius()const{returnradius;}floatCircle::area()const{return3.14159*radius*radius;}ostream&operator<<(ostream&output,constCircle&c){output<<"Center=["<<c.x<<","<<c.y<<"],r="<<c.radius<<",area="<<c.area()<<endl;returnoutput;}classCylinder:publicCircle{public:Cylinder(floatx=0,floaty=0,floatr=0,floath=0);voidsetHeight(float);floatgetHeight()const;floatarea()const;floatvolume()const;friendostream&operator<<(ostream&,constCylinder&);protected:floatheight;};Cylinder::Cylinder(floata,floatb,floatr,floath):Circle(a,b,r),height(h){}voidCylinder::setHeight(floath){height=h;}floatCylinder::getHeight()const{returnheight;}floatCylinder::area()const{return2*Circle::area()+2*3.14159*radius*height;}floatCylinder::volume()const{returnCircle::area()*height;}ostream&operator<<(ostream&output,constCylinder&cy){output<<"Center=["<<cy.x<<","<<cy.y<<"],r="<<cy.radius<<",h="<<cy.height<<"\narea="<<cy.area()<<",volume="<<cy.volume()<<endl;returnoutput;}intmain(){Cylindercy1(3.5,6.4,5.2,10);cout<<"\noriginalcylinder:\nx="<<cy1.getX()<<",y="<<cy1.getY()<<",r="<<cy1.getRadius()<<",h="<<cy1.getHeight()<<"\narea="<<cy1.area()<<",volume="<<cy1.volume()<<endl;cy1.setHeight(15);cy1.setRadius(7.5);cy1.setPoint(5,5);cout<<"\nnewcylinder:\n"<<cy1;Point&pRef=cy1;cout<<"\npRefasapoint:"<<pRef;Circle&cRef=cy1;cout<<"\ncRefasaCircle:"<<cRef;return0;}寫一種程序,定義抽象類型Shape,由她派生三個類:Circle(圓形),Rectangle(矩形),Trapezoid(梯形),用一種函數(shù)printArea分別輸出三者面積,3個圖形數(shù)據(jù)在定義對象是給定。#include<iostream>usingnamespacestd;classShape{public:virtualdoublearea()const=0;};classCircle:publicShape{public:Circle(doubler):radius(r){}virtualdoublearea()const{return3.14159*radius*radius;};protected:doubleradius;};classRectangle:publicShape{public:Rectangle(doublew,doubleh):width(w),height(h){}virtualdoublearea()const{returnwidth*height;}protected:doublewidth,height;};classTrapezoid:publicShape{public:Trapezoid(doublew,doubleh,doublelen):width(w),height(h),length(len){}virtualdoublearea()const{return0.5*height*(width+length);}protected:doublewidth,height,length;};voidprintArea(constShape&s){cout<<s.area()<<endl;}intmain(){Circlecircle(12.6);cout<<"areaofcircle=";printArea(circle);Rectanglerectangle(4.5,8.4);cout<<"areaofrectangle=";printArea(rectangle);Trapezoidtrapezoid(4.5,8.4,8.0);cout<<"areaoftrapezoid=";printArea(trapezoid);return0;}定義一種人員類Cperson,涉及數(shù)據(jù)成員:姓名、編號、性別和用于輸入輸出成員函數(shù)。在此基本上派生出學(xué)生類CStudent(增長成績)和教師類Cteacher(增長教齡),并實現(xiàn)對學(xué)生和教師信息輸入輸出。#include<iostream.h>#include<string.h>classCPerson {public: voidSetData(char*name,char*id,boolisman=1) {intn=strlen(name); strncpy(pName,name,n); pName[n]='\0'; n=strlen(id); strncpy(pID,id,n); pID[n]='\0'; bMan=isman; } voidOutput() { cout<<"姓名:"<<pName<<endl; cout<<"編號:"<<pID<<endl; char*str=bMan?"男":"女"; cout<<"性別:"<<str<<endl; }private: charpName[20]; charpID[20]; boolbMan; };classCStudent:publicCPerson {public: voidInputScore(doublescore1,doublescore2,doublescore3) { dbScore[0]=score1; dbScore[1]=score2; dbScore[2]=score3; } voidPrint() { Output(); for(inti=0;i<3;i++) cout<<"成績"<<i+1<<":"<<dbScore[i]<<endl; }private: doubledbScore[3]; };classCteacher:publicCPerson {public: voidInputage(doubleage) { tage=age; } voidPrint() { Output(); cout<<"教齡:"<<tage<<endl; }private: doubletage; };voidmain() { CStudentstu; Cteachertea; stu.SetData("LiMing","21010211"); stu.InputScore(80,76,91); stu.Print(); tea.SetData("zhangli","001"); tea.Inputage(12); tea.Print();}二、第二類題目(20道,每題9分,請自行設(shè)計輸出格式)1.某商店經(jīng)銷一種貨品,貨品成箱購進(jìn),成箱賣出,購進(jìn)和賣出時以重量為單位,各箱重量不同樣,因而,商店需要記下當(dāng)前庫存貨品總量,規(guī)定把商店貨品購進(jìn)和賣出狀況模仿出來。#include<iostream>usingnamespacestd;classGoods{public:Goods(intw){weight=w;totalWeight+=w;}; ~Goods(){totalWeight-=weight;}; intWeight(){returnweight;};staticintTotalWeight(){returntotalWeight;}; private:intweight; staticinttotalWeight; };intGoods::totalWeight=0; main(){intw;cin>>w;Goods*g1=newGoods(w); cin>>w;Goods*g2=newGoods(w);cout<<Goods::TotalWeight()<<endl; deleteg2; cout<<Goods::TotalWeight()<<endl;}2.設(shè)計一種Time類,涉及三個私有數(shù)據(jù)成員:hour,minute,sec,用構(gòu)造函數(shù)初始化,內(nèi)設(shè)公用函數(shù)display(Date&d),設(shè)計一種Date類,涉及三個私有數(shù)據(jù)成員:month,day,year,也用構(gòu)適函數(shù)初始化;分別定義兩個帶參數(shù)對象t1(12,30,55),d1(3,25,),通過友員成員函數(shù)應(yīng)用,輸出d1和t1值。#include<iostream>usingnamespacestd;classDate;classTime{public:Time(int,int,int);voiddisplay(constDate&);private:inthour;intminute;intsec;};Time::Time(inth,intm,ints){hour=h;minute=m;sec=s;}classDate{public:Date(int,int,int);friendvoidTime::display(constDate&);private:intmonth;intday;intyear;};Date::Date(intm,intd,inty){month=m;day=d;year=y;}voidTime::display(constDate&da){cout<<da.month<<"/"<<da.day<<"/"<<da.year<<endl;cout<<hour<<":"<<minute<<":"<<sec<<endl;}intmain(){Timet1(12,30,55);Dated1(3,25,);t1.display(d1);return0;}3.設(shè)計一種Time類,涉及三個私有數(shù)據(jù)成員:hour,minute,sec,用構(gòu)造函數(shù)初始化,,設(shè)計一種Date類,涉及三個私有數(shù)據(jù)成員:month,day,year,也用構(gòu)適函數(shù)初始化;設(shè)計一種普通函數(shù)display(…),將display分別設(shè)立為T
ime類和Date類友元函數(shù),在主函數(shù)中分別定義兩個帶參數(shù)對象t1(12,30,55),d1(3,25,),調(diào)用desplay,輸出年、月、日和時、分、秒。#include<iostream>usingnamespacestd;classDate;classTime{public:Time(int,int,int);friendvoiddisplay(constDate&,constTime&);private:inthour;intminute;intsec;};Time::Time(inth,intm,ints){hour=h;minute=m;sec=s;}classDate{public:Date(int,int,int);friendvoiddisplay(constDate&,constTime&);private:intmonth;intday;intyear;};Date::Date(intm,intd,inty){month=m;day=d;year=y;}voiddisplay(constDate&d,constTime&t){cout<<d.month<<"/"<<d.day<<"/"<<d.year<<endl;cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;}intmain(){Timet1(10,30,55);Dated1(3,25,);display(d1,t1);return0;}4.可以定義點類(Point),再定義一種類(Distance)描述兩點之間距離,其數(shù)據(jù)成員為兩個點類對象,兩點之間距離計算可設(shè)計由構(gòu)造函數(shù)來實現(xiàn)。#include<iostream>#include<math.h>usingnamespacestd;classPoint{public:Point(doublexi,doubleyi){X=xi;Y=yi;} doubleGetX(){returnX;}doubleGetY(){returnY;}private:doubleX,Y;};classDistance{public: Distance(Pointp,Pointq); doubleGetdist(){returndist;}private: Pointa,b; doubledist;};Distance::Distance(Pointq1,Pointq2):a(q1),b(q2){doubledx=double(a.GetX()-b.GetX());doubledy=double(a.GetY()-b.GetY());dist=sqrt(dx*dx+dy*dy);}intmain(){Pointp1(3.0,5.0),p2(4.0,6.0);Distancedis(p1,p2);cout<<"Thisdistanceis:"<<dis.Getdist()<<endl;return0;}5.定義點類(Point),再定義一種函數(shù)(Distance)描述兩點之間距離,其數(shù)據(jù)成員為兩個點類對象,將兩點之間距離函數(shù)聲明為Point類友元函數(shù)。#include<iostream>#include<math.h>usingnamespacestd;classPoint{public:Point(doublexi,doubleyi){X=xi;Y=yi;} doubleGetX(){returnX;}doubleGetY(){returnY;}frienddoubleDistance(Point&a,Point&b); private:doubleX,Y;};doubleDistance(Point&a,Point&b){doubledx=a.X-b.X; doubledy=a.Y-b.Y;returnsqrt(dx*dx+dy*dy);}intmain(){Pointp1(3.0,5.0),p2(4.0,6.0);doubled=Distance(p1,p2);cout<<"Thisdistanceis"<<d<<endl;return0;}6.實現(xiàn)重載函數(shù)Double(x),返回值為輸人參數(shù)兩倍;參數(shù)分別為整型、浮點型、雙精度型,返回值類型與參數(shù)同樣。(用類模板實現(xiàn))#include<iostream>usingnamespacestd;template<classnumtype>classDouble{public: Double(numtypea) {x=a;} numtypebei() {return2*x;} private: numtypex;};intmain(){Double<int>dou1(3);cout<<dou1.bei()<<endl;Double<float>dou2(12.36);cout<<dou2.bei()<<endl;Double<double>dou3(25.33333);cout<<dou3.bei()<<endl;return0;}7.有一種Time類,包括數(shù)據(jù)成員minute(分)和sec(秒),模仿秒表,每次走一秒,滿60秒進(jìn)一分鐘,此時秒又從0開始算。規(guī)定輸出分和秒值。初值自擬。#include<iostream>usingnamespacestd;classTime{public:Time(){minute=0;sec=0;}Time(intm,ints):minute(m),sec(s){}Timeoperator++();voiddisplay(){cout<<minute<<":"<<sec<<endl;}private:intminute;intsec;};TimeTime::operator++(){if(++sec>=60){sec-=60;++minute;}return*this;}intmain(){Timetime1(34,0);for(inti=0;i<61;i++) {++time1;time1.display();}return0;}8.聲明一種教師(Teacher)類和一種學(xué)生(Student)類,用多重繼承方式聲明一種研究生(Graduate)派生類。教師類中涉及數(shù)據(jù)成員name(姓名),age(年齡),title(職稱)。學(xué)生類中涉及數(shù)據(jù)成員name(姓名),age(年齡),score(成績)。在定義派生類對象時給出初始化數(shù)據(jù)(自已定),然后輸出這些數(shù)據(jù)。初值自擬。#include<iostream>#include<string>usingnamespacestd;classTeacher{public:Teacher(stringnam,inta,stringt){name=nam;age=a;title=t;}voiddisplay(){cout<<"name:"<<name<<endl;cout<<"age"<<age<<endl;cout<<"title:"<<title<<endl;}protected:stringname;intage;stringtitle;};classStudent{public:Student(stringnam,chars,floatsco){name1=nam;sex=s;score=sco;}voiddisplay1(){cout<<"name:"<<name1<<endl;cout<<"sex:"<<sex<<endl;cout<<"score:"<<score<<endl;}protected:stringname1;charsex;floatscore;};classGraduate:publicTeacher,publicStudent{public:Graduate(stringnam,inta,chars,stringt,floatsco,floatw):Teacher(nam,a,t),Student(nam,s,sco),wage(w){}voidshow(){cout<<"name:"<<name<<endl;cout<<"age:"<<age<<endl;cout<<"sex:"<<sex<<endl;cout<<"score:"<<score<<endl;cout<<"title:"<<title<<endl;cout<<"wages:"<<wage<<endl;}private:floatwage;};intmain(){Graduategrad1("Wang-li",24,'f',"assistant",89.5,1234.5);grad1.show();return0;}9.在上題基本上,在Teacher類和Student類之上增長一種共同基類Person,如下圖所示。作為人員某些基本數(shù)據(jù)都放在Person中,在Teacher類和Student類中再增長某些必要數(shù)據(jù)(Student類中增長score,Teacher類中增長職稱title,Graduate類中增長工資wages)。初值自擬。PersonPersonStudentStudentTeacherTeacherGraduateGraduate#include<iostream>#include<string>usingnamespacestd;classPerson{public:Person(char*nam,chars,inta){strcpy(name,nam);sex=s;age=a;}protected:charname[20];charsex;intage;};classTeacher:virtualpublicPerson{public:Teacher(char*nam,chars,inta,char*t):Person(nam,s,a){strcpy(title,t);}protected:chartitle[10];};classStudent:virtualpublicPerson{public:Student(char*nam,chars,inta,floatsco):Person(nam,s,a),score(sco){}protected:floatscore;};classGraduate:publicTeacher,publicStudent{public:Graduate(char*nam,chars,inta,char*t,floatsco,floatw):Person(nam,s,a),Teacher(nam,s,a,t),Student(nam,s,a,sco),wage(w){}voidshow(){cout<<"name:"<<name<<endl;cout<<"age:"<<age<<endl;cout<<"sex:"<<sex<<endl;cout<<"score:"<<score<<endl;cout<<"title:"<<title<<endl;cout<<"wages:"<<wage<<endl;}private:floatwage;};intmain(){Graduategrad1("Wang-li",'f',24,"assistant",89.5,1234.5);grad1.show();return0;}寫一種程序,定義抽象類型Shape,由她派生三個類:Circle(圓形),Rectangle(矩形),Trapezoid(梯形),用一種函數(shù)printArea分別輸出三者面積,3個圖形數(shù)據(jù)在定義對象是給定。#include<iostream>usingnamespacestd;classShape{public:virtualdoublearea()const=0;//純虛函數(shù)};classCircle:publicShape{public:Circle(doubler):radius(r){}virtualdoublearea()const{return3.14159*radius*radius;};protected:doubleradius;};classRectangle:publicShape{public:Rectangle(doublew,doubleh):width(w),height(h){}virtualdoublearea()const{returnwidth*height;}protected:doublewidth,height;};classTrapezoid:publicShape{public:Trapezoid(doublew,doubleh,doublelen):width(w),height(h),length(len){}virtualdoublearea()const{return0.5*height*(width+length);}protected:doublewidth,height,length;};voidprintArea(constShape&s){cout<<s.area()<<endl;}intmain(){Circlecircle(12.6);cout<<"areaofcircle=";printArea(circle);Rectanglerectangle(4.5,8.4);cout<<"areaofrectangle=";printArea(rectangle);Trapezoidtrapezoid(4.5,8.4,8.0);cout<<"areaoftrapezoid=";printArea(trapezoid);return0;}聲明一種Shape抽象類,在此基本上派生出Rectangle和Circle類,兩者均有GetArea()函數(shù)計算對象面積,GetPerim()函數(shù)計算對象周長。#include<iostream>usingnamespacestd;classShape{public:Shape(){}~Shape(){}virtualfloatGetPerim()=0;virtualfloatGetArea()=0;};classRectangle:publicShape{public:Rectangle(floati,floatj):L(i),W(j){}~Rectangle(){}floatGetPerim(){return2*(L+W);}floatGetArea(){returnL*W;}private:floatL,W;};classCircle:publicShape{pub
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度冰淇淋品牌代理經(jīng)營數(shù)據(jù)監(jiān)測與分析合同
- 2025年度高科技農(nóng)業(yè)項目墊資合同樣本
- 2025年度純凈水電商平臺運營合作協(xié)議范本
- 2025年度網(wǎng)絡(luò)安全風(fēng)險評估與整改合同
- 醫(yī)院文化建設(shè)宣傳與落實方案計劃
- 小班社會性技能培養(yǎng)計劃
- 完美家庭學(xué)期班級家庭教育計劃
- 優(yōu)化項目周期管理的工作總結(jié)計劃
- 制定多層次績效激勵方案計劃
- 2025年金屬制衛(wèi)生、烹飪、餐飲器具項目建議書
- 跨境電商B2B數(shù)據(jù)運營高職PPT全套完整教學(xué)課件
- 鎖骨遠(yuǎn)端骨折伴肩鎖關(guān)節(jié)脫位的治療
- 2023年中國煤化工行業(yè)全景圖譜
- 小學(xué)美術(shù) 四年級 人教版《造型?表現(xiàn)-色彩表現(xiàn)與創(chuàng)作》“色彩”單元美術(shù)作業(yè)設(shè)計《色彩的明與暗》《色彩的漸變》《色彩的情感》
- 2015年新版《中華人民共和國職業(yè)分類大典》
- 中國心臟重癥鎮(zhèn)靜鎮(zhèn)痛專家共識專家講座
- 企業(yè)生產(chǎn)制造部門預(yù)算編制模板
- 新概念英語第二冊單詞默寫表
- 教育心理學(xué)智慧樹知到答案章節(jié)測試2023年浙江師范大學(xué)
- 川教版七年級生命生態(tài)安全下冊第1課《森林草原火災(zāi)的危害》教案
- 食品檢驗檢測機(jī)構(gòu)能力建設(shè)計劃方案
評論
0/150
提交評論