回 帖 发 新 帖 刷新版面

主题:求助编程题!!!!!

C++编写一个类,该类的对象用于计数(记录一个非负的整数)。
编写一个类,该类的对象用于计数(记录一个非负的整数)。为类写一个默认构造函数,它能将计数设置为0;编写一构造函数,它接受一个参数,用于将计算器设为由参数指定的值;编写相应的成员函数,使计数能够递增或递减1,确保任何成员函数都不允许计数器为负值;编写一个成员函数显示当前计数值;编写相应的测试程序来测试类的使用。 

附:代码能运行,但运行的结果不正确,不知道哪个环节出错误,请高手帮我看看!!谢谢!!
#include<iostream>
using namespace std;
class countertype
{
public:
    countertype();
    countertype(int t);
    void add();
    void sub();
    int getput();
    void output(ostream& outs);
private:
     int count;
};
int main()
{
    countertype count1(1);
    int i;
    cout<<"1 is add"<<endl;
    cout<<"2 is sub"<<endl;
    cin>>i; 
    switch(i)
    {
    case 1: count1.add();
    case 2: count1.sub();
    default: "wrong";
    }
count1.getput();
cout<<"the count is:";
count1.output(cout);
return 0;
}
countertype::countertype():count(0)
{

}
countertype::countertype(int t)
{
    if(count>=0)
        t=count;
}
void countertype::add()
{
    count++;
}
void countertype::sub()
{
    count--;
}
int countertype::getput()
{
    return count;
}
void countertype::output(ostream& outs)
{
    int n=0;
    outs<<count<<' ';
    n++;
    if(n==50)
        outs<<endl;
}

回复列表 (共7个回复)

沙发


countertype::countertype(int t)
{
    if(count>=0)
        t=count;
}

你把count和t搞反了

板凳

恩恩~~~可还是不行啊!!!!

3 楼


switch(i)
    {
    case 1: count1.add();
    case 2: count1.sub();
...

改为
switch(i)
    {
    case 1: count1.add(); break;
    case 2: count1.sub(); break;

还有,
void countertype::output(ostream& outs)
{
    int n=0;
    outs<<count<<' ';
    n++;
    if(n==50)
        outs<<endl;
}

int n=0;
改为
static int n=0;

    if(n==50)
        outs<<endl;
改为
    if(n==50)
{
        outs<<endl;
    n=0;
    }

4 楼


额。。。。还是不行。

5 楼

那你至少告诉大家现在还哪里不正确

6 楼

是运行的结果不对,实现不了计数这一要求。

7 楼

lz要这么计数?楼上2位已经把你的问题全找出来了,如果你是想让这个函数能持续运行的话,那你得在main里加循环阿。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册