c++,大佬看看啊啊啊。

 

有4个学生,每个学生的数据包括学号、姓名、3门课(高数、英语、物理)的成绩。

 

从键盘输入学生数据,添加如下功能:

 

(1)input函数从键盘输入学生数据;

 

(2)average函数计算3门课的成绩的平均分;

 

(3)print函数输出平均分大于80分的学生信息(包括学号、姓名、3门课的成绩、平均分);输出平均分最高的学生信息(包括学号、姓名、3门课的成绩、平均分)。

 

【样例输入】

 

please input 1 of 4

 

num:101

 

name:zhangsan

 

score 1:45

 

score 2:78

 

score 3:65

 

 

 

 

 

please input 2 of 4

 

num:102

 

name:lisi

 

score 1:70

 

score 2:80

 

score 3:90

 

 

 

 

 

please input 3 of 4

 

num:103

 

name:wangwu

 

score 1:75

 

score 2:85

 

score 3:95

 

 

 

 

 

please input 4 of 4

 

num:104

 

name:zhaoliu

 

score 1:60

 

score 2:65

 

score 3:70

 

 

 

 

 

 

 

 

 

 

 

【样例输出】

 

 

 

输出平均分大于80分的学生信息-----------------------------------

 

学号 姓名 高数 英语 物理 平均分

 

103 wangwu 75.00 85.00 95.00 85.00

 

 

 

 

 

 

 

输出平均分最高的学生信息-----------------------------------

 

学号 姓名 高数 英语 物理 平均分

 

103 wangwu 75.00 85.00 95.00 85.00

 

 

参考GPT和自己的思路:

可以使用结构体来存储每个学生的数据,然后通过输入、计算平均分、输出信息等函数来完成要求。具体实现如下:

#include <iostream>
#include <string>

using namespace std;

// 定义学生数据结构体
struct Student {
    int num;    // 学号
    string name;    // 姓名
    float score1;   // 高数成绩
    float score2;   // 英语成绩
    float score3;   // 物理成绩
};

// 输入学生信息函数
void input(Student &stu) {
    cout << "num:";
    cin >> stu.num;
    cout << "name:";
    cin >> stu.name;
    cout << "score 1:";
    cin >> stu.score1;
    cout << "score 2:";
    cin >> stu.score2;
    cout << "score 3:";
    cin >> stu.score3;
}

// 计算平均分函数
float average(const Student &stu) {
    return (stu.score1 + stu.score2 + stu.score3) / 3.0;
}

// 输出学生信息函数
void print(const Student &stu) {
    cout << stu.num << " " << stu.name << " " << stu.score1 << " " << stu.score2 << " " << stu.score3 << " " << average(stu) << endl;
}

// 主函数
int main() {
    Student stu[4]; // 定义4个学生结构体数组
    for (int i = 0; i < 4; i++) {
        cout << "please input " << i + 1 << " of 4" << endl;
        input(stu[i]);
    }

    // 输出平均分大于80分的学生信息
    cout << "输出平均分大于80分的学生信息-----------------------------------" << endl;
    for (int i = 0; i < 4; i++) {
        if (average(stu[i]) > 80) {
            print(stu[i]);
        }
    }

    // 输出平均分最高的学生信息
    cout << "输出平均分最高的学生信息-----------------------------------" << endl;
    float max_avg = 0;
    int max_index = 0;
    for (int i = 0; i < 4; i++) {
        if (average(stu[i]) > max_avg) {
            max_avg = average(stu[i]);
            max_index = i;
        }
    }
    print(stu[max_index]);

    return 0;
}

这个程序首先定义了一个学生数据结构体,包括学号、姓名和3门课程成绩。然后定义了输入、计算平均分和输出学生信息等函数。在主函数里面,先输入4个学生的信息,然后分别遍历学生数组,输出平均分大于80分的学生信息,和平均分最高的学生信息。

参考GPT和自己的思路:

好的,这是一个关于学生信息管理的程序,需要实现输入学生信息、计算平均分、输出符合条件的学生信息等功能。可以使用C++语言来实现。

以下是参考代码:

#include <iostream>
#include <string>
using namespace std;

const int MAX_STUDENT_NUM = 4; // 最大学生数
const double PASS_SCORE = 80.0; // 及格分数

struct Student {
    int num; // 学号
    string name; // 姓名
    double score[3]; // 3门课成绩
    double avg_score; // 平均分
};

void input(Student stu[], int n) {
    for(int i = 0; i < n; i++) {
        cout << "please input " << i+1 << " of " << n << endl;
        cout << "num:";
        cin >> stu[i].num;
        cout << "name:";
        cin >> stu[i].name;
        for(int j = 0; j < 3; j++) {
            cout << "score " << j+1 << ":";
            cin >> stu[i].score[j];
        }
    }
}

void average(Student stu[], int n) {
    for(int i = 0; i < n; i++) {
        double sum = 0.0;
        for(int j = 0; j < 3; j++) {
            sum += stu[i].score[j];
        }
        stu[i].avg_score = sum / 3.0; // 计算平均分
    }
}

void print(Student stu[], int n) {
    bool has_over80 = false; // 是否有学生平均分大于80
    int max_index = 0; // 平均分最高的学生下标
    double max_avg_score = stu[0].avg_score; // 平均分最高的学生平均分
    
    cout << "输出平均分大于80分的学生信息-----------------------------------" << endl;
    cout << "学号\t姓名\t高数\t英语\t物理\t平均分" << endl;
    
    for(int i = 0; i < n; i++) {
        if(stu[i].avg_score > PASS_SCORE) {
            has_over80 = true;
            cout << stu[i].num << "\t" << stu[i].name << "\t";
            for(int j = 0; j < 3; j++) {
                cout << stu[i].score[j] << "\t";
            }
            cout << stu[i].avg_score << endl;
        }
        
        if(stu[i].avg_score > max_avg_score) {
            max_avg_score = stu[i].avg_score;
            max_index = i;
        }
    }
    
    if(!has_over80) {
        cout << "无" << endl;
    }
    
    cout << endl << "输出平均分最高的学生信息-----------------------------------" << endl;
    cout << "学号\t姓名\t高数\t英语\t物理\t平均分" << endl;
    
    cout << stu[max_index].num << "\t" << stu[max_index].name << "\t";
    for(int j = 0; j < 3; j++) {
        cout << stu[max_index].score[j] << "\t";
    }
    cout << stu[max_index].avg_score << endl;
}

int main() {
    Student stu[MAX_STUDENT_NUM];
    input(stu, MAX_STUDENT_NUM); // 输入学生信息
    average(stu, MAX_STUDENT_NUM); // 计算平均分
    print(stu, MAX_STUDENT_NUM); // 输出符合条件的学生信息
    return 0;
}

代码的思路是:定义结构体Student表示一个学生,包括学号、姓名、3门课的成绩和平均分。首先通过input函数输入学生信息,然后通过average函数计算每个学生的平均分,最后通过print函数输出平均分大于80的学生信息和平均分最高的学生信息。这个程序可以通过编译和运行,提供的样例输入和输出也能得到正确结果。