文档详情

C程序设计与实践第五章(课件).ppt

发布:2017-04-20约6.59千字共34页下载文档
文本预览下载声明
C程序设计与实践;目录 第5章 结构体 5.1 概述 5.2 结构体应用实例 5.3 结构体类型的定义 5.4 结构体变量和结构体数组的定义 5.5 结构体变量的使用方法 5.6 结构体应用 5.7 本章小结;第5章 结构体 5.1 概述 数组只能保存一批类型相同的数据,但在很多场合下,会有一组类型不同的信息,例如:关于学生的一组信息,包括学生姓名(字符串)、学号(字符串)、课程成绩(实数)等,无法用数组来表示。这里可以使用C语言提供的另外一种构造数据类型来实现,就是结构体类型,也称之为结构数据类型。;5.2 结构体应用实例 例5.1 图书销售清单打印,其中图书信息包括:书名、价格、册数等。 #include stdio.h ? void main() { struct booktype { //说明结构类型struct booktype,包含三个成员 char name[100];//书名,字符串型 float price;//价格,实型 int number;//册数,整型 };;//分别定义结构体变量book1、book2、book3,并赋初值 struct booktype book1 = {”Learn C Programming”, 40.4, 20}; struct booktype book2 = {”c programming language”, 43.1, 15}; struct booktype book3 = {”History of C Programming Language ”, 37.8, 28}; //定义中间变量用于计算部分金额和总金额 float part1, part2, part3, total; ?printf(”   书名        单价  数量  金额\\n\\n”); part1 = book1.price * book1.number;//结构变量字段值的应用,计算第一类书book1的金额;printf(”%-35s%6.2f%4d%7.2f\\n”, book1.name, book1.price, book1.number, part1); part2 = book2.price * book2.number; //计算第一类书book2的金额 printf(”%-35s%6.2f%4d%7.2f\\n”, book2.name, book2.price, book2.number, part2); part3 = book3.price * book3.number; //计算第一类书book3的金额 printf(”%-35s%6.2f%4d%7.2f\\n”, book3.name, book3.price, book3.number, part3); total = part1 + part2 + part3; //计算三类书的总金额 printf(”\\ntotal %53.2f\\n”, total);;} 程序输出结果: 图5-1 例5.1程序运行结果 程序中定义了图书的信息,包括:字符数组类型的书名name、实数类型的价格price、整数类型的册数number等三个字段,涉及三种数据类型。在这个程序中,我们看到了结构类型booktype的定义(struct booktype { …};部分),结构类型booktype的结构体变量book1.book2、book3的定义并赋初值;如:(struct booktype book1={”Learn C Programming”,40.4,20};),结构体变量字段的引用如:(part1=book1.price*book1.number;)。 本程序中共有三类书的信息,制表输出每一类书的书名、单价、数量、金额,最后输出所有书的总价格。;5.3 结构体类型的定义 结构体类型是一种新的数据类型,与基本类型不同的是,结构体类型本身需要定义,而基本类型是C语言已经定义过的,不需要程序设计人员来定义。结构体类型的定义包含如下信息:结构体类型名字(可以没有)、结构体全部成员的名字及其类型,结构体的成员有时也称之为字段,它们的类型可以相同也可以不同。结构体类型定义以后,就可以使用结构体类型名字来定义该结构体类型的变量了。 结构体类型定义的一般形式: struct 结构体类型名 { 成员列表;;}; 例如结构体“图书”类型的定义如下: struct booktype { char name[100];//书名,字符数组类型 float price;//单价,实数类型 int number;//数量,整数类型 }; 结构体成员的类型可以是简单类型,可以是数组类型,还可以是其他的结构体类型,也就是说,结构体类型的定义可
显示全部
相似文档