【C言語】第6章第9回:構造体を活用したデータ管理例
構造体を使うことで、関連するデータをひとまとめにして管理することができます。この章では、構造体を使ったデータ管理の実践例を学びます。
0. 記事の概要
この記事を読むメリット
- データの管理能力向上:構造体を使った効率的なデータ管理方法を学べます。
- 実践的なスキル習得:複数データの一括処理や操作が可能になります。
- 応用力アップ:実際のプロジェクトで役立つ設計力が身につきます。
この記事で学べること
- 構造体を使ったデータ管理の基本
- 構造体配列と操作例
- 実践的な応用例とその解説
活用のイメージ
例えば、学生情報や商品の在庫を管理する際、構造体を使うことでデータの一括管理が容易になります。本記事を通じて、効率的なデータ管理技術を身につけましょう。
1. 構造体を使ったデータ管理の基本
1.1 単一データの管理例
#include <stdio.h>
// 商品情報を表す構造体
typedef struct {
char name[50];
float price;
int stock;
} Product;
int main() {
// 商品データの初期化
Product product = {"Laptop", 150000.0, 5};
// データの表示
printf("Product: %s\n", product.name);
printf("Price: %.2f\n", product.price);
printf("Stock: %d\n", product.stock);
return 0;
}
動作説明
- 構造体の定義:
Product
構造体を定義し、商品名、価格、在庫数をメンバーとして設定します。 - 構造体変数の初期化:
Product
型の変数product
を初期化します。 - データの表示:
printf
を使って構造体メンバーのデータを出力します。
2. 構造体配列の活用
2.1 複数データの一括管理
#include <stdio.h>
// 商品情報を表す構造体
typedef struct {
char name[50];
float price;
int stock;
} Product;
int main() {
// 商品の配列を初期化
Product products[3] = {
{"Laptop", 150000.0, 5},
{"Tablet", 50000.0, 10},
{"Smartphone", 80000.0, 7}
};
// データの表示
for (int i = 0; i < 3; i++) {
printf("Product: %s, Price: %.2f, Stock: %d\n",
products[i].name, products[i].price, products[i].stock);
}
return 0;
}
動作説明
- 構造体の定義:商品情報を管理する
Product
構造体を定義します。 - 構造体配列の初期化:
Product
型の配列products
を初期化します。 - データの表示:
for
ループを使い、各商品のデータを出力します。
3. 練習問題
以下の課題に挑戦して、構造体を活用したデータ管理を理解しましょう。
- 従業員情報(名前、役職、給与)を管理するプログラムを作成してください。
- 商品情報を配列で管理し、在庫数が少ない商品を特定するプログラムを作成してください。
- 学生情報(名前、成績)を管理し、最高得点の学生を出力するプログラムを作成してください。
4. 練習問題の解答と解説
問3の解答
#include <stdio.h>
// 学生情報を表す構造体
typedef struct {
char name[50];
int grade;
} Student;
int main() {
// 学生情報を配列で管理
Student students[3] = {
{"Alice", 85},
{"Bob", 92},
{"Charlie", 78}
};
// 最高得点の学生を特定
int maxIndex = 0;
for (int i = 1; i < 3; i++) {
if (students[i].grade > students[maxIndex].grade) {
maxIndex = i;
}
}
// 結果の表示
printf("Top Student: %s\n", students[maxIndex].name);
printf("Grade: %d\n", students[maxIndex].grade);
return 0;
}
動作説明
- 構造体の定義:学生名と成績を管理する
Student
構造体を定義します。 - 構造体配列の初期化:3人の学生情報を
Student
型の配列に格納します。 - 最高得点の学生を特定:
for
ループを使用して、配列内で最も高い成績を持つ学生を見つけます。- 最大成績を持つ学生のインデックスを
maxIndex
に格納します。
- 結果の表示:最高得点を持つ学生の名前と成績を出力します。
5. まとめ
構造体を活用することで、複雑なデータを効率的に管理できます。次回は、構造体を用いた大規模なデータ操作について学びます。