.Elaborate° 2024-06-12 23:09 采纳率: 88.1%
浏览 9
已结题

一个类名为CStudent的类有以下属性:姓名、学号、专业、年级以及三门

一个类名为CStudent的类有以下属性:姓名、学号、专业、年级以及三门
课成绩,请用C++语言编程实现:
(1)定义这个类,并为CStudent 添加一构造函数来根据传入的参数初始
化CStudent的属性,并同步计算学生的平均成绩;
(2)添加一成员函数ShowData(),显示CStudent类的属性。
(3)添加一成员函数setData(string na,string id,string maj,float
s1,float s2,float s3),根据函数参数设置Student对象的成员属性值。。
程序输入格式如下:
1.3
//学生人数;
2. tom 2012060200182 ics 75 68 59 //学生信息
3. john 2012080900101 cs 98 68 45
4. LingLi 2012060200103 ics 75 86 95
输出:

  1. tom 2012060200102 ics 75 68 59 67.3333
  2. john 2012080900101 cs 98 68 45 70.3333
  3. LingLi 2012060200103 ics 75 86 95 85.3333
  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-06-12 23:09
    关注

    引自免费微信小程序:皆我百晓生

    为了满足你的需求,下面是一个完整的C++代码示例,它实现了CStudent类的定义,包括构造函数、成员函数ShowData()setData(),以及如何使用这些功能来处理学生数据并输出结果。

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class CStudent {
    private:
        string name;
        string studentID;
        string major;
        int grade;
        float score1, score2, score3;
        float averageScore;
    
    public:
        // Constructor that initializes the attributes and calculates the average score
        CStudent(string na, string id, string maj, float s1, float s2, float s3) {
            name = na;
            studentID = id;
            major = maj;
            grade = 0; // Assuming grade is not provided and set to a default value
            score1 = s1;
            score2 = s2;
            score3 = s3;
            calculateAverage();
        }
    
        // Function to calculate the average score
        void calculateAverage() {
            averageScore = (score1 + score2 + score3) / 3;
        }
    
        // Function to display student data
        void ShowData() {
            cout << "Name: " << name << ", ID: " << studentID << ", Major: " << major
                 << ", Scores: " << score1 << " " << score2 << " " << score3
                 << ", Average Score: " << averageScore << endl;
        }
    
        // Function to set student data
        void setData(string na, string id, string maj, float s1, float s2, float s3) {
            name = na;
            studentID = id;
            major = maj;
            score1 = s1;
            score2 = s2;
            score3 = s3;
            calculateAverage();
        }
    };
    
    int main() {
        int n;
        cin >> n;
        CStudent students[n];
    
        for (int i = 0; i < n; i++) {
            string na, id, maj;
            float s1, s2, s3;
            cin >> na >> id >> maj >> s1 >> s2 >> s3;
            students[i] = CStudent(na, id, maj, s1, s2, s3);
        }
    
        for (int i = 0; i < n; i++) {
            cout << i+1 << ",";
            students[i].ShowData();
        }
    
        return 0;
    }
    

    这段代码首先包含了必要的头文件,并定义了CStudent类。类中包含私有成员变量用于存储学生的信息,以及公有成员函数用于初始化、显示和设置学生数据。main()函数读取学生数量和每个学生的信息,创建CStudent对象数组,并调用ShowData()函数来显示每个学生的信息和平均分数。

    请注意,上述代码中的grade属性在构造函数中被设为了默认值0,因为题目中并未提及年级的具体赋值方式。如果你有特定的需求或数据输入方式,请调整这部分代码以适应实际场景。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月20日
  • 已采纳回答 6月12日
  • 创建了问题 6月12日