定义结构体:struct 结构名
{
类型名 结构成员名1;
类型名 结构成员名2;
.....
};
结构体赋值:定义结构变量,struct 结构名 变量名如s;
s.结构成员名=所要赋的值,如s.number=1;
选择排序法:
for(i=0;i<n-1;i++)
{
index=i;
for(j=i+1;j<n;j++)
{
比较大小后index=j;
}
交换数组元素
}
冒泡排序法:
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
比较大小
}
交换数组元素
}
定义结构体指针:struct 结构名 *p;
让p指向结构体,如p=&student;
(*p).number或p->number便可用结构体指针间接访问结构体里的成员
定义:union 共用体类型名
{
成员列表
};
union 共用体类型名 变量名;
共用体占用的内存等于最长的成员占用的内存。
共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。
枚举类型使用:
enum 枚举名{枚举值1,枚举值2,...}变量列表;
枚举变量的值只能是定义时列出的枚举值之一,如:
enum a{1,2,3}b,c;则b、c只能是1,2,3中的其中一个
- struct与结构名共同组成结构类型名
- 定义嵌套结构类型时,必须先定义成员结构类型,再定义主结构类型
- 只有相同的结构类型变量才可以直接赋值
- 定义文件指针:FILE *fp,FILE是文件类型定义符,fp是文件类型的指针变量
- 利用文件指针编程时不能像普通指针那样写fp++或*fp
- exit(0)可以关闭所有打开的文件,并终止程序
- 打开文件:fopen("文件名","文件打开方式");
关闭文件:fclose(文件指针);
两周代码量800行左右,达到要求
结构体或函数 | 功能 |
---|---|
结构体sysuer | 储存用户输入的用户名和密码 |
函数声明checkUserValid() | 验证用户输入信息 |
函数声明menuList() | 输出菜单 |
函数声明userChoice() | 获得用户选择 |
结构体或函数 | 功能 |
---|---|
结构体IDIOM | 储存成语及其意思 |
函数声明getIdiom() | 将文件内容放入结构体数组中 |
函数声明attainIdiom | 查看文件中的成语 |
函数声明attainIdiom_and_mean | 查看文件中的成语及其意思 |
函数声明getMean() | 输入成语得到解释 |
函数声明putIdiom(FILE*fp) | 往文件中添加及其意思 |
思路:
{
先验证用户是否输入正确;
输入正确则flag=1;
读取文件内容;
number!=0则读取成功;
执行功能;
fclose关闭文件;
}
功能:检查用户输入的信息是否正确
功能:提供菜单
功能:将文件中的成语及其意思存放到主函数的结构体数组中
功能:1.查看全部成语。2.查看全部成语及其意思。3.输入指定成语得到其解释
功能:往文件中写入任意数量的成语及其意思
问题:如何往文件中写内容
解决方法:文件打开方式为a+,用fprintf()写入
1.掌握熟悉了多文件编程的方法
2.刚开始时不熟悉多文件编程,把代码弄得感觉很乱,函数太多也会乱
3.刚开始一个文件只放一个函数,后面发现功能相似的函数放在同一个文件比较好
原文:https://www.cnblogs.com/sym2446/p/12002773.html