c++创建一个对象数组

1、 创建一个对象数组,数组的元素是学生对象,学生的信息包括学号、姓名和成绩(一门课成绩),求其总人数和平均分。(学生对象不得少于5个) 要求学生信息由键盘输入!

#include <iostream>
#include <string>

using namespace std;

class Student {
public:
    string id;    // 学号
    string name;  // 姓名
    float score;  // 成绩
};

int main() {
    const int num_students = 5;
    Student students[num_students];

    // 从键盘输入学生信息
    for (int i = 0; i < num_students; i++) {
        cout << "请输入第 " << i+1 << " 个学生的信息:" << endl;
        cout << "学号:";
        cin >> students[i].id;
        cout << "姓名:";
        cin >> students[i].name;
        cout << "成绩:";
        cin >> students[i].score;
    }

    // 计算总人数和平均分
    float total_score = 0;
    for (int i = 0; i < num_students; i++) {
        total_score += students[i].score;
    }
    float avg_score = total_score / num_students;

    // 输出结果
    cout << "总人数:" << num_students << endl;
    cout << "平均分:" << avg_score << endl;

    return 0;
}

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7661192
  • 这篇博客你也可以参考下:C++ 输入3个学生4门课的成绩,分别用函数实现以下功能:(1)计算每个学生的平均分。(2)计算每门课的平均分。(3)找出12个分数中最高分数所对应的学生和课程。
  • 除此之外, 这篇博客: C++数据结构二叉树统计总结点个数,叶子结点个数,单分支结点个数,双分支结点个数。中的       很多书上其实都有提到和该算法。但是经过自己的学习我自己想到一个算法。算是结合了其中的优点吧。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 算法描述:该算法递归去统计结点个数。值得一提的是该系列算法都是统计根结点以下的符和条件的结点的个数进行了加和。免去的设置全局变量和void的类型的函数。
    int	CountNodes(LBTree* lbt)
    {
    	int n = 0;
    	if (lbt != NULL)
    	{
    		++n;
    		n += CountNodes(lbt->lchild);
    		n += CountNodes(lbt->rchild);
    	}
    	return n;
    }
    
    int CountLeaves(LBTree* lbt)
    {
    	int n = 0;
    	if (lbt != NULL)
    	{
    		if (lbt->lchild == NULL && lbt->rchild == NULL)
    			++n;
    		n += CountLeaves(lbt->lchild);
    		n += CountLeaves(lbt->rchild);
    	}
    	return n;
    }
    
    int CountSingleNode(LBTree* lbt)
    {
    	int n = 0;
    	if (lbt != NULL)
    	{
    		if ((lbt->lchild == NULL && lbt->rchild != NULL) || (lbt->rchild == NULL && lbt->lchild != NULL))
    			++n;
    		n += CountSingleNode(lbt->lchild);
    		n += CountSingleNode(lbt->rchild);
    	}
    	return n;
    }
    
    int	CountDoubleNode(LBTree* lbt)
    {
    	int n = 0;
    	if (lbt != NULL)
    	{
    		if (lbt->lchild != NULL && lbt->rchild != NULL)
    			++n;
    		n += CountDoubleNode(lbt->lchild);
    		n += CountDoubleNode(lbt->rchild);
    	}
    	return n;
    }

     

  • 您还可以看一下 夏曹俊老师的C++ 设计模式原理与实战大全-架构师需备课程课程中的 模板方法的定义场景与实现:将“动作”封装成对象是理解行为型模式的重要基础小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    可以使用以下代码创建一个包含多个学生对象的数组:

    include

    using namespace std;

    class Student { private: int id; string name; double score; public: // 构造函数 Student(int i, string n, double s) { id = i; name = n; score = s; } // getter和setter int getId() { return id; } void setId(int i) { id = i; } string getName() { return name; } void setName(string n) { name = n; } double getScore() { return score; } void setScore(double s) { score = s; } };

    int main() { const int NUM_OF_STUDENTS = 5; Student students[NUM_OF_STUDENTS];

    // 通过键盘输入学生信息并存入数组中
    for (int i = 0; i < NUM_OF_STUDENTS; i++) {
        // 输入学生信息
        cout << "请输入第" << i+1 << "个学生的学号、姓名和成绩:" << endl;
        int id;
        string name;
        double score;
        cin >> id >> name >> score;
    
        // 将学生信息存入数组
        Student student(id, name, score);
        students[i] = student;
    }
    
    // 计算学生总人数和平均成绩
    int numOfStudents = NUM_OF_STUDENTS;
    double sumScore = 0;
    for (int i = 0; i < NUM_OF_STUDENTS; i++) {
        sumScore += students[i].getScore();
    }
    double avgScore = sumScore / numOfStudents;
    
    // 输出结果
    cout << "学生总人数为:" << numOfStudents << endl;
    cout << "平均成绩为:" << avgScore << endl;
    
    return 0;
    

    }

    这里定义了一个Student类,包含学号、姓名和成绩,然后创建一个包含5个Student对象的数组。通过循环,读入每个学生的信息,并存入数组中。最后,计算学生总人数和平均成绩,并输出结果。