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.小结

还有很多功能没有完善,不过我认为大作业还是很有意义的,可以综合性地复习所学的知识。

posted @ 2019-12-15 21:38  王柏鸿  阅读(261)  评论(1编辑  收藏  举报