名学生对应数学、语文、体育3门课成绩。具体功能如下
- 1.按名字查询某位同学的成绩
- 2.查询某个科目不及格人数,及学生名单
- String[] a= {“A”,“B”,“C”};
- int[][] score ={{98,68,45},{61,45,77},{24,68,88}};
import java.util.Scanner;
/*
*名学生对应数学、语文、体育3门课成绩。具体功能如下
* 1.按名字查询某位同学的成绩
* 2.查询某个科目不及格人数,及学生名单
* String[] a= {"A","B","C"};
* int[][] score ={{98,68,45},{61,45,77},{24,68,88}};
*/
public class Exerice04 {
public static void main(String[] args) {
String[] a= {"A","B","C"};
int[][] score ={{98,68,45},{61,45,77},{24,68,88}};
Scanner scan=new Scanner(System.in);
System.out.println("学生姓名");
String name=scan.next();
for (int i = 0; i < a.length; i++) {
if(a[i].equals(name)){
System.out.println("数学"+score[i][0]);
System.out.println("语文"+score[i][1]);
System.out.println("体育"+score[i][2]);
}
}
System.out.println("查询的科目1.数学2.语文3.体育");
int select=scan.nextInt();
int count=0;
for (int i = 0; i < a.length; i++) {
//判断
if (score[i][select]<60) {
count++;
//
System.out.print(a[i]+"\t");
}
}
System.out.println("不及格的人数:"+count);
}
}
- @author Administrator 7.String s = “罗霄:上机成绩=88,笔试成绩=78;” +
-
"刘苗苗:上机成绩=68,笔试成绩=98;;" + "郝笑:上机成绩=48,笔试成绩=58;" +
-
"李昊阳:上机成绩=55,笔试成绩=11;" + "雷鸣:上机成绩=44,笔试成绩=55;" s +
-
"李文龙:上机成绩=22,笔试成绩=55;" + "赵璧辉:上机成绩=44,笔试成绩=66;" ;
- 4.1 按上级成绩排序
*4.2 按笔试成绩排序
*4.3 按总分成绩排序
*4.4 求上机成绩的平均分
*4.5 求笔试成绩的平均分
class Stu {
//姓名
private String name;
//上机成绩
private int machine;
//笔试成绩
private int pen;
public void setName(String name) {
this.name = name;
}
public void setMachine(int machine) {
this.machine = machine;
}
public void setPen(int pen) {
this.pen = pen;
}
public String getName() {
return name;
}
public int getMachine() {
return machine;
}
public int getPen() {
return pen;
}
@Override
public String toString() {
return "姓名:"+this.name+"\t 机试:"+this.machine+"\t 笔试:"+this.pen;
}
}
//上机排序
class StuComper implements Comparator<Stu>{
@Override
public int compare(Stu o1, Stu o2) {
int rtn =0;
int m=o1.getMachine()-o2.getMachine();
if(m>0){
return rtn=1;
}else if(m<0){
return rtn=-1;
}else{
return rtn=0;
}
}
}
//笔试排序
class StuComper2 implements Comparator<Stu>{
public int compare(Stu o1, Stu o2) {
int rtn=0;
int pDiff=o1.getPen()-o2.getPen();
if(pDiff>0){
return rtn=1;
}else if(pDiff<0){
return rtn=-1;
}else{
return rtn=0;
}
}
}
//总分
class StuComper3 implements Comparator<Stu>{
public int compare(Stu o1, Stu o2) {
int rtn=0;
int pDiff=o1.getMachine()+o1.getPen()-o2.getPen()-o2.getMachine();
if(pDiff>0){
rtn=1;
}else if(pDiff<0){
rtn=-1;
}else{
rtn=0;
}
return rtn;
}
}
public class Exercise04 {
public static void main(String[] args) {
String s= "罗霄:上机成绩=88,笔试成绩=78;" +
"刘苗苗:上机成绩=68,笔试成绩=98;" + "郝笑:上机成绩=48,笔试成绩=58;" +
"李昊阳:上机成绩=55,笔试成绩=11;" + "雷鸣:上机成绩=44,笔试成绩=55;" +
"李文龙:上机成绩=22,笔试成绩=55;" + "赵璧辉:上机成绩=44,笔试成绩=66;" ;
//按;分割
String[] r1=s.split(";");
//设置目标数组长度
Stu[] nameArr=new Stu[r1.length];
//夺取姓名分割
String[] r2=null;
//获取成绩分割
String[] r3=null;
//定义成绩
String name=null;
String score1=null;
//存储成绩
int score=0;
for (int i = 0; i < r1.length; i++) {
//创建学生对象
Stu stu=new Stu();
//按:分割
r2=r1[i].split(":");
//获取姓名
name=r2[0];
stu.setName(name);
//剩余的按, 分割
r3=r2[1].split(",");
//获取成绩
for (int j = 0; j < r2.length; j++) {
//查找=位置
int pos=r3[j].indexOf("=");
//截取成绩
score1=r3[j].substring((pos+1),r3[j].length());
//存储成绩
score=Integer.parseInt(score1);
//判断有没有上机字样
if(r3[j].indexOf("上机成绩")!=-1){
//设置上机成绩
stu.setMachine(score);
}else{
stu.setPen(score);
}
}
nameArr[i]=stu;
}
//打印目标数组
show(nameArr);
//上机排序
System.out.println("************按上机成绩排序***********");
Arrays.sort(nameArr,new StuComper());
show(nameArr);
//笔试排序
System.out.println("************按笔试成绩排序***********");
Arrays.sort(nameArr,new StuComper2());
show(nameArr);
System.out.println("************按总分排序***********");
Arrays.sort(nameArr,new StuComper3());
show(nameArr);
//上机平均分
System.out.println("上机平均分"+avgM(nameArr));
//笔试平均分
System.out.println("笔试平均分"+avgP(nameArr));
}
public static void show(Stu[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
//上机平均分
public static double avgM(Stu[] arr){
int sum=0;
for (int i = 0; i < arr.length; i++) {
Stu stu=arr[i];
sum+=stu.getMachine();
}
double avg=(double)sum/arr.length;
return avg;
}
//笔试平均分
public static double avgP(Stu[] arr){
int sum=0;
for (int i = 0; i < arr.length; i++) {
Stu stu=arr[i];
sum+=stu.getPen();
}
double avg=(double)sum/arr.length;
return avg;
}
}