Как мне написать эту систему оценок?

1

Ни один из других ответов не дал мне никаких указаний о том, что делать в моем затруднительном положении, поэтому я подумал, что начинаю новый вопрос.

Я хочу написать программу, в которой кто-то вводит количество As, Bs и Cs, а затем выводит их знак.

Это минимальные требования:

EA: 12 As, 2 Bs   
HA: 6 As, 6 Bs, 2 Cs
CA: 8 Bs, 5 Cs
SA: 12 Cs
PA: 6 Cs

Я пробовал несколько способов, но никто не работает, или я либо предвижу, что код будет очень длинным и чрезмерно сложным.

Одним из основных препятствий, которые я имел, было то, что мои критерии часто классифицировали его как два класса.

Например:

//EA Grade

if (numA >= 11 && numB >=1)
{ grade = "EA"; }

//HA Grade

if (numA >=5 && numB >=5)
{ grade = "HA"; }

Проблема в том, что, если количество А и В квалифицируют их для EA, они также будут претендовать на HA. Это явно нежелательно. Как я могу решить эту проблему?

Теги:
if-statement
system
statements

2 ответа

1

Проблема в том, что, если количество А и В квалифицируют их для EA, они также будут претендовать на HA. Это явно нежелательно. Как я могу решить эту проблему?

Ответ на эту конкретную часть вопроса: Use else:

if (numA >= 11 && numB >=1) {
    grade = "EA";
} else if (numA >=5 && numB >=5) {
//^^^^------------------------------ here
    grade = "HA";
}
// ...and so on...

Другой подход состоит в том, чтобы иметь объекты с требованиями для каждого из уровней в массиве, отсортированные по "лучшему" классу (EA, если я правильно вас понимаю), а затем прокрутить те объекты, которые проверяют, чтобы увидеть, какие оценивать человека, имеющего квалификацию и принимающего первый. Что более подходит для того, что вы делаете, зависит от вас, у обоих есть плюсы и минусы с точки зрения ремонтопригодности и ясности.

  • 0
    Проблема в том, что он будет предполагать, что все, что не является советником, является HA, что не всегда верно.
  • 0
    @ user3414510: Нет, вы продолжаете серию: if (...) else if (...) else if (...)
Показать ещё 3 комментария
0

Я только что попробовал программу посмотреть

import java.util.Scanner;

/*EA: 12 As, 2 Bs   
*HA: 6 As, 6 Bs, 2 Cs
*CA: 8 Bs, 5 Cs
*SA: 12 Cs
*PA: 6 Cs*/
public class cases {

    public static void main(String args[]){

        Scanner in=new Scanner(System.in);
        System.out.println("Enter the number of A B C to declare your grades");
        int a=in.nextInt();
        int b=in.nextInt();
        int c=in.nextInt();
      System.out.println("Enter the choice to know the Result 1:EA 2:HA 3:CA  4:SA  5:PA");
       int choice=in.nextInt();
       switch(choice)
       {
       case 1:  if(a>=11&&b>=1){
                   System.out.println("You are EA Grade Holder");

                 }
                    else
                         System.out.println("You have to find out with other choices");
                  break;

       case 2:   if(a>=5&&b>=5&&c>=1){

                     System.out.println("You are HA Grade Holder");

                   }
                  else
                     System.out.println("You have to find out with other choices");
                      break;
       case 3:       if(a>=7&&b>=7){

                     System.out.println("You are CA Grade Holder");

                 }
                    else
                     System.out.println("You have to find out with other choices");
                    break;
       case 4:   if(c>=12){

                          System.out.println("You are SA Grade Holder");

                       }
                 else
                      System.out.println("You have to find out with other choices");
                 break;
       case 5:   if(c==6){

                     System.out.println("You are PA Grade Holder");

                  }
                else
                   System.out.println("You have to find out with other choices");
                break;

       default:System.out.println("you have not entered proper choice");


       }


    }
}
  • 0
    Хотя иногда это может работать, но это не учитывает ситуацию, когда кто-то получает 11 As & 3 B, что должно быть HA, но программа не вернет это.
  • 0
    @ user3414510 Скоро приеду с обновлением, попробую на устройстве немного логики посмотрим :)
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню