注册 登录
编程论坛 C++教室

为什么评定等级没有结果?

maiiho 发布于 2008-10-21 14:16, 615 次点击
#include <iostream.h>
#include <string.h>
class student
{
private:
    static int count;                  
    static float allgrade;               
    char *no;
    char *name;
    float grade;
public:
    student(){}
    student(char *no1,char *name1,float grade1)     
    {
        no=new char[strlen(no1)+1];
        strcpy(no,no1);
        name=new char[strlen(name1)+1];
        strcpy(name,name1);
        grade=grade1;
        allgrade+=grade;
        count++;
    }
    ~student()
    {
        delete []name;
        delete []no;
    }
    void setxx(char *no1,char *name1,float grade1)
    {
        no=new char[strlen(no1)+1];
        strcpy(no,no1);
        name=new char[strlen(name1)+1];
        strcpy(name,name1);
        grade=grade1;
        allgrade+=grade;
        count++;
    }
    void showxx()
    {
        cout<<"\n编号="<<no<<"\n姓名="<<name<<"\n成绩="<<grade<<endl;
    }
    void allxx()
    {
        //char level(float a);
        cout<<"\n\n团队人数="<<count<<"\n总成绩="<<allgrade<<"\n评定级别="<<level(allgrade)<<endl;
    }
    char level(float a)
    {
        char temp;
        if(a>0&&a<30)
        temp='D';
        if(a>30&&a<60)
        temp='C';
        if(a>60&&a<90)
        temp='B';
        if(a>90&&a<120)
        temp='A';
        return temp;
}
};
int student::count=0;
float student::allgrade=0.0;
int main()
{
    student p1,p2("95001","Ishimura Maiiho",89);
    p1.setxx("95002","Shimizu Saki",83);
    p2.showxx();
    p1.showxx();
    p1.allxx();
    return 0;
}
2 回复
#2
youhm2008-10-21 15:41
allgrade=172  a?
#3
xiaxiang19862008-10-21 16:23
level(allgrade)=172;不在 函数char level(float a)中if范围内呀!
这样写就有结果了:
     void showxx()
    {
        cout<<"\n编号="<<no<<"\n姓名="<<name<<"\n成绩="<<grade<<"\n评定级别="<<level(grade)<<endl;
    }
1