自己做的小程序,想限制输入!学历尚浅,求教
程序代码:
#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 编辑 ]