C博客作业06-结构体&文件

1.本章学习总结

1.1学习内容总结

结构体的定义

  • 一般形式为:
struct 结构名{
类型名 结构成员名1;
类型名 结构成员名2;
…
类型名 结构成员名n;
};
struct是定义结构类型的关键字,在struct之后,自行命名一个结构名,它必须是一个合法的C标识符。
例如:
struct student {
	int num;
	char name[10];
	int computer, english, math;
	double average;
};

结构体的赋值

  • 对结构变量初始化
    struct student s1={101,"zhang",78,87,85};
  • 结构变量整体赋值
    如果两个结构变量具有相同的类型,则可以将一个结构变量的值赋给另一个结构变量。
    s2.num=s1.num;
    strcpy(s2.num,s1.num);
    

结构体数组排序做法

  • 例:学生成绩排序


结构体指针用法

  • 结构指针
定义:
struct student s1={101,"zhang",78,87,85},*p;
p=&s1;
  • 结构指针访问结构成员
    (1)用*p访问结构成员
    (*p).num=101;

    (2)用指向运算符->访问指针指向的结构成员
    p->num=101;

  • 结构指针作为函数参数

    其中第一个形参就是结构指针,调用语句:pos= update_score(students, n,num,course,score);对应的实参是结构数组名students。

共用体、枚举类型做法

  • 共用体定义:
union 共用体名{
    成员列表
};
  • 结构体和共用体的区别:
    1.结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。
    2.结构体占用的内存大于等于所有成员占用的内存的总和,共用体占用的内存等于最长的成员占用的内存。
    3.共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。
  • 枚举类型的定义:
enum
 
枚举名
{
    
枚举值表
};
例如:
enum typeName{
 valueName1,
 valueName2,
 valueName3,
 ...... 
};
  • 注意:
    1.枚举列表中的valueName1,valueName2,valueName3这些标识符的作用范围是全局的,不能再定义与它们名字相同的变量。
    2.valueName1,valueName2,valueName3等都是常量,不能对它们赋值,只能将它们的值赋给其他的变量。

1.2本章学习体会

  • 本章学习结构体及文件,内容多而且比较难理解,书上的知识点也没有完全理解,写的时候比较生疏,要不停的翻书。
  • 这次代码量很少,400行左右。

2.综合作业--“我爱成语”

2.1文件介绍

头文件idiom.h

  • 用于定义结构体USER和IDI以及所有函数声明。

函数实现文件介绍

文件1 idiom.cpp

  • 用于ListMenu()函数,LoginUser()函数和ArrayLiat()函数的实现




文件2 idiomMain.cpp

  • 主要做打开文件和函数调用,数据输入输出处理。

文件3 Login.cpp

  • 用于GetChioce()函数和CheckUserValid()函数的实现


运行结果


原文地址:https://www.cnblogs.com/4-Real/p/12008518.html