扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
import java.util.Random;
网站的建设创新互联专注网站定制,经验丰富,不做模板,主营网站定制开发.小程序定制开发,H5页面制作!给你焕然一新的设计体验!已为混凝土搅拌机等企业提供专业服务。
public class RandomDemo {
public static void main(String[] args) {
Random r = new Random();
float random = r.nextFloat();
float random2 = random * 100;
String grade = String.format("%.1f",random2);
//System.out.println(grade);
float grade2 = Float.parseFloat(grade);
if(grade2 = 90){
System.out.println("A");
}else if(grade2 = 60 grade2 90){
System.out.println("B");
}else{
System.out.println("C");
}
}
}
public static void main(String[] args) {
double scores[] = new double[5];
double total = 0;
double avg = 0;
double max = 0;
double min = 0;
int count=0;
String inputStr=null;
System.out.println("请输入5名学生的成绩:");
Scanner input = new Scanner(System.in);
while(count5){
try{
if(count 5){
System.out.println("请输入第"+(count+1)+"个分数:");
}
inputStr=input.nextLine();
scores[count++]=Double.valueOf(inputStr.trim());
}catch(Exception e){
if(inputStr!=null "exit".equals(inputStr.trim())){
System.out.println("您已成功结束程序");
System.exit(0);
}
System.out.println("若想结束请输入:exit");
System.out.print("您输入的分数不是数值类型,");
count--;
}
}
input.close();
Arrays.sort(scores);
min=scores[0];
max=scores[scores.length-1];
for(double score :scores){
total += score;
}
avg=total/scores.length;
System.out.println("总成绩是" + total);
System.out.println("最高分是" + max);
System.out.println("最低分是" + min);
System.out.println("平均分是" + avg);
}
//-------------------------------------------------------------------------
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while(true){
Double[] scores = null;
double total = 0;
double avg = 0;
double max = 0;
double min = 0;
int count=1;
ListDouble inputScores=new ArrayListDouble();
String inputStr=null;
System.out.println("请输入要统计学生的成绩(理论上可以输入无限个,前提是你有那么大的内存):");
while(true){
try{
System.out.println("请输入第"+count+++"个分数,或输入ok进行计算,离开请输入exit");
inputStr=input.nextLine();
inputScores.add((double)Double.valueOf(inputStr.trim()));
}catch(Exception e){
if(inputStr!=null "exit".equals(inputStr.trim().toLowerCase())){
System.out.println("您已成功结束程序");
input.close();
System.exit(0);
}
if(inputStr!=null "ok".equals(inputStr.trim().toLowerCase())){
break;
}
System.out.println("您输入的分数不是数值类型,");
System.out.println("若想结束请输入exit ,若想计算结果请输入ok");
count--;
}
}
if(inputScores.size()==0){
System.out.println("您没有输入学生成绩,无数据可统计,程序结束。");
return ;
}
scores=inputScores.toArray(new Double[inputScores.size()]);
Arrays.sort(scores);
min=scores[0];
max=scores[scores.length-1];
for(double score :scores){
total += score;
}
avg=total/scores.length;
System.out.println("总成绩是" + total);
System.out.println("最高分是" + max);
System.out.println("最低分是" + min);
System.out.println("平均分是" + avg);
}
}
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner x = new Scanner(System.in);
System.out.println("请输入成绩");
int a=x.nextInt();
int n=a/10; //百分制转换为等第
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(" 请输入一个正确的成绩"); //输入的不是百分制,报错
}
}
}
思路: 排序肯定还是要排的, 按照Java成绩来进行排练. 然后排名的时候,进行比较. 如果这一名的成绩和上一名的相同, 那么名次相同, 如果比上一名分数低,那么排名加一.
可以使用传统的,集合排序,输出. 也可以使用java8新提供的Stream API进行操作
参考代码如下
import java.util.*;
import java.util.Map.Entry;
import java.util.stream.Collectors;
class Stu {// 学生类
private String name;
private double score;// 成绩
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;
}
}
//测试类
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);
}
// 方法一:传统的方法
public static void fun1(ListStu stus) {
// 按照成绩排序
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) { // 如果成绩和上一名的成绩不相同,那么排名+1
lastScore = s.getScore();
index++;
}
System.out.println("名次:" + index + "\t分数" + s.getScore() + "\t名字" + s.getName());
}
}
// 方法2: Java8开始支持的Lambada表达式配合 Stream API 来进行分组排序
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分数:" + entry.getKey() + "\t名字");
entry.getValue().forEach((s) - System.out.print(" " + s.getName()));
System.out.println();
index++;
}
}
}
输出结果
名次:1 分数91.0 名字Sweet
名次:2 分数79.5 名字Tom
名次:2 分数79.5 名字Amdy
名次:2 分数79.5 名字Cherry
名次:3 分数68.0 名字Lucy
名次:4 分数65.0 名字Solem
名次:5 分数52.0 名字Jack
名次:5 分数52.0 名字Jerry
名次:1 分数:91.0 名字 Sweet
名次:2 分数:79.5 名字 Tom Amdy Cherry
名次:3 分数:68.0 名字 Lucy
名次:4 分数:65.0 名字 Solem
名次:5 分数:52.0 名字 Jack Jerry
---------------分割线---------------------
名次:1 分数:91.0 名字 Sweet
名次:2 分数:79.5 名字 Tom Amdy Cherry
名次:3 分数:68.0 名字 Lucy
名次:4 分数:65.0 名字 Solem
名次:5 分数:52.0 名字 Jack Jerry
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入学生的分数:");
double score = input.nextDouble();
int level1,level2;
if(score=60.0 score=100.0){
System.out.print("该学生成绩为优秀!");
}
else if(score=0 score60.0){
System.out.print("该学生成绩为不及格!");
}
else{
System.out.print("您输入的成绩有误!");
}
}
}
将成绩分为几个等级,且每个等级都有一个标记符,然后使用switch case来匹配标记符分别来判断,即可实现。
示例:
switch(表达式){
case 常量表达式1:
//执行语句1;
break;
case 常量表达式2:
//执行语句2;
break;
default:
//执行语句;
break;
}
1.default就是如果没有符合的case就执行它,default并不是必须的.
2.case后的语句可以不用大括号.
3.switch语句的判断条件可以接受int,byte,char,short,枚举,不能接受其他类型.
4.一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.
5.切记不要忘记写break;
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流