zoukankan      html  css  js  c++  java
  • 结构体作业

    结构体作业

     
     
     
    1.定义一个acmer结构体,包括以下信息:姓名,学号,手机号,做题数,出生日期,其中出生日期date也是一个结构体,包括年、月、日
    2.
    建立结构体数组,实现对多个同学的信息输入,输出

    3.
    实现简单的统计功能,比如统计做题数大于150的同学并输出其完整信息

    4.
    实现查找功能,包括按姓名、学号查找

    5.
    实现信息修改功能

    6.
    按做题数目进行排序(选作)

    7.
    其他功能可以自由扩展,多多益善 ^_^

    8.
    程序一个函数实现一个功能

    9.
    代码测试成功后贴在论坛上,大家互相学习借鉴
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    int input();//实现学生信息的输入
    int output();//实现学生信息的输出
    int find();//实现学生信息的查找
    int correct();//实现学生信息的修改
    int sort();//实现学生成绩的排序并输出做题数超过150的学生的具体信息
    int d = 0;//用于统计学生的人数,便于输出学生的信息
    int find_num();//用于学号查找
    int find_name();//用于姓名查找
    struct date
    {
     int year;
     int month;
     int day;
    };
    struct acmer
    {
     char name[20];
     char number[20];
     char sex[2];
     char phonenumber[11];
     int sloved;
     struct date birthday;
    }stu[100];
    struct acmer *p=stu;
    main()
    {
     int n;
     printf("请按键选择功能:\n");
     printf("1、输入同学们的信息\t\t\t\t\t2、输出同学们的信息\n");
     printf("3、查找某同学的信息\t\t\t\t\t4、修改某同学的信息\n");
     printf("5、统计做出150道题的同学并输出其具体信息\t\t6、清屏\n");
     scanf("%d",&n);
     switch(n)
     {
      case 1: input();break;
      case 2: output();break;
      case 3: find();break;
      case 4: correct();break;
      case 5: sort();break;
      case 6: system("cls");return main();
     }
     return 0;
    }
    int input()
    {
     *p = stu[0];
     printf("请输入学生的学号:");
     scanf("%s",p->number);
     printf("请输入学生的姓名:");
     scanf("%s",p->name);
     printf("请输入学生的性别(男/女):");
     scanf("%s",p->sex);
     printf("请输入学生的做题数:");
     scanf("%d",&p->sloved);
     printf("请输出学生的出生日期(年月日):");
     scanf("%d %d %d",&p->birthday.year,&p->birthday.month,&p->birthday.day);
     printf("请输入学生的手机号:");
     scanf("%s",p->phonenumber);
     printf("是否需要继续输入(1/0):");
     int c;
     scanf("%d",&c);
     switch(c)
     {
     case 1: d++;p++;return input();
     case 0: d++;return main();
     }
    }
    int output()
    {
     
     printf("学生 学号\t姓      名\t性别\t做题数\t出生年月日\t手  机  号\n");
     printf("----------\t----------\t--\t----\t---- -- --\t-----------\n");
     for(int i = 0;i<d;i++)
     {
      printf("%s\t%s\t\t%s\t%d\t%d\t%d %d\t%s\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].sloved,stu[i].birthday.year,stu[i].birthday.month,stu[i].birthday.day,stu[i].phonenumber);
     }
     printf("是否需要返回主菜单(1/0):");
     int c;
     scanf("%d",&c);
     switch(c)
     {
     case 1: printf("\n");return main();
     case 0: break;
     }
    }
    int find()
    {
     printf("请按需要查找\n1、学号\t\t\t2、姓名");
     int n;
     scanf("%d",&n);
     switch(n)
     {
     case 1:find_num();
     case 2:find_name();
     }
     return 0;
    } 
    int find_num()//用于学号查找
    {
     int f;
     char str[20];
     printf("请输入学生学号:");
     scanf("%s",&str);
     for(int i =0;i<d;i++)
     {
      if(strcmp(stu[i].number,str)==0) {*p=stu[i];f = 0;
      printf("学生 学号\t姓      名\t性别\t做题数\t出生年月日\t手  机  号\n");
      printf("----------\t----------\t--\t----\t---- -- --\t-----------\n");
      printf("%s\t%s\t\t%s\t%d\t%d\t%d %d\t%s\n",p->number,p->name,p->sex,p->sloved,p->birthday.year,p->birthday.month,p->birthday.day,p->phonenumber);break;}
     }
     if(f) printf("查找出错!未找到相关同学信息!");
     printf("是否需要返回主菜单(1/0):");
     int c;
     scanf("%d",&c);
     switch(c)
     {
     case 1: printf("\n");return main();
     case 0: break;
     }
    }
    int find_name()//用于姓名查找
    {
     int f;
     char str[20];
     printf("请输入学生姓名:");
     scanf("%s",&str);
     for(int i =0;i<d;i++)
     {
      if(strcmp(stu[i].name,str)==0) {*p=stu[i];f = 0;
      printf("学生 学号\t姓      名\t性别\t做题数\t出生年月日\t手  机  号\n");
      printf("----------\t----------\t--\t----\t---- -- --\t-----------\n");
      printf("%s\t%s\t\t%s\t%d\t%d\t%d %d\t%s\n",p->number,p->name,p->sex,p->sloved,p->birthday.year,p->birthday.month,p->birthday.day,p->phonenumber);break;}
     }
     if(f) printf("查找出错!");
     printf("是否需要返回主菜单(1/0):");
     int c;
     scanf("%d",&c);
     switch(c)
     {
     case 1: printf("\n");return main();
     case 0: break;
     }
    }
    int correct()
    {
     int f;
     char str[20];
     printf("请输入要修改信息的学生的学号:");
     scanf("%s",&str);
     for(int i =0;i<d;i++)
     {
      if(strcmp(stu[i].number,str)==0) 
      {
       *p=stu[i];f = 0;
       printf("请输入学生的学号:");
       scanf("%s",p->number);
       printf("请输入学生的姓名:");
       scanf("%s",p->name);
       printf("请输入学生的性别(男/女):");
       scanf("%s",p->sex);
       printf("请输入学生的做题数:");
       scanf("%d",&p->sloved);
       printf("请输出学生的出生日期(年月日):");
       scanf("%d %d %d",&p->birthday.year,&p->birthday.month,&p->birthday.day);
       printf("请输入学生的手机号:");
       scanf("%s",p->phonenumber);
       printf("修改成功!");
       break;
      }
     }if(f) printf("未找到相关同学信息!");
     printf("是否需要返回主菜单(1/0):");
     int c;
     scanf("%d",&c);
     switch(c)
     {
     case 1: printf("\n");return main();
     case 0: break;
     }
     
    }
    int sort()
    {
     int f,n,i;
     printf("想要查看超过多少分的人");
     scanf("%d",&n);
     for(i = 0;i<d;i++)
     {
      if(stu[i].sloved>n) 
      {
       f = 0;
       printf("%s\t%s\t\t%s\t%d\t%d\t%d %d\t%s\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].sloved,stu[i].birthday.year,stu[i].birthday.month,stu[i].birthday.day,stu[i].phonenumber);
       
      }
     }
    if(f) printf("很可惜哎!没有人做题超过%d",n);
    printf("是否需要返回主菜单(1/0):");
     int c;
     scanf("%d",&c);
     switch(c)
     {
     case 1: printf("\n");return main();
     case 0: break;
     }
    }
    

  • 相关阅读:
    docker 容器卷及提交
    docker 容器命令及解析
    docker镜像常用命令及解析
    drf 中集成swgger api功能文档
    drf 二次封装Response
    drf 中 自定义 异常处理方法
    drf 中自定义登录 以及token验证
    drf_vue对接极验验证
    django 信号的使用
    element plut tree renderContent
  • 原文地址:https://www.cnblogs.com/haidong/p/2348057.html
Copyright © 2011-2022 走看看