c语言设计一个小程序,可简单实现10名学生3门课程成绩的录入、输出和查询,需要有提示菜单
望采纳:
可以看题目意思,确认下面步骤:
1、学生信息结构体,有学号、3门成绩
struct student
{
int nId; // 学号
float fLanguage; // 语文
float fMath; // 数学
float fEnglish; // 英语
};
因为要十名学生,所以可以定义结构体数组
student st_stu[10];
int total;标识数组下标
2、成绩的录入函数
student st;
printf("\n 输入您的学号: ");
scanf("%d", &st.nId);
printf("\n 输入您的语文成绩: ");
scanf("%f", &st.fLanguage);
printf("\n 输入您的数学成绩: ");
scanf("%f", &st.fMath);
printf("\n 输入您的英语成绩: ");
scanf("%f", &st.fEnglish);
st_stu[total++] = st;
3、成绩的输出
for (int i = 0; i < total; ++i)
{
printf("\n学号:%d,语文成绩:%f,数学成绩:%f,英语成绩:%f\n", st_stu[i].nId, st_stu[i].fLanguage, st_stu[i].fMath, st_stu[i].fEnglish);
}
4、成绩查询
int nId = 0;
printf("\n 输入您要查询的学号: ");
scanf("%d", &nId);
int nflag = 0;
for (int i = 0; i < total; ++i)
{
if (st_stu[i].nId == nId)
{
nflag = 1;
printf("\n学号:%d,语文成绩:%f,数学成绩:%f,英语成绩:%f\n", st_stu[i].nId, st_stu[i].fLanguage, st_stu[i].fMath, st_stu[i].fEnglish);
break;
}
}
if (nflag == 0)
{
printf("没有找到该学号的成绩,请输入有选项!\n");
}
5、整体代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student
{
int nId; // 学号
float fLanguage; // 语文
float fMath; // 数学
float fEnglish; // 英语
};
int main()
{
student st_stu[10];
int ch = 0; // 输入命令
int y = 0; // 输入结束符
int total = 0; // 数组下标
do
{
printf("************************************\n");
printf("\n\t 输入指令 ");
printf("\n 1. 录入学生成绩");
printf("\n 2. 输出学生成绩");
printf("\n 3. 按学号查询学生成绩");
printf("\n 4. end 表示命令输入结束 \n");
printf("************************************");
printf("\n输入您的选择: ");
scanf("%d", &ch);
switch (ch)
{
case 1:
{
student st;
memset(&st, 0, sizeof(st));
printf("\n 输入您的学号: ");
scanf("%d", &st.nId);
printf("\n 输入您的语文成绩: ");
scanf("%f", &st.fLanguage);
printf("\n 输入您的数学成绩: ");
scanf("%f", &st.fMath);
printf("\n 输入您的英语成绩: ");
scanf("%f", &st.fEnglish);
st_stu[total++] = st;
break;
}
case 2:
{
for (int i = 0; i < total; ++i)
{
printf("\n学号:%d,语文成绩:%f,数学成绩:%f,英语成绩:%f\n", st_stu[i].nId, st_stu[i].fLanguage, st_stu[i].fMath, st_stu[i].fEnglish);
}
break;
}
case 3:
{
int nId = 0;
printf("\n 输入您要查询的学号: ");
scanf("%d", &nId);
int nflag = 0;
for (int i = 0; i < total; ++i)
{
if (st_stu[i].nId == nId)
{
nflag = 1;
printf("\n学号:%d,语文成绩:%f,数学成绩:%f,英语成绩:%f\n", st_stu[i].nId, st_stu[i].fLanguage, st_stu[i].fMath, st_stu[i].fEnglish);
break;
}
}
if (nflag == 0)
{
printf("没有找到该学号的成绩,请输入有选项!\n");
}
break;
}
case 4:
{
y = 1;
break;
}
default:
printf("\n请输入有选项!\n");
break;
}
} while (y != 1);
return 0;
}
6、打印输出
************************************
输入指令
1. 录入学生成绩
2. 输出学生成绩
3. 按学号查询学生成绩
4. end 表示命令输入结束
************************************
输入您的选择: 1
输入您的学号: 1
输入您的语文成绩: 80.1
输入您的数学成绩: 90.3
输入您的英语成绩: 7.01
************************************
输入指令
1. 录入学生成绩
2. 输出学生成绩
3. 按学号查询学生成绩
4. end 表示命令输入结束
************************************
输入您的选择: 2
学号:1,语文成绩:80.099998,数学成绩:90.300003,英语成绩:7.010000
************************************
输入指令
1. 录入学生成绩
2. 输出学生成绩
3. 按学号查询学生成绩
4. end 表示命令输入结束
************************************
输入您的选择: 3
输入您要查询的学号: 1
学号:1,语文成绩:80.099998,数学成绩:90.300003,英语成绩:7.010000
************************************
输入指令
1. 录入学生成绩
2. 输出学生成绩
3. 按学号查询学生成绩
4. end 表示命令输入结束
************************************
输入您的选择: 4