使用以下规范定义班级学生(下面的其余部分)

时间:2016-03-05 19:08:29

标签: c++

我不明白为什么我没有得到总数。

问题是

  

使用以下规范定义班级学生:私人   班级学生的成员admno整数sname 20字符eng。
  math,science float total float ctotal()一个计算eng +的函数   数学+科学与浮动返回类型。公共成员的职能   class student Takedata()函数类的公共成员函数   学生Takedata()函数float ctotal()一个函数来计算   英语+数学+科学与floa返回类型。公共成员函数   班级学生Takedata()函数

#include<stdio.h>
#include<iostream>
using namespace std;
class Student
{
    private:
    int admno;
    char sname[20];
    float english,maths,science;
    float total;
    float ctotal()
    {
        total=(english+maths+science);
        return(total);
    }
    public:
        void Takedata()
        {
            cout<<"Enter the value of admno:";
            cout<<" sname :";
            cout<<"eng :";
            cout<<"science:";
            cout<<"maths:";
            cin>>admno;

            cin>>sname;

            cin>>english;

            cin>>science;

            cin>>maths;

        }
        Student(): total(0.0)  //constructor
        {
        }
        friend float func(Student);
        void Showdata()
        {
            cout<<"adm no:"<<admno;
            cout<<"sname:"<<sname;
            cout<<"eng"<<english;
            cout<<"science"<<science;
            cout<<"maths"<<maths;
        }
};
   float func(Student t)
   {
    t.total;
    return t.total;
   }
   int main()
   {
    Student s1;
    s1.Takedata();
    s1.Showdata();
    cout<"total is:";
    cout<<func(s1);

   }

3 个答案:

答案 0 :(得分:0)

t.total替换为

中的t.ctotal()
float func(Student t)
{
    t.total;
    return t.total;
}

答案 1 :(得分:0)

func应该像这样定义

   float func(Student t)
   {
    return t.ctotal();
   }

也编辑

   cout<"total is:";

   cout<<"total is:";

答案 2 :(得分:0)

需要将total或method ctotal()设为public。 然后从

中调用其中一个
public:
    float total;
float func(Student t)
{
    t.total;
    return t.total;
}

OR     上市:         float ctotal(){             总=(英文+数学+科学);             返回(总);         }

float func(Student t)
{
    return t.ctotal();
}