Cute Happy Ghost
본문 바로가기
JAVA/Java

20201006_11 출석부프로그램, 설계

by JENN_tech7 2020. 10. 6.
728x90
SMALL
  • 클래스설계
## Student 클래스 설계
 변수들
	Name: 이름
	Number: 학번
	Department: 소속학과

메소드들
	getName: 이름을 반환한다
	setName: 이름을 주어진 값으로 변경한다
	getNumber: 학번을 반환한다
	setNumber: 학번을 주어진 값으로 변경한다 
	getDepartment: 소속학과를 반환한다
	setDepartment: 소속학과를 주어진 값으로 변경한다
	toString: 학생의 이름, 학번과 소속학과를 반환한다

## StudentDriver 클래스 설계
- main 메소드 설계
 변수들
	student1: 첫 번째 Student 객체 참조변수
	student2: 두 번째 Student 객체 참조변수

알고리즘
1.	Student 객체를 생성하여 student1이 가리키게 한다. 
2.	객체 student1의 이름을 ‘갑돌’로 변경한다.
3.	객체 student1의 학번을 100으로 변경한다. 
4.	객체 student1의 소속학과를 컴퓨터공학과로 변경한다.
5.	객체 student1의 이름, 학번과 소속학과를 출력한다. 
6.	Student 객체를 생성하여 student2가 가리키게 한다.
7.	객체 student2의 이름을 ‘갑순’으로 변경한다.
8.	객체 student2의 학번을 200으로 변경한다. 
9.	객체 student2의 소속학과를 건축학과로 변경한다.
10.	객체 student2의 이름, 학번과 소속학과를 출력한다.
11.	객체 student2의 소속학과를 수학과로 변경한다.
12.	객체 student2의 이름, 학번과 소속학과를 출력한다.

 

 

 

 

 

  • student 클래스
package chapter02;

// 학생의 성적 기록을 나타낸다

import java.util.Scanner;

public class Student
{
	// 객체 변수들
	String name;			// 이름
	int quizscore;			// 퀴즈 점수
	int midtermscore;		// 중간시험 점수
	int finalscore;			// 기말시험 점수

	// 생성자메소드: 학생의 이름을 넘겨 받아 객체를 생성한다
	public Student(String studentName)
	{
		name = studentName;
		inputGrades();
	}

	public String getName( )
	{
		return name;
	}

	public int getQuizScore( )
	{
		return quizscore;	
	}

	public int getMidtermScore( )
	{
		return midtermscore;	
	}

	public int getFinalScore( )
	{
		return finalscore;
	}

	//   현 Student 객체의 정보에 대한 문자열을 반환한다.
	public String toString ()
	{
		String str = "";
		str += "이름: " + name + "\n";
		return str;
	}

	// 이름을 주어진 값으로 변경한다
	public void setName(String Name)
	{
		name = Name;
	}

	public void setQuizScore(int QuizScore)
	{
		quizscore = QuizScore;	
	}

	public void setMidtermScore(int MidtermScore)
	{
		midtermscore = MidtermScore;	
	}

	public void setFinalScore(int FinalScore)
	{

		finalscore = FinalScore;
	}
	public void inputGrades( )
	{
		Scanner in = new Scanner (System.in);
		System.out.print(name + "의 중간시험점수를 입력하라.");
		midtermscore = in.nextInt();
		System.out.print(name + "의 퀴즈점수를 입력하라.");
		quizscore = in.nextInt();
		System.out.print(name + "의 기말시험점수를 입력하라.");
		finalscore = in.nextInt();
		getTotal();

	}

	public double getTotal( )
	{
		return midtermscore + quizscore + finalscore;
	}

	public double getscore() {
		return getTotal();
	}
}

 

 

 

 

 

  • StudentDriver 클래스
// 실습과제 8.1: StudentDriver.java
// Student 클래스를 시험한다
package chapter02;

class  StudentDriver
{
	public static void main (String[] args)
	{
		Student stud1 = new Student("선남");
		stud1.getQuizScore();
		stud1.getFinalScore();
		stud1.getMidtermScore();
		stud1.getTotal();//총점계산
		System.out.println(stud1.getName() + "의 총점은 " + stud1.getTotal()+ "이다.");

		Student stud2 = new Student("선뚱");
		stud2.getQuizScore();
		stud2.getFinalScore();
		stud2.getMidtermScore();
		stud2.getTotal();//총점계산
		System.out.println(stud2.getName() + "의 총점은 " + stud2.getTotal()+ "이다.");
   }
}

 

 

  • 출력결과

 

 

 

 

 

 

 


  • ClassRoll설계
package chapter03;
//출석부를 Student 객체들의 배열로 나타낸다.

public class ClassRoll
{
 
}

 

 

  • ClassRollDriver설계
package chapter03;
// 출석부를 관리한다
import java.util.Scanner;

public class ClassRollDriver
{
   public static void main (String[] args)
   {
	   // 변수들
	   Scanner scan = new Scanner (System.in);
	   int choice;			// 사용자 선택
	   String coursename;	// 교과목명
	   String name;			// 이름
	   int number;			// 학번
	   Student student;		// Student 객체 참조변수

	   ClassRoll sbook= new ClassRoll();

       // 교과목명을 입력 받는다
	   System.out.print("교과목명을 입력하세요: ");
	   coursename = scan.next();

	   // 출석부의 교과목명을 입력 받은 입교과목명으로 변경한다
        	// 여기에 코드를 입력하세요

	   do {
		   // 사용자가 원하는 연산을 선택하게 한다
		   System.out.print("원하는 연산을 선택하세요:");
		   System.out.print("(1) 추가");
		   System.out.print("(2) 찾기");
		   System.out.println("(3) 종료");

		   choice = scan.nextInt();

           // 사용자의 선택에 따라 연산을 수행한다
		   if (choice == 1)
		   {
			   // 추가하는 학생의 학번과 이름을 입력 받은 후 그 학생을 출석부에 추가한다
        			// 여기에 코드를 입력하세요
		   }
		   else if (choice == 2)
		   {
			   // 찾는 학생의 학번을 입력 받은 후 그 학생의 이름을 출력한다
        			// 여기에 코드를 입력하세요
		   }
	   } while (choice != 3);
   }
}






  • ClassRoll클래스
package chapter03;
//출석부를 Student 객체들의 배열로 나타낸다.

import java.util.Scanner;

public class ClassRoll
{
	Student[] stu = new Student[2];

	Scanner in = new Scanner (System.in);
	int choice;			// 사용자 선택
	String coursename;	// 교과목명
	String name;			// 이름
	int number;			// 학번
	Student student;		// Student 객체 참조변수

	public ClassRoll() {

	}
	public void setCoursename(String Coursename) {
		coursename = Coursename;
	}
	
	public String toString() {
		return  name + ", " + number ;
	}
	
    public String getName( )
    {
		return name;
	}
    
    public void input() {
    	System.out.print("이름 입력 : ");
    	name = in.next();
    	System.out.print("학번 입력 : ");
    	number = in.nextInt();
    }
}

 

 

 

 

 

 

 

  • ClassRollDriver클래스
package chapter03;// 출석부를 관리한다
import java.util.ArrayList;
import java.util.Scanner;
public class ClassRollDriver
{
   public static void main (String[] args)
   {
	   Scanner in = new Scanner (System.in);
	   int choice;			// 사용자 선택
	   String coursename;	// 교과목명
	   String name;			// 이름
	   int number;			// 학번
	   Student student;		// Student 객체 참조변수

	   ClassRoll sbook= new ClassRoll();

	   System.out.print("교과목명을 입력하세요: ");
	   coursename = in.next();

	   // 출석부의 교과목명을 입력 받은 입교과목명으로 변경한다
	   sbook.setCoursename(coursename);

	   do {
		   System.out.print("원하는 연산을 선택하세요:");
		   System.out.print("(1) 추가");
		   System.out.print("(2) 찾기");
		   System.out.println("(3) 종료");

		   choice = in.nextInt();

		   if (choice == 1)
		   {
			   sbook.input();
			   ArrayList<ClassRoll> list = new ArrayList<ClassRoll>();
			   ClassRoll s = new ClassRoll();
		   }
		   else if (choice == 2)
		   {
			   System.out.println("찾는 학생의 학번 : ");
			   number = in.nextInt();
			   if (number==sbook.number) {
				System.out.println(sbook.name+ ","+ sbook.number);
			}//if (number==sbook.number)
			   else {
				System.out.println("결과없음");
			}
		   }
	   } while (choice != 3);
	   System.out.println("종료");
   }
}

 

 

  • 출력결과

뭔가 졸라 어려운데 하긴했는데 어떻게했는지모르겠고

잘한게 맞나싶고 ; 모르겠네

쌤이 코드짠것만해도 잘한다했다! 예!

근데 어레이리스트말고 클래스배열쓰라구했다 ㅠ

싫어요 ㅠㅠ...

말은 싫다하지만.... 오늘 복습할것 : 출석부프로그램 클래스배열로....

728x90
LIST

댓글