自己做的小程序,想限制输入!学历尚浅,求教
程序代码:#include <iostream>
#include <cmath>
using namespace std;
const double p=3.1415926; //定义圆周率
class Circle //圆类
{ protected:
double r; //半径
public:
void input();
double area()
{ //计算圆的面积
return p*r*r;
}
double volume()
{ //计算圆的体积
return 0;
}
};
class Ball:public Circle
{ public: //球体类
double area()
{ //计算球的表面积面积
return 4*p*r*r;
}
double volume()
{ //计算球的体积
return 4*p*r*r*r/3;
}
};
class Cylinder:public Circle//圆柱类
{ double h;
public:
void input1();
double area()
{ //计算圆柱体表面积
return 2*p*r*(r+h);
}
double volume()
{ //计算圆柱体积
return p*r*r*h;
}
};
class Cone:public Circle //圆锥类
{ double h;
public:
void input2();
double area() //计算圆锥表面积
{
double l=sqrt(h*h+r*r);
return p*r*(r+l);
}
double volume() //计算圆锥体积
{
return p*r*r*h/3;
}
};
void main()
{system("color f9");
cout<<"请输入一个浮点数"<<endl;
cout<<"输入字母将此后的输入视作0处理"<<endl;
Circle a; //定义圆类对象a
cout<<"请输入圆的半径(必须大于零):"<<endl;
a.input();
Ball b; //定义球体类对象b
cout<<"请输入球体半径(必须大于零):"<<endl;
b.input();
Cylinder c; //定义圆柱类对象c
cout<<"请输入圆柱底面半径(必须大于零):"<<endl;
c.input();
cout<<"请输入圆柱高(必须大于零):"<<endl;
c.input1();
Cone d; //定义圆锥类对象d
cout<<"请输入圆锥底面半径(必须大于零):"<<endl;
d.input();
cout<<"请输入圆锥高(必须大于零):"<<endl;
d.input2();
cout<<"圆面积: \t"<<a.area()<<endl;
cout<<"球表面积: \t"<<b.area()<<"球体积: "<<b.volume()<<endl;
cout<<"圆柱表面积: \t"<<c.area()<<"圆柱体积: "<<c.volume()<<endl;
cout<<"圆锥表面积: \t"<<d.area()<<"圆锥体积: "<<d.volume()<<endl;
}
void Circle::input()//类外定义circle类成员函数input()
{
do
{char str[20];
cin>>str;
r=atof(str);
if(r<0)
cout<<"请输入正数!:";
}
while(r<0);
}
void Cylinder::input1()//类外定义cylinder类成员函数input1()
{
do
{char str[20];
cin>>str;
h=atof(str);
if(h<0)
cout<<"请输入正数!:";
}
while(h<0);
}
void Cone::input2()//类外定义cone类成员函数input2()
{
do
{char str[20];
cin>>str;
h=atof(str);
if(h<0)cout<<"请输入正数!:";
}
while(h<0);
}
我想限制输入正数,已经解决了一小部分输入问题……可是如果输入诸如“324sde3f2”之类的……程序还是会出现乱码……
[ 本帖最后由 暗夜无星 于 2010-9-28 17:50 编辑 ]





都这么厉害呢……佩服佩服……