=== 構造体とレコード型 ===
**レコード型(データ形式の話)**:複数のデータを表としてまとめたもの
addbook
name addr phone age
+------+-------+--------------+-----+
|名前 |住所 |電話 |年齢 | <-データ1個をhuman型で表してみます
+------+-------+--------------+-----+
0 |山田 |岩手県 |080-1234-5555 | 33 |
+------+-------+--------------+-----+
1 |田中 |青森県 |080-3124-2222 | 39 |
+------+-------+--------------+-----+
2 | - | - | - | - |
3 … つづく
レコード型 → C++では構造体で表す
struct 構造体名{
データ1; //データ => 型名+変数名
データ2;
データ3;
};
struct human{
std::string name; //名前
std::string addr; //住所
std::string phone; //電話番号
int age; //年齢
};
↑の宣言でhuman型が宣言され使えるようになる!
*言い方:nameはhuman型のメンバー変数です。
human型のメンバー変数nameについて。。。
\\
使い方:
struct human addrbook[100];
^^^^^^^^^^^^ ^^^^^^^^^^^^^^
↑ ↑
型名 構造体型変数名
省略形:(C++用)
human addrbook[100];
^^^^^ ^^^^^^^^^^^^^^
型名 変数名
練習問題:
①例題8-1の学生を表す構造体を宣言しなさい。
struct gakusei
{
std::string studentNo; //学生番号
std::string name; //学生氏名
int kokugo; //国語
int sugaku; //数学
int eigo; //英語
};
gakusei a,b,c;
gakusei stu[3];
stu[0].studenNo
a.studentNo
a.name
a.kokugo
a.sugaku
a.eigo
b.studentNo
b.name
b.kokugo
b.sugaku
b.eigo
c.studentNo
c.name
c.kokugo
c.sugaku
c.eigo
\\
②緯度と経度を実数値で持つ位置を表す構造体point型を宣言しなさい。
(ほかで宣言した構造体型をメンバ変数として持つ構造体)
struct point
{
float ido;//緯度
float keido;//経度
//double ido;//緯度
//double keido;//経度
};
\\
③県庁所在地名と所属都道府県名を文字列型メンバー変数で持ち、都市の位置をpoint型メンバー変数で持つcity型を宣言しなさい。
struct city
{
std::string name; //県庁所在地名
std::string pref; //所属都道府県
point position; //都市の位置
};
== ほかのデータ構造(data structures) ==
* 変数
* 配列
* 構造体
* 文字列
* リスト構造
* スタック、キュー
* グラフ
* 木
* 集合、ペア
* 連想配列
* __**クラス(class)**__