박스여우 - BoxFox
심심해서 JAVA로 쓸모없는 프로그램을 짜보았습니다.
1번 프로그램은 반편성을할때 유용하게 쓰실수 있습니다.
우선 작동방법부터 보시겠습니다.
public class classroll_main { static int input; static int inputs; static int input_team; static int[] student; // 학생 static int[] team; //모둠 public static void main(String[] args){ Scanner scanner = new Scanner(System.in); //Scanner 입력받는 인스턴스를 만들었다. System.out.println("학생의 수를 입력해주십시요"); input = scanner.nextInt(); System.out.println("조의 개수를 입력해주십시요"); inputs = scanner.nextInt(); System.out.println("한조에 최대수용가능한 인원을 입력해주십시요"); input_team = scanner.nextInt(); student = new int[++input]; // 입력받은만큼의 학생수로 student변수를 확장시키고, team = new int[++inputs]; // 입력받은 만큼의 조의 개수로 team 변수를 확장시킨다. for(int i=1;i < inputs;i++){ team[i] = input_team; //입력받은 조에 수용가능 인원을 변수에 저장한다. } second(); } static void second(){ if (student.length > (inputs * input_team)){ System.out.println("학생을 모두 넣을수 없습니다. 조편성을 다시해주십시요"); System.exit(0); }else{ for(int i=1;i < student.length;i++){ roll(i); //학생의 번호를 넘겨주며, 조를 편성하는 roll메소드를 작동시킨다. } for(int i=1;i < team.length;i++){ System.out.print(i+"조: "); for(int j=1; j < student.length;j++){ if(student[j]==i){ System.out.print(j+", "); } } System.out.println("");// 조를 출력하는 구문이다. } } } static void roll(int students){ //학생의 번호를 넘겨받는다. int check = (int) (Math.random() * (inputs-1) + 1); //(int)(Math.random()*최대값+시작값); System.out.println(students); System.out.println("조:"+check); if (team[check] > 0){ //만약 조의 인원이 꽉찼다면, 다시 돌린다. team[check]--; //조에 자리가 남았을시 조의 자리를 채우고, student[students]=check; //학생의 조를 확정시킨다. }else{ roll(students); //이미 조에 자리가 찼을시 메소드를 다시 재귀호출 한다. } return; }}