1.本章学习总结
1.1 学习内容总结
- 结构体如何定义
struct 结构名{
类型名 结构成员1;
类型名 结构成员2;
...
类型名 结构成员n;
};
- 成员如何赋值
第一种
struct Student st1 = {100, 'm', "Xiexiaodong"}; //第一种,定义的同时初始化,类似数组,定义后在整体赋值会出错
第二种
struct Student st2; //单独赋值
st2.score = 100;
st2.sex = 'm';
补充:对字符数组赋值可以用strcpy函数实现
- 结构体数组排序做法
struct student{ //定义一个结构体
int num;
char name[10];
int computer,english,math;
double average;
};
struct student students[50],temp; /*定义结构数组*/
for(i=0;i<n-1;i++)
{
index=i;
for(j=i+1;j<n;j++)
{
if(students[j].average>students[index].average) /*比较平均成绩*/
index=j;
}
temp=students[index]; //交换数组元素
students[index]=students[i];
students[i]=temp;
}
- 结构体指针怎么用
结构指针就是指向结构类型变量的指针
struct student s1={101,"zhang",78,87,85},*p;
p=&s1;
(1)用*p访问结构成员
(*p).num=101;
(2)用指向运算符->访问指针指向的结构成员
p->num=101;
- 结构指针作为函数参数
int update_score(struct student*p,int n,int num,int course,int score);
pos=update_score(students,n,num,course,score);
使用结构指针作为函数参数只要传递一个地址值,能够极大地提高参数传递的效率
- 共用体
union 共用体类型名
{
成员列表
};
- 枚举类型做法
enum weeks{ SUN,MON,TUE,WED,THU,FRI,SAT}; //枚举常量的值 默认 0,1 ,2......
- 文件读写,文件中数据如何读进结构体数组
while(!feof(fp)) { //从文件中读取数据到结构体
fscanf(fp,"%s%d%d%s%d%d",stu[i].name,&stu[i].num,&stu[i].sex,stu[i].class,
&stu[i].score[0],&stu[i].score[1]);
i++;
}
information.txt格式:
小红 2014003 女 一班 99 100 // 数据间用空格隔开
1.2 本章学习体会
- 学习感受:觉得很难,尤其是加入指针等知识后更容易混淆,期末考也要来了,自我感觉还是多复习前面的知识,争取前面较简单的知识掌握好。
2.综合作业--“我爱成语”
2.1.文件介绍
- 头文件介绍:idiom.h
- 函数实现文件介绍
用以实现读入成语及释义文件
idiomMain.cpp
idiom.cpp
2.2.运行结果
2.3大作业总结
1.碰到问题及解决办法
2.小结
只是简单地读入文件,其他功能还是要靠函数