简单的KTV点歌系统

import java.util.Scanner;
public class markSystem {
 public static void main(String[] args) {
  int choose;
  Singer singer=new Singer();
  Scanner input=new Scanner(System.in);
  System.out.println("=======================================");
  System.out.println("          欢迎使用歌手打分系统                       ");
  System.out.println("=======================================");
   while(true){
   System.out.println("1、歌手打分   2、歌手排名   3、查看得分明细");
   System.out.print("请选择>>");
   choose=input.nextInt();
    if(choose==1){
     
     singer.grade(singer.SingerNumber, singer.SingerName, singer.score);
    }
    if(choose==2){
     singer.ranking(singer.SingerNumber, singer.SingerName,singer.score);
    }
    if(choose==3){
     singer.getinfo(singer.SingerNumber, singer.SingerName, singer.score);
    }
    if(choose<=0){
     continue;
    }
   }
 }
 

 

 
 
//Singer类是给歌手打分的
class Singer{
 
 int[] SingerNumber=new int[4] ;
 String[] SingerName=new String[4];
 float[][] score=new float[4][4];
 java.util.Scanner input=new java.util.Scanner(System.in);
 //实现歌手信息及评委打分的录入
 void grade(int[] SingerNumber,String[] SingerName,float[][] score){
  for(int i=0;i<4;i++){
   System.out.print("输入歌手编号>>");
   SingerNumber[i]=input.nextInt();
   System.out.print("输入歌手姓名>>");
   SingerName[i]=input.next();
   for(int j=0;j<4;j++){
    System.out.print("第"+(j+1)+"个评委打分>>");
    score[i][j]=input.nextFloat();
   }
  }
 }
 //获取所有歌手的信息
 void getinfo(int[] SingerNumber,String[] SingerName,float[][] score){
  System.out.println("=======================歌手详细信息======================");
  System.out.println("编号  姓名  评委1 评委2 评委3 评委4");
  for(int i=0;i<4;i++){
   System.out.print(SingerNumber[i]+"  "+SingerName[i]+"  ");
   for(int j=0;j<4;j++){
    System.out.print(score[i][j]+" ");
   }
   System.out.println();
  }
 }
 //这是实现歌手按平均成绩的排名函数
  void ranking(int[] SingerNumber,String[] SingerName,float[][] score){
  /* float max=0;
   float min=0;
   //找出评委的最高分和最低分
   for(int i=0;i<4;i++){
    for(int j=0;j<4;j++){
      max=score[i][0];
      min=score[i][0];
     if(max<score[i][j]){
      max=score[i][j];
     }
     if(min>score[i][j]){
      min=score[i][j];
     }
    }
   }*/
   //求歌手去掉最高分和最低分后的平均分
   float[] sum={0,0,0,0};
   float[] avg={0,0,0,0};
   for(int k=0;k<4;k++){
    for(int l=0;l<4;l++){
     /*if(score[k][l]>=min&&score[k][l]<=max){*/
      sum[k]=sum[k]+score[k][l];
    
     avg[k]=sum[k]/4;//求出4个选手的平均分
    }
   
   }
   //对平均分排序
  
  float temp;
  float[] last={avg[0],avg[1],avg[2],avg[3]};
  int[]num={0,0,0,0};
  for(int i=0;i<3;i++){
   for(int j=0;j<3-i;j++){
    if(avg[j]<avg[j+1]){
     temp=avg[j];
     avg[j]=avg[j+1];
     avg[j+1]=temp;
    }
   }
  }
  for(int k=0;k<4;k++){
   for(int l=0;l<4;l++){
    if(avg[k]==last[l]){
     num[k]=l;
    }
   }
  }
   System.out.println("================歌手排名===============");
   System.out.println("编号  姓名  平均成绩");
   for(int i=0;i<4;i++){
    System.out.print(SingerNumber[num[i]]+"  "+SingerName[num[i]]+"  "+avg[i]);
    System.out.println();
   }
  } 
 

}

 

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值