반응형

7.2>Scanner 클래스를 사용하여 5개 학점(‘A’, ‘B’, ‘C’, ‘D’, ‘F’)을 문자로 입력 받아 ArrayList에 저장한다. 그리고 ArrayList를 검색하여 학점을 점수(A=4.0, B=3.0, C=2.0, D=1.0, F=0)로 변환하고 평균을 계산하여 그 결과를 출력하는 프로그램을 작성하라.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package SecondHW;
import java.util.*//scanner와 vector 사용을 위한 임포트
public class Grades {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in); //스캐너 객체와 레퍼런스 변수 생성
        ArrayList<Character> grade= new ArrayList<Character>(); //ArrayList 객체와 레퍼런스 변수 생성, 스레드 동기화 지원 안함
        double sum=0//실수 변수 sum 초기화 0
        int count=0//정수 변수 count 초기화 0
        double score[]=new double[5]; //실수형 배열 크기 5 score
        System.out.print("5개의 학점을 빈 칸으로 분리하여 입력하세요. (A/B/C/D/F)");
        while(count!=5//count가 5가 아닐때까지 반복, for를 쓰지 않은 이유는 A,B,C,D,F 이외의 것을 걸러내야해서 continue써야하는데
            //for 에서 continue 쓰면 증감식은 그대로 실행되어버리니까
        {
            String st = s.next(); //String에 문자열 입력
            char c = st.charAt(0); //지정된 index에 있는 문자 리턴해서 c에 대입
            if((c>='A'&&c<='D')||c=='F'//c가 A~D 혹은 F이면
            {grade.add(c); count++;} //grade에 c를 추가하고 count 증가
            else continue//아니면 continue;
        }
        for(int i=0;i<grade.size();i++//i=0부터 grade.size보다 작을때까지 반복, size는 5
        {
            if(grade.get(i)=='A')   //grade의 index에 해당하는 값이 A일때
            {score[i]=4.0;} //score[i]에 4.0 대입
            else if(grade.get(i)=='B'//grade의 index에 해당하는 값이 B일때
            {score[i]=3.0;} //score[i]에 3.0 대입
            else if(grade.get(i)=='C'//grade의 index에 해당하는 값이 C일때
            {score[i]=2.0;} //score[i]에 2.0 대입
            else if(grade.get(i)=='D'//grade의 index에 해당하는 값이 D일때
            {score[i]=1.0;} //score[i]에 1.0 대입
            else if(grade.get(i)=='F'//grade의 index에 해당하는 값이 F일때
            {score[i]=0.0;} //score[i]에 0.0 대입
            System.out.print(score[i]+" "); //socre[i]와 공백문자 출력
            sum+=score[i]; //sum에 sum과 score[i] 더한 값 대입
        }
        System.out.println(); //개행문자 출력
        System.out.print("평균 : "+sum/grade.size() ); //평균 출력}}
 
cs



반응형

'컴퓨터 & 프로그래밍 & 전자공학 > JAVA' 카테고리의 다른 글

제네릭 클래스  (0) 2017.06.19
학생 정보  (0) 2017.06.19
가장 큰 수  (0) 2017.06.19
겜블링 게임  (0) 2017.06.19
가위바위보  (0) 2017.06.19
반응형

7.1>Scanner 클래스를 사용하여 10개의 실수 값을 키보드로부터 읽어 벡터에 저장한 후, 벡터를 검색하여 가장 큰 수를 출력하는 프로그램을 작성하라.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package SecondHW;
import java.util.*//scanner와 vector 사용을 위한 임포트
public class Biggest {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);  //스캐너 객체와 레퍼런스 변수 생성
        Vector<Double>v=new Vector<Double>(10); //벡터 객체와 레퍼런스 변수 생성 초기 cap이 10
        for(int i=0;i<v.capacity();i++//i=0부터 v.cap (즉 10) 미만일때까지 반복 즉 10번 반복
        {
            double a = s.nextDouble(); //double형 변수 a 에 키보드 입력 double로 받음
            v.add(a); //자동 박싱 v.add(new Double(a))와 같음 , 벡터 v에 a 삽입
        }
        double biggest = v.get(0); //가장 큰 숫자를 넣을 double형 변수 biggest에 초기값 v의
 //첫번째 원소 대입
        for(int i=1;i<v.size();i++//0은 비교할필요 없으니 1부터 size(10) 미만, 
//즉 1~9의 인덱스에 해당하는 원소 비교
        {
            if(biggest<v.get(i)) //biggest보다 해당 인덱스 원소가 크면
                biggest=v.get(i); //biggest에 그 원소 대입
        }
        System.out.println("가장 큰 수는 "+biggest+" 입니다."); //제일 큰 것 출력
    }}
 
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > JAVA' 카테고리의 다른 글

학생 정보  (0) 2017.06.19
학점 계산  (0) 2017.06.19
겜블링 게임  (0) 2017.06.19
가위바위보  (0) 2017.06.19
대문자 개수 세기  (0) 2017.06.19

+ Recent posts