C博客06-结构体&文件
1.本章学习总结
1.1学习内容总结
1.结构体如何定义?
一般形式为:
struct 结构名{
类型名 结构成员名1;
类型名 结构成员名2;
...
类型名 结构成员名n;
};
struct是定义结构类型的关键字,在struct之后,自行命名一个结构体,它必须是一个合法的C标识符。大括号内的内容是结构体所包括的结构成员,也叫结构分量。
具体案例如课本P219:
struct student{
int num; //学号
char name[10]; //姓名
int computer,english,math; //三门课程成绩
double average; //个人平均成绩
};
2.结构体成员如何赋值?
使用结构成员操作符"."可以引用结构成员,格式为:结构变量名.结构成员们
且在C语言中,对结构变量成员的使用方法与同类型的变量完全相同。即可以如此赋值:
s1.num=101;
strcpy(s1.name,"zhang");
2.结构体数组排序做法
选择排序法(以学生成绩排名为例)
for(i=0;i<n-1;i++)
index=i;
for(j=i+1;j<n;j++)
if(studenet[j].average>students[index].average)
index=j;
temp=students[index];
students[index]=students[i];
students[i]==temp;
}
3.结构体指针怎么用
1.结构指针的定义和初始化
如:
struct student s1={101,"zhang",78,87,85},*p;
p=&s1;
第一条语句定义了struct student 类型的变量s1并初始化,另外还定义了一个结构指针变量p,第二条语句使结构指针p指向结构变量s1。
2.结构指针的使用
具体有两种形式:
(1)用p访问结构成员
如:(*p).num=101;
其中p表示的使p指向的结构变量。且(p)中的括号使不可缺少的,因为成员运算符"."的优先级高于""优先级。
(2)用指向运算符->访问指向的结构成员
如:````p->num=101;```
以上两种形式最终得到的效果是一样的。但在使用结构指针访问结构成员时,通常使用指向运算符->。
4.共用体、枚举类型做法
1.共用体的一般声明形式如下:
union 联合名
{
成员声明
成员声明
...
}变量列表;
声明联合变量:
union 联合名 变量列表:
2.定义枚举类型的一般格式如下:
enum 枚举名{枚举值1,枚举值2,...}变量列表;
声明一个枚举变量:
enum 枚举名 变量列表;
5.文件读写
fp = fopen(" ", "r+");
if (fp == NULL)
{
exit(0)
}
1.2本章学习体会
1.感觉这一章的内容很多,如果没有及时复习巩固就会遗忘。
2.这两周代码量300+,未达要求。
2.综合作业--“我爱成语”
2.1.文件介绍
头文件介绍
idiom.h
定义两个结构体,一个存储成语和意思,另一个存储用户的账号和密码。
三个函数:读取成语,登录系统,查找某个成语的意思。
2.函数实现文件介绍。
成语游戏.c
idiom.c
2.2.运行结果
1.登录界面
2.游戏界面
2.3大作业总结
1.碰到问题及解决办法
没有加getchar()之前会连续输入两个请输入要查找的成语,因为回车被get吸收了,后面发现了,加上了getchar()。
2.小结
还有很多功能没有完善,不过我认为大作业还是很有意义的,可以综合性地复习所学的知识。