[其它考试]第4章 结构体1课时.ppt

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[其它考试]第4章 结构体1课时

第四章 结构体数据类型 ——工资管理系统之数据结构设计 任务一 学习目标 任务二 声明结构体类型 任务三 职工工资数据结构设计与结构体变 量定义 任务四 输入职工工资 任务五 计算职工工资 任务六 输出职工工资 第四章 结构体数据类型 ——工资管理系统之数据结构设计 任务一 学习目标 任务二 声明结构体类型 任务二 声明结构体类型 任务二 声明结构体类型 任务二 声明结构体类型 任务二 声明结构体类型 任务二 声明结构体类型 任务三 职工工资数据结构设计与结构体变量定义 任务四 输入职工工资 任务五 计算职工工资 任务六 输出职工工资 注意 要访问某个学生stu1的入学时间enterdate不能用stu1.enterdate的形式,因为enterdate本身是一个结构体变量。只能分别访问enterdate的成员,访问形式为:stu1.enterdate.year。 如,输入入学时间: scanf(%d,%d,%d,stu1.enterdate.month,stu1.enterdate.day,stu1.enterdate.year); /*.运算符优先级高于运算符*/ ⑶ 对结构体变量的成员可以像普通变量一样进行各种运算(其类型决定其可以进行的运算)。 例如 zhigong2.gwgz=zhigong1.gwgz; sum=zhigong1.gwgz+zhigong2.gwgz; zhigong1.gwgz++; ++zhigong1.gwgz; 由于“.”运算符的优先级最高,因此zhigong1.age++应理解为(zhigong1.age)++,而不是zhigong1.(age++)。 ⑷ 可以引用结构体变量成员的地址,也可以引用结构体变量的地址。 如 scanf(“%f”,zhigong1.gwgz); printf(%o,zhigong1); (输出变量zhigong1的首地址) 但不能用以下语句整体读入结构体变量,如: scanf(%s,%s,%f,%f,%f,%f,zhigong1); 除了在定义时指定结构体变量的初始值,还可以在程序运行时通过键盘对结构体变量赋值。 例如 对于工资管理系统中的结构体变量: struct zhigong /*声明职工工资数据结构体*/ { char gonghao[10]; /*职工工号*/ char name[10]; /*职工姓名*/ float gwgz; /*岗位工资*/ float xjgz; /*薪级工资*/ float zwjt; /*职务津贴*/ float jxgz; /*绩效工资*/ }zhigong1; printf(\t请输入职工工号:); gets(zhigong1.gonghao); printf(\t\t\t\t请输入职工姓名:); gets(zhigong1.name); printf(\n\t\t\t\t请输入该职工新的岗位工资:); scanf(%f,zhigong1.gwgz); printf(\t\t\t\t请输入该职工新的薪级工资:); scanf(%f,zhigong1.xjgz); printf(\t\t\t\t请输入该职工新的职务津贴:); scanf(%f,zhigong1.zwjt); printf(\t\t\t\t请输入该职工新的绩效工资:); scanf(%f,zhigong1.jxgz); 为输入zhigong1的工资信息,使用如下方式: 运行工资管理系统程序,在主界面选择3,按提示依次输入工号、姓名、岗位工资、薪级工资、职务津贴和绩效工资各个成员项。如图4-2所示。 如果不使用提示语句也可以用这种方式输入: scanf(%s%s%f%f%f%f,zhigong1.gonghao,zhigong1.name,zhigong1.gwgz,zhigong1.xjgz, zhigong1.zwjt,zhigong1.jxgz); 由于成员项gonghao和name是字符数组,数组名就是数组在内存的首地址,所以按%s格式输入gonghao和name时,不需要加取地址符号;而后面四个成员是float型,在scanf的地址列表里出现时应当加取地址符号。 如果用gets函数输入一个结构体变量中的字符数组成员就没有这个问题了。例如: gets(zhigong1.name); gets(zhigong1.gonghao); 结构体应用举例 【案例4-2】编写程序输入100个学生的学号、姓名和考试成绩,找出高分者和低分者。 〖分析〗 ①设计一个结构体,包含题意所需要信息; ②程序要求输入100个学生的成绩,所以需要用到循环结构,由于知道循环次数所以选用for语句; ③输入输出时要注

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档