找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 2239|回复: 8

[求助]跪求一道C++的解!

[复制链接]
发表于 2009-10-31 01:19:31 | 显示全部楼层 |阅读模式 IP:江苏扬州
先谢谢各位先知了!
编写一个程序计算圆、圆内接正方形和圆外切正方形的面积和周长。要求: 1、由于要计算机圆和正方形的面积和周长,所以可把图形定义为一个类,它包含
的数据成员为长度,把求面积和周长定义为虚函数。 2、定义好图形类后,再把圆类、正方形类定义为图形的派生类。在这些类中同样
包含有新定义的构造函数、求面积的函数和求周长的函数。 3、在完成上述要求后,再将图形类定义中的求面积和周长的函数均定义为纯虚函
数,重新编写该程序。
发表于 2009-10-31 01:19:32 | 显示全部楼层 IP:江苏扬州
偶瞎试试的,不太懂哦,请原谅。
class Circle
{
public:
这里是定义虚函数吧?(格式不知)
private:
double length;
}
回复

使用道具 举报

发表于 2009-10-31 01:19:33 | 显示全部楼层 IP:江苏扬州
#include<iostream.h> #define Pi 3.141592 class TRound { public: void Tround(double diameter); void Nei(double diameter); void Wai(double diameter); void Print(); private: double diameter,Rperimeter,Wperimeter,Nperimeter,Rdimension,Wdimension,Ndimension; }; void TRound::Tround(double diameter) {
Rperimeter=2*Pi*diameter; Rdimension=Pi*diameter*diameter; } void TRound::Nei(double diameter) { double d; d=diameter*1.414; Nperimeter=4*d; Ndimension=d*d; } void TRound::Wai(double diameter) { double d; d=2*diameter; Wperimeter=4*d; Wdimension=d*d; } void TRound::Print() { cout<<"圆周长:"<<Rperimeter<<"\t"<<"圆面积:"<<Rdimension<<endl; cout<<"内接正方形周长:"<<Nperimeter<<"\t"<<"内接正方形面积:"<<Ndimension<<endl; cout<<"外接圆正方形周长:"<<Wperimeter<<"\t"<<"外接圆正方形面积:"<<Wdimension<<endl; }
void main() { TRound round; double r; cout<<"输入圆直径:"; cin>>r; round.Tround(r); round.Nei(r); //请问下 为什么我不写这两行 答案不正确 round.Wai(r); round.Print(); }
刚刚做的 我也刚学类 不知道要怎么做
这个可以运行 数据也正确 但觉得怪怪 很多地方是凑出来的
望高手改改
回复

使用道具 举报

发表于 2009-10-31 01:19:34 | 显示全部楼层 IP:江苏扬州
先上虚函数的,晚上在上纯虚函数的(我要上课)
楼上的应为你的round.Print()函数需要用到Nperimeter,Ndimension,Wperimeter和Wdimension的值,你没执行round.Nei(r); round.Wai(r);
怎么知道 这些值呢?
------------------------
#include<iostream.h> #include<math.h> #define Pi 3.141592 class Circle { private: double R; public: Circle(){}; Circle(double r) { R=r; } virtual double area() { return Pi*R*R; } virtual double round() { return 2*Pi*R; } virtual void display() { cout<<"圆面积:"<<area()<<endl; cout<<"圆周长: "<<round()<<endl; } }; class Square_nei : public Circle { private: double S_n_b; public: Square_nei(double s) { S_n_b=s; } double area() { return 2*S_n_b*S_n_b; } double round() { double i=sqrt(2); return 4*S_n_b*i; } void display() { cout<<"圆内接正方行面积:"<<area()<<endl; cout<<"圆内接正方行周长: "<<round()<<endl; } }; class Square_wai : public Circle { private: double S_w_b; public: Square_wai(double q) { S_w_b=q; } double area() { return 4*S_w_b*S_w_b; } double round() { return 8*S_w_b; } void display() { cout<<"圆外接正方行面积:"<<area()<<endl; cout<<"圆外接正方行周长: "<<round()<<endl; } };
int main() { int R; cout<<"请输入圆的半径:"; cin>>R; cout<<"你要的结果是:"<<endl; cout<<"------------------------"<<endl; Circle C(R); Square_nei S_n(R); Square_wai S_w(R); C.display(); S_n.display(); S_w.display(); return 0; }
--------------------------
本人愚笨,望大家 海函!!
回复

使用道具 举报

发表于 2009-10-31 01:19:35 | 显示全部楼层 IP:江苏扬州
这就是你要的纯虚函数了,
#include<iostream.h> #include<math.h> #define Pi 3.141592
class Object { public: virtual double area()=0; virtual double round()=0; virtual void display()=0; }; class Circle:public Object { private: double R; public: Circle(double r) { R=r; } double area() { return Pi*R*R; } double round() { return 2*Pi*R; } virtual void display() { cout<<"圆面积:"<<area()<<endl; cout<<"圆周长: "<<round()<<endl; } }; class Square_nei : public Object { private: double S_n_b; public: Square_nei(double s) { S_n_b=s; } double area() { return 2*S_n_b*S_n_b; } double round() { double i=sqrt(2); return 4*S_n_b*i; } void display() { cout<<"圆内接正方行面积:"<<area()<<endl; cout<<"圆内接正方行周长: "<<round()<<endl; } }; class Square_wai : public Object { private: double S_w_b; public: Square_wai(double q) { S_w_b=q; } double area() { return 4*S_w_b*S_w_b; } double round() { return 8*S_w_b; } void display() { cout<<"圆外接正方行面积:"<<area()<<endl; cout<<"圆外接正方行周长: "<<round()<<endl; } }; int main() { int R; cout<<"请输入圆的半径:"; cin>>R; cout<<"你要的结果是:"<<endl; cout<<"------------------------"<<endl; Circle C(R); Square_nei S_n(R); Square_wai S_w(R); C.display(); S_n.display(); S_w.display(); return 0; }
回复

使用道具 举报

发表于 2009-10-31 01:19:36 | 显示全部楼层 IP:江苏扬州
还有3楼的,你的 求值方法好像也不对吧!!
回复

使用道具 举报

发表于 2009-10-31 01:19:37 | 显示全部楼层 IP:江苏扬州
晕死!!
我写的这么辛苦 ,也没人帮我顶顶啊!!
555555555~~~~~~~~
回复

使用道具 举报

发表于 2009-10-31 01:19:38 | 显示全部楼层 IP:江苏扬州
我不知道虚函数是什么 派生类还在看 所以没什么内容顶
我倒是想知道 有没有办法把我的程序改成
void main()
{
……
TRound.print(r);
……}
就这样
回复

使用道具 举报

发表于 2009-10-31 01:19:39 | 显示全部楼层 IP:江苏扬州
你想要的是这样的 吗??
我只是 粗粗的改了一下!
#include<iostream.h> #include<math.h> #define Pi 3.141592 class TRound { public: TRound(double r) { R=r; } double Tround_area(); double Tround_round(); double Nei_area(); double Nei_round(); double Wai_area(); double Wai_round(); void Print(); private: double R; }; double TRound::Tround_area() { double d=Pi*R*R; return d; } double TRound::Tround_round() { double d=2+Pi*R; return d; } double TRound::Nei_area() { double d=2*R*R; return d; } double TRound::Nei_round() { double i=sqrt(2); double d=4*R*i; return d; }
double TRound::Wai_area() { double d=4*R*R; return d; } double TRound::Wai_round() { double d=8*R; return d; } void TRound::Print() { cout<<"圆周长:"<<Tround_round()<<"\t"<<"圆面积:"<<Tround_area()<<endl; cout<<"内接正方形周长:"<<Nei_round()<<"\t"<<"内接正方形面积:"<<Nei_area()<<endl; cout<<"外接圆正方形周长:"<<Wai_round()<<"\t"<<"外接圆正方形面积:"<<Wai_area()<<endl; }
void main() { TRound round(5); round.Print(); }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 15:20 , Processed in 0.305130 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表