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]);
}
隨便寫來了個自,應該可以。
這題挺簡單的啊