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