java将学生成绩由高到底的排序
㈠ 用JAVA程序编写:输入10个学生的成绩,分数由高到低排序
package test;
import java.util.Scanner;
public class test{
public static void main(String[] args)
{
test ts = new test();
Scanner sc = new Scanner(System.in); //Scanner类的构造方法。
int a[] = new int[10];
System.out.println("输入10个同学的成绩,中间以空格隔开");
for (int i = 0; i < a.length; i++) {
a[i] = sc.nextInt(); //依次输入数字中间以空格隔开。
}
test.maopao(a); //调用排序方法。
for (int i = 0; i < a.length; i++)
System.out.println(a[i]);
}
public static void maopao(int array[]) { //定义冒泡排序方法。
int i;
int k;
for (i = 0; i < array.length; i++) {
for (k = 0; k < array.length - 1 - i; k++) {
if (array[k] < array[k + 1]) {
int temp = array[k];
array[k] = array[k + 1];
array[k + 1] = temp;
}
}
}
}
}
㈡ java 输入n个学生信息,然后通过程序得到所有学生信息按照成绩从高到低排列。
publicstaticvoidmain(String[]args){
Comparator_Testct=newComparator_Test();//实例化
Set<Student>set=newTreeSet<Student>(ct);//定义一个Set集合,元素为Student类型(参数为ct,即Comparator_Test类型,就是说这个集合的比较规则是依据这个类型)
inti=1;//变量,保存人数
Iterator<Student>it=addset(set).iterator();//定义一个迭代器,其值为addset方法的返回值
System.out.println("姓名 "+"语文 "+"数学 "+"总分 "+"名次 ");//打印列表标头信息
while(it.hasNext()){//如果迭代器中有元素,执行循环
Studentstu=it.next();//返回一个Student对象
System.out.println(stu.getName()+" "+stu.getChscore()+" "+stu.getMhscore()+" "+stu.getTotal()+" "+"第"+i+"名");//打印这个Student对象的信息
i++;//将人数进行累加
}
}
//根据系统输入数据,返回一个Student类型的对象
publicstaticStudentadd(){
intchscore=0,mhscore=0;//整型变量分别保存语文与数学的成绩
Scannerscan=newScanner(System.in);//系统输入
System.out.println("输入一个学生名称");//提示信息
Stringname=scan.next();//保存学生名称
Scannerscan1=newScanner(System.in);
System.out.println("输入"+name+"的语文成绩,必须是一个整数且不能大于100");
chscore=scan1.nextInt();
Scannerscan2=newScanner(System.in);
System.out.println("输入"+name+"的数学成绩,必须是一个整数且不能大于100");
mhscore=scan2.nextInt();
//初始化一个Student实例,并为其各个属性赋值(通过系统输入的数据)
Studentstu=newStudent();
stu.setName(name);
stu.setChscore(chscore);
stu.setMhscore(mhscore);
stu.setTotal(stu.getChscore()+stu.getMhscore());
returnstu;
}
//针对不同的系统操作,返回不同的集合对象
publicstaticSet<Student>addset(Set<Student>set){
set.add(add());//为集合添加一个Student对象
Scannerscanner=newScanner(System.in);//系统输入
System.out.println("是否继续添加学生?输入"+"【是】"+"继续添加,输入"+"【否】"+"结束添加。");
Strings=scanner.next();
if(s.equals("是")){//继续添加
addset(set);//递归调用
}else{
returnset;
}
returnset;//返回集合
}
就这样吧····
㈢ 编写成绩排序程序。按学生的序号输入学生的成绩,按照分数由高到低的顺序输出学生
#include<iostream.h>
struct
std
//定义学生结构体,包含学好number,成绩score,名次mc
{
int
number;
int
score;
int
mc;
};
#define
N
100
int
main()
{
int
i,j,max,num;
static
int
t=1;
struct
std
stent[N],temp;
cin>>max;
for(i=0;i<max;i++)
{
cin>>stent[i].number;
cin>>stent[i].score;
}
for(i=0;i<max-1;i++)
//冒泡法排序,从高分到低分
{
for(j=0;j<max-i;j++)
if(stent[j].score<stent[j+1].score)
{
temp=stent[j];
stent[j]=stent[j+1];
stent[j+1]=temp;
}
}
for(i=0;i<max-1;i++)
//通过前面的冒泡法排序,已知成绩从高到低排序,就可以确定学生的名次,成绩相同,名次相同,否侧加一
{
if(stent[i].score>stent[i+1].score)
{
stent[i].mc=t++;
stent[i+1].mc=t;
}
else
if(stent[i].score=stent[i+1].score)
{
stent[i].mc=t;
stent[max-1].mc=t;
}
}
cout<<"
成绩
"<<"
学号
"<<"
名次
"<<endl;
for(i=0;i<max;i++)
cout<<"
"<<stent[i].score<<"
"<<
stent[i].number<<"
"<<stent[i].mc<<endl;
cout<<"******************************************************************************"<<endl;
for(i=1;i<=stent[max-1].mc;i++)
//输出相同名次的人数和学号,同名次的学号输出在同一行中,一行最多输出10个学号
{
num=0;
for(j=i-1;j<=max-1;j++)
{
if(i==stent[j].mc)
{
num++;
cout<<stent[j].number<<"
";
}
if(0==num%10)
cout<<endl;
}
cout<<"第"<<i<<"名有:"<<num<<"个"<<endl;
}
return
0;
}
㈣ java中调用sort 使学生成绩由小到大排序 代码怎么写
根据你这要求,只有一个办法,但是有点约束:
import java.util.Arrays;
import java.util.Collections;
public class Test {
public static void main(String[] args) {
//注意,只能用对象类型,不可版以使用简单类型 如权int[] num则报错
Integer[] num = {5,8,3,9,1};
//如果是num是List或 Set,则用Collections.sort(num,Collections.reverseOrder());
Arrays.sort(num,Collections.reverseOrder());
for(int i=0;i<num.length;i++){
System.out.println(num[i]);
}
}
}
㈤ java,按照身高对学生进行排序,怎么编写
import java.util.ArrayList;
import java.util.List;
import com.lili.task.TaskSchelerException;
public class Student implements Comparable{
/**
* 测试
* @param args
* @throws TaskSchelerException
*/
public static void main(String[] args) throws Exception {
Student [] ss = new Student[6];
ss[0] = new Student();
ss[0].setId("100");
ss[0].setName("张一");
ss[0].setStature(180.1f);
ss[1] = new Student();
ss[1].setId("200");
ss[1].setName("张三");
ss[1].setStature(170.0f);
ss[2] = new Student();
ss[2].setId("100");
ss[2].setName("张二");
ss[2].setStature(179.3f);
ss[3] = new Student();
ss[3].setId("300");
ss[3].setName("张三");
ss[3].setStature(190.1f);
ss[4] = new Student();
ss[4].setId("400");
ss[4].setName("张四");
ss[4].setStature(170.1f);
ss[5] = new Student();
ss[5].setId("500");
ss[5].setName("张五");
ss[5].setStature(168.1f);
System.out.println("--------排序前---------"+"\n"+java.util.Arrays.asList(ss).toString());
java.util.Arrays.sort(ss);
System.err.println("--------排序后---------"+"\n"+java.util.Arrays.asList(ss).toString());
}
//学号
private String id;
//姓名
private String name;
//身高
private float stature;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getStature() {
return stature;
}
public void setStature(float stature) {
this.stature = stature;
}
/**
* 重写 对象比较大小方法
*/
public int compareTo(Object o) {
if(o instanceof Student){
if(o == null){
return 1;
}else{
float f = this.stature -((Student)o).getStature();
return (f>0 ? 1 : f ==0 ? 0 : -1);
}
}
return 0;
}
public String toString() {
return "{ 学号:"+this.id+" , 姓名:"+this.name+" , 身高:"+this.stature+" }";
}
}
㈥ 用函数编程的思想写先输入某班30个学生某门课的成绩,对全班30个学生成绩进行由高到底排序,编出此程
用什么语言???
下面是Java的实现,其他语言实现思版路权相同:
publicstaticint[]sort(int[]args){
for(inti=0;i<args.length-1;i++){
for(intj=i+1;j<args.length;j++){
if(args[i]>args[j]){
inttemp=args[i];
args[i]=args[j];
args[j]=temp;
}}}
returnargs;}
㈦ JAVA有关学生成绩排序的问题
return name+"\t"+id+"\t"+sex+grade; grade 是什么意思
还有为什么定义内部类?sudent 是sorts的内部类
math 是什么意思?没声明也没调用啊
students[0]=new Student("xiaoming",19,"male");
students[1]=new Student("xiaoli",20,"male");//两位学生
没有这Student()构造方法
一下是我给你改的
如果要排序的话价格方法就行了
在方法里实现sort(student)
package com.text;
public class Sorts {
class Student {
private String name;
private int id;
private String sex;
// 这里------
private Grade g[] = new Grade[3];// 三门课
// 这里------
public Student() {
}
// 这里------
public Student(String name, int id, String sex) {
this.name = name;
this.id = id;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getid() {
return id;
}
public void setid(int id) {
this.id = id;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Grade[] getG() {
return g;
}
public void setG(Grade[] g) {
this.g = g;
}
// 这里------
public String toString() {
return name + "\t" + id + "\t" + sex + "\t" +g[0].toString()+"\t" +g[1].toString()+"\t" +g[0].toString();
}
}// class Student
class Grade {
private int grade;
private int value;
public Grade(int grade, int value) {
this.grade = grade;
this.value = value;
}
public int getGrade() {
return grade;
}
public void setgrade(int grade) {
this.grade = grade;
}
public int getValue() {
return value;
}
public void setvalue(int value) {
this.value = value;
}
// 这里------
public String toString() {
return "grade:" + this.grade+"\t" + "value:" + this.value;
}
}// class Grade
public static void main(String args[]) {
Student[] students = new Student[2];
// 这里------
students[0] = new Sorts().new Student("xiaoming", 19, "male");
students[1] = new Sorts().new Student("xiaoli", 20, "male");// 两位学生
Grade[] g = new Grade[3];// 三门成绩
g[0]=new Sorts().new Grade(1,3);
g[1]=new Sorts().new Grade(2,4);
g[2]=new Sorts().new Grade(3,4);
students[0].setG(g);
students[1].setG(g);
for (Student student : students)
System.out.println(student);
}// main
}// class sorts
㈧ java成绩的排序,20名同学以冒泡排序进行从高到低的顺序排序。我往实验报告上写,求帮助。
public class Max{
public static void BubbleSort(int arrar[])内{
int i,j;容
int len =array.length;
int tmp;
for(i=0;i<len-1;++i){
for(j=len-1;j>i;--j){
if(array[j]<array[j-1]){
tmp=array[j];
array[j]=array[j-1];
array[j-1]=tmp;
}
}
}
}
public static void main(String[]args){
int a[]={5,4,9,7,0,15,20,14,21,69,30,12,78,99,17,123,456,480,452,789};
BubbleSort(a);
for(int i=1;i<a.length;i++){
System.out.println(a[i]);
}
}
}
这是我写的“冒泡法”。谢谢。
㈨ 输入10个学生的成绩到一个数组里,将这些学生成绩由高到低排序
#include "stdio.h"
void main()
{
int a[10],b,i;
printf("input 10 int:\n");
for (i=0;i<10;++i)
scanf("%d",&a[i]);
for (i=0;i<9;++i)
if (a[i]<a[i+1])
{b=a[i],a[i]=a[i+1],a[i+1]=b,i=-1;}
for (i=0;i<10;++i)
printf("%5d",a[i]);
}
随便写来了个自,应该可以。
这题挺简单的啊