题目:

/*
   输入4个同学的姓名学号,语文数学英语信息计算平均成绩,按平均成绩高低排序输出
*/

代码部分:

C++实现

#include<iostream>
using namespace std;struct student{char name[50];   //char接收是一个字符char num[50];int ch;               //语文int math;           //数学int en;             //英语double ave;     //平均成绩
};int main(){student stu[4];student stemp;for(int i=0;i<4;i++){cin>>stu[i].name>>stu[i].num>>stu[i].ch>>stu[i].math>>stu[i].en;stu[i].ave=(stu[i].ch+stu[i].math+stu[i].en)/3;}//冒泡排序for(int k=0;k<3;k++){for(int j=0;j<3-k;j++){if(stu[j].ave<stu[j+1].ave){stemp=stu[j];              //结构体替换stu[j]=stu[j+1];stu[j+1]=stemp;//cout<<stu[4].name<<" "<<stu[4].num<<" "<<stu[4].ch<<" "<<stu[4].math<<" "<<stu[4].en<<endl;}}}cout<<"平均成绩由高到低排序为:"<<endl;for(int a=0;a<4;a++){cout<<stu[a].name<<" "<<stu[a].num<<" "<<stu[a].ch<<" "<<stu[a].math<<" "<<stu[a].en<<endl;}return 0;}

运行结果:

java实现

小总结:之前一直想着用C++的思路,就java里的类相当于C++里的结构体,然后我就想直接像C++里一样,直接实例化的时候弄成Student[] stu = new Student[6]这个样子,一个数组,但是数组类型为student类,发现是可以实例化的,但是它一直报stu[i] is null,就存不进去数据。在网上找了很多,这样是可以实现,但是感觉麻烦和结构不分明。然后我就想到了list集合,里面装的类型为student不就好了。

package CSDNTest;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;public class AverageScore {public static void main(String[] args) throws IOException {Scanner sc = new Scanner(System.in);System.out.print("人数为:");int n = sc.nextInt();System.out.print("输入姓名,编号,语文,数学,英语:");BufferedReader br=new BufferedReader(new InputStreamReader(System.in));List<Student> listStu = new ArrayList<Student>();while (n>0) {           //有n个学生String[] s=br.readLine().split(" ");//用空格隔开所输入的数据int c=Integer.parseInt(s[2]);int m=Integer.parseInt(s[3]);int e=Integer.parseInt(s[4]);int a=(c+m+e)/3;Student stu =new Student();stu.name = s[0];stu.num = s[1];stu.ch = c;stu.math = m;stu.en = e;stu.ave = a;listStu.add(stu);if (n>1) {System.out.print("输入姓名,编号,语文,数学,英语:");}n--;}/*System.out.print("结果1:"+listStu.get(0).ave);Collections.swap(listStu, 0, 1);System.out.print("结果:"+listStu.get(0).ave);*///冒泡排序int i, j;for (j = 0; j < listStu.size() - 1; j++){for (i = 0; i < listStu.size() - 1 - j; i++)if (listStu.get(i).ave < listStu.get(i+1).ave){Collections.swap(listStu, i, i+1);//list是属于collection的,这个方法就是交换}}for (i = 0; i < listStu.size(); i++) {System.out.println(listStu.get(i));}}
}//之前的思路/*for(int k=0;k<4;k++){ for(int j=0;j<4-k;j++){ if(listStu.get(j).ave<listStu.get(j+1).ave){listStu.get(4)=listStu.get(j); //结构体替换 stu[j]=stu[j+1]; stu[j+1]=stu[4];}System.out.println(stu[4].name);System.out.print(stu[4].en); } }}*/
//创建一个学生类
class Student{String name;  String num;int ch;              //语文int math;           //数学int en;             //英语double ave;     //平均成绩//重写输出public String toString(){return "Student[name="+name+", num="+num+", ch="+ch+", math="+math+", en="+en+"]";}
}

输入4个同学的姓名学号,语文数学英语信息计算平均成绩,按平均成绩高低排序输出java,c++实现相关推荐

  1. 集合练习。学生信息包括学号、姓名、出生日期、性别。把N个学生的信息放入一个集合中。可以根据学号,对学生信息进行检索。并可以根据生日进行排序输出。

    集合练习.学生信息包括学号.姓名.出生日期.性别.把N个学生的信息放入一个集合中.可以根据学号,对学生信息进行检索.并可以根据生日进行排序输出. Student.java package Collec ...

  2. 2017山东单招计算机试题,2017年山东单独招生模拟试题(语文/数学/英语)

    2017年山东省单招即将来临,很多学生已在为单招做准备,2016年山东单招学校共43所,预计2017年也会有这么多甚至更多的学校加入,近年来考单招的学生越来越多,竞争也比较大了,因此一定要多做一些模拟 ...

  3. 《JAVA练习题目2》 输入十个学生的考试成绩,将及格学生的成绩从高到低排序输出。

    题目内容: 输入十个学生的考试成绩,将及格学生的成绩从高到低排序输出. 输入格式: 10个学生的成绩,以空格分割. 输出格式: 及格成绩从高到低,成绩之间用空格分隔,最后一个分数后面也有一个空格.如果 ...

  4. 场景:一个年级,相当链表A ,该年级5个班,每个班5个人,相当于链表B1--B5:做一个学生成绩管理系统学生成绩有语文 数学 英语功能: 录入成绩 找三科总分的最高分 最低分 算出平均分

    #include <stdio.h> #include <stdlib.h>struct Student//学生结构体 {char* name;int chinese;int ...

  5. 青海省单招单考计算机历年真题,2016年青海高职单招试题(语文/数学/英语)

    原标题:2016年青海高职单招试题(语文/数学/英语) 2016年青海高职单招试题(语文/数学/英语) 据了解,2015年青海总共有5所高职单招院校具有单独招生的资格,因为每年的单招院校名单几乎相同, ...

  6. C语言实现结构体输入学号姓名成绩并按照成绩高低排序输出

    #include <stdio.h> struct student{char name[10];long member;int score; } stu[100],stutemp; //定 ...

  7. 数学成绩英语成绩c语言,用链表输入一个正整数n,再输入n 个学生的学号和数学,英语,C语言成绩,要求...

    #include /* 一个学生的信息 */ struct Student{ int id; // 学号 double m_grade; // 数学成绩 double E_grade; // 英语成绩 ...

  8. c语言学习之结构篇代码演示样例-输入n个同学的姓名,数学英语成绩,依照平均分从低到高排序并输出...

    #include<stdio.h> void main(){ const int count = 5;//定义数量 struct student{ char name[80]; float ...

  9. 创建一个Student的类,输出姓名,学号,性别,语文数学英语成绩,并求和,求平均数

    import java.util.Scanner; class Student{     String name="";     long sc;     float math,C ...

最新文章

  1. 使用AMDU工具从无法MOUNT的DISKGROUP中抽取数据文件
  2. Collection集合中的 contains 和 remove 使用深入——为什么要重写equals() ?
  3. 哥大计算机工程申请入口和登陆入口
  4. boost::posix_time模块实现闹钟的测试程序
  5. JS----JavaScript中数组扁平化
  6. ustc linux 网络通,USTC 网络通脚本
  7. 认识探头(一) (转)
  8. 使用环境变量来配置 Teams App 的 manifest
  9. MaxCompute技术人背后的故事:从ApacheORC到AliORC
  10. 程序员常用的泛型机制究竟怎么玩?
  11. Linux下使用awk批量删除共享内存
  12. 【luogu3368】模板 树状数组 2
  13. php choosewxpay fail,人人商城常见问题解决方案
  14. 千图成像!祝可爱的小伙伴们圣诞快乐!给女朋友一个惊喜吧!
  15. LibreELEC 8.2.4:支持最新Raspberry Pi 3 Model B+
  16. Lession11 集合和泛型(ArrayList方法、Arraylist类、ArrayList添加对象、ArrayList长度、HashTable类、Hashtable类练习-----)
  17. 【可达编程】P0815. 歌手大赛
  18. Vue实例基础5 (vue 条件渲染与列表渲)
  19. linux pps驱动实现gps授时
  20. JavaScrip 学习笔记

热门文章

  1. 数据库基础笔记(MySQL)3 —— 基础操作
  2. python中mod运算符_Python中的数学运算操作符使用进阶
  3. c语言实现java接口_五分钟带你了解Java是如何从容而优雅地实现接口数据校验
  4. perfmon 端口修改_Jmeter 5.3 服务器资源监控插件 PerfMon 使用介绍
  5. 蓝云公布2019云生态战略,如何解决企业上云关键问题?
  6. 搜索插入位置的golang实现
  7. CentOS 6.5 apache源码安装2.0版
  8. Bridge网络模式下Linux虚拟机和主机进行通信
  9. nginx使用HttpImageFilterModule
  10. 查询name和age当name相同时选择age最大的