在学生信息结构体中再添加一个计算平均值和按照平均值排序以及删除指定学号的学生信息
定义一个学生信息结构体,包含姓名,学号,语文成绩、数学成绩,和英语成绩,定义结构体数组存放不同学生的信息,可以在终端录入学生的信息,可以实现对于学生成绩的排序,排序可以按照语文、数学或者英语的任意一个,再添加一个计算平均值和按照平均值排序以及删除指定学号的学生信息。
#include <stdio.h>typedef struct student{char name[66];int number;float yuwen;float shuxue;float yingyu;float avg;
}STU;int count=0;void student_shuru(STU *stu);
void student_yuwen(STU *stu);
void student_shuxue(STU *stu);
void student_yingyu(STU *stu);
void student_shuchu(STU *stu);
void student_avg(STU *stu);
void student_shanchu(STU *stu);int main(int argc, const char *argv[])
{struct student stu[66];int i=0;printf("------欢迎使用学生管理系统------\n");student_shuru(stu);student_shuchu(stu);while(1){printf("------1.查询语文成绩排名------\n");printf("------2.查询数学成绩排名------\n");printf("------3.查询英语成绩排名------\n");printf("------4.查询按平均值排名------\n");printf("------5.删除学生信息------\n");printf("------6.退出程序------\n");scanf("%d",&i);putchar(10);switch(i){case 1:student_yuwen(stu);printf("学生的语文成绩排序:\n");student_shuchu(stu);break;case 2:student_shuxue(stu);printf("学生的数学成绩排序:\n");student_shuchu(stu);break;case 3:student_yingyu(stu);printf("学生的英语成绩排序:\n");student_shuchu(stu);break;case 4:student_avg(stu);printf("学生成绩的平均值排序:\n");student_shuchu(stu);break;case 5:printf("请输入要删除的学生信息的学号:");student_shanchu(stu);student_shuchu(stu);break;case 6:return 0;}}putchar(10);return 0;
}
void student_shuru(STU *stu){int i=0;while(1){printf("请输入学生的名字:");scanf("%s",stu[count].name);printf("请输入学生的学号:");scanf("%d",&stu[count].number);printf("请输入学生的语文成绩:");scanf("%e",&stu[count].yuwen);printf("请输入学生的数学成绩:");scanf("%e",&stu[count].shuxue);printf("请输入学生的英语成绩:");scanf("%e",&stu[count].yingyu);count++;printf("------1.继续输入学生信息------\n");printf("------0.返回上级菜单------\n");scanf("%d",&i);if(i!=1){break;}}
}void student_yuwen(STU *stu){STU temp={0};for(int i=1;i<count;i++){for(int j=0;j<count-i;j++){if(stu[j].yuwen<=stu[j+1].yuwen){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}
}void student_shuxue(STU *stu){STU temp={0};for(int i=1;i<count;i++){for(int j=0;j<count-i;j++){if(stu[j].shuxue<=stu[j+1].shuxue){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}
}void student_yingyu(STU *stu){STU temp={0};for(int i=1;i<count;i++){for(int j=0;j<count-i;j++){if(stu[j].yingyu<=stu[j+1].yingyu){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}
}void student_avg(STU *stu){for(int i=0;i<count;i++){stu[i].avg=(stu[i].yuwen+stu[i].shuxue+stu[i].yingyu)/3;} STU temp={0};for(int i=1;i<count;i++){for(int j=0;j<count-i;j++){if(stu[j].avg<=stu[j+1].avg){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}
}void student_shanchu(STU *stu){int number=0;scanf("%d",&number);for(int i=0;i<count;i++){if(number==stu[i].number){for(int j=i;j<count-i;j++){stu[j]=stu[j+1];}}}count=count-1;
}void student_shuchu(STU *stu){for(int i=0;i<count;i++){printf("姓名:%s 学号:%d 语文:%.2f 数学:%.2f 英语:%.2f 均值:%.2f\n",stu[i].name,stu[i].number,stu[i].yuwen,stu[i].shuxue,stu[i].yingyu,stu[i].avg);}
}
运行结果:
ubuntu@ubuntu:~$ cd test/
ubuntu@ubuntu:test$ ./a.out
------欢迎使用学生管理系统------
请输入学生的名字:珊瑚宫心海
请输入学生的学号:1
请输入学生的语文成绩:143
请输入学生的数学成绩:139
请输入学生的英语成绩:141
------1.继续输入学生信息------
------0.返回上级菜单------
1
请输入学生的名字:八重神子
请输入学生的学号:13
请输入学生的语文成绩:137
请输入学生的数学成绩:143
请输入学生的英语成绩:129
------1.继续输入学生信息------
------0.返回上级菜单------
1
请输入学生的名字:胡桃
请输入学生的学号:27
请输入学生的语文成绩:124
请输入学生的数学成绩:131
请输入学生的英语成绩:134
------1.继续输入学生信息------
------0.返回上级菜单------
1
请输入学生的名字:甘雨
请输入学生的学号:6
请输入学生的语文成绩:136
请输入学生的数学成绩:147
请输入学生的英语成绩:146
------1.继续输入学生信息------
------0.返回上级菜单------
1
请输入学生的名字:妮露
请输入学生的学号:16
请输入学生的语文成绩:133
请输入学生的数学成绩:136
请输入学生的英语成绩:123
------1.继续输入学生信息------
------0.返回上级菜单------
1
请输入学生的名字:优菈
请输入学生的学号:21
请输入学生的语文成绩:124
请输入学生的数学成绩:131
请输入学生的英语成绩:141
------1.继续输入学生信息------
------0.返回上级菜单------
0
姓名:珊瑚宫心海 学号:1 语文:143.00 数学:139.00 英语:141.00 均值:0.00
姓名:八重神子 学号:13 语文:137.00 数学:143.00 英语:129.00 均值:0.00
姓名:胡桃 学号:27 语文:124.00 数学:131.00 英语:134.00 均值:0.00
姓名:甘雨 学号:6 语文:136.00 数学:147.00 英语:146.00 均值:0.00
姓名:妮露 学号:16 语文:133.00 数学:136.00 英语:123.00 均值:0.00
姓名:优菈 学号:21 语文:124.00 数学:131.00 英语:141.00 均值:0.00
------1.查询语文成绩排名------
------2.查询数学成绩排名------
------3.查询英语成绩排名------
------4.查询按平均值排名------
------5.删除学生信息------
------6.退出程序------
1学生的语文成绩排序:
姓名:珊瑚宫心海 学号:1 语文:143.00 数学:139.00 英语:141.00 均值:0.00
姓名:八重神子 学号:13 语文:137.00 数学:143.00 英语:129.00 均值:0.00
姓名:甘雨 学号:6 语文:136.00 数学:147.00 英语:146.00 均值:0.00
姓名:妮露 学号:16 语文:133.00 数学:136.00 英语:123.00 均值:0.00
姓名:优菈 学号:21 语文:124.00 数学:131.00 英语:141.00 均值:0.00
姓名:胡桃 学号:27 语文:124.00 数学:131.00 英语:134.00 均值:0.00
------1.查询语文成绩排名------
------2.查询数学成绩排名------
------3.查询英语成绩排名------
------4.查询按平均值排名------
------5.删除学生信息------
------6.退出程序------
2学生的数学成绩排序:
姓名:甘雨 学号:6 语文:136.00 数学:147.00 英语:146.00 均值:0.00
姓名:八重神子 学号:13 语文:137.00 数学:143.00 英语:129.00 均值:0.00
姓名:珊瑚宫心海 学号:1 语文:143.00 数学:139.00 英语:141.00 均值:0.00
姓名:妮露 学号:16 语文:133.00 数学:136.00 英语:123.00 均值:0.00
姓名:胡桃 学号:27 语文:124.00 数学:131.00 英语:134.00 均值:0.00
姓名:优菈 学号:21 语文:124.00 数学:131.00 英语:141.00 均值:0.00
------1.查询语文成绩排名------
------2.查询数学成绩排名------
------3.查询英语成绩排名------
------4.查询按平均值排名------
------5.删除学生信息------
------6.退出程序------
3学生的英语成绩排序:
姓名:甘雨 学号:6 语文:136.00 数学:147.00 英语:146.00 均值:0.00
姓名:优菈 学号:21 语文:124.00 数学:131.00 英语:141.00 均值:0.00
姓名:珊瑚宫心海 学号:1 语文:143.00 数学:139.00 英语:141.00 均值:0.00
姓名:胡桃 学号:27 语文:124.00 数学:131.00 英语:134.00 均值:0.00
姓名:八重神子 学号:13 语文:137.00 数学:143.00 英语:129.00 均值:0.00
姓名:妮露 学号:16 语文:133.00 数学:136.00 英语:123.00 均值:0.00
------1.查询语文成绩排名------
------2.查询数学成绩排名------
------3.查询英语成绩排名------
------4.查询按平均值排名------
------5.删除学生信息------
------6.退出程序------
4学生成绩的平均值排序:
姓名:甘雨 学号:6 语文:136.00 数学:147.00 英语:146.00 均值:143.00
姓名:珊瑚宫心海 学号:1 语文:143.00 数学:139.00 英语:141.00 均值:141.00
姓名:八重神子 学号:13 语文:137.00 数学:143.00 英语:129.00 均值:136.33
姓名:优菈 学号:21 语文:124.00 数学:131.00 英语:141.00 均值:132.00
姓名:妮露 学号:16 语文:133.00 数学:136.00 英语:123.00 均值:130.67
姓名:胡桃 学号:27 语文:124.00 数学:131.00 英语:134.00 均值:129.67
------1.查询语文成绩排名------
------2.查询数学成绩排名------
------3.查询英语成绩排名------
------4.查询按平均值排名------
------5.删除学生信息------
------6.退出程序------
5请输入要删除的学生信息的学号:6
姓名:珊瑚宫心海 学号:1 语文:143.00 数学:139.00 英语:141.00 均值:141.00
姓名:八重神子 学号:13 语文:137.00 数学:143.00 英语:129.00 均值:136.33
姓名:优菈 学号:21 语文:124.00 数学:131.00 英语:141.00 均值:132.00
姓名:妮露 学号:16 语文:133.00 数学:136.00 英语:123.00 均值:130.67
姓名:胡桃 学号:27 语文:124.00 数学:131.00 英语:134.00 均值:129.67
------1.查询语文成绩排名------
------2.查询数学成绩排名------
------3.查询英语成绩排名------
------4.查询按平均值排名------
------5.删除学生信息------
------6.退出程序------
1学生的语文成绩排序:
姓名:珊瑚宫心海 学号:1 语文:143.00 数学:139.00 英语:141.00 均值:141.00
姓名:八重神子 学号:13 语文:137.00 数学:143.00 英语:129.00 均值:136.33
姓名:妮露 学号:16 语文:133.00 数学:136.00 英语:123.00 均值:130.67
姓名:胡桃 学号:27 语文:124.00 数学:131.00 英语:134.00 均值:129.67
姓名:优菈 学号:21 语文:124.00 数学:131.00 英语:141.00 均值:132.00
------1.查询语文成绩排名------
------2.查询数学成绩排名------
------3.查询英语成绩排名------
------4.查询按平均值排名------
------5.删除学生信息------
------6.退出程序------
2学生的数学成绩排序:
姓名:八重神子 学号:13 语文:137.00 数学:143.00 英语:129.00 均值:136.33
姓名:珊瑚宫心海 学号:1 语文:143.00 数学:139.00 英语:141.00 均值:141.00
姓名:妮露 学号:16 语文:133.00 数学:136.00 英语:123.00 均值:130.67
姓名:优菈 学号:21 语文:124.00 数学:131.00 英语:141.00 均值:132.00
姓名:胡桃 学号:27 语文:124.00 数学:131.00 英语:134.00 均值:129.67
------1.查询语文成绩排名------
------2.查询数学成绩排名------
------3.查询英语成绩排名------
------4.查询按平均值排名------
------5.删除学生信息------
------6.退出程序------
3学生的英语成绩排序:
姓名:珊瑚宫心海 学号:1 语文:143.00 数学:139.00 英语:141.00 均值:141.00
姓名:优菈 学号:21 语文:124.00 数学:131.00 英语:141.00 均值:132.00
姓名:胡桃 学号:27 语文:124.00 数学:131.00 英语:134.00 均值:129.67
姓名:八重神子 学号:13 语文:137.00 数学:143.00 英语:129.00 均值:136.33
姓名:妮露 学号:16 语文:133.00 数学:136.00 英语:123.00 均值:130.67
------1.查询语文成绩排名------
------2.查询数学成绩排名------
------3.查询英语成绩排名------
------4.查询按平均值排名------
------5.删除学生信息------
------6.退出程序------
4学生成绩的平均值排序:
姓名:珊瑚宫心海 学号:1 语文:143.00 数学:139.00 英语:141.00 均值:141.00
姓名:八重神子 学号:13 语文:137.00 数学:143.00 英语:129.00 均值:136.33
姓名:优菈 学号:21 语文:124.00 数学:131.00 英语:141.00 均值:132.00
姓名:妮露 学号:16 语文:133.00 数学:136.00 英语:123.00 均值:130.67
姓名:胡桃 学号:27 语文:124.00 数学:131.00 英语:134.00 均值:129.67
------1.查询语文成绩排名------
------2.查询数学成绩排名------
------3.查询英语成绩排名------
------4.查询按平均值排名------
------5.删除学生信息------
------6.退出程序------
6ubuntu@ubuntu:test$
在学生信息结构体中再添加一个计算平均值和按照平均值排序以及删除指定学号的学生信息相关推荐
- 定义一个学生信息结构体,包含姓名,学号,语文成绩、数学成绩,和英语成绩,定义结构体数组存放不同学生的信息,可以在终端录入学生的信息,在基础上添加一个计算平均值和按照平均值排序以及删除指定学号的学生信息
1. 代码如下: 头文件 chx.h #include<stdio.h> #include<string.h>struct chx{char name[128];int sn ...
- 11月14号作业:定义一个学生信息结构体
定义一个学生信息结构体,包含姓名学号,语数英成绩: 定义结构体数组存放不同学生的信息,可以在终端录入学生的信息,可以实现对学生成绩的排序 排序可以语文数学英语任选一个排序. 运行代码 #include ...
- C++ 定义学生信息结构体,按照学号顺序排序
定义学生信息结构体,录入学生信息,根据学生的学号顺序进行排序. struct student 定义学生信息,学生信息中Score sc 为一个结构体类型的变量,存放学生的成绩信息: input(),d ...
- java 8 list,JAVA8 ListListInteger list中再装一个list转成一个list操作
我就废话不多说了,大家还是直接看代码吧~ List collect = IntStream.range(1, 10).boxed().collect(Collectors.toList()); Lis ...
- 【Python3.7】就餐人数:在为完成练习 9-1 而编写的程序中,添加一个名为 number_served 的属性,并将其默认值设置为 0。根据这个类创建一个名为 restaurant 的实例
# [Python3.7]就餐人数:在为完成练习 9-1 而编写的程序中,添加一个名为 number_served的属性,并将其默认值设置为 0.根据这个类创建一个名为 restaurant 的实例: ...
- windows在虚拟机中(Hyper-V)中再建一个虚拟机(Hyper-v虚拟机嵌套)
在虚拟机中(Hyper-V)中再建一个虚拟机(Hyper-v虚拟机嵌套) 在虚拟机中再建一个虚拟机这种想法的是可行的,作者在这里呢是在Hyper-V中又用Hyper-v建立了一个虚拟机即虚拟机的嵌套. ...
- 在虚拟机中(Hyper-V)中再建一个虚拟机(Hyper-v虚拟机嵌套)
在虚拟机中(Hyper-V)中再建一个虚拟机(Hyper-v虚拟机嵌套) 在虚拟机中再建一个虚拟机这种想法的是可行的,作者在这里呢是在Hyper-V中又用Hyper-v建立了一个虚拟机即虚拟机的嵌套. ...
- 用Python做一个控制台程序实现图书管理器的简单功能,例如添加图书、查询库里的图书、删除图书、修改书籍信息、显示书籍信息,或者是借阅/归还...
为了实现图书管理器的功能,需要考虑如下几点: 需要定义一个图书类,包含书名.作者.出版社.借阅状态.借阅人等属性,可以使用类的构造函数来初始化这些属性. 需要定义一个图书管理器类,包含一个用于存储图书 ...
- c语言学生信息结构体录入文件,C语言—学生信息管理系统
学习了C语言结构体,链表和文件的知识之后,就可以做出一个学生信息管理系统了,下面的是我在刚学习完这块知识后写出来的,基本没什么界面,不过 能够实现 录入,添加,插入,遍历,删除,查询,并且保存到本地 ...
最新文章
- Oracle分区表详解 .
- 用户 'IIS APPPOOL\DefaultAppPool'登录失败
- 专利交底书模板_工大知识产权周 | 不说套话,看完这篇get专利技术交底书的要点!...
- 1097 Deduplication on a Linked List (25 分)_35行代码AC
- LeetCode 862. 和至少为 K 的最短子数组(前缀和+deque单调栈)
- 页面每次添加都显示最后一次访问记录spring scope=prototype 学习笔记
- 明华RD-EB读写器-读写代码
- IT计算机实习:JAVA实习报告范文(三)
- 抖音:红、蓝海品类,如何创作优质内容?
- 服务器 uefi 安装win7系统,uefi模式安装win7最新教程
- xheditor编辑器的使用
- CUDA编程实现求解单源Bellman-Ford最短 路径算法
- 用yolo-v3检测算法检测图片中的apple和damaged_apple
- MySQl排序,别名
- boundschecher
- 安装TextPad后无“Compile Java” 等选项的解决办法
- 【大数据Hadoop实战篇】
- Intel 82599网卡异常挂死原因
- BSV疯狂暴涨,最大赢家竟然是…
- 怎么使用_许昌防裂贴使用方法,怎么使用