标题:麻烦大家看一下,这错哪了。。。
只看楼主
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
结帖率:100%
已结贴  问题点数:10 回复次数:10 
麻烦大家看一下,这错哪了。。。
#include<iostream>
#include<string>
using namespace std;
class Book
{
private:
string name;
double price;
static long count;
static double total;
public:
Book(){}
void setdata(string s,double p);
static double sum();
};
long Book::count=0;
double Book::total=0.0;
void Book::setdata(string s,double p)
{
name=s;
price=p;
++count;
total+=price;
}
double Book::sum()
{
return total;
}
int main()
{
  string n_name;
  int n_price;
  Book *s=new Book[3];
  int i;
  for(i=0;i<3;i++)
  {   cout<<"输入书名:";
      cin>>n_name;
      cout<<"输入价钱:";
    cin>>n_price;
    s[i]->setdata(n_name,n_price);
  }
  cout<<s[3]->sum()<<endl;
  delete []s;
  return 0;
}
搜索更多相关主题的帖子: private include public double return 
2013-12-03 23:44
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
好长好乱...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-12-04 08:08
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
得分:0 
回复 2楼 peach5460
哪长了,还好吧。。。
2013-12-04 21:47
爱的天使xuge
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2013-6-14
得分:2 
看这样行吗?
#include<iostream>
 #include<string>
 using namespace std;
 class Book
 {
 private:
 string name;
 double price;
 static long count;
 static double total;
 public:
 Book(){}
 void setdata(string s,double p);
 static double sum();
 };
 long Book::count=0;
 double Book::total=0.0;
 void Book::setdata(string s,double p)
 {
 name=s;
 price=p;
 ++count;
 total+=price;
 }
 double Book::sum()
 {
 return total;
 }
 int main()
 {
   string n_name;
   int n_price;
   Book *s=new Book[3];
   int i;
   for(i=0;i<3;i++)
   {   cout<<"输入书名:";
       cin>>n_name;
       cout<<"输入价钱:";
     cin>>n_price;
     s->setdata(n_name,n_price);//s->setdata等于*s.setdata
   }
   cout<<s->sum()<<endl;//同上
   delete []s;
   return 0;
 }
2013-12-05 07:54
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:3 
回复 3楼 浪漫横行
好长意思是:上来就丢一大段代码,问题描述啥也没有...
好乱的意思是...没格式缩进...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-12-05 08:12
kevin_01
Rank: 2
等 级:论坛游民
帖 子:36
专家分:83
注 册:2013-11-23
得分:5 
回复 楼主 浪漫横行
除了显示的错误外,你的price是double型的,在主函数中定义时还是相符的好,还有那个count 根本就没用到啊,
同时建议你把循环的那改下,让它可以选择性停止。
#include<iostream>
#include<string>
using namespace std;
class Book
{
private:
    string name;
    double price;
    static long count;
    static double total;

public:
    Book(){}
    void setdata(string s,double p);
    static double sum();
};

long Book::count=0;
double Book::total=0.0;

void Book::setdata(string s,double p)
{
    name=s;
    price=p;
    ++count;
    total+=price;
}

double Book::sum()
{
    return total;
}

int main()
{
  string n_name;
  double n_price;
  Book *s=new Book[3];
  int i;
  for(i=0;i<3;i++)
  {   cout<<"输入书名:";
      cin>>n_name;
      cout<<"输入价钱:";
    cin>>n_price;
    s[i].setdata(n_name,n_price);
  }
  cout<<s[3].sum()<<endl;
  delete []s;
  return 0;
}

[ 本帖最后由 kevin_01 于 2013-12-5 15:06 编辑 ]

Hello  World !
2013-12-05 15:01
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
得分:0 
回复 4楼 爱的天使xuge
其实只要把->换成 .就行了。。
2013-12-05 19:59
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
得分:0 
回复 6楼 kevin_01
嗯,谢谢
2013-12-05 20:00
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
得分:0 
回复 5楼 peach5460
我知道了,因为匆忙所以。。。
2013-12-05 20:01
zuojian168
Rank: 2
等 级:论坛游民
帖 子:16
专家分:27
注 册:2013-3-20
得分:0 
s[i].setdata(n_name,n_price);换成(s+i)->setdata(n_name,n_price);
cout<<s[3].sum()<<endl;换成cout<<(s+3)->sum()<<endl
2013-12-07 08:58



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




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

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