본문 바로가기

IT, 인터넷/JAVA, 스프링부트

자바 과목의 점수로 합계, 평균, 등수 구하기

반응형

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

 

class calurator {

    

    public void book() {

        List<Map<StringObject>> list = new ArrayList<Map<StringObject>>();

        

        Map<StringObjectparam = new HashMap<StringObject>(); // 객체생성

        param.put("name""이름1");

        param.put("book1"70);

        param.put("book2"80);

        

        list.add(param); // 리스트에 담는다

        

        param = new HashMap<StringObject>(); // 객체 생성

        param.put("name""이름2");

        param.put("book1"77);

        param.put("book2"70);

        

        list.add(param); // 리스트에 담는다

        

        param = new HashMap<StringObject>(); // 객체 생성

        param.put("name""이름3");

        param.put("book1"60);

        param.put("book2"80);

        

        list.add(param); // 리스트에 담는다

        

        System.out.println("순서\t이름\t과목1\t과목2\t합계\t평균\t등수");

        for(int i=0; i<list.size(); i++) { // 리스트에 담은걸 뽑아 내기

            Map<StringObjectresult = new HashMap<StringObject>();

            result = (Map<String, Object>) list.get(i);

            

            int book1 = Integer.parseInt(String.valueOf(result.get("book1")));

            int book2 = Integer.parseInt(String.valueOf(result.get("book2")));

            

            System.out.print(i+1 + "\t");

            System.out.print(result.get("name") + "\t");

            System.out.print(result.get("book1") + "\t");

            System.out.print(result.get("book2") + "\t");

            System.out.print(getSum(book1, book2) + "\t");

            System.out.print(getAvg(book1, book2) + "\t");

            

            int[] total = new int[2];

            int cnt = 0;

            for(int j=0; j<list.size(); j++) { // 등수를 구하기 위해 본인외 리스트에 담은걸 뽑아 내기

                Map<StringObjectresult1 = new HashMap<StringObject>();

                result1 = (Map<String, Object>) list.get(j);

                

                int book3 = Integer.parseInt(String.valueOf(result1.get("book1")));

                int book4 = Integer.parseInt(String.valueOf(result1.get("book2")));

                

                if(!String.valueOf(result1.get("name")).equals(String.valueOf(result.get("name")))) { // 본인외 합 뽑기

                    total[cnt] = getSum(book3, book4);

                    cnt++;

                }

            }

            

            System.out.println(getRank(total, getSum(book1, book2)));

        }

    }

    

    // 합 구하기

    public int getSum(int num1int num2) {

        

        int result = num1 + num2;

        

        return result;

    }

    

    // 평균 구하기

    public double getAvg(int num1int num2) {

        

        double result = (num1 + num2) / 3d;

        

        return Math.round(result * 100) / 100.0;

    }

    

    // 등수 구하기 total : 나머지 두명의 합 배열, sum : 본인 점수 합

    public int getRank(int[] totalint sum) {

        

        int result = 1;

        

        for(int i=0; i<total.length; i++) {

            if(sum < total[i]) {

                result += 1;

            }

        }

        

        return result;

    }

}

 

public class array {

 

    public static void main(String[] args) {        

        calurator c = new calurator();

        c.book();

    }

 

}

반응형