c语言设计一个小程序,可简单实现10名学生3门课程成绩的录入、输出和查询,需要有提示菜单
1条回答 默认 最新
- 牛马不分 2022-12-09 09:40关注
望采纳:
可以看题目意思,确认下面步骤:
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
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 远程桌面文档内容复制粘贴,格式会变化
- ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
- ¥15 这种微信登录授权 谁可以做啊
- ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
- ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
- ¥15 网络设备配置与管理这个该怎么弄
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题