收藏 分销(赏)

C++-编程题库.doc

上传人:二*** 文档编号:4514713 上传时间:2024-09-26 格式:DOC 页数:111 大小:214.50KB
下载 相关 举报
C++-编程题库.doc_第1页
第1页 / 共111页
亲,该文档总共111页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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.le

2、ngth 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;void Box:b

3、ox_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,20。分别求他们的体积。编一个基于对象的

4、程序,在类中用带参数的构造函数。#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 = mybox2.volume() endl;return 0;B

5、ox: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;public:Box();Box(int, int, int);int volume();i

6、nt 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)length = l;wight = w;height = h;int Box:volume()return

7、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 main()Comparecmp1(3,4);coutcmp1.max() is the Maximum of two

8、 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); coutcmp3.max() is the Maximum of two characters.endl

9、; 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 scoreendl;private:int num;int score;int main()Student stud5=Student(

10、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;class Studentpublic:Student(int n,int s):num(n),score(s)int num;int scor

11、e;int main()Student stud5=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(max_scorearri.score)max_score=arri.score;coutmax_score arri.numendl;38. 定义一

12、个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之和。初值自拟。#include class Complexprivate:double real;double image;public:Complex();Complex(double, double);double get_real();double get_image();Complex operator + (Complex &, Complex &);int main()Complex s1(3, 4);Complex s2(5, -10);Compl

13、ex 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;Complex:Complex()real = 0;image = 0;double Complex:get_real()return real;double Complex:get_i

14、mage()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,重载运算符“”,“”,使之能用于复数的加,减运算,运算符重载函数作为Complex类的成员函数。编程序,分别求出两个复数之和,差。初值自拟。#include class Complexprivate:double real;double image;public:Co

15、mplex();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.display();return 0;Complex:Complex()real = 0;image = 0;Complex:Complex(double r, double i)real = r;image = i;Comp

16、lex 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.real;c.image = image - s1.image;return c;void Complex:display()using namespace std;cout real image endl;40. 定义一个复数类Complex,

17、重载运算符“”,使之能用于复数的加法运算。参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意。例如:c1+c2,i+c1,c1+i均合法(设i为整数,c1,c2为复数)。编程序,分别求两个复数之和、整数和复数之和。初值自拟。#include class Complexprivate:double real;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

18、);friend Complex operator+(int&,Complex &);void display();Complex Complex:operator+(Complex &c)return Complex(real+c.real,imag+c.imag);Complex Complex:operator+(int &i)return Complex(real+i,imag);void Complex:display()using namespace std;cout(real,imagi)endl;Complex operator+(int &i,Complex &c)retur

19、n 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.display();c3=c1+i;coutc1+i=;c3.display();return 0;41. 有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加。如c=a+b。初值自拟。#include using namespace std;class Matrix

20、/定义Matrix类 public: Matrix(); /默认构造函数 friend Matrix operator+(Matrix &,Matrix &); /重载运算符“+” void input(); /输入数据函数 void display(); /输出数据函数 private: 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;

21、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+) for(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(); cou

22、tendlMatrix a:endl; a.display(); coutendlMatrix b:endl; b.display(); c=a+b; /用重载运算符“+”实现两个矩阵相加 coutendlMatrix c = Matrix a + Matrix b :endl; c.display(); return 0;42. 将运算符“”重载为适用于复数加法,重载函数不作为成员函数,而放在类外,作为Complex类的友元函数。初值自拟。#include class Compareprivate:int real;int imag;public:Compare();Compare(int,

23、 int);friend Compare operator+(Compare & c1, Compare & c2);void display();int main()Compare c1(3, 4), c2(2, 5), c3;c3 = c1 + c2;c3.display();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;Comp

24、are operator+(Compare & c1, Compare & c2)Compare c(c1.real + c2.real, c1.imag + c2.imag);return c;43. 定义一个字符串类String,用来存放不定长的字符串,重载运算符“”,用于两个字符串的等于比较运算。初值自拟。44. 定义一个字符串类String,用来存放不定长的字符串,重载运算符,用于两个字符串的大于的比较运算。初值自拟。#include #include using namespace std;class String public:String() p=NULL;String(char

25、 *str);friend bool operator(String &string1,String &string2);friend bool operator(String &string1,String &string2);friend 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(st

26、rcmp(string1.p,string2.p)0) return true;else return false; bool operator(String &string1,String &string2) if(strcmp(string1.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=(stri

27、ng1,string2)=1) string1.display();cout=;string2.display(); coutendl; int main() String string1(Hello),string2(Book), string3(Computer),string4(Hello); compare(string1,string2); compare(string2,string3); compare(string1,string4); return 0; 46. 定义一个描述学生基本情况的类,数据成员包括姓名、学号、C+成绩、英语和数学成绩,成员函数包括输出数据,求出总成绩和

28、平均成绩。数据自拟。#include class Studentprivate:char * name;int id;int cpp_source;int eng_source;int math_source;public:Student(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

29、 cs, int es, int ms)name = n;id = i;cpp_source = cs;eng_source = es;math_source = ms;void Student:sum_source()std: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:

30、 avg std:endl;47. 先建立一个Point(点)类,包含数据成员x,y(坐标点)。以它为基类,派生出一个Circle(圆)类,增加数据成员r(半径),再以Circle类为直接基类,派生出一个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

31、)y = b;int getX()return x;int getY()return y;class Circle:public Pointprotected:int r;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

32、h):Circle(x, y, r)this-h = h;void setH(int a)h = a;int getH()return h;friend std: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);

33、return input;std:ostream & operator(std:ostream & os, Cylinder & cc)os cc.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;c

34、lass Circle:public Shapeprivate:double r;public:Circle(double a):r(a)virtual double area() constreturn 3.14 * r * r;class Rectangle:public Shapeprivate:double h, w;public:Rectangle(double a, double b):h(a),w(b)virtual double area() constreturn h * w;class Trapezoid:public Shapeprivate:double h, w;pu

35、blic:Trapezoid(double a, double b):h(a), w(b)virtual double area() constreturn 0.5 * h * w;void printArea(const Shape & c)std:cout c.area() std:endl;int main()Circle c(2);printArea(c);Rectangle r(2, 4);printArea(r);Trapezoid t(3, 5);printArea(t);return 0;49. 定义一个人员类Cperson,包括数据成员:姓名、编号、性别和用于输入输出的成员函

36、数。在此基础上派生出学生类CStudent(增加成绩)和老师类Cteacher(增加教龄),并实现对学生和教师信息的输入输出。#include class Cpersonprotected:char name10;int id;int sex;public:virtual void getInfor() = 0;virtual void printInfor() = 0;class CStudent:public Cpersonprotected:int course;public:virtual void getInfor()using namespace std;cout Enter the students inforamtion endl;cout name ;cout

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服