C++程序 在结构中存储学生信息

C++程序 在结构中存储学生信息

数组用于在连续的内存位置上存储相似数据类型的数据集。与数组不同,结构体是用户定义的数据类型,用于存储非相似数据类型的项目组。在这里,我们将编译一个C++程序,将学生的信息存储在结构中。

以下是我们将在结构中存储的信息:

  • 学生姓名(字符串)
  • 学生学号(字符串)
  • 已注册课程(字符串数组)
  • 每个科目的成绩(整数数组)
  • 平均绩点(浮点数)

示例:

Yash Gupta
S20200010234
[DSA, OOPS ,DBMS, CCN]
[89,78,86,90]
8.918

对于一个学生

// C++程序演示
// 用于存储学生详细信息的结构
#include <bits/stdc++.h>
using namespace std;
 
// 学生结构体
struct student {
    string name; // 学生姓名
    string rollno; // 学生学号
    vector<string> subjects; // 已注册课程(字符数组)
    vector<int> marks; // 每个科目的成绩(整数数组)
    float cgpa; // 学生平均绩点
};
 
// 打印矢量的函数(有关“打印矢量元素的不同方法”请参见GFG)
template <typename S> void printv(const vector<S>& v)
{
    cout << "[ ";
    // 迭代所有矢量元素
    for (auto elem : v) {
        cout << elem << " ";
    }
    cout << "]";
    cout << endl;
}
 
// 打印学生信息的函数
void printStudent(student* s)
{
    cout << "学生信息:" << endl;
    cout << endl;
    cout << "姓名: " << s->name << endl;
    cout << "学号: " << s->rollno << endl;
    cout << "课程: ";
    printv(s->subjects);
    cout << "分数: ";
    printv(s->marks);
    cout << "绩点: " << s->cgpa << endl;
}
 
// 主函数
int main()
{
    // 新学生
    student s;
 
    // 声明学生所有信息
    s.name = "GeeksforGeeks";
    s.rollno = "S20200010234";
    s.subjects = { "DSA", "OOPS", "DBMS", "CCN" };
    s.marks = { 89, 78, 86, 90 };
    s.cgpa = 8.918;
 
    // 调用打印学生信息的函数
    printStudent(&s);
 
    return 0;
}  

输出

学生信息:

姓名: GeeksforGeeks
学号: S20200010234
课程: [ DSA OOPS DBMS CCN ]
分数: [ 89 78 86 90 ]
绩点: 8.918

对于一个学生(数组)

这两个详细信息将添加到旧详细信息中,以演示结构与多个参数一起使用的用法。

GFG
S20200010164
[DSA, OOPS ,DBMS, CCN]
[89,80,89,80]
8.45
gfg
Roll Number: S20200010169
Subjects: [ DSA OOPS DBMS CCN ]
Marks: [ 99 0 99 90 ]
CGPA 9.47
//C++程序展示了多个学生详情的结构
#include <bits/stdc++.h>
using namespace std;
 
//学生结构
struct student {
    string name;
    string rollno;
 
    //已注册课程(数组)
    vector<string> subjects;
 
    //每个课程的分数(数组)
    vector<int> marks;
 
    //学生的平均成绩
    float cgpa;
};
 
//打印向量的函数(在GFG中查看“打印向量元素的其他方式”)
template <typename S> void printv(const vector<S>& v)
{
    cout << "[ ";
    //循环打印向量中的所有元素
    for (auto elem : v) {
        cout << elem << " ";
    }
    cout << "]";
    cout << endl;
}
 
//打印一个学生的函数
void printStudent(student* s)
{
    cout << "学生详情:" << endl;
    cout << endl;
    cout << "姓名: " << s->name << endl;
    cout << "学号: " << s->rollno << endl;
    cout << "已注册课程:";
    printv(s->subjects);
    cout << "分数:";
    printv(s->marks);
    cout << "平均成绩: " << s->cgpa << endl;
}
 
//主函数
int main()
{
    //学生数组
    student arrayofstudents[10];
 
    //学生1
    arrayofstudents[0].name = "GeeksforGeeks";
    arrayofstudents[0].rollno = "S20200010234";
    arrayofstudents[0].subjects
        = { "DSA", "OOPS", "DBMS", "CCN" };
    arrayofstudnets[0].marks = { 89, 78, 86, 90 };
    arrayofstudnets[0].cgpa = 8.918;
 
    //学生2
    arrayofstudnets[1].name = "GFG";
    arrayofstudnets[1].rollno = "S20200010164";
    arrayofstudnets[1].subjects
        = { "DSA", "OOPS", "DBMS", "CCN" };
    arrayofstudnets[1].marks = { 89, 80, 89, 80 };
    arrayofstudnets[1].cgpa = 8.45;
 
    //学生3
    arrayofstudnets[2].name = "gfg";
    arrayofstudnets[2].rollno = "S20200010169";
    arrayofstudnets[2].subjects
        = { "DSA", "OOPS", "DBMS", "CCN" };
    arrayofstudnets[2].marks = { 99, 00, 99, 90 };
    arrayofstudnets[2].cgpa = 9.47;
 
    //循环打印每个学生的详情
    for (int i = 0; i < 3; i++) {
 
        //调用打印学生函数
        printStudent(&arrayofstudnets[i]);
    }
 
    return 0;
}  

输出

学生详情:

姓名: GeeksforGeeks
学号: S20200010234
已注册课程: [ DSA OOPS DBMS CCN ]
分数: [ 89 78 86 90 ]
平均成绩: 8.918
学生详情:

姓名: GFG
学号: S20200010164
已注册课程: [ DSA OOPS DBMS CCN ]
分数: [ 89 80 89 80 ]
平均成绩: 8.45
学生详情:

姓名: gfg
学号: S20200010169
已注册课程: [ DSA OOPS DBMS CCN ]
分数: [ 99 0 99 90 ]
平均成绩: 9.47

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例