版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章第九章 结构体结构体9.1 9.1 派生类数据类型派生类数据类型格式:格式:TYPETYPE,ACCESS: ACCESS: 派生类型名字派生类型名字 分量表分量表 END TYPE END TYPE 派生类名派生类名 ACCESSACCESS:访问方式,:访问方式,PRIVATEPRIVATE(私有的)(私有的) PUBLICPUBLIC(公共的)(公共的) 默认方式为默认方式为 PUBLIC PUBLIC 。分量表分量表:该类型中的成员项,每项要有类型说明。该类型中的成员项,每项要有类型说明。P177 例:例:TYPE STUDENT CHARACTER (15) NAME INTE
2、GER NUM LOGICAL SEX CHARACTER (30) ADDRESSEND TYPE 9.2 9.2 结构体变量的定义与引用结构体变量的定义与引用一、结构体类型变量的定义一、结构体类型变量的定义格式:格式: TYPE(派生类型名)(派生类型名): 结构体变量名结构体变量名例:例:TYPE (STUDENT): S1,S2 结构体类型可以嵌套定义,即结构体类型的成员也可结构体类型可以嵌套定义,即结构体类型的成员也可以是另一个结构体类型的变量。以是另一个结构体类型的变量。P177 P177 例:例:TYPE STUDENTRECORD CHARACTER (15) NAME INT
3、EGER NUM LOGICAL SEX CHARACTER (30) ADDRESSEND TYPETYPE STUDENTTOGETHER TYPE (STUDENTRECORD): STUDENT REAL MATH REAL ENGLISH REAL CHINESEEND TYPE若定义若定义 STUDENTTOGETHER STUDENTTOGETHER 结构体变量结构体变量 S S :TYPE (STUDENTTOGETHER): S则结构体变量则结构体变量 S 包含:三个实型变量包含:三个实型变量MATH、ENGLISH、CHINESE和一个结构体变量和一个结构体变量STUDEN
4、T,而而STUDENT又包含又包含NAME、NUM、SEX、ADDRESS四个成员。四个成员。二、结构体成员的引用二、结构体成员的引用结构体名结构体名 % 成员名成员名结构体名结构体名 . 成员名成员名如:如:S1. NAME、S1.NUM S2%NAME、S2%NUM S%STUDENT% NUM9.3 9.3 结构体变量的赋值结构体变量的赋值一、用赋值语句给结构体成员赋值一、用赋值语句给结构体成员赋值P178 P178 例例9.1 9.1 职工工资表包含的数据有:姓名、性别、家庭住址、职工工资表包含的数据有:姓名、性别、家庭住址、工资等,现计算三个职工工资的平均值。工资等,现计算三个职工工
5、资的平均值。TYPE CLERK CHARACTER (15) NAME LOGICAL SEX CHARACTER (30) ADDRESS INTEGER SALEND TYPETYPE (CLERK): S1, S2, S3 S1.SAL=800 S1.SAL=800 !也可用输入语句!也可用输入语句 READREAD* *, S1.SAL, S1.SAL S2%SAL=900 S2%SAL=900 S3.SAL=700 S3.SAL=700 AVER=(S1%SAL+S2.SAL+S3.SAL)/3 PRINT*, 三个职工的平均工资为:三个职工的平均工资为:, AVEREND二、定义
6、变量的同时赋值二、定义变量的同时赋值格式:格式:TYPE (派生数据类型名派生数据类型名) : 结构体变量名结构体变量名 =派生数据类型名(成员初值表)派生数据类型名(成员初值表)例如:例如:TYPE TEACHER CHARACTER (12) NAME LOGICAL SEXEND TYPE TYPE(TEACHER):S1=TEACHER (“WU,.TRUE.), S2, S3赋值时,所给的值类型和个数应与结构体变量定义中各成员的赋值时,所给的值类型和个数应与结构体变量定义中各成员的类型与个数保持一致。类型与个数保持一致。可以将一个结构体变量的值直接赋给另外一个结构体变量,可以将一个结
7、构体变量的值直接赋给另外一个结构体变量,P180 例:例:INTEGER STYPE STUDENTRECORD CHARACTER (15) NAME INTEGER NUM LOGICAL SEX CHARACTER (30) ADDRESSEND TYPE TYPE (STUDENTRECORD):S1, S2S1=STUDENTRECORD(ABCD,20,.TRUE.,CHANGSHA)S2=S1S=S2%NUM+S1%NUMPRINT*, SEND9.4 9.4 结构体数组结构体数组一般格式:一般格式:TYPE (派生类型名派生类型名), DIMENSION(维数说明符维数说明符,
8、 ) : 结构体数组名结构体数组名 例:例:TYPE(STUDENT), DIMENSION(100):STUP183 例:职工信息:职工号、职工姓名、年龄、工资,职工例:职工信息:职工号、职工姓名、年龄、工资,职工150人,存储人,存储信息后统计工资低于信息后统计工资低于500元的职工数,并输出相关信息。元的职工数,并输出相关信息。program clerkrecordimplicit noneinteger : k, itype clerk ! 定义结构体类型定义结构体类型 integer num character(15) name real salend type clerk type
9、 (clerk), dimension(150): cl ! 定义结构体数组定义结构体数组k=0Print *, 输入职工号输入职工号num: do i=1, 150 read *, cl(i).num end doprint*, 输入职工姓名输入职工姓名 name do i=1, 150 read *, cl(i).nameend doprint*, 输入职工工资输入职工工资 sal do i=1, 150 read *, cl(i).salend dodo i=1, 150 if(cl(i).sal500) then ! 打印打印 工资工资STRE (J)%MARK)THEN TEMP=S
10、TRE (I) ;STRE (I)=STRE (J);STRE (J)=TEMP ENDIF END DO END DOEND ! 插入算法插入算法SUBROUTINE SORT_INSERT(STRE, NEW, N) type : student character(15) : name integer : MARK integer : grade end type student type (student):stre(N+1) ! 说明数组说明数组 , N+1=11 type (student):new Integer i, n, j i=1 do while (stre(i)% MA
11、RK new% MARK. and. i=N) i=i+1 end do do j=N, i, -1 stre(j+1)=stre(j) end do stre(i)=newend! 顺序查找顺序查找SUBROUTINE SORT_SEARCH(STRE, N, KEY) TYPE STUDENT CHARACTER(15) NAME INTEGER MARK INTEGER GRADE END TYPE STUDENT TYPE (STUDENT):STRE (N) INTEGER I, N, KEY I=1 DO WHILE(STRE (I)%MARK.NE.KEY).AND.(I.LE.
12、N) I=I+1 ENDDO IF(I=N)THEN PRINT*,“找到,姓名找到,姓名:”, STRE (I)%NAME ,成绩成绩:,STRE (I)%GRADE ELSE PRINT*,查无此人查无此人 ENDIFEND! 删除算法删除算法SUBROUTINE DEL(STRE, DEKEY, N) TYPE STUDENT CHARACTER(15) NAME INTEGER MARK INTEGER GRADE END TYPE STUDENT TYPE (STUDENT), DIMENSION(N):STRE TYPE (STUDENT):TEMP INTEGER I, N, J
13、, DEKEY I=1 DO WHILE(STRE(I)%MARK .NE. DEKEY) .AND. (I. LE. N) I=I+1 ENDDO IF(I .GT. N)THEN PRINT*, 学生记录没找到,无法删除!学生记录没找到,无法删除! ELSE TEMP=STRE(I) !TEMP为一个临时记录,用于存放待删记录为一个临时记录,用于存放待删记录 DO J=I, N-1 STRE (J)=STRE(J+1) ENDDO PRINT*,删除的记录为:删除的记录为:,TEMP%NAME,TEMP%MARK,TEMP%GRADE ENDIFENDPROGRAM STUDENT_RECORDS !主程序!主程序TYPE STUDENT CHARACTER (15) NAME INTEGER MARK INTEGER GRADEEND TYPE STUDENTINTEGER, PARAMETER : STNUM= 5 ! 代表要处理的学生数代表要处理的学生数TYPE (STUDENT), DIMENSION(STNUM+1):STRETYPE (STUDENT):NEW1PRINT*, 请输入学生有关的信息请输入学生有关的信息DO I=1, STNUM READ*,STRE (I)%NAME, STRE (I)%MARK
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 超市商品盘点奖惩制度
- 九小场所安全责任制度
- 学生奖惩制度明细模板
- 中药材种植园区安全生产教育培训制度
- 小学高年级奖惩制度细则
- 襄州企业奖惩制度
- 小学生语文班规奖惩制度
- 汽车销售薪酬奖惩制度
- 供电部年终奖奖惩制度
- 内镜中心工人奖惩制度
- 2026年合肥经济技术职业学院单招综合素质考试题库附答案详解(b卷)
- 2026四川省职业技能鉴定指导中心招聘编外人员4人考试备考试题及答案解析
- 2026年黄河水利职业技术学院单招职业技能考试模拟测试卷含答案
- 2026湖南省卫生健康委直属事业单位招聘185人考试参考题库及答案解析
- 冶金安全生产责任制度
- 地下水污染健康风险评估工作指南(试行)
- 扁平化指挥调度系统解决方案
- 商品混凝土培训课件
- 儿科护理特点与注意事项
- 2026年盐城工业职业技术学院单招职业技能考试题库及参考答案详解一套
- 2025至2030中国聚焦离子束系统行业运营态势与投资前景调查研究报告
评论
0/150
提交评论