当前位置: 首页 > news >正文

网站网页能自己做吗/全国疫情排行榜

网站网页能自己做吗,全国疫情排行榜,织梦网站后台如何做百度优化,wordpress在图片上加链接第10周:阅读教材第9章(p263-313),主要内容是构造和析构函数、对象数组、对象指针、共用数据的保护等,完成第10周上机任务; (回到C02-程序设计基础提高班(C)学习安排)实践任务&#x…

10周:阅读教材第9章(p263-313),主要内容是构造和析构函数、对象数组、对象指针、共用数据的保护等,完成第10周上机任务;

(回到C02-程序设计基础提高班(C++)学习安排)


实践任务:

【任务1】设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化

#include<iostream>
using namespace std;
class Triangle
{public:float perimeter(void);//计算三角形的周长float area(void);//计算并返回三角形的面积void showMessage();
private:float a,b,c; //三边为私有成员数据
};void Triangle:: showMessage()
{cout<<”三角形的三边长分别为:”<<a<<'\t'<<<<b<<<<'\t'<<<<c<<endl;cout<<"该三角形的周长为:"<< perimeter()<<'\t'<<"面积为:"<< area()<<endl<<endl;
}void main(void)
{Triangle Tri1;	//定义三角形类的一个实例(对象)Tri1.showMessage();Triangle Tri2(7,8,9);	//定义三角形类的一个实例(对象)Tri2.showMessage();
}

特别要求:为全面体会构造函数的各种写法,本任务要求提交多个版本的程序,体现出你已经掌握下列知识点:(1)使用带参数构造函数,即Triangle(float x, float y, float z),三边长在调用时由实参直接给出;(2)设计默认构造函数,即不指定参数时,默认各边长为1;(3)使用默认参数的构造函数,不给定实参时,默认边长为1;(4)在构造函数中使用参数初始化表对数据成员初始化。
[ 参考:三角形类中的构造函数 - http://blog.csdn.net/sxhelijian/article/details/7366083 ]

任务1拓展:请自行设计一个矩形类,可以计算长方形的面积、周长、对象线,判断是否是正方形。请用上构造函数。


【任务2】C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,二则也为第10章做运算符重载等积累些感性认识。
任务要求:完成下面类的设计,并在main()函数中自行定义对象,调用各成员函数,完成基本的测试。

class CFraction
{private:int nume;  // 分子int deno;  // 分母public:CFraction(int nu=0,int de=1);   //构造函数,初始化用void Set(int nu=0,int de=1);    //置值,改变值时用void input();				//按照"nu/de"的格式,如"5/2"的形式输入void Simplify();				//化简(使分子分母没有公因子)void amplify(int n);			//放大n倍,如2/3放大5倍为10/3void output(int style=0);		//输出:以8/6为例,style为0时,输出8/6;//style为1时,输出4/3;//style为2时,输出1(1/3),表示一又三分之一;//不给出参数和非1、2,认为是方式0
};

任务2拓展1:上面output(int style=0)中的输出方式style的类型最适合使用自定义的枚举类(见第7章)了,试着改造一下。

[ 参考:分数类(拓展1) - http://blog.csdn.net/sxhelijian/article/details/7366441 ]

任务2拓展2:这个思考题吊一下大家的胃口:设定义了两个分数类的对象,如CFraction c1, c2。如果定义了int i,我们能用cin>>i;在键盘上输入i的值,是否期望用cin>>c1>>c2;输入分数呢?同理,用cout<<c1<<c2;进行输出,可以吗?进一步,用c1+c2得到新的一个分数,用c1/c2实现两个分数的除法,以及其他加、减、比较、求倒数等也是理所当然的。实际上,要自定义分数类,这些直观的基本运算应该要实现,这叫运算符的重载。本任务中用amplify()给出了“放大”运算的一种实现方案,更多内容值得期待地。


【任务3】编写基于对象的程序,求5个长方柱的体积和表面积。长方柱类的数据成员包括长(length)、宽(width)、高(heigth)等。另外:
(1)需要定义长方柱类,5个长方柱采用一个对象数组表示;
(2)前4个长方柱(即数组的前4个元素)要在定义数组时初始化,其中前3个直接给出参数初始化,第4个用默认构造函数初始化;第5个长方柱定义时不初始化,而是由键盘输入长、宽、高赋值;
(3)输出这5个长方柱的体积和表面积;
[ 参考:长方柱类数组 - http://blog.csdn.net/sxhelijian/article/details/7371175 ]

【任务4】设计一个学生类,包括学号(num)和成绩(score)。建立一个对象数组,内放5个学生的数据,要求:
(1)用指针指向数组首元素,输出第1、3、5个学生的信息;
(2)设计一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。
[ 参考:学生类数组 - http://blog.csdn.net/sxhelijian/article/details/7371223 ]


【任务5】设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等

enum SymmetricStyle { axisx,axisy,point};//分别表示按x轴, y轴, 原点对称
class CPoint
{private:double x;  // 横坐标double y;  // 纵坐标
public:CPoint(double xx=0,double yy=0);double Distance(CPoint p) const;   // 两点之间的距离(一点是当前点,另一点为参数p)double Distance0() const;          // 到原点的距离CPoint SymmetricAxis(SymmetricStyle style) const;   // 返回对称点void input();  //以x,y 形式输入坐标点void output(); //以(x,y) 形式输出坐标点
};
[ 参考:设计平面坐标点类 - http://blog.csdn.net/sxhelijian/article/details/7397313 ]

【任务6】设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
提示:(1)这个问题需要用到两个类,顶点类参照任务3中的CPoint类;(2)三角形类参考下面CTriangle类的声明;(3)充分利用CPoint类中已有的代码实现;(4)关于三条边的处理,可以增加三个私有属性,在初始化时求出来备用,也可以在需要时计算得到。
class CTriangle
{
public:CTriangle(CPoint &X,CPoint &Y,CPoint &Z):A(X),B(Y),C(Z){} //给出三点的构造函数void setTriangle(CPoint &X,CPoint &Y,CPoint &Z);//float perimeter(void);//计算三角形的周长float area(void);//计算并返回三角形的面积bool isRightTriangle(); //是否为直角三角形bool isIsoscelesTriangle(); //是否为等腰三角形
private:CPoint A,B,C; //三顶点
};

[ 参考:用点类作成员的三角形类 - http://blog.csdn.net/sxhelijian/article/details/7397317 ]


【任务7】将任务6的解决用一个项目多个文件的方式实现,其中两个类的声明放在一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件。体会这样安排的优点。
[ 参考:多文件组织三角形类 - http://blog.csdn.net/sxhelijian/article/details/7397334 ]


【任务8】含有静态数据成员和成员函数的Time类:类中所有的对象共有的数据

class Time
{
public:Time(int=0,int=0,int=0);void show_time( ); //根据is_24和from0,输出适合形式-20:23:5/8:23:5 pm/08:23:05 pmvoid add_seconds(int); //增加n秒钟void add_minutes(int); //增加n分钟  void add_hours(int); //增加n小时  static void change24();  //改变静态成员is_24,在12和24时制之间转换static void changefrom0();   //改变静态成员from0,切换是否前导0private:static bool is_24; //为true时,24小时制,如20:23:5;为flase,12小时制,显示为8:23:5 pm static bool from0; //为true时,前导0,8:23:5显示为08:23:05int hour;int minute;int sec;
};
//下面写出静态成员的初始化及各成员函数的定义
……
int main( ) //运行结果如下图所示
{  }

[ 参考:静态数据成员和静态成员函数 - http://blog.csdn.net/sxhelijian/article/details/7422511 ]

【任务9】阅读下面的程序,仔细阅读注释。然后模仿完成求点类中距离的任务。
//例:使用成员函数、友元函数和一般函数的区别
#include <iostream>
using namespace std;
class Time
{
public:Time(int h,int m,int s):hour(h),minute(m),sec(s){}void display1(); //成员函数声明friend void display2(Time &);  //友元函数声明int getHour(){return hour;}int getMinute(){return minute;}int getSec(){return sec;}private:int hour;int minute;int sec;
};
void display3(Time &);  //一般函数声明void Time::display1()  //成员函数的实现,dispaly1前加Time::
{//以hour形式直接访问私有数据成员,实质是this->hour形式cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
void display2(Time &t)  //友元函数的实现,dispaly2前不加Time::,并不是类的成员函数
{//不是类的成员函数,却可以t.hour的形式直接访问私有数据成员——友元cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
}
void display3(Time &t)  //一般函数的实现,dispaly1前加Time::
{//只能用公共接口t.getHour()形式访问私有数据成员cout<<t.getHour()<<":"<<t.getMinute()<<":"<<t.getSec()<<endl;
}
int main()
{Time t1(10,13,56);t1.display1();  //成员函数这样调用display2(t1);   //友员函数调用和一般函数无异display3(t1);   //一般函数的调用system("pause");return 0;
}
你需要完成的任务是,利用成员函数、友元函数和一般函数,实现三个版本的求两点间距离的函数,并设计main()函数完成测试。此任务和上例的区别在于“距离是一个点和另外一个点的距离”,参数个数上有体现。下面是点类的部分代码。
class CPoint  
{
private:  double x;  // 横坐标  double y;  // 纵坐标  public: CPoint(double xx=0,double yy=0):x(xx),y(yy){}  ……//请继续写需要的代码
};
[ 参考:使用成员函数、友元函数和一般函数- http://blog.csdn.net/sxhelijian/article/details/7422541]

【任务10】阅读P314的例10.1(代码见附)。该例实现了一个复数类,但是美中不足的是,复数类的实部和虚部都固定只能是double型的。可以通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时用的实际类型。
(1)要求类成员函数在类外定义。
(2)在此基础上,再实现减法、乘法和除法
你可以使用的main()函数如下。
int main( )
{Complex<int> c1(3,4),c2(5,-10),c3;  c3=c1.complex_add(c2);  cout<<"c1+c2="; c3.display( );  Complex<double> c4(3.1,4.4),c5(5.34,-10.21),c6;  c6=c4.complex_add(c5);  cout<<"c4+c5="; c6.display( ); system("pause");return 0;
}

[ 参考:复数模板类 - http://blog.csdn.net/sxhelijian/article/details/7422933 ]

附:例10.1代码

#include <iostream>
using namespace std;
class Complex   
{
public:Complex( ){real=0;imag=0;}     Complex(double r,double i){real=r;imag=i;} Complex complex_add(Complex &c2); void display( );   
private:double real; double imag; 
};
Complex Complex::complex_add(Complex &c2)
{Complex c;c.real=real+c2.real;c.imag=imag+c2.imag;return c;
}   
void Complex::display( )   
{cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
int main( )
{Complex c1(3,4),c2(5,-10),c3;  c3=c1.complex_add(c2);  cout<<"c1="; c1.display( );  cout<<"c2="; c2.display( ); cout<<"c1+c2="; c3.display( );  return 0;
}


http://www.lbrq.cn/news/1276345.html

相关文章:

  • 免费个人搭建网站/常用网站推广方法及资源
  • 推广营销海外网站/郑州seo顾问热狗
  • wordpress 百度地图xml/类聚seo
  • dreamwearver做网站地图/推广哪个网站好
  • 一个人做公司管理网站/全国疫情的最新数据
  • 如何做百度秒收录网站/b站广告投放平台入口
  • 目前流行的网站开发工具/如何让别人在百度上搜到自己公司
  • 延吉网站建设/深圳市昊客网络科技有限公司
  • 网站建设总做总结/西安网站制作公司
  • 黄浦做网站公司/客服系统网页源码2022免费
  • 给自己的网站做软件测试 步骤/百度公司官网招聘
  • 创建个人网站英文/中国搜索引擎
  • 怎么用dw做动态网站/seo裤子的关键词首页排名有哪些
  • 哪里做网站最好网站/最权威的品牌排行榜网站
  • 表格 wordpress/杭州seo优化公司
  • 同城购物网站怎么做/网页开发需要学什么
  • 男生做男生网站在那看/成品影视app开发
  • 首页优化的公司/鹤壁网站seo
  • 百度推广新手入门/宁波seo的公司联系方式
  • 网站建设纠纷/免费b站软件推广网站2023
  • 杭州模板建站定制网站/网络兼职平台
  • 房产网站建设价格/中国市场营销网
  • 网页设计如何设置背景/关键词优化的价格查询
  • WordPress文字添加/杭州seo推广优化公司
  • Tab标签切换wordpress/更先进的seo服务
  • 管局审核一定要能打开网站/宁德seo公司
  • 杭州品牌网站制作/关键词挖掘查询工具爱站网
  • 个人网站备案信息/超级外链推广
  • 建设部网站施工合同范本去哪找/广告语
  • 厦门谁需要网站建设/3322免费域名注册
  • ECMAScript2024(ES15)新特性
  • Apache FOP实践——pdf模板引擎
  • Python 程序设计讲义(46):组合数据类型——集合类型:集合间运算
  • 车载诊断架构 --- 关于诊断时间参数P4的浅析
  • haproxy应用详解
  • 【Spring Boot 快速入门】三、分层解耦