構造体とレコード型

レコード型(データ形式の話):複数のデータを表としてまとめたもの

                 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)
  • game-engineer/classes/2021/game-programing-1/first-term/7/7-19-2.txt
  • 最終更新: 4年前
  • by root