(结构体将不同类型的相关信息组织在一起)
关键字struct和它后面的结构名一起组成一个新的数据类型名
struct 结构名
{
类型名 结构成员名1;
类型名 结构成员名2;
...
类型名 结构成员名n;
};(需要加分号)
若要实现结构类型的嵌套
必须先定义成员的结构类型,再定义主结构类型
struct address
{
...
};
struct student
{
struct address addr;
...
};
总体赋值
struct student s={变量1,变量2,...,变量n}
变量类型应与结构体内部成员的变量类型一致
分别赋值
s1.结构成员名1=...;
...
s1.结构成员名n=...;
定义结构数组
struct student students[50]
struct student temp//储存待交换的结构体变量
选择排序法
for i=0 to n-1 do
index=i
for j=i+1 to n do
if(students[j].结构成员名和student是[index].结构成员名相比较)
temp交换
结构变量首地址(第一个成员的地址)
(*p). 结构成员名
等价于
p->结构成员名
共用体
(允许在相同的内存位置存储不同的数据类型,但同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉)
union 共用体名
{
??? 成员声明;
? ....
??? 成员声明;
};(变量列表)
结构体和共用体的区别在于:
结构体的各个成员会占用不同的内存,互相之间没有影响;
而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。
枚举
enum 枚举名 {枚举值1,…}变量列表(枚举值用逗号隔开)
枚举值应为合法标识符或常量表达式每一个枚举值都会在前一个基础上递增1;
如果第一枚举值没有指定值,那么就是 0;
如果指定是负数,后面的值也会从负数的基础上地递增。
1、基本了解了文件的分布应用
2、但是在结构体的调用和定义指针指向结构体成员变量方面还有点混乱
3、对于文件的读写慢慢写可以琢磨出来,但是还不太熟练
4、希望在写入文件方面可以多讲一些内容
周 | 代码量 |
---|---|
15、16 | 652 |
本次作业要编写一个成语游戏。用户登录后,系统随机出若干个成语,如果答对则得分。用户得分写入成绩文件。系统能对用户成绩排名
主要功能:
登陆。需要输入正确用户名和 密码,才能登陆系统。错误提示错误的信息。
成语游戏。从成语文件中随机抽一个成语,随机展示2个汉字,用户猜剩余汉字。如果答对,则得分。错误,给相应信息。
排名。系统跟用户得分排名。
退出
要求:
本次作业必须建工程实现C的多文件。其中结构体定义、函数定义等都要封装在自定义头文件中。一个模块对应一个.h文件和.c文件。数据定义和数据实现分离。
用户登录、排名信息的数据请封装结构体实现。
涉及3个数据文件:user.txt、ranking.txt、idiom.txt
尽量减少全局变量使用,数据传递通过地址、参数等传递。学会利用函数形参、返回值实现独立功能。
菜单界面友好,任何一步都能随时推出,程序也 不会崩溃。程序界面要有清屏。
尽量写一个函数调试一个函数,保证函数能读写文件数据再做下面内容。
数据说明:
user.txt :用户名、密码
ranking.txt:用户名,答题总分数、最后答题时间。注意:答题分数是每次分数的积累,如答对一题5分,下一次同一个用户名再玩,这里数据能累加或更新。
idiom.txt:成语、成语解释。注意:给大家数据还包含数字,建议对数据预处理下,把数据改造成规范格式。成语:成语解释。出现其他如【】、数字等都过滤掉。数据统一格式才好读写。
扩展功能
本题可以做一个成语字典,用户输入成语,可以查询相应成语解释。这个查询可以是模糊查询,就是用户只输入一个汉字也可以查询所有相关的成语内容。
游戏玩法可以多样,比如也可以做成语接龙,你写一个成语,根据最后一个汉字,系统能接龙下一个成语。如果是人机互玩,不是接龙规则,可提示
头文件1.h
介绍头文件有哪些结构体及函数声明,他们的功能是什么?可以列表格,更清晰直观
头文件代码截图
头文件2.h
介绍头文件有哪些结构体及函数声明,他们的功能是什么?可以列表格,更清晰直观
头文件代码截图
头文件3.h
介绍头文件有哪些结构体及函数声明,他们的功能是什么?可以列表格,更清晰直观
头文件代码截图
文件1:main.c
介绍文件功能及设计思路。
主要代码截图
文件2:Login.c
介绍主要函数代码及功能。
主要代码截图
文件3:idiom.c
介绍主要函数代码及功能。
主要代码截图
等等其他文件
可以列表展示。
大作业代码提交
请把写好的大作业代码,全部复制在一个word文档中。(记住,要复制过去,不能截图,截图则本次作业0分),文档保存好请提交课堂派的作业中。我们会用课堂派对你写的代码进行查重,发现抄袭者,将公布名单,请务必要独立完成。
原文:https://www.cnblogs.com/sixiDL000/p/12017984.html