C++_编程题库_第1页
C++_编程题库_第2页
C++_编程题库_第3页
C++_编程题库_第4页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精品31 定义盒子 Box 类,要求具有以下成员:长、宽、高分别为x,y,z,可设置盒子形状;可计算盒子体积;可计算盒子的表面积。#include #include using namespace std;class Boxpublic:int weight;int length;int hight;void box_shape(int w, int l, int h);int box_volume(int w, int l, int h);int box_area(int w, int l, int h);int main()Box mybox;cout mybox.weight mybox

2、.length mybox.hight;int box_v, box_a;mybox.box_shape(mybox.weight, mybox.length, mybox.hight);box_v = mybox.box_volume(mybox.weight, mybox.length, mybox.hight);感谢下载载精品cout This boxs volume = box_v endl;box_a = mybox.box_area(mybox.weight, mybox.length, mybox.hight);cout This boxs area = box_a endl;v

3、oid Box:box_shape(int w, int l, int h)if(w = l & l = h)cout This is a Cube! endl;elsecout This is a cuboid! endl;int Box:box_volume(int w, int l, int h)return w * l * h;int Box:box_area(int w, int l, int h)return 2 * w * l + 2 * l * h + 2 * w * h;感谢下载载精品32 有两个长方柱,其长、宽、高分别为:(1)30 ,20 ,10 ;( 2)12 ,10

4、, 20 。分别求他们的体积。编一个基于对象的程序,在类中用带参数的构造函数。#include class Boxprivate:int length;int weight;int hight;public:Box(int, int, int);int volume();int main()using namespace std;Box mybox1(30, 20, 10);cout The first Boxs volume = mybox1.volume() endl;感谢下载载精品Box mybox2(12, 10, 30);cout The second Boxs volume = m

5、ybox2.volume() endl;return 0;Box:Box(int l, int w, int h)length = l;weight = w;hight = h;int Box:volume()return (hight * weight * length);感谢下载载精品33 有两个长方柱,其长、宽、高分别为:(1)12 ,20 ,25 ;( 2)10 ,30 , 20 。分别求他们的体积。编一个基于对象的程序,且定义两个构造函数,其中一个有参数,一个无参数。#include class Boxprivate:int length;int wight;int height;p

6、ublic:Box();Box(int, int, int);int volume();int main()using namespace std;Box mybox1;cout The first boxs volume = mybox1.volume() endl;Box mybox2(10, 30, 20);cout The second boxs volume = mybox2.volume() endl;return 0;感谢下载载精品Box:Box()length = 12;wight = 20;height = 25;Box:Box(int l, int w, int h)len

7、gth = l;wight = w;height = h;int Box:volume()return length * wight * height;34 声明一个类模板,利用它分别实现两个整数、浮点数和字符的比较,求出大数和小数。感谢下载载精品#include using namespace std;templateclass Comparepublic:Compare(numtype a,numtype b)x=a;y=b;numtype max()return (xy)?x:y;numtype min()return (xy)?x:y;private:numtype x,y;int m

8、ain()Comparecmp1(3,4);coutcmp1.max() is the Maximum of two inteder numbers.endl;coutcmp1.min() is the Minimum of two inteder numbers.endlendl;Compare cmp2(45.78,93.6);coutcmp2.max() is the Maximum of two float numbers.endl;coutcmp2.min() is the Minimum of two float numbers.endlendl;Compare cmp3(a,A)

9、;coutcmp3.max() is the Maximum of two characters.endl;coutcmp3.min() is the Minimum of two characters.endl;return 0;感谢下载载精品35 建立一个对象数组, 内放 5 个学生的数据 (学号、成绩),用指针指向数组首元素,输出第 1 ,3,5 个学生的数据。初值自拟。#includeusing namespace std;class Studentpublic:Student(int n,int s):num(n),score(s)void display()coutnum scor

10、eendl;private:int num;int score;int main()Studentstud5=Student(01,70),Student(02,71),Student(03,72),Student(04,73),Student(05,74);Student *p=stud;for(int i=0;idisplay();return 0;36 建立一个对象数组,内放5 个学生的数据(学号、成绩),设立一个函数max ,用指向对象的指针作函数参数,在 max 函数中找出 5 个学生中成绩最高者, 并输出其学号。初值自拟。#includeusing namespace std;cl

11、ass Studentpublic:Student(int n,int s):num(n),score(s)int num;int score;int main()感谢下载载精品Studentstud5=Student(01,70),Student(02,71),Student(03,72),Student(04,73),Student(05,74);void max(Student *);Student *p=&stud0;max(p);return 0;void max(Student *arr)float max_score=arr0.score;for(int i=0;i5;i+)if

12、(max_scorearri.score)max_score=arri.score;coutmax_score arri.numendl;感谢下载载精品38.定义一个复数类Complex ,重载运算符“ + ”,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之和。初值自拟。#include class Complexprivate:double real;double image;public:Complex();Complex(double, double);double get_real();double get_image();Complex

13、operator + (Complex &, Complex &);int main()Complex s1(3, 4);Complex s2(5, -10);感谢下载载精品Complex c3;c3 = s1 + s2;std:cout s1 + s2 = ;std:cout ( c3.get_real() , c3.get_image() i) std:endl;/ Complex s1(3, 4);/ std:cout s1.get_real() std:endl;return 0;Complex:Complex(double r, double i)real = r;image = i

14、;Complex:Complex()real = 0;image = 0;感谢下载载精品double Complex:get_real()return real;double Complex:get_image()return image;Complex operator + (Complex & s1, Complex & s2)Complex c(s1.get_real() + s2.get_real(), s1.get_image() + s2.get_image();return c;39 定义一个复数类Complex ,重载运算符“”,“”,使之能用于复数的加,减运算,运算符重载函数

15、作为Complex类的成员函数。 编程序,分别求出两个复数之和,差。初值自拟。#include 感谢下载载精品class Complexprivate:double real;double image;public:Complex();Complex(double, double);Complex operator + (Complex &);Complex operator - (Complex &);void display();int main()Complex s1(3, 4), s2(5, 6), c;c = s1 + s2;c.display();c = s1 - s2;c.dis

16、play();感谢下载载精品return 0;Complex:Complex()real = 0;image = 0;Complex:Complex(double r, double i)real = r;image = i;Complex Complex:operator + (Complex & s1)Complex c;c.real = s1.real + real;c.image = s1.image + image;return c;感谢下载载精品Complex Complex:operator - (Complex & s1)Complex c;c.real = real - s1

17、.real;c.image = image - s1.image;return c;void Complex:display()using namespace std;cout real image endl;40. 定义一个复数类 Complex ,重载运算符“”,使之能用于复数的加法运算。参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意。例如: c1+c2 ,i+c1 ,c1+i 均合法(设 i 为整数, c1,c2 为复数)。编程序,分别求两个复数之和、整数和复数之和。初值自拟。#include class Complex感谢下载载精品private:double r

18、eal;double imag;public:Complex()real=0;imag=0;Complex(double r,double i)real=r;imag=i;Complex operator+(Complex &c2);Complex operator+(int &i);friend Complex operator+(int&,Complex &);void display();Complex Complex:operator+(Complex &c)return Complex(real+c.real,imag+c.imag);Complex Complex:operator

19、+(int &i)return Complex(real+i,imag);感谢下载载精品void Complex:display()using namespace std;cout(real,imagi)endl;Complex operator+(int &i,Complex &c)return Complex(i+c.real,c.imag);int main()using namespace std;Complex c1(3,4),c2(5,-10),c3;int i=5;c3=c1+c2;coutc1+c2=;c3.display();c3=i+c1;couti+c1=;c3.disp

20、lay();c3=c1+i;感谢下载载精品coutc1+i=;c3.display();return 0;41. 有两个矩阵 a 和 b ,均为 2 行 3 列。求两个矩阵之和。重载运算符“+ ”,使之能用于矩阵相加。如c=a+b 。初值自拟。#include using namespace std;class Matrix/ 定义 Matrix类public:Matrix();/ 默认构造函数friend Matrix operator+(Matrix &,Matrix &);/ 重载运算符“ + ”void input();/ 输入数据函数void display();/ 输出数据函数pr

21、ivate:int mat23;Matrix:Matrix()/ 定义构造函数感谢下载载精品for(int i=0;i2;i+)for(int j=0;j3;j+)matij=0;Matrix operator+(Matrix &a,Matrix &b)/ 定义重载运算符“ + ”函数Matrix c;for(int i=0;i2;i+)for(int j=0;j3;j+)c.matij=a.matij+b.matij;return c;void Matrix:input()/ 定义输入数据函数coutinput value of matrix:endl;for(int i=0;i2;i+)f

22、or(int j=0;jmatij;void Matrix:display()/ 定义输出数据函数for (int i=0;i2;i+)for(int j=0;j3;j+)coutmatij ;感谢下载载精品coutendl;int main()Matrix a,b,c;a.input();b.input();coutendlMatrix a:endl;a.display();coutendlMatrix b:endl;b.display();c=a+b;/ 用重载运算符“ + ”实现两个矩阵相加coutendlMatrix c = Matrix a + Matrix b :endl;c.di

23、splay();return 0;42. 将运算符“”重载为适用于复数加法,重载函数不作为成员函数,而放在类外,作为 Complex 类的友元函数。初值自拟。#include 感谢下载载精品class Compareprivate:int real;int imag;public:Compare();Compare(int, int);friend Compare operator+(Compare & c1, Compare & c2);void display();int main()Compare c1(3, 4), c2(2, 5), c3;c3 = c1 + c2;c3.displa

24、y();return 0;感谢下载载精品Compare:Compare()real = 0;imag = 0;Compare:Compare(int r, int i)real = r;imag = i;void Compare:display()using namespace std;cout real imag i endl;Compare operator+(Compare & c1, Compare & c2)Compare c(c1.real + c2.real, c1.imag + c2.imag);return c;感谢下载载精品43. 定义一个字符串类 String ,用来存放

25、不定长的字符串,重载运算符“”,用于两个字符串的等于比较运算。初值自拟。44. 定义一个字符串类 String ,用来存放不定长的字符串,重载运算符 ,用于两个字符串的大于的比较运算。初值自拟。#include #include using namespace std;class Stringpublic:String() p=NULL;String(char *str);friend bool operator(String &string1,String &string2);friend bool operator(String &string1,String &string2);frie

26、nd bool operator=(String &string1,String &string2);void display();private:感谢下载载精品char *p;String:String(char *str) p=str; void String:display() cout(String &string1,String &string2)if(strcmp(string1.p,string2.p)0)return true;elsereturn false;bool operator(String &string1,String &string2)if(strcmp(str

27、ing1.p,string2.p)(string1,string2)=1)string1.display();cout;string2.display();else if(operator(string1,string2)=1)string1.display();cout;string2.display();else if(operator=(string1,string2)=1)string1.display();cout=;string2.display();感谢下载载精品coutendl;int main()String string1(Hello),string2(Book),stri

28、ng3(Computer),string4(Hello);compare(string1,string2);compare(string2,string3);compare(string1,string4);return 0;46. 定义一个描述学生基本情况的类,数据成员包括姓名、学号、C+ 成绩、英语和数学成绩,成员函数包括输出数据,求出总成绩和平均成绩。数据自拟。#include class Studentprivate:char * name;感谢下载载精品int id;int cpp_source;int eng_source;int math_source;public:Studen

29、t(char *, int, int, int, int);void sum_source();void avg_source();int main()Student s(John, 1, 90, 80, 97);s.sum_source();s.avg_source();return 0;Student:Student(char * n, int i, int cs, int es, int ms)name = n;感谢下载载精品id = i;cpp_source = cs;eng_source = es;math_source = ms;void Student:sum_source()s

30、td:cout name The sum of source: cpp_source+eng_source+math_source std:endl;void Student:avg_source()double avg;avg = (cpp_source + eng_source + math_source) / 3;std:cout The avg of source: avg std:endl;47. 先建立一个 Point (点)类,包含数据成员 x, y (坐标点)。以它为基类,派生出一个 Circle (圆)类,增加数据成员 r (半径),再以 Circle 类为直接基类,派生出一

31、个 Cylinder (圆柱体)类,在增加数据成员 h (高)。编写程序,重载运算符 “ ”,使之能够用于输出以上类对象。感谢下载载精品#include class Pointprotected:int x, y;public:Point()x = 0, y = 0;Point(int a, int b)this-x = a;this-y = b;void setX(int a)x = a;void setY(int b)y = b;int getX()return x;int getY()return y;class Circle:public Pointprotected:int r;感谢

32、下载载精品public:Circle(int x, int y, int r):Point(x, y)this-r = r;void setR(int a)r = a;int getR()return r;class Cylinder:public Circleprotected:int h;public:Cylinder():Circle(0, 0, 0),h(0)Cylinder(int x, int y, int r, int h):Circle(x, y, r)this-h = h;void setH(int a)h = a;int getH()return h;friend std:

33、istream & operator(std:istream &, Cylinder &);friend std:ostream & operator(std:istream & input, Cylinder & cc)int _x, _y, _r, _h;感谢下载载精品std:cout Enter the Cylinder: _x _y _r _h;cc.setX(_x);cc.setY(_y);cc.setR(_r);cc.setH(_h);return input;std:ostream & operator(std:ostream & os, Cylinder & cc)os cc.

34、getX() cc.getY() cc.getR() cc.getH() cc;cout cc;感谢下载载精品return 0;48. 写一个程序,定义抽象类型 Shape ,由他派生三个类: Circle (圆形), Rectangle(矩形), Trapezoid (梯形),用一个函数 printArea 分别输出三者的面积, 3个图形的数据在定义对象是给定。#include class Shapepublic:virtual double area() const = 0;class Circle:public Shapeprivate:double r;public:Circle(double a):r(a)virtual double area() const感谢下载载精品return 3.14 * r * r;class Rect

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论