《最新c c++语言程序设计(西电版第6章 结构体、共用体与枚举(共75张ppt课件).pptx》由会员分享,可在线阅读,更多相关《最新c c++语言程序设计(西电版第6章 结构体、共用体与枚举(共75张ppt课件).pptx(75页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1第六章第六章 结构结构(jigu)(jigu)体、共用体和枚举体、共用体和枚举第一页,共七十五页。26.1 结构体类型的声明结构体类型的声明 6.2 结构体变量结构体变量(binling)的定义、引用和初始的定义、引用和初始化化 6.3 结构体数组结构体数组6.4 结构体与指针结构体与指针6.5 结构体与函数结构体与函数6.6 共用体共用体6.7 枚举类型枚举类型6.8 类型定义语句类型定义语句typedef6.9 小结小结第二页,共七十五页。3 一个学生的信息有一个学生的信息有学号学号、姓名姓名、性别性别(xngbi)(xngbi)、年年龄龄、住址住址、成绩成绩等。等。 一本图书的信息有一
2、本图书的信息有分类编号分类编号、书名书名、作者作者、出版出版社社、出版日期出版日期、价格价格、库存量库存量等。等。 如何描述这些类型不同的相关数据?如何描述这些类型不同的相关数据? 信息管理信息管理结构体结构体一种构造数据类型一种构造数据类型 结构体结构体由若干不同类型由若干不同类型(lixng)(lixng)的数据项组成,的数据项组成, 构成结构体的各个数据项称为构成结构体的各个数据项称为结构体成员。结构体成员。 第三页,共七十五页。4 lstructstruct为关键字,不能为关键字,不能省略;省略;l结构体名结构体名是该结构体类是该结构体类型型(lixng)(lixng)的名称,命名应的
3、名称,命名应符合标识符的定义要求。符合标识符的定义要求。 成员成员可以是任何类型的变量,包括基本数据类型和构可以是任何类型的变量,包括基本数据类型和构造数据类型,如整型、浮点型和字符型,数组和指针等,造数据类型,如整型、浮点型和字符型,数组和指针等,也可以是另一个结构体类型的结构体变量或自身结构体的也可以是另一个结构体类型的结构体变量或自身结构体的指针,还可以是共用体变量。指针,还可以是共用体变量。struct 结构体名结构体名 数据类型数据类型1 成员名成员名1; 数据类型数据类型2 成员名成员名2; 数据类型数据类型n 成员名成员名n; ;第四页,共七十五页。5例例6.16.1一个学生的基
4、本信息由学号、姓名、性别、一个学生的基本信息由学号、姓名、性别、成绩组成,声明相应成绩组成,声明相应(xingyng)(xingyng)的结构体类型。的结构体类型。struct student int num ; /* 学号是整型学号是整型 */ char name20; /* 姓名是字符数组类型姓名是字符数组类型 */ char sex; /* 性别是字符型性别是字符型 */ float score; /* 成绩是实型成绩是实型*/ ;第五页,共七十五页。6例如图书类型的定义:例如图书类型的定义: struct bookcard char num10; /*图书分类编号是字符数组类型图书分类
5、编号是字符数组类型*/ char name30; /*书名是字符数组类型书名是字符数组类型*/ char author30; /*作者作者(zuzh)是字符数组类型是字符数组类型*/ char publisher60; /*出版社是字符数组类型出版社是字符数组类型*/ float price; /*价格是单精度实型价格是单精度实型*/ int n; /*库存量是整型库存量是整型*/ ;第六页,共七十五页。日期,声明学生信息结构体类型。日期,声明学生信息结构体类型。struct date int year; int month; int day; ;7struct student int num
6、;char name20;char sex; struct date birthday; /* birthday成员为成员为date 结构结构(jigu)体类型体类型*/float score;第七页,共七十五页。说明:说明:struct date int year,month,day;8第八页,共七十五页。int x,y; /*基本数据类型变量基本数据类型变量*/struct point int x, y; /*结构体结构体point中的一个成员中的一个成员 */;9第九页,共七十五页。 struct invalid int n; struct invalid iv; ;10struct i
7、nvalid int n; struct invalid *iv; ;第十页,共七十五页。11struct student stu1,stu2,*p,stu10; struct 结构体名结构体名 若干成员说明若干成员说明; struct 结构体名结构体名 结构体变量名表结构体变量名表;第十一页,共七十五页。12#define STU struct studentstruct student int num; char name20; char sex; float score; ;STU stu1,stu2; 第十二页,共七十五页。13例如例如(lr)(lr):struct student i
8、nt num; char name20; char sex; float score; stu1,stu2;struct 结构体名结构体名 若干成员说明若干成员说明 结构体变量名表结构体变量名表;第十三页,共七十五页。14例如例如(lr)(lr):struct char name20 ; char sex; int num; float score; stu1,stu2;struct 若干成员说明若干成员说明 结构体变量名表结构体变量名表;第十四页,共七十五页。15 l结构体变量中的成员可以单独使用,它的作用结构体变量中的成员可以单独使用,它的作用与地位与地位(dwi)相当于普通变量。相当于普
9、通变量。 第十五页,共七十五页。16 结构体变量结构体变量a的各成员可分别表示为的各成员可分别表示为a.num、a.name、a.sex、a.birthday、a.score struct date int year, month, day; struct student int num;char name20, sex; struct date birthday; float score; a;a.birthday.yeara.birthday.montha.birthday.day 结构体变量名结构体变量名. .成员名成员名第十六页,共七十五页。17 printf(%d,%s,%c,%f,
10、 stu1);第十七页,共七十五页。18第十八页,共七十五页。19【例例6.3】结构体变量的初始化、赋值、输入和输出结构体变量的初始化、赋值、输入和输出(shch) 。 #include stdio.hstruct student /*定义结构体定义结构体*/ int num; char *name; char sex; float score; stu1, stu2,stu3=102,Zhang ping,M,78.5; 如果初值个数少于结构体成员个数,如果初值个数少于结构体成员个数,则将无初值对应的成员赋以则将无初值对应的成员赋以0 0值。值。 如果初值个数多于结构体成员个数,如果初值个数
11、多于结构体成员个数,则编译出错。则编译出错。 struct struct 结构体名结构体名 结构体变量结构体变量=初始化列表初始化列表 ;第十九页,共七十五页。20void main()stu1.num=102; stu1.name=Zhang ping;printf(input sex and scoren);scanf(%c%f,&stu1.sex,&stu1.score); printf(stu1:Number=%dnName=%sn,stu1.num,stu1.name); printf(Sex=%cnScore=%.2fn,stu1.sex,stu1.score); stu2=stu
12、3; printf(stu2:Number=%dnName=%sn,stu2.num,stu2.name); printf(Sex=%cnScore=%.2fn,stu2.sex,stu2.score); 第二十页,共七十五页。21struct student int num; char name20; char sex; float score; stu3; 第二十一页,共七十五页。22for(i=0;i3;i+) scanf(%d,&stui.num); fflush(stdin); gets(stui.name); scanf(%c%f,&stui.sex,&stui.score); 结
13、构结构(jigu)体数组名体数组名下标下标.成员名成员名第二十二页,共七十五页。23struct student int num; char *name; char sex; float score; stu3= 101,Zhao lei,M,45,102,Sun hui,M,62.5,103,Li fang,F,92.5stu0stu1stu2101Zhao leiM45102Sun huiM62.5103Li fangF92.5第二十三页,共七十五页。24 元素的个数可以省略,根据赋初值时结构体元素的个数可以省略,根据赋初值时结构体常量的个数确定数组元素的个数常量的个数确定数组元素的个数
14、。 内层的大括号只是为了阅读程序的方便,内层的大括号只是为了阅读程序的方便,可以省略。可以省略。 结构体数组名是结构体数组存储的首地址,结构体数组名是结构体数组存储的首地址,可以通过数组名利用可以通过数组名利用(lyng)(lyng)指针法或下标法访问数指针法或下标法访问数组元素。组元素。第二十四页,共七十五页。25#include stdio.hstruct student int num; char name15; int score3; stu=1,David,80,78,92,2,Lily,90,84,89,3,Alice,79,78,96;第二十五页,共七十五页。26void mai
15、n( ) int i,j,number; printf(input students number:); scanf(%d,&number); /*输入学生的编号输入学生的编号(bin ho)*/ for(i=0;i3;i+) /*查询学生信息查询学生信息*/ if(number=stui.num) break; printf(name=%sn ,stui.name); for(j=0;jyear p-month p-day“-”是指向结构体成员运是指向结构体成员运算符,优先级为一级算符,优先级为一级 p=&d.year(*结构体指针变量结构体指针变量).成员名成员名 或:或:结构体指针变量结
16、构体指针变量-成员名成员名 第三十页,共七十五页。31pstu-num:得到:得到pstu指向的结构体变量中的指向的结构体变量中的成员变量成员变量num的值。的值。pstu-num+:得到:得到pstu指向的结构体变量中的指向的结构体变量中的成员变量成员变量num的值,先使用,后使的值,先使用,后使num加加1。+pstu-num:得到:得到pstu指向的结构体变量中指向的结构体变量中的成员变量的成员变量num的值,使的值,使num先加先加1,再使用。,再使用。第三十一页,共七十五页。32指向结构体变量的指针指向结构体变量的指针(zhzhn)使用使用 #include stdio.hstruc
17、t student int num; char *name; char sex; float score; stu1=102,Zhang ping,M,78.5,*pstu; 第三十二页,共七十五页。33void main() pstu=&stu1; printf(Number=%dnName=%sn,stu1.num,stu1.name); printf(Sex=%cnScore=%fnn,stu1.sex,stu1.score); printf(Number=%dnName=%sn,(*pstu).num,(*pstu).name); printf(Sex=%cnScore=%fnn,(*
18、pstu).sex,(*pstu).score); printf(Number=%dnName=%sn,pstu-num,pstu-name); printf(Sex=%cnScore=%fnn,pstu-sex,pstu-score); 第三十三页,共七十五页。34 l定义结构体数组的指针和定义其他数组的指针的方法是定义结构体数组的指针和定义其他数组的指针的方法是一样的一样的 第三十四页,共七十五页。35 struct list int i; char name4; float w; tab4=1,H,1.008,2,He,4.0026, 3,Li,6.941,4,Be,9.01218;第三
19、十五页,共七十五页。2022-7-336main( ) struct list *p,tab4; p r i n t f ( N o t N a m e t A t o m i c Weightn); for (p=tab; pi, p-name, p-w); ppppp1 H 1.0082 He 4.00263 Li 6.9414 Be 9.01218第三十六页,共七十五页。37 #include stdio.h struct student int num; char *name; char sex; float score; stu3= 101,Zhao lei,M,45,102,Sun
20、 hui,M,62.5,103,Li fang,F,92.5;第三十七页,共七十五页。38第三十八页,共七十五页。39第三十九页,共七十五页。40 struct code int i; char c; a =100,A,200,B, 300,C,400,D;第四十页,共七十五页。41main( ) struct code *p=a; printf(%dt,+p-i); printf(%ct,(+p)-c); printf(%dt,(p+)-i); printf(%ct,+p-c); printf(%dt,p-i+); printf(%dn,p-i); p101301101B200D300301
21、第四十一页,共七十五页。42形参形参定义为定义为结构体变量结构体变量。函数调用时,。函数调用时,可可将将主调函数的主调函数的结构体类型结构体类型实参实参传递给被调函数的传递给被调函数的形参形参。 如果如果将函数定义为将函数定义为结构体类型函数结构体类型函数,可,可利用利用returnreturn语语句将一个结构体数据结果返回到主调函数句将一个结构体数据结果返回到主调函数中中。第四十二页,共七十五页。43形参形参定义为定义为指向结构体类型的指向结构体类型的指针指针变量变量,可可将主调函将主调函数的数的结构体指针结构体指针传递给被调函数的传递给被调函数的形参形参变量变量,通过指,通过指针形参的指向
22、域的扩展,针形参的指向域的扩展,操作操作主调函数中主调函数中结构体变量及其结构体变量及其成员成员。 l方法三:利用方法三:利用全局结构体变量全局结构体变量传递结传递结第四十三页,共七十五页。44【例【例6.7】在在student结构体类型中增加结构体类型中增加(zngji)一个成员一个成员rank,如 果 成 绩如 果 成 绩s c o r e大 于 或 等 于大 于 或 等 于6 0,r a n k的 值 为的 值 为“SUCCESS”,否则,否则rank的值为的值为“FAIL” struct student int num; char *name; char sex; float scor
23、e; char *rank; ;第四十四页,共七十五页。45第四十五页,共七十五页。46 第四十六页,共七十五页。47 #include stdio.hstruct student int num; char *name; char sex; float score; ;第四十七页,共七十五页。48 struct student fun(struct student *pstud,int n) struct student *p,*p_max,*p_end; int j; float max=0; p=pstud; p_max=p; p_end=p+n; for ( ;pscoremax) m
24、ax=p-score; p_max=p; return (*p_max);第四十八页,共七十五页。49 void main () int i,j; struct student pp,stu= 101,Zhao lei,M,45,102,Sun hui,M,62.5, 103,Lifang,F,92.5,104,Wang hua,F,89.5; pp=fun(stu,4); printf (%d %-10s %3c %5.1fn,pp.num, pp.name,pp.sex,pp.score);第四十九页,共七十五页。50共享一段公共存储空间共享一段公共存储空间。 共用体类型变量共用体类型变量
25、所占内存空间所占内存空间不是各个不是各个(gg)成员所需成员所需存储空间字节数的总和,而是共用体成员中存储空间存储空间字节数的总和,而是共用体成员中存储空间最大的成员所要求的字节数最大的成员所要求的字节数。由于共享的特性,由于共享的特性,只有最新存储的只有最新存储的数据是有效的。数据是有效的。第五十页,共七十五页。51lunionunion为关键字;为关键字;l共用体名共用体名是用户定义的是用户定义的类型标识。类型标识。l 中是组成该共用体的中是组成该共用体的成员。成员的成员。成员的数据类型数据类型可以是可以是C C语言所允许的任语言所允许的任何数据类型。何数据类型。 union union
26、共用体名共用体名 数据类型数据类型1 成员名成员名1; 数据类型数据类型2 成员名成员名2; 数据类型数据类型n 成员名成员名n; ;第五十一页,共七十五页。52例如例如(lr)(lr): union data int stud; char teach 10; 声明了一个声明了一个union dataunion data共用体类型,共用体类共用体类型,共用体类型定义不分配内存空间,只是说明此类型数据的组型定义不分配内存空间,只是说明此类型数据的组成情况。成情况。 第五十二页,共七十五页。531、先定义、先定义(dngy)共用体类型,再定义共用体类型,再定义(dngy)共用体类型变量共用体类型变
27、量union 共用体名共用体名 变量名表变量名表;第五十三页,共七十五页。542、在定义共用体类型、在定义共用体类型(lixng)的同时定义变量的同时定义变量例如:例如:union union 共用体名共用体名 变量名表变量名表;第五十四页,共七十五页。553、直接定义共用、直接定义共用(n yn)体类型变量体类型变量 例如:例如:unionunion变量名表变量名表;第五十五页,共七十五页。56例如例如(lr):用共用体变量名的引用形式:用共用体变量名的引用形式: 用共用体指针变量的引用形式:用共用体指针变量的引用形式:共用体变量名共用体变量名.成员名成员名指向共用体变量的指针名指向共用体变
28、量的指针名-成员名成员名第五十六页,共七十五页。57 共用体类型变量在定义时只能对第一共用体类型变量在定义时只能对第一个成员进行赋初值。个成员进行赋初值。 由于第一个成员是字符型,用一个字由于第一个成员是字符型,用一个字节,所以对于初值节,所以对于初值0 0 x9741x9741仅能接受仅能接受0 0 x41x41,初值的高字节被截去。初值的高字节被截去。 1. A 41A 412. a 61a 61对对u2u2成员的引用成员的引用是无意义的是无意义的第五十七页,共七十五页。58(2)(2)不允许对共用体变量名作赋值或其他操作,也不不允许对共用体变量名作赋值或其他操作,也不能企图引用变量名来得
29、到一个值。能企图引用变量名来得到一个值。 (3) (3) 共用体变量的地址和它的各个成员变量的地址相同共用体变量的地址和它的各个成员变量的地址相同, , 都是同一个地址。都是同一个地址。(4) (4) 一个共用体型的变量可以用来存放几种不同类型的一个共用体型的变量可以用来存放几种不同类型的成员变量,但无法同时成员变量,但无法同时(tngsh)(tngsh)存放几种变量存放几种变量 ,即每一时,即每一时刻只有一个变量在起作用。刻只有一个变量在起作用。 第五十八页,共七十五页。59(5) (5) 共用体变量不能作函数参数,函数的返回值也不能共用体变量不能作函数参数,函数的返回值也不能是共用体类型是
30、共用体类型(lixng)(lixng) 。(6) (6) 共用体变量可以出现在结构体类型的定义中,也可共用体变量可以出现在结构体类型的定义中,也可以定义共用体数组。另外,结构体变量也可以出现在共以定义共用体数组。另外,结构体变量也可以出现在共用体类型的定义中。用体类型的定义中。第五十九页,共七十五页。60 所谓所谓“枚举枚举”,是指将变量的值一一列举出来。或者,是指将变量的值一一列举出来。或者说,枚举是若干个具有名称的常量的有序集合。说,枚举是若干个具有名称的常量的有序集合。 枚举类型给出一个数目固定的若干有序的名称表,称枚举类型给出一个数目固定的若干有序的名称表,称为为枚举表枚举表。枚举表中
31、的每个数据项称为。枚举表中的每个数据项称为枚举符枚举符。lenumenumenum 枚举名枚举名 枚举常量取值表枚举常量取值表 ;第六十页,共七十五页。61 enum weekday Sun, Mon, Tue, Wed, Thu, Fri, Sat ; enum color1 blue, green, red ; enum flag false, true ;第六十一页,共七十五页。62例如例如(lr)(lr): enum flag fg; enum color1 c1; enum color2 blank,brown,yellow,white c2; enum lightblue,ligh
32、tgreen,lightred c3;枚举类型变量定义的三种形式:枚举类型变量定义的三种形式: enum 枚举名枚举名 枚举变量名表枚举变量名表; ; enum 枚举名枚举名 枚举常量取值表枚举常量取值表 枚举变量表枚举变量表; ; enum 枚举常量取值表枚举常量取值表 枚举变量表枚举变量表; ;第六十二页,共七十五页。63enum weekday Sun, Mon, Tue, Wed, Thu, Fri, Sat ;隐式定义:隐式定义:0123456 在枚举类型中,每个在枚举类型中,每个枚举常量枚举常量都代表一个整型值。在都代表一个整型值。在定义枚举类型的同时可隐式或显式地定义枚举类型的同
33、时可隐式或显式地定义枚举常量所代定义枚举常量所代表的值表的值。第六十三页,共七十五页。64例如例如(lr)(lr):显式定义:显式定义: 在定义类型的同时指定枚举常量的值,其中如在定义类型的同时指定枚举常量的值,其中如有未指定值的枚举常量,则根据前面的枚举常量的有未指定值的枚举常量,则根据前面的枚举常量的值依次递增值依次递增1 1。 2345第六十四页,共七十五页。65(1 ) 赋值运算赋值运算 枚举枚举(mi j)(mi j)变量的值只能取枚举变量的值只能取枚举(mi j)(mi j)类型的枚举类型的枚举(mi j)(mi j)表中表中的枚举的枚举(mi j)(mi j)符,例如:符,例如:
34、 enum day sun,mon,tue,wed,thu,fri,sat d1,d2; d1=sat; d2=d1;(2)枚举符可以进行加(减)整型数运算)枚举符可以进行加(减)整型数运算 例如:例如:d1=sun+2; d2=sat-3;(3)枚举元素还可以用来作判断比较)枚举元素还可以用来作判断比较 if (todaytue) ;第六十五页,共七十五页。66(4 )枚举变量)枚举变量(binling)可以作循环变量可以作循环变量(binling) 例如:例如: for(today=sun;today=sat;today+) printf(%d,today);(5)枚举变量的输入输出操作)
35、枚举变量的输入输出操作 枚举变量只能通过赋值获得值,而不能通过枚举变量只能通过赋值获得值,而不能通过 scanfscanf函数从键盘输入获值。函数从键盘输入获值。 枚举变量可以通过枚举变量可以通过 printfprintf函数输出其枚举符的值,函数输出其枚举符的值,即整型数值,但不能直接输出其标识符。即整型数值,但不能直接输出其标识符。 (6)枚举变量的作用域与结构体变量以及普通变量定)枚举变量的作用域与结构体变量以及普通变量定义的作用域类似。义的作用域类似。 第六十六页,共七十五页。67【例例6.106.10】 顺序顺序(shnx)(shnx)输出输出5 5种颜色名。种颜色名。#includ
36、e void main() enum color red,yellow,blue,white,black; enum color c; for(c=red;c=black;c+) switch(c) case red: printf(red);break; case yellow: printf(yellow);break; case blue: printf(blue);break; case white: printf(white);break; case black: printf(black);break; 第六十七页,共七十五页。68为类型名定义别名的一般为类型名定义别名的一般(yb
37、n)形式形式:ltypedeftypedef是关键字;是关键字;l类型名类型名可以是基本类型、构造类型、指针类型或可以是基本类型、构造类型、指针类型或自定义类型名;自定义类型名; l新类型名新类型名是自定义的类型名。是自定义的类型名。typedef 原类型名原类型名 新类型名新类型名第六十八页,共七十五页。69/* 定义定义COUNTER为整型类型为整型类型(lixng)名名 */* 定义定义DATE为为struct date结构体类型名结构体类型名 */新类型名与旧类型名作用相同,并且新类型名与旧类型名作用相同,并且(bngqi)可同时使用可同时使用。与与 等价。等价。与与 等价。等价。 以
38、以typedeftypedef开头,加开头,加上变量定义的形式,并上变量定义的形式,并用新类型名替代变量名。用新类型名替代变量名。 第六十九页,共七十五页。70 为基本类型命名为基本类型命名(mng mng)例如:例如: /* 相当于相当于float x,y; */ 为数组类型为数组类型(lixng)命名命名例如:例如: /* 相当于相当于char c80,d480; */第七十页,共七十五页。71 为指针为指针(zhzhn)类型命名类型命名例如:例如:/* 相当于相当于int *pp; */* 相当于相当于int (*funp)( ); */第七十一页,共七十五页。72 为结构体、共用体类型
39、为结构体、共用体类型(lixng)命名命名例如:例如:/* 相当于相当于struct node *p; */struct CHNODE *p; 第七十二页,共七十五页。73(1 1)使用类型定义会给所定义的变量带来一)使用类型定义会给所定义的变量带来一些有用的信息。些有用的信息。(2 2)使用类型定义可以使得书写简单,通)使用类型定义可以使得书写简单,通过用类型定义将一个复杂类型定义一个简单过用类型定义将一个复杂类型定义一个简单形式,给书写上带来方便。形式,给书写上带来方便。(3 3)使用类型定义语句)使用类型定义语句(yj)(yj)定义的新类型定义的新类型 ,再用来定义变量时,系统会进行类型
40、检查,这再用来定义变量时,系统会进行类型检查,这样可以增加数据的安全性。样可以增加数据的安全性。 第七十三页,共七十五页。74 本章学习了本章学习了C C语言的构造类型语言的构造类型结构结构(jigu)(jigu)体、共用体及枚举类型,以及用体、共用体及枚举类型,以及用typedeftypedef自定义类型。介绍了结构体、结构体数组和自定义类型。介绍了结构体、结构体数组和共用体的说明形式、初始化及成员的引用方共用体的说明形式、初始化及成员的引用方法;结构体或指向结构体的指针为参数或返法;结构体或指向结构体的指针为参数或返回值的函数的定义形式和调用方法;回值的函数的定义形式和调用方法;typed
41、eftypedef说明的形式、说明的形式、typedeftypedef定义类型名的用法。其定义类型名的用法。其中,构造类型是由基本类型导出的类型。基中,构造类型是由基本类型导出的类型。基本类型的数据有常量、变量之分。而构造类本类型的数据有常量、变量之分。而构造类型没有常量,只有变量。型没有常量,只有变量。 第七十四页,共七十五页。内容(nirng)总结1。结构体一种构造数据类型。例6.2 在学生基本信息中增加出生日期,声明学生信息结构体类型。(4)在用scanf语句输入结构体变量的成员时,输入表列同样要用地址。如果初值个数多于结构体成员个数,则编译出错。d, *p=&d。共用体类型变量所占内存空间不是各个成员所需。存储空间字节数的总和,而是共用体成员中存储空间。x,*p=&x。枚举变量只能(zh nn)通过赋值获得值,而不能通过 scanf函数从键盘输入获值第七十五页,共七十五页。