java要求按學生成績將學生排序
A. Java編程 要求:(1)輸入某班級學生的姓名、分數; (2)對(1)的分數進行排序,按分數從大到小輸出
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class Counter {
public static void main(String args[]) throws IOException{
Reader reader=new FileReader(new File("D:/a.txt"));
int length=-1;
char[] buf=new char[512];
StringBuilder builder=new StringBuilder();
int phrase=0;
int blank=0;
while((length=reader.read(buf))!=-1){
builder.append(buf, 0, length);
}
reader.close();
int i=0;
for(;i<builder.length()-1;i++){
if(builder.charAt(i)==' '||.charAt(i)=='\t') {
blank ++;
}
//this will depends on OS, linx unix \r but windows is \r\n, i believe you are in windows
if(builder.charAt(i)=='\r'&&builder.charAt(i+1)=='\n'){
phrase ++;
}
}
if(builder.charAt(i)==' '||builder.charAt(i)=='\t') {
blank ++;
}
System.out.println("total chars: "+builder.length());
System.out.println("total words: "+builder.toString().split(" ").length);
System.out.println("total blanks: "+blank);
System.out.println("total phrases: "+phrase);
}
}
B. java實列化十個學生,按分數排序
publicclassDemo{
publicstaticvoidmain(Stringargs[])
{
Student[]s=newStudent[10];
for(inti=0;i<s.length;i++){
s[i]=newStudent((101+i)+"","Tom"+(i+1),(int)(Math.random()*100));
}
System.out.println("未排序前:");
print(s);
for(inti=0;i<s.length;i++){
for(intj=i;j<s.length;j++){
if(s[i].getChengji()<s[j].getChengji()){
Studentss=s[i];
s[i]=s[j];
s[j]=ss;
}
}
}
System.out.println("排序後:");
print(s);
}
privatestaticvoidprint(Student[]s){
for(Studentas:s)
System.out.println(as);
}
}
classStudent{
privateStringid;
privateStringname;
privatedoublechengji;
publicStudent(Stringid,Stringname,doublechengji){
this.id=id;
this.name=name;
this.chengji=chengji;
}
publicdoublegetChengji(){
returnthis.chengji;
}
publicStringtoString(){
return"編號:"+this.id+",名字:"+this.name+",成績:"+this.chengji;
}
}
C. 用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;
}
}
}
}
}
D. 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]);
}
}
}
E. Java製作學生排序系統,通過學生編號,姓名,課程編號,成績排序,讀文件獲取信息,根據文件信息進行排序
先簡單的分析過程,然後貼出代碼.
一:分析文件
文件信息第一行 "5" 表示後面有5條信息
學生內信息有5行,每一行使容用了逗號隔開
學生信息的後面是排序的規則1代表 按照第一列排序,2代表按照第二列排序,..A代表正序,D代表倒序.
關於排序還要注意分析文檔,比如按照課程名排序,如果 課程名相同,那麼 就按照成績從低到高排列
文件信息末尾行 "0" 表示文檔結束
二:關於排序的語法;
1: 傳統的排序語法, 可以使用匿名內部類, 但是顯得比較繁瑣,
2:java8後可以使用流處理加上lambda表達式來簡化代碼.
三: 代碼到網盤下載網路網盤代碼下載7天有效
F. 用java定義學生類(學號、姓名、成績)。用列表list存放班級學生信息。然後按照成績排序,並輸出學生信息
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Admin {
public static void main(String... args) {
List data = new ArrayList();
Student s0 = new Student();
s0.setNo("000");
s0.setName("a");
s0.setChengji(100.0);
data.add(s0);
Student s1 = new Student();
s1.setNo("001");
s1.setName("b");
s1.setChengji(99.0);
data.add(s1);
Student s2 = new Student();
s2.setNo("002");
s2.setName("c");
s2.setChengji(98.0);
data.add(s2);
System.out.println("排序前");
show(data);
System.out.println("排序後");
sort(data);
show(data);
}
private static void sort(List data) {
Collections.sort(data, new Comparator() {
public int compare(Object o1, Object o2) {
Student s1 = (Student) o1;
Student s2 = (Student) o2;
return (int) (s1.getChengji() - s2.getChengji());
}
});
}
private static void show(List data) {
for (int i = 0; i < data.size(); i++) {
System.out.println(data.get(i));
}
}
}
class Student {
private String no;
private String name;
private double chengji;
public double getChengji() {
return chengji;
}
public void setChengji(double chengji) {
this.chengji = chengji;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String toString() {
return "學號:" + no + ",姓名:" + name + ",成績:" + chengji;
}
}
結果
排序前
學號:000,姓名:a,成績:100.0
學號:001,姓名:b,成績:99.0
學號:002,姓名:c,成績:98.0
排序後
學號:002,姓名:c,成績:98.0
學號:001,姓名:b,成績:99.0
學號:000,姓名:a,成績:100.0
G. 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
H. java定義一個用於存放學生對象的一維數組StudentInfo要求數組中的學生對象按成績升序排列並輸出數組元素
閑著無聊 送你了
package test;
public class Student {
private String name;
private int age;
public Student(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package test;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Student [] studentInfo=new Student[5];
studentInfo[0]=new Student("張", 10);
studentInfo[1]=new Student("張", 9);
studentInfo[2]=new Student("李", 3);
studentInfo[3]=new Student("王1", 7);
studentInfo[4]=new Student("王2", 88);
Student [] newStudentInfo=Main.selectSort(studentInfo);
for(int i=0;i<newStudentInfo.length;i++){
System.out.println(newStudentInfo[i].getName()+":"+newStudentInfo[i].getAge());
}
}
public static Student [] selectSort(Student [] studentInfo){//選擇排序演算法
for (int i=0;i<studentInfo.length-1 ;i++ ){
int min=i;
for (int j=i+1;j<studentInfo.length ;j++ ){
if (studentInfo[min].getAge()>studentInfo[j].getAge()){
min=j;
}
}
if (min!=i){
Student temp=studentInfo[i];
studentInfo[i]=studentInfo[min];
studentInfo[min]=temp;
}
}
return studentInfo;
}
}
I. java根據學生總分按順序排名,怎麼調用排序無法應用。求大神修改!
import java.util.Arrays;
public class Student {
String name,number;
double s1,s2,s3,sum;
//student方法,返回值為一個學生3門課程分數之和
public double Student(String n,String no,double x1,double x2,double x3){
=n;
number=no;
s1=x1;
s2=x2;
s3=x3;
return s1+s2+s3;
}
//main方法
public static void main(String args[]){
Student stu=new Student();//實例化對象
double[] s=new double[5];
//調用stu方法,將分數和給一個double數組
s[0]=stu.Student("Zhangsan","20140001",89,87,90);
s[1]=stu.Student("Lisi","20140002",88,87,90);
s[2]=stu.Student("Wangwu","20140003",89,80,90);
s[3]=stu.Student("Zhaohong","20140004",89,87,78);
s[4]=stu.Student("Gaozi","20140005",81,87,90);
Arrays.sort(s);//排序方法,從小到大
for(int i=0;i<5;i++){
System.out.println(s[i]);
}
}
}
*******************************************
有注釋,應該能看懂
J. 用Java語言寫一個學生成績錄入排序查詢的代碼!
結果:
學生:回2成績答: 0
學生:3成績: 15
學生:1成績: 43
學生:8成績: 45
學生:7成績: 48
學生:0成績: 51
學生:4成績: 69
學生:9成績: 69
學生:5成績: 94
學生:6成績: 98