『求助』哪位大虾能帮忙看看 多分支结构的问题
感觉对多分支吃得还是不够透,经常冒错误源码如下,用来计算绩点的~~ 在确定每科绩点时想到要用多分支
编译没有报错,可是运行时的结果就不大对了 应该就是多分支那里有错
先谢过啦~~
#include "iostream.h"
#define TAB '\t'
class GPA{
public:
GPA();
void display();
float calculate();
void getscore(float pscore){score=pscore;};
void getmark(int pmark){mark=pmark;};
private:
float score;
float g;
int mark;
};
GPA::GPA(){
if(score<60)g=0;
else if(score==60)g=1;
else if(score<62)g=1.3;
else if(score<66)g=1.7;
else if(score<71)g=2;
else if(score<75)g=2.3;
else if(score<78)g=2.7;
else if(score<82)g=3;
else if(score<85)g=3.3;
else if(score<90)g=3.7;
else if(score<=100)g=4;
else cout<<"输入有误!";
}
void GPA::display(){
cout<<score<<TAB<<mark<<TAB<<g<<endl;
}
float GPA::calculate(){
return mark*g;
}
void main(){
int smark,i,n,t=1;
char d;
float sscore,temp,sum1,sum2,res;
sum1=0;
sum2=0;
while(t){
while(t){
cout<<"请输入课程数目(0~100):";
cin>>n;
if(n<0||n>100){
cout<<"错误输入!重试!"<<endl;
}
else t=0;
}
GPA G[100];
for(i=0;i<n;i++){
cout<<"第"<<i+1<<"门课:"<<endl;
cout<<"成绩:";
cin>>sscore;
G[i].getscore(sscore);
cout<<"学分:";
cin>>smark;
sum2=sum2+smark;
G[i].getmark(smark);
}
cout<<"成绩"<<TAB<<"学分"<<TAB<<"GPA"<<endl;
for(i=0;i<n;i++){
G[i].display();
temp=G[i].calculate();
sum1=sum1+temp;
}
res=sum1/sum2;
cout<<"GPA:"<<res<<endl;
t=1;
while(t){ //提示用户是否继续使用函数 ,同时为了限制输入字符仅为y和n的大小写,避免非法输入。
cout<<"继续吗?(Y/N)";
cin>>d;
if(d=='y'||d=='Y')break;
if(d=='n'||d=='N')t=0;
}
}
}