![](https://csdnimg.cn/release/download_crawler_static/87220181/bg7.jpg)
10.1 概述/派生类型实现示例/结构体数组图示
在现实世界中遇到的问题种类繁多,涉及的数据千变万化,不但涉及5
种内部数据类型和数组类型这样的预定义类型,而且会涉及由多个不同数据
成分组成的复杂数据。如:
学生学籍管理中要处理每个学生学籍数据,学生学籍数据由学号、姓名、性别、
年龄、家庭住址、平均成绩、是否党员等数据成分组成。
商品销售管理中要处理每种商品购销数据,商品购销数据由编号、品
名、类别、单价、库存、购入日期、售出总量、利润等项组成。
职工档案管理中要处理每个职员档案数据,职员档案数据由工号、姓名、性
别、年龄、出生日期、家庭住址、工资等项组成。
汽车生产管理中要处理每个汽车自然数据,汽车自然数据由编号、名称、类
别、成本、售价、颜色、生产日期等项组成。
这类数据可用内部数据类型和数组类型实现,但难度较大,不太方便。
FORTRAN90引入派生类型和结构体可方便实现这类问题。派生类型和结
构体是现代程序设计语言普遍采用的描述复杂数据的重要手段。
派生类型和结构体是FORTRAN90重要内容,需熟练掌握。
10.1 概述
第十章 派生类型与结构体
使用派生类型和结构体处理30名学生学籍信息。
声明一个派生类型、一个结构体、一个结构体数组。
!定义一个派生数据类型student_record,描述学生学籍信息
TYPE student_record
INTEGER number
CHARACTER*8 name
CHARACTER*4 sex
INTEGER age
CHARACTER*30 address
REAL av_score
LOGICAL member
END TYPE
TYPE(student_record) student,students(30)
通过1个赋值语句生成第i个学生学籍信息。(示例)
1个数组保存所有学生学籍信息。(图示)
结构体数组元素:
1 2 i n
学号number: △ △ …… △ …… △
姓名name: △ △ …… △ …… △
性别sexe: △ △ …… △ …… △
年龄age: △ △ …… △ …… △
地址addresse: △ △ …… △ …… △
成绩av_score: △ △ …… △ …… △
入党member: △ △ …… △ …… △
第i名学生学籍信息
第7页,共37页。