개발/java

자바 성적관리 프로그램

HEURISTIC_ 2013. 9. 27. 08:57

package struct;


import java.util.Scanner;


import struct.Record;


public class Program3

{

//**********************메인함수**********************

public static void main(String[] args) 

{

Scanner scan = new Scanner(System.in);

int num;

System.out.print("몇명의 성적을 관리 하겠습니까?");

num = scan.nextInt();

Record[] records = new Record[num];

int size=0;

int menu;

exit:while(true)

{

switch(menu = inputMenu())

{

case 1:

size = inputRecord(records, size, num);

break;


case 2:

printRecord(records, size);

if(size == num) //성적관리숫자 만족시킬경우 프로그램종료

break exit;

break;

case 3:

System.out.println("프로그램이 종료됩니다.");

break exit;

default:

System.out.println("입력 오류");

}

}

}

//**********************메뉴출력함수**********************

static int inputMenu() 

{

Scanner scan= new Scanner(System.in);

int menu;

System.out.println("┌─────────────────┐");

System.out.println("│                   메인  메뉴                  │");

System.out.println("└─────────────────┘");

System.out.print("\t\t1.성적 입력\n");

System.out.print("\t\t2.성적 출력\n");

System.out.print("\t\t3.종료\n");

menu = scan.nextInt();

return menu;

}

//**********************성적입력함수**********************

static int inputRecord(Record[] record, int size, int num) 

{

Scanner scan= new Scanner(System.in);

int kor, eng, math; //임시변수선언

int current=size;

System.out.println("┌─────────────────┐");

System.out.println("│                   성적  입력                  │");

System.out.println("└─────────────────┘");

while(true)

{

do{

System.out.print("\t\t국어 :");

kor = scan.nextInt();

if(kor<0 || kor>100)

System.out.println("범위벗어남");

}

while(kor<0 || kor>100);

do{

System.out.print("\t\t영어 :");

eng = scan.nextInt();

if(eng<0 || eng>100)

System.out.println("범위벗어남");

}

while(eng<0 || eng>100);

do{

System.out.print("\t\t수학 :");

math = scan.nextInt();

if(math<0 || math>100)

System.out.println("범위벗어남");

}

while(math<0 || math>100);

record[current] = new Record();

record[current].kor=kor;

record[current].eng=eng;

record[current].math=math;

current++;

System.out.print("끝내시겠습니까? 1=계속,2=끝");

int isContinue = scan.nextInt();

if(isContinue == 1)

{

if(num==current)

return current;

else

continue;

}

else

return current;

}

}

//**********************성적출력함수**********************

static void printRecord(Record[] records, int size)

{

System.out.printf("┌─────────────────┐\n");

System.out.printf("│           @본인 이름 성적표@           │\n");

System.out.printf("├──┬──┬──┬──┬──┬──┤\n");

System.out.printf("│번호│국어│영어│수학│총점│평균│\n");

for(int i=0 ; i<size ; i++)

{

Record record = records[i];

int total = record.kor + record.eng + record.math;

float avg = total / 3.0f;

System.out.printf("├──┼──┼──┼──┼──┼──┤\n");

System.out.printf("│%-5d│%-5d│%-5d│%-5d│%-5d│%4.2f│

\n",i+1,record.kor,record.eng,record.math,total,avg);

}

System.out.printf("└──┴──┴──┴──┴──┴──┘\n");

}

}