![]() |
#2
maiiho2008-10-21 14:08
解决了
不要引用 程序改后为 #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(); return 0; } |
错误的在红色部分#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;
grade+=allgrade;
count++;
}
~student()
{
delete []name;
delete []no;
}
void setxx(char *no1,char *name1,float grade1)
{
no=new char[strlen(no1)+1];
strcpy(no1,no);
name=new char[strlen(name1)+1];
strcpy(name1,name);
grade=grade1;
grade+=allgrade;
count++;
}
void showxx(student &w)
{
cout<<"\n编号="<<w.no<<"\n姓名="<<w.name<<"\n成绩="<<w.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;
int main()
{
student p1;
student p2("95001","ishimuramaiiho",89);
p1.setxx("95002","shimizusaki",88);
showxx(p2);
return 0;
}