结构体

1.本章学习总结(2分)

1.1 学习内容总结

1.1.1结构体如何定义、成员如何赋值

1.1.1.1

  • 结构体类型定义:
一般形式为:
struct 结构名{
   类型名 结构成员名1;
   类型名 结构成员名2;
    ···
   类型名 结构成员名n;
};
定义实例:
struct student{
  int num;
  char name[10];
  int computer,english,math;
  double average;
};

(定义了一个结构体用来储存学生信息,结构成员包括学生的学号num,姓名name[10],三科成绩computer,English,math,三科成绩平均值)

  • 结构体变量定义:
    法一:单独定义
struct student s1;

(定义了结构变量s1,代表某位学生)
法二:混合定义

struct student{
  int num;
  char name[10];
  int computer,english,math;
  double average;
}s1,s2;

同时定义了结构类型struct student和结构变量s1,s2)
法三:无类型名定义

struct {
   类型名 结构成员名1;
   类型名 结构成员名2;
    ···
   类型名 结构成员名n;
}结构变量名表;

(此法与混合定义相同点是同时定义结构类型和结构变量,但由于无结构名便无法再定义这个类型的其他变量,除非把定义过程再写一遍
1.1.1.2赋值

struct student s1={101,"张三",78,87,85};

(将大括号内的数据项按顺序对应赋值给结构变量内的各个成员,要求类型一致

1.1.2结构体数组排序

  • 选择排序法
对于学生成绩排序:
(已知存在结构体数组students[50]代表50个学生,结构成员average代表个人成绩平均值)
for(i=0;i<49;i++)
{
   index=1;
   for (j=i+1;j<50;j++)
   {
       if(students[j].average>students[index].average)
       {
           index=j;
       }
   }
   temp=students[index];  //交换数组元素
   students[index]=students[i];
   students[i]=temp;
}

1.1.3结构体指针

1.1.3.1通过指针访问成员

  • 用*p访问结构成员
(*p).num=101;

((p)的括号不可少,由于成员运算符**“.”的优先级高于“”**,若无括号,则p.num等价于(p.num),含义出差)

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

1.1.4共用体、枚举类型做法

1.1.5文件读写,文件中数据如何读进结构体数组

1.2 本章学习体会

1.2.1描述学习感受,也可以在这里提出你不理解地方、对教师教学建议等等。

1.2.2计算这两周代码量,是否达到目标。

2.综合作业--“我爱成语”(8分)

本次作业要编写一个成语游戏。用户登录后,系统随机出若干个成语,如果答对则得分。用户得分写入成绩文件。系统能对用户成绩排名
主要功能:
登陆。需要输入正确用户名和 密码,才能登陆系统。错误提示错误的信息。
成语游戏。从成语文件中随机抽一个成语,随机展示2个汉字,用户猜剩余汉字。如果答对,则得分。错误,给相应信息。
排名。系统跟用户得分排名。
退出
要求:
本次作业必须建工程实现C的多文件。其中结构体定义、函数定义等都要封装在自定义头文件中。一个模块对应一个.h文件和.c文件。数据定义和数据实现分离。
用户登录、排名信息的数据请封装结构体实现。
涉及3个数据文件:user.txt、ranking.txt、idiom.txt
尽量减少全局变量使用,数据传递通过地址、参数等传递。学会利用函数形参、返回值实现独立功能。
菜单界面友好,任何一步都能随时推出,程序也 不会崩溃。程序界面要有清屏。
尽量写一个函数调试一个函数,保证函数能读写文件数据再做下面内容。
数据说明:
user.txt :用户名、密码
ranking.txt:用户名,答题总分数、最后答题时间。注意:答题分数是每次分数的积累,如答对一题5分,下一次同一个用户名再玩,这里数据能累加或更新。
idiom.txt:成语、成语解释。注意:给大家数据还包含数字,建议对数据预处理下,把数据改造成规范格式。成语:成语解释。出现其他如【】、数字等都过滤掉。数据统一格式才好读写。
扩展功能
本题可以做一个成语字典,用户输入成语,可以查询相应成语解释。这个查询可以是模糊查询,就是用户只输入一个汉字也可以查询所有相关的成语内容。
游戏玩法可以多样,比如也可以做成语接龙,你写一个成语,根据最后一个汉字,系统能接龙下一个成语。如果是人机互玩,不是接龙规则,可提示

2.1文件介绍

头文件介绍
头文件1.h
介绍头文件有哪些结构体及函数声明,他们的功能是什么?可以列表格,更清晰直观
头文件代码截图
头文件2.h
介绍头文件有哪些结构体及函数声明,他们的功能是什么?可以列表格,更清晰直观
头文件代码截图
头文件3.h
介绍头文件有哪些结构体及函数声明,他们的功能是什么?可以列表格,更清晰直观
头文件代码截图

2.2函数实现文件介绍。

文件1:main.c
介绍文件功能及设计思路。
主要代码截图
文件2:Login.c
介绍主要函数代码及功能。
主要代码截图
文件3:idiom.c
介绍主要函数代码及功能。
主要代码截图
等等其他文件

2.3运行结果

1.登录界面
2.游戏界面
3.排名界面

2.4大作业总结

1.碰到问题及解决办法
可以列表展示。
2.小结
大作业代码提交
请把写好的大作业代码,全部复制在一个word文档中。(记住,要复制过去,不能截图,截图则本次作业0分),文档保存好请提交课堂派的作业中。我们会用课堂派对你写的代码进行查重,发现抄袭者,将公布名单,请务必要独立完成。

原文地址:https://www.cnblogs.com/243050cz/p/12008415.html