zoukankan      html  css  js  c++  java
  • C语言入门:结构体+文件的应用

     1 /* Note:Your choice is C IDE */
     2 #include "stdio.h"
     3 void main()
     4 {
     5      //使用文件的操作 步骤
     6      //1.定义文件指针变量
     7      char name[100];
     8      FILE *fp;
     9      //2.打开文件
    10      fp= fopen("E:\八维.doc","w");
    11      //3.判断这个文件是否打开。
    12      if(fp==NULL)//这个指针指向的位置 是空的。
    13      {
    14          printf("error");
    15      }
    16      //4.读/写操作(核心)这里 写里放任何学过的东西。只要类型对,可以存里
    17      printf("请输入一段话:");
    18      scanf("%s",name);
    19      fprintf(fp,"俊哥刚才写的内容为:%s",name);//往文件里 输出内容。意思:就是往文件写内容
    20      //5.关闭文件
    21      fclose(fp);
    22      //6.关闭程序
    23      exit(0);
    24 }
     1 /* Note:Your choice is C IDE */
     2 #include "stdio.h"
     3 struct student  // ① 定义结构体类型变量存放学生信息
     4 {
     5     //内部成员
     6     char name[100];//姓名
     7     int id;//学号
     8     int cj;//C语言成绩
     9 }stu[3];//学生数组
    10 void main()
    11 {
    12     //编程实现,从键盘录入3个学生的信息,
    13     //包括姓名,学号,C语言成绩,并将这些数据打印到控制台。 输出到空
    14     //数据录入后,将学生信息写入文件中,文件名为“import_student.txt”。
    15    // ② 定义文件指针
    16    FILE *fp;
    17    int i;//循环变量
    18    // ③ 提示输入学生信息
    19    printf("提示输入学生信息
    ");
    20    for(i=0;i<3;i++)
    21    {
    22        printf("第%d个学生的姓名:",i+1);
    23        scanf("%s",stu[i].name);
    24        printf("第%d个学生的学号:",i+1);
    25        scanf("%d",&stu[i].id);
    26        printf("第%d个学生的C语言成绩:",i+1);
    27        scanf("%d",&stu[i].cj);
    28    } 
    29    // ④ 提示输出学生信息 
    30     for(i=0;i<3;i++)
    31    {
    32        printf("第%d个学生的姓名:%s,学生的学号:%d,学生的C语言成绩:%d
    ",i+1,stu[i].name,stu[i].id,stu[i].cj);
    33    } 
    34    // ⑤ 正确将学生信息写入文件中
    35    // ⑥ 打开文件
    36    fp=fopen("E:\18单元练习手册.doc","w");
    37    // ⑦ 判断是否正确打开文件
    38    if(fp==NULL)
    39    {
    40         printf("没有找到文件,error
    ");
    41    }
    42    // ⑧ 将数据写入文件中
    43     for(i=0;i<3;i++)
    44    {
    45        fprintf(fp,"第%d个学生的姓名:%s,学生的学号:%d,学生的C语言成绩:%d
    ",i+1,stu[i].name,stu[i].id,stu[i].cj);
    46    } 
    47    // ⑨ 关闭文件 
    48    fclose(fp);
    49 }
     1 /* Note:Your choice is C IDE */
     2 #include "stdio.h"
     3 #include "string.h"//字符串头文件
     4 #include "windows.h"//系统头文件
     5 struct team  //① 定义结构体数组,正确定义变量
     6 {
     7     char name[100];//员工
     8     int yj;//业绩
     9 }t[3];   //③ 正确定义结构体(用来存放员工的姓名和业绩绩点)
    10 void main()
    11 {
    12    //存储一个团队3名员工的姓名和业绩绩点,然后输入一个员工的姓名,
    13    //查找该人是否为团队的成员,如果是提示是团队成员,
    14    //同时输出该员工的业绩绩点,如果不是提示不是团队成。
    15    //要求:将查找到的员工信息写入到 D盘下文件夹名为staff的staff_inform.txt文件中(如果没有D盘,可以写在别的盘中) 
    16    //② 正确定义变量,数组,指针变量等
    17    int i,maxb=0,max;//最大下标  最大业绩
    18    char cz[100];//姓名
    19    FILE *fp;//文件
    20    int sf;//是否查找 
    21    //④ 定义结构体变量存储一个团队的3个员工的信息,利用循环赋值
    22    for(i=0;i<3;i++)
    23    {
    24         printf("请输入第%d员工的姓名:",i+1);
    25         scanf("%s",t[i].name);
    26         printf("请输入第%d员工的业绩:",i+1);
    27         scanf("%d",&t[i].yj);
    28    }
    29    max=t[0].yj;
    30    //⑤ 比较三名员工的业绩绩点,输出绩点最高的员工信息
    31    for(i=0;i<3;i++)
    32    {
    33         if(max<t[i].yj)
    34         {
    35             max=t[i].yj; //把最大值 赋值过来
    36             maxb=i;//把最大值下标 赋值过来
    37         } 
    38    }
    39    printf("输出绩点最高的员工信息:姓名为:%s,业绩绩点为:%d
    ",t[maxb].name,t[maxb].yj);
    40    //⑥ 提示输入要查找的姓名
    41    for(;;)//⑨ 询问是否继续查找,是则继续,否则退出程序
    42    { 
    43    printf("提示输入要查找的姓名:");
    44    scanf("%s",cz);
    45    //⑦ 判断是否是该团队的员工,并输出正确的结果
    46    fp=fopen("E:\staff\staff_inform.txt","w");
    47    if(fp==NULL)
    48    {
    49        printf("没有找到该文件,error
    ");
    50    }
    51     for(i=0;i<3;i++)
    52    {
    53          if(strcmp(cz,t[i].name)==0)//查找。就是循环比较。
    54          {
    55              printf("该员工找到了姓名为:%s,业绩绩点为:%d
    ",t[i].name,t[i].yj);
    56              //⑧ 如果要查找的员工是该团队员工,要求将员工信息写入到 D盘下文件夹名为staff的staff_inform.txt文件
    57              fprintf(fp,"该员工找到了姓名为:%s,业绩绩点为:%d
    ",t[i].name,t[i].yj);
    58          }
    59    }
    60     printf("是否继续查找:");
    61     scanf("%d",&sf);
    62     if(sf==0)//⑨ 询问是否继续查找,是则继续,否则退出程序
    63     {
    64         exit(0);
    65     }  
    66    }
    67    
    68   
    69 }
     1 /* Note:Your choice is C IDE */
     2 #include "stdio.h"
     3 #include "windows.h"//头文件
     4 struct student   //① 正确定义结构体(用来存放学生的数据)
     5 {
     6     int id; //学号
     7     char name[100];//姓名
     8     int age; //年龄
     9     char adr[100]; //家庭地址 
    10 }stu[2];
    11 void main()
    12 {
    13     //编程实现如下功能:
    14     //从键盘输入两个学生数据(学号,姓名,年龄,家庭地址),
    15     //写入一个文件中,再读出这两个学生的数据显示在屏幕上。? fprintf(fp,"",);
    16     //要求:将学生数据存储在D盘文件夹stu_infor下的stu_infor.txt里。
    17     //(没有D盘,可以自己指定位置)
    18     // 
    19     //② 在主函数中正确定义变量,指针,以及结构体变量
    20     int i;//下标
    21     FILE *fp;//1.文件指针    6
    22     //  write 写入,如果没有该文件,它会创建一个。
    23     //  append   r
    24     //2.利用指针文件  指向 该文件。
    25     fp=fopen("E:\stu_infor\stu_infor.txt","w");
    26     //3.判断是否打开文件
    27     if(fp==NULL)//NULL 为空的意思
    28     {
    29         printf("提示没有找到error.");
    30         exit(0);//没有找到的时候 ,直接退出程序
    31     }
    32     //③ 通过循环输入2个学生信息
    33     for(i=0;i<2;i++)
    34     {
    35         printf("输入第%d个学生的学号:",i+1);
    36         scanf("%d",&stu[i].id);
    37         printf("输入第%d个学生的姓名:",i+1);
    38         scanf("%s",stu[i].name);
    39         printf("输入第%d个学生的年龄:",i+1);
    40         scanf("%d",&stu[i].age);
    41         printf("输入第%d个学生的家庭地址:",i+1);
    42         scanf("%s",stu[i].adr);
    43     }
    44     //④ 写入txt文件中
    45      for(i=0;i<2;i++)
    46     {
    47         fprintf(fp,"第%d个学生的学号:%d,姓名:%s,年龄:%d,家庭地址:%s
    ",i+1,stu[i].id,stu[i].name,stu[i].age,stu[i].adr);
    48     }
    49     //⑤ 再从文件中读取出学生的数据,并在屏幕上显示 (问题)
    50       for(i=0;i<2;i++)
    51     {
    52         printf("第%d个学生的学号:%d,姓名:%s,年龄:%d,家庭地址:%s
    ",i+1,stu[i].id,stu[i].name,stu[i].age,stu[i].adr);
    53     }
    54 }
    55  
     1 /* Note:Your choice is C IDE */
     2 #include "stdio.h"
     3 #include "windows.h"
     4 void main()
     5 {
     6      //利用文件 实现 一维数组的所有操作。
     7      //一维数组的所有操作 都可以写在文件里。
     8      //比如 输入  输出 平均  最大  最小  奇偶数。
     9      
    10      //实现文件的步骤
    11      //1.定义文件指针
    12      FILE *fp;
    13      int a[5],i,max,min,sum=0;//定义的一维数组
    14      //2.打开文件 建立指针与文件的关系
    15      fp=fopen("E:\12号上午文件.doc","w");//w只写  w+ 读写
    16      //3.判断是否打开文件   没有的话直接结束程序
    17      if(fp==NULL)
    18      {
    19          printf("error,没有找到!
    ");
    20          exit(0);
    21      }
    22      //4.文件的读写
    23      for(i=0;i<5;i++)
    24      {
    25       printf("请输入一个数:");
    26       scanf("%d",&a[i]);
    27       sum=sum+a[i];//求总和 和平均分 
    28      }
    29      printf("一维数组的内容为:
    ");
    30      for(i=0;i<5;i++)
    31      {
    32       printf(" %d ", a[i]); //打印到屏幕上
    33       fprintf(fp," %d ", a[i]);//往文件里 打印内容
    34      }
    35      printf("数组的总分为:%d,平均分为:%.2f
    ",sum,(float)sum/5);
    36      fprintf(fp,"数组的总分为:%d,平均分为:%.2f",sum,(float)sum/5);
    37      //给最大值 最小值 变量 赋初始值
    38      max=min=a[0];
    39      //数组的最大值  最小值
    40      for(i=0;i<5;i++)
    41      {
    42          if(max<a[i])
    43          {
    44            max=a[i];    
    45          }
    46          if(min>a[i])
    47          {
    48            min=a[i];
    49          }
    50      }
    51      printf("数组的最大值为:%d,最小值为:%d
    ",max,min);
    52      fprintf(fp,"数组的最大值为:%d,最小值为:%d
    ",max,min);
    53      //5.文件的关闭。 
    54      fclose(fp); 
    55 }
     1 /* Note:Your choice is C IDE */
     2 #include "stdio.h"
     3 #include "windows.h"
     4 void main()
     5 {
     6    // 数组int a[10]={623,970,407,229,821,371,537,370,334,101},
     7    // 求数组所有元素为偶数的个数,
     8    // 下标为奇数元素的平均值,
     9    // 数组中为水仙花数的元素下标、
    10    // 数组中值最大的元素下标。
    11    //(水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。
    12    // 例如:    1^3 + 5^3+ 3^3 = 153)
    13  
    14    //① 正确定义变量和数组
    15    FILE *fp;
    16    int a[10]={623,970,407,229,821,371,537,370,334,101};
    17    // 下标     0    1   2  3   4   5   6   7   8   9
    18    int i,j=0,ou=0,jsum=0,max,maxb=0;//循环变量  ou偶数 jsum奇数总和   maxb为最大值下标
    19    int g,s,b;//个 十  百
    20    fp=fopen("E:\一维数组.doc","w");//建立文件的关系 打开文件
    21    if(fp==NULL)
    22    {
    23        printf("没有找到,error!
    ");
    24        exit(0);//退出系统
    25    }
    26    //② 往文件里打印计算数组中偶数的个数还要输出到屏幕上
    27    for(i=0;i<10;i++)
    28    {
    29         if(a[i]%2==0)
    30         {
    31             ou++;//计数 
    32         }
    33    }
    34    printf("偶数的个数:%d
    ",ou);
    35    fprintf(fp,"偶数的个数:%d
    ",ou);
    36    //③ 往文件里打印计算下标为奇数元素的平均值    还要输出到屏幕上
    37     for(i=0;i<10;i++)
    38    {
    39         if(a[i]%2==1)
    40         {
    41              jsum=jsum+a[i];
    42              j++;
    43         }
    44    }
    45    printf("奇数的总和:%d,平均分为:%.2f
    ",jsum,(float)jsum/j);
    46    fprintf(fp,"奇数的总和:%d,平均分为:%.2f",jsum,(float)jsum/j);
    47    //④ 往文件里打印输出数组中为水仙花数的元素下标   还要输出到屏幕上
    48    for(i=0;i<10;i++)
    49    {
    50         g=a[i]%10;  //120   20   0  个
    51         s=a[i]/10%10;         //120   12 %10  2  十 
    52         b=a[i]/100; 
    53         if(g*g*g+s*s*s+b*b*b == a[i]) //每一位的立方的结果 想加 等于 它本身
    54         {
    55             printf("该水仙花数为:%d,下标为:%d
    ",a[i],i);
    56             fprintf(fp,"该水仙花数为:%d,下标为:%d
    ",a[i],i);
    57         }
    58    }
    59    
    60    //⑤ 往文件里打印数组中值最大的元素下标    还要输出到屏幕上
    61    max=a[0];//赋值第一个元素
    62    for(i=0;i<10;i++)
    63    {
    64        if(max<a[i])
    65        {
    66            max=a[i];
    67            maxb=i;
    68        }
    69    }
    70    printf("数组中最大值的元素:%d,下标:%d
    ",max,maxb);
    71    fprintf(fp,"数组中最大值的元素:%d,下标:%d
    ",max,maxb);
    72    //⑥ 往文件里打印输出所有数组元素值       还要输出到屏幕上
    73    printf("数组中的元素为:
    ");
    74    for(i=0;i<10;i++)
    75    {
    76         printf(" %d ",a[i]);
    77         fprintf(fp," %d ",a[i]); 
    78    }
    79 }
  • 相关阅读:
    Win32中使用目录浏览器
    xcode 决断设备类型
    一个简单观察者模式的实现 cocos2dx
    在 vector , map , list 间取得平衡
    ChainOfResponsibility 与 Command
    贪吃蛇游戏制作
    Unicode形成的“?”问题
    MFC中手工创建控件
    CString操作指南【转】
    一个简单例子的设计模式分析
  • 原文地址:https://www.cnblogs.com/ZJ-CN/p/12294485.html
Copyright © 2011-2022 走看看