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;
}