You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++如何循环调用类方法实现多名estudiante信息录入与输出

解决方案

实现思路

要实现先录入3名学生信息再统一打印,只需要调整存储结构和循环逻辑即可,核心是用数组存储多个学生对象,拆分录入和输出为两个独立的循环流程。

修改后完整代码

#include <iostream>
#include <string>
// 原代码用到string但未引入对应头文件,此处补充引入避免编译报错
#include <array>

using namespace std;

class estudiante
{
    private:
        string  nombre,cedula,codigo,direccion;

    public:
       // 新增序号参数,用于显示当前录入的是第几个学生
       void getDetalles(int idx);
       void setDetalles(int idx);
};

void estudiante::getDetalles(int idx){
    cout << "Ingrese el nombre del estudiante " << idx << ":" ;
    cin >> nombre;
    cout << "Ingrese el numero de cedula: ";
    cin >> cedula;
    cout << "Ingrese el codigo: ";
    cin >> codigo;
    cout << "Ingrese la direccion: ";
    cin >> direccion;
    cout << endl;
}

void estudiante::setDetalles(int idx){
    cout << "La informacion de estudiante " << idx << ": \n";
    cout << "Nombre:" << nombre << "\n";
    cout << "Cedula:" << cedula << "\n";
    cout << "Codigo:" << codigo << "\n";
    cout << "Direccion:" << direccion << "\n";
 }

int main()
{
    const int STU_COUNT = 3;
    // 定义数组存储3个学生对象
    estudiante stus[STU_COUNT];

    // 第一轮循环:录入所有学生信息
    for(int i = 0; i < STU_COUNT; i++){
        stus[i].getDetalles(i+1);
    }

    // 第二轮循环:统一打印所有学生信息
    cout << "======== 所有学生详情 ========\n";
    for(int i = 0; i < STU_COUNT; i++){
        stus[i].setDetalles(i+1);
        cout << "-----------------------------\n";
    }

   return 0;
}

核心修改说明

  • 移除了冗余的全局变量x,改为将学生序号作为参数传入成员函数,避免全局变量被意外篡改导致逻辑错误
  • 补充了<string>头文件引入,修复部分编译器下因缺失头文件产生的编译报错
  • 修复了原getDetalles函数中多余的反引号语法错误
  • 主函数中定义固定长度的学生对象数组,存储3名学生的全部信息
  • 拆分逻辑为两个独立循环:先完成所有学生信息录入,再统一输出所有学生详情,完全匹配需求

内容的提问来源于stack exchange,提问作者user16839362

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:45:05