用现有需要对某班同学档案进行管理,现在需要设计一个程序实现,每位同学的基本信息存储和管理。要求每位同学具有的基本信息有:学号、姓名、班级名称、本学期课程成绩(至少包括4门课)。要求实现班上同学档案管理,要求程序实现数据输入、通过同学学号对同学信息查询功能并输出。为了测试方便,假定只有4名同学基本数据信息。要求采用结构体数组存储同学基本信息。
typedef struct student
{
……
}STUDENT;
要求:void Input(STUDENT *p) 作为基本数据信息录入函数;STUDENT * Search(int id)作为查找数据的函数;void Print(STUDENT *p) 作为输出单个同学信息函数;然后在main函数中调用以上函数实现上面功能。
这个写的比较详细,可以参考下
https://ask.csdn.net/questions/7735480
供参考:
#include <stdio.h>
#include <stdlib.h>
#define M 4 //4名学生
#define N 4 //4门功课
typedef struct student{
int id;
char name[16];
char clas[64];
float score[N];
}STUDENT;
STUDENT stu[M];
void Input(STUDENT *p)
{
int i;
scanf("%d %s %s", &p->id, p->name, p->clas);
for(i=0;i<N;i++)
scanf("%f", &p->score[i]);
}
void Print(STUDENT *p)
{
int i;
printf("%d %s %s", p->id, p->name, p->clas);
for(i=0;i<N;i++)
printf(" %.2f", p->score[i]);
printf("\n");
}
STUDENT * Search(int id)
{
int i;
for(i=0;i<M;i++)
if(stu[i].id == id)
return &stu[i];
if(i >= M)
return NULL;
}
int main()
{
int id;
STUDENT *p;
printf("请输入 %d 个学生 学号 姓名 班级 及 %d 门课程成绩:\n", M, N);
for(p=stu;p<stu+M;p++)
Input(p);
printf("请输入要查找的学号:");
scanf("%d", &id);
p = Search(id);
if(!p)
printf("Not Found.\n");
else
Print(p);
printf("输出所有学生的信息:\n");
for(p=stu;p<stu+M;p++)
Print(p);
return 0;
}