return false; }
void compare(String &string1,String &string2) {if(operator==(string1,string2)==1)
{string1.display();cout<<\ cout< int main() {String string1(\ compare(string1,string2); return 0; } 15. 定义一个字符串类String,用来存放不定长的字符串,重载运算符\,用于两个字符串的小于的比较运算。初值自拟。 #include String(){p=NULL;} String(char *str); friend bool operator<(String &string1,String &string2); void display(); private: char *p; }; String::String(char *str) {p=str; } void String::display() {cout< bool operator<(String &string1,String &string2) {if(strcmp(string1.p,string2.p)<0) return true; else return false; } void compare(String &string1,String &string2) {if(operator<(string1,string2)==1) 【第 11 页 共 48 页】 {string1.display();cout<<\ cout< int main() {String string1(\ compare(string1,string2); return 0; } 16.定义一个字符串类String,用来存放不定长的字符串,重载运算符\,用于两个字符串的大于的比较运算。初值自拟。 #include String(){p=NULL;} String(char *str); friend bool operator>(String &string1,String &string2); void display(); private: char *p; }; String::String(char *str) {p=str; } void String::display() {cout< bool operator>(String &string1,String &string2) {if(strcmp(string1.p,string2.p)>0) return true; else return false; } void compare(String &string1,String &string2) {if(operator>(string1,string2)==1) {string1.display();cout<<\ cout< int main() 【第 12 页 共 48 页】 {String string1(\ compare(string1,string2); return 0;} 17.定义一个描述学生基本情况的类,数据成员包括姓名、学号、C++成绩、英语和数学成绩,成员函数包括输出数据,求出总成绩和平均成绩。数据自拟。 #include\#include { public: char strName[12]; char strStuNO[9]; void SetScore( char sname[12], char NO[9],float s0, float s1, float s2) { strcpy(strName, sname); strcpy(strStuNO, NO); fScore[0] = s0; fScore[1] = s1; fScore[2] = s2; } void print() { cout<< cout<<\姓名:\cout<<\学号:\ cout<<\成绩:\英语成绩:\数学成绩: \ float GetSUM() { return (float)((fScore[0] + fScore[1] + fScore[2])); } float GetAverage(); private: float fScore[3]; }; float CStuScore::GetAverage() { return (float)((fScore[0] + fScore[1] + fScore[2])/3.0); } void main() { CStuScore one; float a,b,c; char Name[12]; char StuNO[9]; cout<<\姓名:\cin>>Name; cout<<\学号:\cin>>StuNO; cout<<\成绩1:\成绩2: \成绩3: \cin>>a>>b>>c; one.SetScore(Name,StuNO,a,b,c); 【第 13 页 共 48 页】 one.print(); cout<<\平均成绩为 \cout<<\总成绩\ 18.先建立一个Point(点)类,包含数据成员x,y(坐标点)。以它为基类,派生出一个Circle(圆)类,增加数据成员r(半径),再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,在增加数据成员h(高)。编写程序,重载运算符“<<”和“>>”,使之能够用于输出以上类对象。 #include Point(float=0,float=0); void setPoint(float,float); float getX() const {return x;} float getY() const {return y;} friend ostream & operator<<(ostream &,const Point &); protected: float x,y; }; Point::Point(float a,float b) {x=a;y=b;} void Point::setPoint(float a,float b) {x=a;y=b;} ostream & operator<<(ostream &output,const Point &p) {output<<\ return output; } class Circle:public Point {public: Circle(float x=0,float y=0,float r=0); void setRadius(float); float getRadius() const; float area () const; friend ostream &operator<<(ostream &,const Circle &); protected: float radius; }; Circle::Circle(float a,float b,float r):Point(a,b),radius(r){} void Circle::setRadius(float r) {radius=r;} float Circle::getRadius() const {return radius;} 【第 14 页 共 48 页】 float Circle::area() const {return 3.14159*radius*radius;} ostream &operator<<(ostream &output,const Circle &c) {output<<\area=\ return output; } class Cylinder:public Circle {public: Cylinder (float x=0,float y=0,float r=0,float h=0); void setHeight(float); float getHeight() const; float area() const; float volume() const; friend ostream& operator<<(ostream&,const Cylinder&); protected: float height; }; Cylinder::Cylinder(float a,float b,float r,float h) :Circle(a,b,r),height(h){} void Cylinder::setHeight(float h){height=h;} float Cylinder::getHeight() const {return height;} float Cylinder::area() const { return 2*Circle::area()+2*3.14159*radius*height;} float Cylinder::volume() const {return Circle::area()*height;} ostream &operator<<(ostream &output,const Cylinder& cy) {output<<\r=\h=\ <<\ return output; } int main() {Cylinder cy1(3.5,6.4,5.2,10); cout<<\ < 【第 15 页 共 48 页】