题目内容:构造“学生成绩”结构体(要求成员有学号、姓名、性别、成绩等),用此类型定义数组,并实现该数组中数据的输入和输出。
个人解法如下:
#define _CRT_SECURE_NO_WARNINGS //防报错
#include "stdio.h"
#define M 10
#define N 10000
void menu()
{
printf(" 欢迎访问学生管理系统\n");
printf("\n");
printf(" 0、退出管理系统\n");
printf(" 1、添加学生信息\n");
printf(" 2、查询学生信息\n");
printf("\n");
printf(" 请输入指令(0/1/2)\n");
}
typedef struct
{
unsigned int id;
char gender[M];
char name[M];
float score;
}Student;
Student Info[N] = { };
void add()
{
unsigned int Num, i;
printf("请输入待添加的学生人数:\n");
scanf("%d", &Num);
for (i = 1; i <= Num; i++)
{
printf("请输入待添加的学生学号:\n");
scanf("%d", &Info[Num - 1].id);
printf("请输入待添加的学生性别:\n");
scanf("%s", &Info[Num - 1].gender);
printf("请输入待添加的学生姓名:\n");
scanf("%s", &Info[Num - 1].name);
printf("请输入待添加的学生成绩:\n");
scanf("%f", &Info[Num - 1].score);
printf("学生信息添加成功!\n");
}
}
void seek()
{
unsigned int Num;
printf("请输入要查询的学生学号:\n");
scanf("%d", &Num);
if (Info[Num - 1].id != 0)
{
printf("学号:%d\n", Info[Num - 1].id);
printf("性别:%s\n", Info[Num - 1].gender);
printf("姓名:%s\n", Info[Num - 1].name);
printf("成绩:%.2f\n", Info[Num - 1].score);
}
else
printf("查无此人!\n");
}
int main()
{
unsigned int num;
while (1)
{
menu();
scanf("%d", &num);
if (num == 0)
{
printf("已退出管理系统!\n");
return 0;
}
else if (num == 1)
{
add();
break;
}
else if (num == 2)
{
seek();
break;
}
else
printf("输入错误,请重新输入!\n");
}
return 0;
}
运行结果:
本人拙作,请大佬们点评。