C++で学生情報を構造体に格納する方法を解説
構造体(structure)とは、異なるデータ型の複数の項目をひとつにまとめたデータ構造のことです。さまざまな型を持つレコードを扱う複雑なデータ構造を作成する際に非常に便利で、structキーワードを使って定義します。
構造体の基本的な定義例は以下のとおりです。
struct employee {
int empID;
char name[50];
float salary;
};ここでは、学生の情報(出席番号・名前・点数・成績)を構造体に格納して表示するプログラムを紹介します。
プログラム例
#include <iostream>
using namespace std;
struct student {
int rollNo;
char name[50];
float marks;
char grade;
};
int main() {
struct student s = { 12 , "Harry" , 90 , 'A' };
cout<<"学生の情報は以下のとおりです:"<<endl;
cout<<endl;
cout<<"出席番号: "<<s.rollNo<<endl;
cout<<"名前: "<<s.name<<endl;
cout<<"点数: "<<s.marks<<endl;
cout<<"成績: "<<s.grade<<endl;
return 0;
}実行結果
学生の情報は以下のとおりです: 出席番号: 12 名前: Harry 点数: 90 成績: A
プログラムの解説
このプログラムでは、まずmain()関数の前にstudentという構造体を定義しています。この構造体には、学生の出席番号(rollNo)、名前(name)、点数(marks)、成績(grade)が含まれています。該当するコードは以下の部分です。
struct student {
int rollNo;
char name[50];
float marks;
char grade;
};次に、main()関数内でstruct student型のオブジェクト「s」を宣言し、波括弧 { } を使って各メンバーに初期値を代入しています。これにより、出席番号・名前・点数・成績の4つの値が一度に設定できます。
struct student s = { 12 , "Harry" , 90 , 'A' };最後に、coutを使って構造体の各メンバーの値を画面に出力しています。ドット演算子(.)を使うことで、オブジェクトから個々のメンバーにアクセスできる点に注目してください。
cout<<"学生の情報は以下のとおりです:"<<endl; cout<<endl; cout<<"出席番号: "<<s.rollNo<<endl; cout<<"名前: "<<s.name<<endl; cout<<"点数: "<<s.marks<<endl; cout<<"成績: "<<s.grade<<endl;
このように、構造体を使えば関連性のある複数のデータをひとつの単位として管理でき、コードの可読性や保守性も向上します。実際の開発では、学生の配列を作成して複数人のデータを一括管理したり、関数の引数として構造体を渡したりすることも可能です。
-
C++で逆ダイヤモンドパターンを出力するプログラムの作り方を解説
はじめに このチュートリアルでは、C++を使って逆ダイヤモンドパターンをコンソールに出力するプログラムについて解説します。 入力として整数 N が与えられ、高さが 2N-1 行となる逆ダイヤモンド型のパターンを表示するのが目標です。星印(*)と空白を組み合わせて、中央がくぼんだ美しい逆ダイヤモンドの形を作り上げます。 パターンの構造を理解する 逆ダイヤモンドパターンは、上半分と下半分の2つの部分に分けて考えると理解しやすくなります。 上半分: 行が下に進むごとに、左右の星(*)が1つずつ減り、中央の空白が2つずつ広がっていきます。 下半分: 上半分とは逆に、行が進むごとに星が1つずつ増え、中
-
C++で整数の各桁を拡大表示(ズーム)するプログラムの作り方
この記事では、C++を使って整数の各桁を拡大表示(ズーム)するプログラムを紹介します。ここでの「ズーム」とは、数字を「#」などの記号を使って通常より大きな形で描画することを指します。考え方自体はシンプルですが、0から9までの各数字を大きな形式で一つずつパターン化する必要があります。 ズーム表示の基本的な考え方 各数字は5行×5列のグリッドとして表現します。二重のforループでグリッド全体を走査しながら、行・列の位置関係をもとに条件分岐を行い、「#」と空白のどちらを出力するかを決めます。たとえば「0」なら外枠だけを「#」で囲み、「8」なら上下の横線と左右の縦線を組み合わせて描画するといった具合で