1条回答 默认 最新
- qfl_sdu 2021-06-17 09:41关注
代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h> #include <stdlib.h> #include <string.h> struct Student { int id; //学号 char name[20]; //姓名 int score; //成绩 }; //录入信息 void InputInfo(struct Student arr[],int n) { int i,j; for (i = 0;i < n; i++) { printf("请输入第%d名学生的信息(学号、姓名、课程成绩):",i+1); scanf("%d %s %d",&arr[i].id,arr[i].name,&arr[i].score); } } //排序 void SortByTotal(struct Student arr[],int n) { int i,j; struct Student tmp; for (i = 0; i < n-1;i++) { for (j = 0;j < n-1-j;j++) { if(arr[j].score < arr[j+1].score) { tmp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tmp; } } } //显示 for (i = 0;i< n;i++) { printf("%d\t%s\t%d\n",arr[i].id,arr[i].name,arr[i].score); } } //查询 void Find(struct Student arr[],int n) { int i,j; int id; printf("请输入学号:"); scanf("%d",id); for (i = 0;i < n;i++) { if( arr[i].id == id ) { printf("%d\t%s\t%d\t%d\n",arr[i].id,arr[i].name,arr[i].score,i+1); break;; } } } //统计占比 void Tongji(struct Student arr[],int n) { int i,j; int you = 0; int liang = 0; int zhong = 0; int jige = 0; int bujig = 0; for (i = 0; i< n;i++) { if (arr[i].score >= 90) { you++; }else if (arr[i].score >= 80 && arr[i].score <= 89) { liang++; }else if (arr[i].score >= 70 && arr[i].score <= 79) { zhong++; }else if (arr[i].score >= 60 && arr[i].score <= 69) { jige++; }else bujig++; } //显示 printf("优秀人数%d,占比%f\n",you,1.0*you/n); printf("良好人数%d,占比%f\n",liang,1.0*liang/n); printf("中等人数%d,占比%f\n",zhong,1.0*zhong/n); printf("及格人数%d,占比%f\n",jige,1.0*jige/n); printf("不及格人数%d,占比%f\n",bujig,1.0*bujig/n); } int main() { struct Student stu[30]; int n; int opt; int bgo = 1; while(bgo) { printf("-------学生管理系统-------\n"); printf(" 1.录入学生信息 \n"); printf(" 2.按成绩排名 \n"); printf(" 3.查询学生信息 \n"); printf(" 4.统计各段成绩占比 \n"); printf(" 9.退出系统 \n"); printf("--------------------------\n"); scanf("%d",&opt); switch(opt) { case 1: printf("请输入学生人数:"); scanf("%d",&n); InputInfo(stu,n); getchar(); getchar(); system("cls"); break; case 2: SortByTotal(stu,n); getchar(); getchar(); system("cls"); break; case 3: Find(stu,n); getchar(); getchar(); system("cls"); break; case 4: Tongji(stu,n); getchar(); getchar(); system("cls"); break; case 9: bgo = 0; break; } } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 链接问题 C++LNK2001 无法解析的外部符号
- ¥50 安装pyaudiokits失败
- ¥15 计组这些题应该咋做呀
- ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
- ¥15 让node服务器有自动加载文件的功能
- ¥15 jmeter脚本回放有的是对的有的是错的
- ¥15 r语言蛋白组学相关问题
- ¥15 Python时间序列如何拟合疏系数模型
- ¥15 求学软件的前人们指明方向🥺
- ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接