64,636
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
class Student{
public:
Student(){num = 0; name[0] = '0'; sex[0] = '0'; age = 0; score[0] = {0}; average = 0;}
void Setstudent(int n, char na[10], char s[3], int a, double sc1, double sc2, double sc3 = 0);
void show();
void Setaverage(double sc1, double sc2, double sc3);
void Setaverage(double sc1, double sc2);
double Getaverage(){return average;}
~Student(){cout << "析构函数" << endl;}
private:
int num;
char name[10];
char sex[3];
int age;
double score[3], average;
};
void Student::show(){
cout << "学号:" << num << "\n姓名:" << name << "\n性别:" << sex
<< "\n年龄:" << age << "\n语文成绩:" << score[0] << "\n数学成绩:" << score[1];
if(score[2] != 0)
cout << "\n英语成绩:" << score[2] << "\n平均成绩:" << average << endl;
else cout << "\n平均成绩:" << average << endl;
}
void Student::Setaverage(double sc1, double sc2, double sc3){average = (sc1 + sc2 + sc3)/3;}
void Student::Setaverage(double sc1, double sc2){average = (sc1 + sc2)/2;}
void Student::Setstudent(int n, char na[10], char s[3], int a, double sc1, double sc2, double sc3)
{
num = n; age = a; score[0] = sc1; score[1] = sc2; score[2] = sc3;
for(int i = 0; i < 10; i++){name[i] = na[i];}
for(int i = 0; i < 3; i++){sex[i] = s[i];}
}
int main()
{
int n;
cout << "请输入学生人数:";
cin >> n;
Student *p = new Student[n];
Student *pt = p;
double max1 = 0, max2 = 0, max3 = 0, sum1 = 0, sum2 = 0, sum3 = 0;
for(int i = 0; i < n; i++, pt++){
int num;
char name[10];
char sex[3];
int age, n1;
double sc1, sc2, sc3;
cout << "请输入第" << i + 1 << "个学生信息" << endl;
cout << "学号:";
cin >> num;
cout << "姓名:";
cin >> name;
cout << "性别:";
cin >> sex;
cout << "年龄:";
cin >> age;
cout << "科目数:";
cin >> n1;
cout << "各科成绩:";
if(n1 == 2){
cin >> sc1 >> sc2;
if(sc1 > max1){max1 = sc1;}
if(sc2 > max2){max2 = sc2;}
sum1 += sc1; sum2 += sc2;
(*pt).Setaverage(sc1, sc2);
(*pt).Setstudent(num, name, sex, age, sc1, sc2);
}
else{
cin >> sc1 >> sc2 >> sc3;
if(sc1 > max1){max1 = sc1;}
if(sc2 > max2){max2 = sc2;}
if(sc3 > max3){max3 = sc3;}
sum1 += sc1; sum2 += sc2; sum3 += sc3;
(*pt).Setaverage(sc1, sc2, sc3);
(*pt).Setstudent(num, name, sex, age, sc1, sc2, sc3);
}
}
for(int i = 0; i < n; i++, p++){
cout << "第"<< i+1 << "位同学成绩:";
p -> show();
}
delete[] p;
}