21xrx.com
2024-12-28 06:25:03 Saturday
登录
文章检索 我的文章 写文章
用类实现C++平均成绩输出代码
2023-07-05 08:08:00 深夜i     --     --
C++ 平均成绩 实现 代码

在面向对象编程中,类是一个具有属性和方法的模板。利用类和对象可以更好地组织代码,提高程序的可扩展性和可维护性。本文将介绍如何使用类实现C++平均成绩输出代码。

步骤1:定义类

首先,我们需要定义一个学生类,包含学生的姓名、学号、成绩等属性及计算平均成绩的方法。代码如下所示:


#include <string>

#include <vector>

#include <numeric>

class Student {

public:

  void set_name(const std::string& name) name_ = name;

  std::string get_name() const return name_;

  void set_id(const std::string& id) id_ = id;

  std::string get_id() const return id_;

  void add_score(double score) { scores_.push_back(score); }

  double get_average_score() const {

    if (scores_.empty())

      return 0;

    

    double sum = std::accumulate(scores_.begin(), scores_.end(), 0.0);

    return sum / scores_.size();

  }

private:

  std::string name_;

  std::string id_;

  std::vector<double> scores_;

};

在上面的代码中,我们定义了一个名为Student的类,有三个私有属性(name_, id_和scores_)和四个公有方法(set_name、get_name、set_id和add_score),其中,set_name和get_name方法用于设置和获取学生的姓名,set_id和get_id方法用于设置和获取学生的学号,add_score方法用于添加学生的成绩,get_average_score方法用于计算学生的平均成绩。

步骤2:利用对象调用方法

接下来,我们需要利用对象来调用上面定义的方法。在这里,我们创建了两个学生对象,并设置它们的姓名、学号和成绩。最后,我们调用get_average_score方法来计算每个学生的平均成绩,将结果输出到屏幕上。代码如下所示:


#include <iostream>

int main() {

  Student s1, s2;

  s1.set_name("张三");

  s1.set_id("2019001");

  s1.add_score(80);

  s1.add_score(90);

  s1.add_score(85);

  double avg_score1 = s1.get_average_score();

  std::cout << s1.get_name() << " 的平均成绩是:" << avg_score1 << std::endl;

  s2.set_name("李四");

  s2.set_id("2019002");

  s2.add_score(75);

  s2.add_score(70);

  s2.add_score(80);

  double avg_score2 = s2.get_average_score();

  std::cout << s2.get_name() << " 的平均成绩是:" << avg_score2 << std::endl;

  return 0;

}

在上面的代码中,我们创建了两个Student对象,分别命名为s1和s2。我们首先使用set_name和set_id方法设置它们的姓名和学号,然后使用add_score方法添加了3个成绩。最后,我们调用get_average_score方法计算平均成绩,并通过cout语句将结果输出到屏幕上。

总结

本文介绍了如何使用类实现C++平均成绩输出代码。通过定义一个学生类,包含学生的姓名、学号、成绩等属性及计算平均成绩的方法,我们可以利用对象来调用这些方法来计算每个学生的平均成绩。这种利用类和对象的方法可以更好地组织代码和提高程序的可扩展性和可维护性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复