9月13号作业

发布于:2022-12-19 ⋅ 阅读:(642) ⋅ 点赞:(0)

1> 定义班级类型(存储学生的数组、班级现有人数)、定义学生类型(学号、姓
名、分数)
2> 定义一个班级,完成初始化
3> 完成学生信息的添加
4> 定义函数完成输出所有学生信息
5> 定义函数完成输出最高成绩学生的信息
6> 定义函数完成按成绩排序功能
7> 定义函数完成,要求用户输入一个名字,查找是否是该班级的学生,如果是输
出“该学生在该班级”,如果不是输出“查 找失败

1.h

#ifndef __1_H_
#define __1_H_
#define MAX 20
struct Stu
{
    int num;
    char name[10];
    int score;
};
struct my_class
{
    struct Stu s[MAX];
    int len;
};
void output(struct my_class *c);
void my_max(struct my_class *c);
void sort(struct my_class *c);
void find(struct my_class *c,char *crr);
void add(struct my_class *c,struct Stu k);
#endif

1f.h

#include <stdio.h>
#include "1.h"
#include <string.h>
void output(struct my_class *c)
{
    int i;
    printf("学号\t姓名\t\t分数\n");
    for(int i=0; i<c->len;i++)
    {
        printf("%d\t%s\t\t%d\n",c->s[i].num,c->s[i].name,c->s[i].score);
                
    }
    printf("输出完成\n");
    return;
}
void my_max(struct my_class *c)
{
    struct Stu max = c->s[0];

    int i;
    for(i=0;i<c->len;i++)
    {
        if(max.score < c->s[i].score)
        {
            max= c->s[i];
        }
    }
    printf("最高分的信息:学号: %d,姓名:%s,成绩:%d\n",max.num,max.name,max.score);
    return;
}
void sort (struct my_class*c)
{
    int i,j;
    struct Stu temp;
    for(i=1;i<c->len;i++)
    {
        for(j=0;j<c->len-1;j++)
        {
            if(c->s[i].score<c->s[i+1].score)
            {
                temp = c->s[i];
                c->s[i] = c->s[i+1];
                c->s[i+1] = temp;
            }
        }
    }
    return;
}
void find(struct my_class *c,char *crr)
{
   int i,n;
   for(i=0;i<c->len;i++)
   {
       n=0;
       if(strcmp(c->s[i].name,crr)==0)
       {
           printf("该同学在该班级\n");
           n=1;
           break;
       }
       
   }
   if(0==n)
       printf("查找失败\n");
   return;
}
void add (struct my_class *c,struct Stu k)
{
    if(c->len >=MAX)
    {
        printf("添加失败\n");
        return;
    }
    c->s[c->len] = k;
    c->len++;
    printf("添加成功\n");
}

1.c

#include "1.h"
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
   struct my_class class1;
   class1.len =1;
   for(;;)
   {
       struct Stu k;
  printf("请输入要录入学生的学号:");   
  scanf("%d", &k.num);
  printf("请输入要录入学生的姓名:");
  scanf("%s", k.name);
   printf("请输入要录入学生的成绩:");
   scanf("%d", &k.score);

  add(&class1, k);
  char judge;
  printf("是否继续录入学生信息(N|Y):");
  getchar();
  scanf("%c", &judge);
    if(judge=='n'||judge=='N')
    {
        break;
    }
   }
  getchar();
   sort(&class1);
   my_max(&class1);
   output(&class1);
   char crr[20]; 
   printf("请输入要要查找学生的姓名\n");
   scanf("%s",crr);
   find(&class1,crr);
   return 0;

}