給你一點(diǎn)思路。
專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)赤峰林西免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
1、成績(jī)單類(lèi)、班級(jí)類(lèi)、學(xué)生類(lèi)、課程類(lèi)。
其中成績(jī)單中有其它類(lèi)對(duì)象,班級(jí)類(lèi)中有學(xué)生對(duì)象,學(xué)生類(lèi)中有課程對(duì)象。分別用Vector 或者ArrayList存放對(duì)象。
2、序列化所有對(duì)象保存到文件中。但是這樣只能從從程序中存入文件,打開(kāi)文件則是亂碼顯示。所以還是用數(shù)據(jù)庫(kù)比較好。建立4張表,存放相應(yīng)的信息,再對(duì)其進(jìn)行SQL操作。
3、就是對(duì)數(shù)據(jù)一系列查詢、插入、修改和刪除操作。建議用Vector存放對(duì)象操作比較方便。
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner x = new Scanner(System.in);
System.out.println("請(qǐng)輸入成績(jī)");
int a=x.nextInt();
int n=a/10; //百分制轉(zhuǎn)換為等第
switch(n){
case 10: //表示如果n=10,也就是一百分,輸出A
case 9:
System.out.println("A");
break;
case 8:
System.out.println("B");
break;
case 7:
System.out.println("C");
break;
case 6:
System.out.println("D");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
System.out.println("FAIL"); //低于六十分的輸出不及格 FAIL
break;
default:System.out.println(" 請(qǐng)輸入一個(gè)正確的成績(jī)"); //輸入的不是百分制,報(bào)錯(cuò)
}
}
}
Java 8 以上(包含java8) Lambda 方式,這種方式比較簡(jiǎn)潔,代碼如下:
import?java.util.ArrayList;
import?java.util.List;
import?java.util.Scanner;
public?class?App20?{
public?static?void?main(String[]?args)?{
Scanner?scanner?=?new?Scanner(System.in);
ListFloat?scores?=?new?ArrayList();
System.out.println("請(qǐng)輸入10個(gè)人的成績(jī):");
for?(int?i?=?0;?i??10;?i++)?{
scores.add(scanner.nextFloat());
}
float?max?=?scores.stream().max((x,?y)?-?Float.compare(x,?y)).get();
System.out.println("最高分:"?+?max);
float?min?=?scores.stream().min((x,?y)?-?Float.compare(x,?y)).get();
System.out.println("最低分:"?+?min);
float?average?=?scores.stream().reduce(0.0f,?Float::sum)?/?scores.size();
System.out.println("平均分:"?+?average);
scores.sort((x,?y)?-?Float.compare(x,?y));
System.out.println("從小到大分?jǐn)?shù)排序:");
scores.forEach(s?-?System.out.print(s?+?"?"));
long?n?=?scores.stream().filter(r?-?r??average).count();
System.out.println("\n高于平均分的有"?+?n?+?"個(gè)");
}
}
傳統(tǒng)方式,如下:
import?java.util.Arrays;
public?class?App21?{
public?static?void?main(String[]?args)?{
float[]?scores?=?new?float[]?{?10f,?9f,?8f,?7f,?6f,?5f,?4f,?3f,?2f,?1f?};
float?max?=?Float.MIN_VALUE;
for(float?score?:?scores)?{
if?(score??max)?{
max?=?score;
}
}
System.out.println("最高分:"?+?max);
float?min?=?Float.MAX_VALUE;
for(float?score?:?scores)?{
if?(score??min)?{
min?=?score;
}
}
System.out.println("最低分:"?+?min);
float?sum?=?0;
for(float?score?:?scores)?{
sum?+=?score;
}
float?average?=?sum?/?scores.length;
System.out.println("平均分:"?+?average);
//?從小到大排序
Arrays.sort(scores);
System.out.println("從小到大分?jǐn)?shù)排序:");
for(float?score?:?scores)?{
System.out.print(score?+?"?");
}
int?n?=?0;
for(float?score?:?scores)?{
if?(score??average)
n++;
}
System.out.println("\n高于平均分的有"?+?n?+?"個(gè)");
}
}
//
import?java.util.Scanner;
//
public?class?Test2014?{
public?static?void?main(String[]?args)?{
Scanner?sc?=?new?Scanner(System.in);
System.out.println("輸入學(xué)生人數(shù):");
int?n?=?sc.nextInt();
int?sum?=?0;
for(int?i?=?1;i?=?n;++i){
System.out.println("輸入第"+i+"個(gè)學(xué)生成績(jī):");
sum?+=?sc.nextInt();
}
System.out.println("總成績(jī)是:"+sum+"?"+"平均成績(jī)是:"+(double)sum/n);
}
}
思路: 排序肯定還是要排的, 按照J(rèn)ava成績(jī)來(lái)進(jìn)行排練. 然后排名的時(shí)候,進(jìn)行比較. 如果這一名的成績(jī)和上一名的相同, 那么名次相同, 如果比上一名分?jǐn)?shù)低,那么排名加一.
可以使用傳統(tǒng)的,集合排序,輸出. 也可以使用java8新提供的Stream API進(jìn)行操作
參考代碼如下
import?java.util.*;
import?java.util.Map.Entry;
import?java.util.stream.Collectors;
class?Stu?{//?學(xué)生類(lèi)
private?String?name;
private?double?score;//?成績(jī)
public?Stu(String?name,?double?score)?{
this.name?=?name;
this.score?=?score;
}
public?double?getScore()?{
return?score;
}
public?void?setScore(double?score)?{
this.score?=?score;
}
public?String?getName()?{
return?name;
}
public?void?setName(String?name)?{
this.name?=?name;
}
}
//測(cè)試類(lèi)
public?class?TestDemo?{
public?static?void?main(String[]?args)?{
ListStu?stus?=?Arrays.asList(new?Stu("Tom",?79.5),?new?Stu("Jack",?52),?new?Stu("Amdy",?79.5),
new?Stu("Lucy",?68),?new?Stu("Cherry",?79.5),?new?Stu("Jerry",?52),?new?Stu("Sweet",?91),
new?Stu("Solem",?65));
fun1(stus);
System.out.println("---------------分割線---------------------");
fun2(stus);
}
//?方法一:傳統(tǒng)的方法
public?static?void?fun1(ListStu?stus)?{
//?按照成績(jī)排序
stus.sort(new?ComparatorStu()?{
@Override
public?int?compare(Stu?s1,?Stu?s2)?{
return?-Double.compare(s1.getScore(),?s2.getScore());
}
});
int?index?=?0;//?排名
double?lastScore?=?-1;//?最近一次的分
for?(int?i?=?0;?i??stus.size();?i++)?{
Stu?s?=?stus.get(i);
if?(Double.compare(lastScore,?s.getScore())!=0)?{?//?如果成績(jī)和上一名的成績(jī)不相同,那么排名+1
lastScore?=?s.getScore();
index++;
}
System.out.println("名次:"?+?index?+?"\t分?jǐn)?shù)"?+?s.getScore()?+?"\t名字"?+?s.getName());
}
}
//?方法2:?Java8開(kāi)始支持的Lambada表達(dá)式配合?Stream?API?來(lái)進(jìn)行分組排序
public?static?void?fun2(ListStu?stus)?{
ListEntryDouble,?ListStu?list?=?stus.stream().collect(Collectors.groupingBy(Stu::getScore)).entrySet()
.stream().sorted((s1,?s2)?-?-Double.compare(s1.getKey(),?s2.getKey())).collect(Collectors.toList());
int?index?=?1;
for?(EntryDouble,?ListStu?entry?:?list)?{
System.out.print("名次:"?+?index?+?"\t分?jǐn)?shù):"?+?entry.getKey()?+?"\t名字");
entry.getValue().forEach((s)?-?System.out.print("??"?+?s.getName()));
System.out.println();
index++;
}
}
}
輸出結(jié)果
名次:1 分?jǐn)?shù)91.0 名字Sweet
名次:2 分?jǐn)?shù)79.5 名字Tom
名次:2 分?jǐn)?shù)79.5 名字Amdy
名次:2 分?jǐn)?shù)79.5 名字Cherry
名次:3 分?jǐn)?shù)68.0 名字Lucy
名次:4 分?jǐn)?shù)65.0 名字Solem
名次:5 分?jǐn)?shù)52.0 名字Jack
名次:5 分?jǐn)?shù)52.0 名字Jerry
名次:1 分?jǐn)?shù):91.0 名字??Sweet
名次:2 分?jǐn)?shù):79.5 名字??Tom??Amdy??Cherry
名次:3 分?jǐn)?shù):68.0 名字??Lucy
名次:4 分?jǐn)?shù):65.0 名字??Solem
名次:5 分?jǐn)?shù):52.0 名字??Jack??Jerry
---------------分割線---------------------
名次:1 分?jǐn)?shù):91.0 名字??Sweet
名次:2 分?jǐn)?shù):79.5 名字??Tom??Amdy??Cherry
名次:3 分?jǐn)?shù):68.0 名字??Lucy
名次:4 分?jǐn)?shù):65.0 名字??Solem
名次:5 分?jǐn)?shù):52.0 名字??Jack??Jerry
新聞標(biāo)題:java考試成績(jī)代碼 java成績(jī)單代碼
瀏覽地址:http://jinyejixie.com/article4/dochjie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、ChatGPT、虛擬主機(jī)、網(wǎng)頁(yè)設(shè)計(jì)公司、自適應(yīng)網(wǎng)站、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)