期中考模拟题
T1:判断矩形是否重叠(复合类+友元)#include <iostream>using namespace std;#include <iomanip>class CPoint{public:CPoint(){}CPoint(int a,int b){x1=a;y1=b;}void set(int a,int b){x1=a;y1=b;}//private:int x1;i
·
T2:计算平均绩点(友元函数)
#include <iostream>
using namespace std;
#include <iomanip>
class lesson{
public:
lesson(){};
void set(string _num,double _credit,string _grade){
num=_num;
credit=_credit;
grade=_grade;
}
friend double get(lesson *p,int n);
friend double gpa(lesson *p,int n,double sumgrade);
void print(lesson &p,int n){
cout<<fixed(2)<<setprecision<<p.num<<' ';
}
~lesson(){};
private:
string num;
double credit;
string grade;
};
double get(lesson *p,int n){
double sum=0;
for(int i=0;i<n;i++){
sum+=p[i].credit;
}
return sum;//forget
}
double gpa(lesson *p,int n,double sumgrade){
double sum=0,k;
for(int i=0;i<n;i++){
if(p[i].grade=="A+") k=4.5*p[i].credit;
if(p[i].grade=="A") k=4*p[i].credit;
if(p[i].grade=="B+")k=3.5*p[i].credit;
if(p[i].grade=="B") k=3*p[i].credit;
if(p[i].grade=="C+") k=2.5*p[i].credit;
if(p[i].grade=="C") k=2*p[i].credit;
if(p[i].grade=="D") k=1*p[i].credit;
if(p[i].grade=="F") k=0*p[i].credit;
sum=sum+k;
}
double gpa=sum/sumgrade;
return gpa;
}
int main()
{
int test,n;
cin>>test;
string num,grade;
double credit;
while(test--){
cin>>n;
lesson *p=new lesson [n];
for(int i=0;i<n;i++){
cin>>num>>credit>>grade;
p[i].set(num,credit,grade);
}
for(int i=0;i<n;i++){
p[i].print(p[i],n);
}
cout<<endl;//one 友元two类成员函数void
double sumgrade=get(p,n);
cout<<sumgrade<<' ';
cout<<gpa(p,n,sumgrade)<<endl;
}
return 0;
}
Tips:封面为转载,侵权删
更多推荐
已为社区贡献3条内容
所有评论(0)