zoukankan      html  css  js  c++  java
  • C博客06-结构体&文件

    1.本章学习总结

    1.1 学习内容总结

    • 结构体如何定义、成员如何赋值
      结构体定义的一般形式:
      (1)混合定义:
    struct 结构名
    {
        结构名 结构成员名1;
        结构名 结构成员名2;
        结构名 结构成员名3;
        ......
        结构名 结构成员名n;
    };
    
    
    

    另一种定义方法

    
    typedef struct
    {
         结构名 结构成员名1;
         结构名 结构成员名2;
         结构名 结构成员名3;
         ......
         结构名 结构成员名n; 
    }
    
    

    (2)单独定义:

    
    struct 结构名 结构成员名1,结构成员名2;
    
    
    

    (3)结构体的赋值

    • 成员如何赋值
      第一种
    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格式: 数据间用空格隔开
    
    
    

    1.2 本章学习体会

    刚开始接触多文件还不大习惯,要多多熟悉,特别是结构指针和各个文件操作函数都要多熟悉。

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

    2.1文件介绍

    2.1.1头文件介绍

    2.1.2主函数介绍

    2.1.3登入函数

    1.登入函数:

    2.1.4功能实现函数:

    1.菜单函数:

    2.选择函数

    3.获取成语数据函数:

    4.打印成语函数:

    5.查找成语函数:

    运行结果

  • 相关阅读:
    洛谷 P1591 阶乘数码
    洛谷 P2008 大朋友的数字
    洛谷 P1716 双调序列
    洛谷 P2309 loidc,卖卖萌
    洛谷 P1324 矩形分割
    洛谷 P2690 接苹果
    洛谷 P1239 计数器
    hdu_4352_XHXJ's LIS(数位DP+状态压缩)
    hdu_5648_DZY Loves Math
    hdu_5179_beautiful number(数位DP)
  • 原文地址:https://www.cnblogs.com/19wangluo-Lishaoqiang/p/12045654.html
Copyright © 2011-2022 走看看