




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
* 3. 设计一个Accout 类 */#includeusing namespace std;class Accountpublic:Account(double s):savings(s)static void modify(double newAnnual)annual += newAnnual;double caculate()double interest = savings*annual/12;savings+= interest;return interest;double getSavings()return savings;private:double savings;static double annual;double Account:annual = 0.03;int main()Account saver1(2000),saver2(3000);coutsaver1.getSavings()tsaver1.caculate()endl;coutsaver2.getSavings()tsaver2.caculate()endl;Account:modify(0.04);coutsaver1.getSavings()tsaver1.caculate()endl;coutsaver2.getSavings()tsaver2.caculate()endl;* 4.设计并实现一个平面点类Point,要求: * (1)用x,y 两个坐标值表示一个点; * (2)正确初始化每个点; * (3)计算点到原点的距离; * (4)计算到另一个点的距离; * (5)获取点的x、y 坐标值; * (6)设置点的x、y 坐标; * (7)移动点到新位置; */#include #include using namespace std;/-class Pointpublic:Point(int px=0, int py=0):x(px),y(py)double distance()const;double distance(Point& pt)const;int getX()const return x;int getY()const return y;void setX(int px)x = px;void setY(int py)y = py;void moveto(const Point& pt);private:int x,y;double Point:distance()const return sqrt(x*x+y*y);double Point:distance(Point& pt)constint a = pt.x - x;int b = pt.y - y;return sqrt(a*a + b*b);void Point:moveto(const Point& pt)x = pt.x; y = pt.y;/-int main()Point p1(1,3), p2(4,5), p3(2);coutp1: p1.getX(),p1.getY()endl;coutp1 to origin:p1.distance()endl;coutp2:p2.getX(),p2.getY()endl;coutp1 to p2:p1.distance(p2)endl;p1.moveto(p3);coutp1 moveto p3:p1.getX(),p1.getY()endl;* 5. 设计并实现一个动态整型数组类Vect,要求: * (1)采用动态存储空间分配策略管理数组空间; * (2)初始化指定长度的空Vect; * (3)用一个整型内置数组初始化Vect 对象; * (4)设计拷贝构造函数和析构函数; * (5)Vect 对象之间的复制,采用深拷贝策略; * (6)存、取指定位置的数组元素,并进行访问越界检查; * (7)获得数组元素个数; */#include #include using namespace std;class Vectpublic:explicit Vect(int n=10);Vect(int* a, int sz);Vect(const Vect& v);Vect()deletearr;void copy(const Vect& v);int& at(int index);int count()return size;private:int size;int* arr;Vect:Vect(int n)assert(n0);size = n;arr = new intsize;Vect:Vect(int* a, int sz)assert(sz0);size = sz;arr = new intsize;for(int i=0; isz; i+)arri = ai;Vect:Vect(const Vect& v)size = v.size;arr = new intsize;for(int i=0; isize; i+)arri = v.arri;void Vect:copy(const Vect& v)if(this = &v)return;size = v.size;delete arr;arr = new intsize;for(int i=0; i=0 & indexsize);return arrindex;int main()int a=1,2,3,4,5,6;Vect v(a,6);for(int i=0; iv.count();i+)coutv.at(i)t;v.at(0) = 10;for(int i=0; iv.count();i+)coutv.at(i)t;Vect v1(v);for(int i=0; iv1.count();i+)coutv1.at(i)t;Vect v2;v2.copy(v);for(int i=0; iv2.count();i+)coutv2.at(i)t;* * 6. 设计并实现一个集合类IntSet,集合元素范围为1100,要求: * (1)正确初始化集合; * (2)支持集合的交集、并集运算; * (3)判断一个指定整数是否在集合中; * (4)将给定整数加入集合,加入前应判断数值范围; * (5)从集合中删除指定元素; * (6)集合对象之间的复制; * (7)获得集合元素个数; * (8)输出集合中的所有元素; */#include using namespace std;/-class IntSetpublic:IntSet();IntSet()IntSet(const IntSet&);IntSet trans(const IntSet&)const;IntSet merge(const IntSet&)const;bool in(int num)const;void add(int num);void del(int num);int count()const;void print()const;private:static const int range = 101;bool elerange;/-IntSet:IntSet()for(int i=0; irange; i+)elei = 0;IntSet:IntSet(const IntSet& s)for(int i=0; irange; i+)elei = s.elei;IntSet IntSet:trans(const IntSet& s)constIntSet temp;for(int i=0; irange; i+)temp.elei = elei & s.elei;return temp;IntSet IntSet:merge(const IntSet& s)constIntSet temp;for(int i=0; irange; i+)temp.elei = elei | s.elei;return temp;bool IntSet:in(int num)constif(num100)return false;elsereturn elenum;void IntSet:add(int num)if(num=1 & num=1 & num=100)elenum = false;int IntSet:count()constint n = 0;for(int i=1; irange; i+)if(elei)n+;return n;void IntSet:print()constcoutThere are count() elements in set:n;for(int i=1; irange; i+)if(elei)couti ;coutendl;/-int main()IntSet s1,s2;for(int i=1; i=100; i+)if(i%6 = 0)s1.add(i);if(i%4 = 0)s2.add(i);IntSet s3;s3 = s1.trans(s2);s1.print();s2.print();s3.print();s3 = s1.merge(s2);s3.print();couts3.count()endl;coutis 12 in s3?s3.in(12)endl;* 8. 设计并实现一个圆形类Circle,要求: * (1)由圆心和半径描述圆形; * (2)能够计算面积、计算周长、获取半径、移动和缩放; * (3)合理的初始化; */#include using namespace std;/-class Circlepublic:Circle(double r, int px=0, int py=0);double area()const;double perimeter()const;double getRadius()constreturn radius;void moveto(int px, int py) x = px; y = py; void scale(double fac) radius *= fac; private:double radius;int x,y;static const double PI;const double Circle:PI = 3.1415926;Circle:Circle(double r, int px, int py)radius =r;x = px;y = py;double Circle:area()constreturn PI*radius*radius;double Circle:perimeter()constreturn PI*radius*2;/-int main()Circle c1(2.5);coutc1:radius=c1.getRadius()endl;coutarea=c1.area()endl;coutperimeter=c1.perimeter()endl;c1.scale(2);coutc1:radius=c1.getRadius()endl;coutarea=c1.area()endl;coutperimeter=c1.perimeter()endl;* 9. 设计并实现一个矩形类Rectangle,要求: * (1)用左上角和右下角的坐标描述矩形; * (2)计算面积、周长; * (3)移动矩形; * (4)合理的初始化; */#include #include using namespace std;/-class Rectangle;class Pointpublic:Point(int px =0, int py =0):x(px),y(py)friend class Rectangle;private:int x,y;/-class Rectanglepublic:Rectangle(int lux, int luy, int rdx=0, int rdy=0):leftup(lux,luy),rightdown(rdx,rdy)double area()constint x,y;x = leftup.x - rightdown.x;y = leftup.y - rightdown.y;return abs(x*y);double perimeter()constint x,y;x = abs(leftup.x - rightdown.x);y = abs(leftup.y - rightdown.y);return (x+y)*2;void move(int x, int y=0)leftup.x += x;leftup.y += y;rightdown.x += x;rightdown.y += y;private:Point leftup, rightdown;/-int main()Rectangle r(1,2,4,5);coutarea=r.area()endl;coutperimeter=r.perimeter()endl;r.move(10,1);10、 triangle */#include#include#include using namespace std;/-class Trianglepublic:Triangle(double a=1, double b=1, double c=1);Triangle();double area()const;double perimeter()const;double getA()const;double getB()const;double getC()const;void setA(double a);void setB(double b);void setC(double c);private:double a, b, c;/-/global functionbool validate(double a, double b, double c)if(a=0) | (b=0) | (c=0)return false;if(a+b=c) | (a+c=b) | (b+c=a)return false;return true;/-Triangle:Triangle(double x, double y, double z)bool v = validate(x,y,z);assert(v);a=x; b=y; c=z;Triangle:Triangle()/virtual functionsdouble Triangle:area()constdouble p = (a+b+c)/2;double s = p*(p-a)*(p-b)*(p-c);return sqrt(s);double Triangle:perimeter()constreturn a+b+c;/others.double Triangle:getA()const return a; double Triangle:getB()const return b; double Triangle:getC()const return c; void Triangle:setA(double d)bool v = validate(d, b,c);assert(v);a = d;void Triangle:setB(double d)bool v = validate(a, d,c);assert(v);b = d;void Triangle:setC(double d)bool v = validate(a, b,d);assert(v);c = d;/-int main(int argc, char *argv)Triangle t(5,3,4);coutTriangle t:ta: t.getA() b: t.getB() c: t.getC()endl;coutarea=t.area()tperimeter=t.perimeter()endl;* 3. 设计一个Accout 类 */#includeusing namespace std;class Accountpublic:Account(double s):savings(s)static void modify(double newAnnual)annual += newAnnual;double caculate()double interest = savings*annual/12;savings+= interest;return interest;double getSavings()return savings;private:double savings;static double annual;double Account:annual = 0.03;int main()Account saver1(2000),saver2(3000);coutsaver1.getSavings()tsaver1.caculate()endl;coutsaver2.getSavings()tsaver2.caculate()endl;Account:modify(0.04);coutsaver1.getSavings()tsaver1.caculate()endl;coutsaver2.getSavings()tsaver2.caculate()endl;* 4.设计并实现一个平面点类Point,要求: * (1)用x,y 两个坐标值表示一个点; * (2)正确初始化每个点; * (3)计算点到原点的距离; * (4)计算到另一个点的距离; * (5)获取点的x、y 坐标值; * (6)设置点的x、y 坐标; * (7)移动点到新位置; */#include #include using namespace std;/-class Pointpublic:Point(int px=0, int py=0):x(px),y(py)double distance()const;double distance(Point& pt)const;int getX()const return x;int getY()const return y;void setX(int px)x = px;void setY(int py)y = py;void moveto(const Point& pt);private:int x,y;double Point:distance()const return sqrt(x*x+y*y);double Point:distance(Point& pt)constint a = pt.x - x;int b = pt.y - y;return sqrt(a*a + b*b);void Point:moveto(const Point& pt)x = pt.x; y = pt.y;/-int main()Point p1(1,3), p2(4,5), p3(2);coutp1: p1.getX(),p1.getY()endl;coutp1 to origin:p1.distance()endl;coutp2:p2.getX(),p2.getY()endl;coutp1 to p2:p1.distance(p2)endl;p1.moveto(p3);coutp1 moveto p3:p1.getX(),p1.getY()endl; * 5. 设计并实现一个动态整型数组类Vect,要求: * (1)采用动态存储空间分配策略管理数组空间; * (2)初始化指定长度的空Vect; * (3)用一个整型内置数组初始化Vect 对象; * (4)设计拷贝构造函数和析构函数; * (5)Vect 对象之间的复制,采用深拷贝策略; * (6)存、取指定位置的数组元素,并进行访问越界检查; * (7)获得数组元素个数; */#include #include using namespace std;class Vectpublic:explicit Vect(int n=10);Vect(int* a, int sz);Vect(const Vect& v);Vect()deletearr;void copy(const Vect& v);int& at(int index);int count()return size;private:int size;int* arr;Vect:Vect(int n)assert(n0);size = n;arr = new intsize;Vect:Vect(int* a, int sz)assert(sz0);size = sz;arr = new intsize;for(int i=0; isz; i+)arri = ai;Vect:Vect(const Vect& v)size = v.size;arr = new intsize;for(int i=0; isize; i+)arri = v.arri;void Vect:copy(const Vect& v)if(this = &v)return;size = v.size;delete arr;arr = new intsize;for(int i=0; i=0 & indexsize);return arrindex;int main()int a=1,2,3,4,5,6;Vect v(a,6);for(int i=0; iv.count();i+)coutv.at(i)t;v.at(0) = 10;for(int i=0; iv.count();i+)coutv.at(i)t;Vect v1(v);for(int i=0; iv1.count();i+)coutv1.at(i)t;Vect v2;v2.copy(v);for(int i=0; iv2.count();i+)coutv2.at(i)t;* 6. 设计并实现一个集合类IntSet,集合元素范围为1100,要求: * (1)正确初始化集合; * (2)支持集合的交集、并集运算; * (3)判断一个指定整数是否在集合中; * (4)将给定整数加入集合,加入前应判断数值范围; * (5)从集合中删除指定元素; * (6)集合对象之间的复制; * (7)获得集合元素个数; * (8)输出集合中的所有元素; */#include using namespace std;/-class IntSetpublic:IntSet();IntSet()IntSet(const IntSet&);IntSet trans(const IntSet&)const;IntSet merge(const IntSet&)const;bool in(int num)const;void add(int num);void del(int num);int count()const;void print()const;private:static const int range = 101;bool elerange;/-IntSet:IntSet()for(int i=0; irange; i+)elei = 0;IntSet:IntSet(const IntSet& s)for(int i=0; irange; i+)elei = s.elei;IntSet IntSet:trans(const IntSet& s)constIntSet temp;for(int i=0; irange; i+)temp.elei = elei & s.elei;return temp;IntSet IntSet:merge(const IntSet& s)constIntSet temp;for(int i=0; irange; i+)temp.elei = elei | s.elei;return temp;bool IntSet:in(int num)constif(num100)return false;elsereturn elenum;void IntSet:add(int num)if(num=1 & num=1 & num=100)elenum = false;int IntSet:count()constint n = 0;for(int i=1; irange; i+)if(elei)n+;return n;void IntSet:print()constcoutThere are count() elements in set:n;for(int i=1; irange; i+)if(elei)couti ;coutendl;/-int main()IntSet s1,s2;for(int i=1; i=100; i+)if(i%6 = 0)s1.add(i);if(i%4 = 0)s2.add(i);IntSet s3;s3 = s1.trans(s2);s1.print();s2.print();s3.print();s3 = s1.merge(s2);s3.print();couts3.count()endl;coutis 12 in s3?s3.in(12)endl;/* * 8. 设计并实现一个圆形类Circle,要求: * (1)由圆心和半径描述圆形; * (2)能够计算面积、计算周长、获取半径、移动和缩放; * (3)合理的初始化; */#include using namespace std;/-class Circlepublic:Circle(double r, int px=0, int py=0);double area()const;double perimeter()const;double getRadius()constreturn radius;void moveto(int px, int py) x = px; y = py; void scale(double fac) radius *= fac; private:double radius;int x,y;static const double PI;const double Circle:PI = 3.1415926;Circle:Circle(double r, int px, int py)radius =r;x = px;y = py;double Circle:area()constreturn PI*radius*radius;double Circle:perimeter()constreturn PI*radius*2;/-int main()Circle c1(2.5);coutc1:radius=c1.getRadius()endl;coutarea=c1.area()endl;coutperimeter=c1.perimeter()endl;c1.scale(2);coutc1:radius=c1.getRadius()endl;coutarea=c1.area()endl;coutperimeter=c1.perimeter()endl;* 9. 设计并实现一个矩形类Rectangle,要求: * (1)用左上角和右下角的坐标描述矩形; * (2)计算面积、周长; * (3)移动矩形; * (4)合理的初始化; */#include #include using namespace std;/-class Rectangle;class Pointpublic:Point(int px =0, int py =0):x(px),y(py)friend class Rectangle;private:int x,y;/-class Rectanglepublic:Rectangle(int lux, int luy, int rdx=0, int rdy=0):leftup(lux,luy),rightdown(rdx,rdy)double area()constint x,y;x = leftup.x - rightdown.x;y = leftup.y - rightdown.y;return abs(x*y);double perimeter()constint x,y;x = abs(leftup.x - rightdown.x);y = abs(leftup.y - rightdown.y);return (x+y)*2;void move(int x, int y=0)leftup.x += x;leftup.y += y;rightdown.x += x;rightdown.y += y;private:Point leftup, rightdown;/-int main()Rectangle r(1,2,4,5);coutarea=r.area()endl;coutperimeter=r.perimeter()endl;r.move(10,1);10、#include#include#include using namespace std;/-class Trianglepublic:Triangle(double a=1, double b=1, double c=1);Triangle();double area()const;double perimeter()const;double getA()const;double getB()const;double getC()const;void setA(double a);void setB(double b);void setC(double c);private:double a, b, c;/-/global functionbool validate(double a, double b, double c)if(a=0) | (b=0) | (c=0)return false;if(a+b=c) | (a+c=b) | (b+c=a)return false;return true;/-Triangle:Triangle(double x, double y, double z)bool v = validate(x,y,z);assert(v);a=x; b=y; c=z;Triangle:Triangle()/virtual functionsdouble Triangle:area()constdouble p = (a+b+c)/2;double s = p*(p-a)*(p-b)*(p-c);return sqrt(s);double Triangle:perimeter()constreturn a+b+c;/others.double Triangle:getA()const return a; double Triangle:getB()const return b; double Triangle:getC()const return c; void Triangle:setA(double d)bool v = validate
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 液压闸门维修施工方案(3篇)
- 校友节活动策划方案范文(3篇)
- 广告项目施工方案书(3篇)
- 弧形楼板施工方案(3篇)
- 论语考试题库及答案解析
- 兼职会计考试题库及答案
- 北京市门头沟区2023-2024学年八年级下学期期末质量监测语文考试题目及答案
- 北京市门头沟区2023-2024学年八年级上学期期末质量监测道德与法制考题及答案
- 新兵体检问答题目及答案
- 小学专业考试题目及答案
- 中医药材的炮制与存储
- 餐饮计件薪酬管理制度
- 2025年中国机械传动部件行业市场发展前景及发展趋势与投资战略研究报告
- 正确测量血压的操作方法
- 2025年初级模具工职业技能鉴定理论考试题库(含答案)
- 《功能高分子材料》课程教学大纲
- 苏州威微电子材料有限公司建设苏州集成电路高端材料生产项目环境影响报告书
- 太阳能路灯采购安装方案投标文件(技术方案)
- 采购制度及流程
- 私募股权投资基金(双GP)合作框架协议书范本
- 城市经理人合作合同范本
评论
0/150
提交评论