디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

형들 이것좀 수정해줘요ㅠㅠ 머리가 갑자기 굳었다.

아씨발꿈(220.87) 2011.04.02 19:58:26
조회 256 추천 0 댓글 13





========================ClassRoom.java==============================

public class ClassRoom

{
 private Student[] students = new Student[10];
    private int size;
 
 
 
 
 
 public void printStudent(){
        for(int i= 0; i<size; i++){
   students[i].printStudent();
  }


 }


 public void addStudent(Student st){

  students[size++] = st;  //++size 먼저 1이 증가함. // 이것은 먼저 0을 저장하고 1을 더함


 }

 public int getSize(){
  return size;
 }

 public void setClassRank(){
         Student[] temp = new Student[size];

   for(int i=0; i<size; i++){
    temp[i] =students[i];
   }

   for(int i= 0; i<size-1; i++){
    for(int j=i+1; j<size; j++){
     if (temp[i].getTot() < temp[j].getTot()){
      Student t = temp[i];
      temp[i] = temp[j];
      temp[j] = t;
     }
    }
   }
   for(int i=0; i<size; i++){
                 temp[i].setClassRank(i+1);
   }
 }


     
     public Student getStudent(int index){
 
  return students[index];
 }

 
}
================ScoreManager.java=========================================================

import java.util.*;


public class ScoreManager {
 
 private Scanner sc;
 private boolean bContinue=true;
 private Student[] classRoom;
 private int no = 0;
 int classNum = 0;
 ClassRoom[] classes;

 public static void main(String[] args) {
  new ScoreManager().go();
 }

 private void go() {
  //정의
  sc = new Scanner(System.in);
  classRoom = new Student[10];
  
  
  showTitle();
  classNum = howManyClasses();
  classes = new ClassRoom[classNum];
  for( int i = 0; i<classNum; i++){
   classes[i] = new ClassRoom();
  }
  
  while(bContinue){
   int menu = showMenu();
   
   switch(menu){
   case 0:
    System.out.println("프로그램을 종료합니다....");
    bContinue=false;
    break;
   case 1:
    inputStudent();
    break;
   case 2:
    showScoreTable();
    break;
   default:
    System.out.println("메뉴는 (0-2) 사이의 값만 선택가능합니다.");
    break;
   }
  }
  
 }

 private void showScoreTable() {
  System.out.println();
  System.out.println("=====================성적 처리 결과========================");
  System.out.println("반 번호 이름   국어 영어 수학 총점 평균 학점 반석차 전체석차");
  System.out.println("===========================================================");
  setTotalRank();
  
  
  for(int i=0; i<classNum; i++){
    classes[i].setClassRank();
          classes[i].printStudent(); //classes[0] 종료후 --------------출력, classes[1] 종료후ㅠ -------출력 classes[classnum-1] 종료후====== 출력
   
    
    
    
    System.out.println("----------------------------------------------------------");
    
   }
    
    
   
   
   System.out.println("===========================================================");
   
  
 }
  

 

 private void setTotalRank(){

        int totalSize = 0;

  for(int i=0; i<classNum; i++){
   totalSize += classes[i].getSize();
  }
  
  Student[] temp = new Student[totalSize];
        int count = 0;
        for(int i=0; i<classNum; i++){
   for(int j=0; j<classes[i].getSize(); j++){
    temp[count++] = classes[i].getStudent(j);
   }
  }

  //정렬과정
        for(int i=0; i<totalSize-1; i++){
     for(int j=i+1; j<totalSize; j++){
    if(temp[i].getTot() < temp[j].getTot())
    {
      Student t = temp[i];
      temp[i] = temp[j];
      temp[j] = t;
    }
   }
  }
     for(int i=0; i<totalSize; i++){
                 temp[i].setTotalRank(i+1);
   }
 
 

 }

 private void inputStudent() {
  try{
  
  

  System.out.println("======성적 입력=====");
  System.out.print("몇 반 학생을 추가합니까?(1~"+classNum+")");
  int ban = sc.nextInt();
  int no = classes[ban-1].getSize()+1;
   System.out.print(no+"번 학생 이름 = ");
   sc.reset();
   String name = sc.next();
   sc.reset();
   System.out.print("국어 = ");
   int kor = sc.nextInt();
   System.out.print("영어 = ");
   int eng = sc.nextInt();
   System.out.print("수학 = ");
   int mat = sc.nextInt();
            //학생 생성;
            Student st = new Student(ban, no, name, kor, eng, mat);
   
   classes[ban-1].addStudent(st);  //student[size++] = st;  size=0  size = size + 1;

  } catch (Exception e){
   System.out.println("잘못된 정보 입력으로 메뉴로 돌아갑니다.");
   sc.nextLine();
   return;
  
  
  
  }
  
   
 }

 private void showTitle() {
  System.out.println();
  System.out.println("==========================================");
  System.out.println("=            성적 관리 프로그램          =");
  System.out.println("=                              ver 0.2   =");
  System.out.println("=                        created by JI   =");
  System.out.println("= 설명:반별로 성적을 관리할 수 있습니다. =");
  System.out.println("==========================================");
  
 }

 private int showMenu() {
  int menu=-1;
  System.out.println();
  System.out.println("===================메 뉴===================");
  System.out.println("0 : 프로그램 종료");
  System.out.println("1 : 성적 입력");
  System.out.println("2 : 성적 출력");
  System.out.println("===========================================");
  System.out.print("선택 >> ");
  try{
   menu = sc.nextInt();
  } catch (Exception e){
   System.out.println("숫자만 입력 가능합니다.");
   sc.nextLine();   
  }
  return menu;
 }

   private int howManyClasses() {
     System.out.print("몇 개의 학급을 생성하겠습니다?");
  int num = sc.nextInt();
  return num;
   }

 

}
===========================================Student.java==========================================
public class Student {
 private int classNum;
 private String name;
 private int no;
 private int kor;
 private int eng;
 private int mat;
 private int tot;
 private double avg;
 private String grade;
 private int classRank;
 private int totalRank;
 
 
    public Student(int ban, int no, String name, int kor, int eng, int mat){

       classNum = ban;
    this.no = no;//(class에 있는 변수를 사용)  this.no는 class에 , no은 Student 생성자)
       this.name = name;
    this.kor = kor;
    this.eng = eng;
    this.mat = mat;
    calcTot();
    calcAvg();
    calcGrade();


 }
    public void calcGrade(){
  if(avg >=90) grade = "A";
  else if(avg >=80) grade = "B";
  else if(avg >=70) grade = "C";
  else if(avg >=60) grade = "D";
  else grade = "F";

 }

 public void calcTot(){
  tot = kor+eng+mat;  
 }
 
 public void calcAvg(){
  avg = tot/3.0f;
 }

    public void printStudent(){
  System.out.printf("%2d %4d %3s %4d %4d %4d %4d %4.1f %2s %6d %8d \\n",
        classNum, no, name, kor, eng, mat, tot, avg, grade, classRank, totalRank);
  
 }

 

 public int getTot(){
  return tot;
 }

 public void setClassRank(int rank){
  classRank = rank;
 }

 


 public void setTotalRank(int rank){
  totalRank = rank;
 }

 


}

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 기 세보여도 실제로는 멘탈 약할 것 같은 스타는? 운영자 24/11/04 - -
281031 형들 내가 해본건데 뭐가틀린지모르게써;; [4] 돐석갤로그로 이동합니다. 11.10.15 68 0
281030 근데 야근 거의 안하는 회사가 꼭 좋은 회사는 아니라고 들은적 있는데 [3] ㅇㄹ(119.197) 11.10.15 89 0
281029 프로그래밍쪽도 대학이 중요하나? [7] ㅇㄷㄱㅈㄷㄱ(121.173) 11.10.15 156 0
281027 미국 프로그래머 연봉 평균 10만달러 ㅡㅡ [24] 1(125.135) 11.10.15 508 0
281026 C언어 창시자 뒤졌다며? 야는 왜 자바처럼 돈 많이 못 범? [4] 쁘띠거니(218.48) 11.10.15 165 0
281025 저는 C/C++ 팬은 아니지만 R.I.P 데니스리치 Stan(110.174) 11.10.15 67 0
281023 sprite의 Draw함수에서 [6] elwlwlwk갤로그로 이동합니다. 11.10.15 62 0
281022 디버거 명령어 질문좀.. ㅋㅋ 디버거 ㅋ(124.3) 11.10.15 26 0
281021 데브피아에 보넥스(구본혁) 돌아와있네 ㅇㅇ(211.41) 11.10.15 6335 0
281020 형들 STL list에서 iterator을 주소로 변환시킬수있어? [6] +어게인갤로그로 이동합니다. 11.10.15 98 0
281019 야이거 최대공약수 구하는 C언어인디 [7] 돐석갤로그로 이동합니다. 11.10.15 163 0
281018 형들 안녕 ? [28] 좋은아버지갤로그로 이동합니다. 11.10.15 181 0
281016 교회얘기 나오니 생각나는건데 가모가모갤로그로 이동합니다. 11.10.15 42 0
281015 이거 오버플로우임? [1] 늅늅(121.186) 11.10.15 72 0
281014 잡스빠, 앱빠들은 진짜 C언어를 애플이 만들었다고 생각하냐? [5] warota(221.150) 11.10.15 171 0
281012 데브켓 어떰? [1] ㅇㅇ(121.167) 11.10.15 66 0
281010 한양대 내년부터 신설되는 소프트웨어학과 어떻게 생각하세요? [5] 요기(125.142) 11.10.15 161 0
281009 긴자 애플 스토어와 긴자 소니 쇼룸의 위엄~ [2] 분당살람갤로그로 이동합니다. 11.10.15 134 0
281008 요기서 플밍하시는분들 다 서연고한은 나오시고 취직하신분들? [5] 요기(125.142) 11.10.15 127 0
281007 시발 왜 맥북에서 돌아이바갤로그로 이동합니다. 11.10.15 50 0
281006 신입 5일차를 마친 후 [5] 116.44(110.11) 11.10.15 182 0
281005 왜 여자 뒷모습 != 앞 모습 일까? [4] 전간디갤로그로 이동합니다. 11.10.15 171 0
281004 php exec 할때 쌍따옴표는 어케처리해 형들? [1] 늘모갤로그로 이동합니다. 11.10.15 62 0
281003 형님들 근데 개발자 연봉이 정말 그렇게 박봉이에요? [4] ㅠㅠ(119.64) 11.10.15 179 0
281002 프로그래머들의 배우자는 [2] 존밴(124.199) 11.10.15 111 0
281001 형님들, C언어에 strcpy함수 있잖아요; [5] semtle(112.156) 11.10.15 87 0
281000 과외한다는 생각자채가쓰래기였음 [3] 이건산전갤로그로 이동합니다. 11.10.15 113 0
280999 문득 기발한생각이들었는데말이지 [6] 존밴(124.199) 11.10.15 78 0
280998 스레드 파라미터 넘기는 거 질문좀 [4] 아잉만두갤로그로 이동합니다. 11.10.15 174 0
280997 셤공부를해야하는데 [5] SODMaster(222.237) 11.10.15 95 0
280996 오픈지엘 인제 변환부분 볼라는데....... [2] 뇌지랄갤로그로 이동합니다. 11.10.15 71 0
280995 분당살람 도쿄살 때 찍은 사진들 [5] 분당살람갤로그로 이동합니다. 11.10.15 129 0
280994 프로그래머들은 [2] 존밴(124.199) 11.10.15 81 0
280993 카르노맵 질문좀 ㅜㅜ [5] ㅇㅇ(113.130) 11.10.15 104 0
280991 프로그래밍갤러리여러분들 [22] 도와주세요(58.232) 11.10.15 208 0
280990 오늘도 출 to the 근.... [2] 돌아이바갤로그로 이동합니다. 11.10.15 47 0
280989 나 궁금한게 있는데.........취직. [11] ㅍㅍ(219.255) 11.10.15 196 0
280988 lol 소환글 monoless갤로그로 이동합니다. 11.10.15 46 0
280987 opengl 공부할건데 추천해줄만한 테크있음 좀 알려줘봐 [3] 차도컴공남갤로그로 이동합니다. 11.10.15 58 0
280986 혹시 오늘 출근한 횽 있어? ㅠㅠ [4] monoless갤로그로 이동합니다. 11.10.15 71 0
280985 nhn들어가기가 그렇게어려워? [2] 저격甲갤로그로 이동합니다. 11.10.15 230 0
280984 이거 있으면 좋을 것 같은데 하나 만들어줘라. [22] 바보플머(59.14) 11.10.15 216 0
280983 그럼 님들은 이중 어느 회사 택할거임? [2] ㅇㄹ(119.197) 11.10.15 92 0
280982 국비6개월학원 경험자 형들아 질문있어요! 취업하기 vs 더 공부하기 [6] 궁그미(121.159) 11.10.15 262 0
280981 이런 회사는 어떰? [2] ㅇㄹ(119.197) 11.10.15 73 0
280980 대한민국 IT에서 학력이란 어떤가요? [8] 질문입니다.(220.86) 11.10.15 241 0
280979 개발일이 아무리 힘들다고 해도 [1] 전간디갤로그로 이동합니다. 11.10.15 102 0
280978 텍스트섹션 시작주소가 이상하네요.ㅠㅠ [8] 캣타워(222.108) 11.10.15 70 0
280977 형들아 중소기업 si 갈때 국비학원6개월마치고 바로 취업하는게 낫나여? [4] 궁그미(121.159) 11.10.15 224 0
280975 형들 나 미치겠어요 ㅠㅠ... 정신병 어떻게 고치죠? [3] lol(110.174) 11.10.15 103 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2