标题:自己做的小程序,想限制输入!学历尚浅,求教
取消只看楼主
暗夜无星
Rank: 1
来 自:神圣天堂
等 级:新手上路
帖 子:12
专家分:2
注 册:2010-8-1
结帖率:100%
 问题点数:0 回复次数:3 
自己做的小程序,想限制输入!学历尚浅,求教
程序代码:
#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 编辑 ]
搜索更多相关主题的帖子: 尚浅 学历 输入 
2010-09-28 17:46
暗夜无星
Rank: 1
来 自:神圣天堂
等 级:新手上路
帖 子:12
专家分:2
注 册:2010-8-1
得分:0 
………………

[ 本帖最后由 暗夜无星 于 2010-9-28 18:44 编辑 ]
2010-09-28 18:42
暗夜无星
Rank: 1
来 自:神圣天堂
等 级:新手上路
帖 子:12
专家分:2
注 册:2010-8-1
得分:0 
回复 5楼 kidangel666
呵呵……谢谢啊,不错
2010-09-29 23:20
暗夜无星
Rank: 1
来 自:神圣天堂
等 级:新手上路
帖 子:12
专家分:2
注 册:2010-8-1
得分:0 
这些都是最一般的,你们学了就知道了……
编程的思想最重要了!一起努力学习!!
2010-11-09 14:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-321624-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.089317 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved