7장 배열 ①.

Slides:



Advertisements
Similar presentations
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
Advertisements

5 장 조건과 반복 ②. Contents Counting and Looping [while 문 사용 ] Powers of 2 [while 문 사용 ] More Guessing [do 문 사용 ] Election Day [do 문 사용 ] Finding Maximum &
명품 JAVA Programming 제 3 장 반복문, 배열, 예외처리.
어서와 Java는 처음이지! 제3장선택과 반복.
제 7주 2015년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
10. 예외 처리.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
IntArray[0] int length 5 intArray 객체 제 3 장 반복문, 배열, 예외처리.
객체지향 프로그래밍.
7장 배열 ②.
어서와 Java는 처음이지! 제4장 배열.
Java Presentation 중간 시험2 풀이
제 4장 문 장 배정문 혼합문 제어문 표준 입출력.
제6장 제어(Control) 6.1 구조적 프로그래밍(Structured Programming)
10장 예외 Lab 10-1.
제6장 객체배열과 벡터 객체 배열을 이해한다. 벡터(vector) 클래스를 사용할 수 있다.
윤 홍 란 제3장 클래스와 객체의 사용-1 윤 홍 란
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
[INA470] Java Programming Youn-Hee Han
명품 JAVA Programming 제 7 장 제네릭과 컬렉션.
명품 JAVA Essential.
제7장 제어구조 I – 식과 문장.
명품 JAVA Essential.
명품 JAVA Programming.
명품 JAVA Programming 제 4 장 클래스와 객체.
Power Java 제4장 자바 프로그래밍 기초.
7장 배열 ②.
7 스택.
Power Java 제10장 배열.
자바 5.0 프로그래밍.
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
명품 JAVA Essential.
명품 Java Programming.
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
윤 홍 란 4 장 클래스 작성 윤 홍 란
5장 조건과 반복 ①.
인터페이스(Interfaces) 강원대학교.
This, static, final 지정 예약어 자바 4대 중첩 클래스
객체지향적인 프로그래밍에 대한 이해 클래스와 객체의 개념에 대한 이해
주소록 프로그램.
컴퓨터 프로그래밍 실습 #6 제 4 장 클래스 작성.
제 4주 – 클래스 설계 제 4주 목표 클래스를 구현하는 법을 배운다. 변수 선언 메소드 구현 구성자 객체지향프로그래밍
6장 객체-지향 설계 ①.
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
5장 조건과 반복 ②.
제2장 데이터 및 수식.
6장 객체-지향 설계 ①.
어서와 Java는 처음이지! 제4장 배열 IT응용시스템공학과 김형진 교수.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
제어문 & 반복문 C스터디 2주차.
[INA470] Java Programming Youn-Hee Han
컴퓨터공학실습(I) 3주 인공지능연구실.
DataScience Lab. 박사과정 김희찬 (화)
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
JA A V W. 04.
내부 클래스와 내부 인터페이스에 대하여 내부 클래스의 선언 방법과 이용 방법 내부 인터페이스의 선언 방법과 이용 방법
자바 5.0 프로그래밍.
5장 조건과 반복 ①.
Chapter 02. 소프트웨어와 자료구조.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
제 4 장 클래스 작성 Lab 4- 2.
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
Chapter 4 클래스 작성.
Java 5장. 객체지향 개념 public class SumTest {
Choi Younghwan CSE HUFS
Presentation transcript:

7장 배열 ①

목차 1차원 배열 객체들의 배열 명령-줄 인자 판매 기록 퀴즈 게임 역배열 정수 리스트에 추가, 제거하기. 쇼핑 카트 평균 구하기

판매 기록 평균 판매량 출력하기. 최소/최대 판매량 출력하기. 기존 판매원의 ID 0~4를 1~5로 수정하기. 기존 loop 활용하기. 예 : “Salesperson 3 had the highest sale the with $4500.” 기존 판매원의 ID 0~4를 1~5로 수정하기. 배열은 수정하지 말 것!! 사용자로부터 판매원의 수를 입력 받아 배열을 생성하도록 수정해보자.

판매기록 (Cont.) – Sales.java //******************************************************* // Sales.java // // 판매원 5명의 판매량을 입력받고 저장한다. import java.util.Scanner; public class Sales { public static void main(String[] args) final int SALESPEOPLE = 5; int[] sales = new int[SALESPEOPLE]; int sum; Scanner scan = new Scanner (System.in); for (int i = 0; i < sales.length; i++) System.out.print("Enter sales for salesperson " + i + ": "); sales[i] = scan.nextInt(); }

판매기록 (Cont.) – Sales.java System.out.println("\nSalesperson Sales"); System.out.println("--------------------"); sum = 0; for (int i = 0; i < sales.length; i++) { System.out.println("\t" + i + "\t" + sales[i]); sum += sales[i]; } System.out.println("\nTotal sales : " + sum);

퀴즈 게임 사용자로부터 퀴즈의 질문 수를 입력 받는다. 사용자로부터 정답을 입력 받아 배열에 저장한다. 퀴즈 게임을 시작한다. 정답은 정수형이고, 한 줄에 입력 받는다. 예(질문 수 10개인 퀴즈) : 34 7 13 100 81 3 9 10 321 12 퀴즈 게임을 시작한다. 사용자로부터 정답을 입력 받기 전 질문을 해야 한다. 사용자로부터 입력 받은 정답은 배열에 저장하지 않는다. 게임이 끝나면 맞춘 개수와 퍼센트를 출력한다. loop을 추가해 사용자가 원할 경우 게임을 계속 할 수 있도록 한다. Grade another quiz?(y/n)

역배열 배열을 만든다. 힌트! 역배열을 만든다. 바꾸어야 할 자리들의 값들을 swap한다. 사용자로부터 배열의 크기와 배열에 저장할 값을 입력 받는다. 배열을 출력한다. 역배열을 만든다. 기존 배열의 첫 번째 값이 역배열의 마지막 값이 되도록! 새로운 배열을 만들지 말고 기존 배열을 사용할 것! 역배열을 출력한다. 힌트! 바꾸어야 할 자리들의 값들을 swap한다.

정수 리스트에 추가, 제거하기. IntegerList에 메소드를 추가해보자 increaseSize()를 추가해보자. 현재 배열의 크기와 원소의 개수를 저장하는 instance 변수를 가진다. void addElement(int newVal)를 추가해보자. 리스트에 원소를 추가하기 전에 배열이 가득 차 있는지 검사해야 한다. (검사시 increaseSize()를 사용) void removeFirst(int newVal)를 추가해보자. 원소를 제거할 때 배열의 크기는 변하지 않는다. 현재 리스트의 첫 번째 원소를 제거한다. 남은 원소를 이동하여 빈 곳을 채워준다. element의 개수를 저장하는 변수의 값을 바꿔준다. removeAll(int newVal)를 추가해보자. 리스트의 모든 원소를 제거한다.

정수 리스트에 추가, 제거하기. (Cont.) - IntegerList.java //******************************************************* // IntergerList.java // // 정수 리스트에 element를 추가하고 제거하는 메소드를 // 가진다. public class IntegerList { int[] list; //--------------------------------------------------- // 주어진 사이즈로 리스트를 만든다. public IntegerList(int size) list = new int[size]; }

정수 리스트에 추가, 제거하기. (Cont.) - IntegerList.java //--------------------------------------------------- // 1~100 사이의 정수를 무작위로 선택하여 배열을 채운다. public void randomize() { for (int i = 0; i<list.length ; i++) list[i] = (int)(Math.random() * 100) + 1; } // 배열 원소와 인덱스를 출력한다. public void print() System.out.println(i + ":\t" + list[i]);

정수 리스트에 추가, 제거하기. (Cont.) - IntegerListTest.java //******************************************************* // IntegerListTest.java // IntegerList를 test. import java.util.Scanner; public class IntegerListTest { static IntegerList list = new IntegerList(10); static Scanner scan = new Scanner (System.in); //--------------------------------------------------- // 리스트를 생성, quit할 때까지 반복적으로 menu를 수행. public static void main(String[] args) printMenu(); int choice = scan.nextInt(); while (choice != 0) dispatch(choice); choice = scan.nextInt(); }

정수 리스트에 추가, 제거하기. (Cont.) - IntegerListTest.java //--------------------------------------------------- // menu에서 선택할 일을 수행. public static void dispatch(int choice) { int loc; switch (choice) case 0: System.out.println("Bye!"); break; case 1: System.out.println("How big should the list be?"); int size = scan.nextInt(); list = new IntegerList(size); list.randomize(); case 2: list.print(); default: System.out.println("Sorry, invalid choice"); }

정수 리스트에 추가, 제거하기. (Cont.) - IntegerListTest.java //--------------------------------------------------- // Menu - 사용자의 선택을 출력한다. public static void printMenu() { System.out.println("\n\tMenu "); System.out.println("\t===="); System.out.println("0: Quit"); System.out.println("1: Create a new list (** do this first!! **)"); System.out.println("2: Print the list"); System.out.print("\nEnter your choice : "); }

쇼핑 카트 ShoppingCart를 완성해보자. instance 변수 cart를 추가한다. cart는 item의 배열이다. 구성자에서 초기화해준다. increaseSize()를 추가한다. capacity를 3 증가 시킨다. addToCart()를 추가한다. item을 카트에 추가한다. totalPrice를 업데이트한다.

쇼핑 카트 (Cont.) 두 프로그램을 test할 프로그램을 작성하자. 사용자가 쇼핑을 원할 때까지 반복한다.(loop) loop을 돌 때마다 사용자로부터 item의 이름, 가격, 수량을 입력받는다. 카트에 item을 추가한 후, 카트의 내용물을 출력한다. loop을 한 번 수행한 후, 카트의 총 가격을 출력한다. - 예 : “Please pay…”

쇼핑 카트 (Cont.) -Item.java //******************************************************* // Item.java // // 쇼핑 카트 목록을 보여준다. import java.text.NumberFormat; public class Item { private String name; private double price; private int quantity; //--------------------------------------------------- // item을 생성한다. public Item(String itemName, double itemPrice, int numPurchased) name = itemName; price = itemPrice; quantity = numPurchased; }

쇼핑 카트 (Cont.) -Item.java //--------------------------------------------------- // item 정보를 반환한다. public String toString() { NumberFormat fmt = NumberFormat.getCurrencyInstance(); return (name + "\t" + fmt.format(price) + "\t" + quantity + "\t" + fmt.format(price*quantity)); } // item의 개당 가격을 반환한다. public double getPrice() return price;

쇼핑 카트 (Cont.) -Item.java //--------------------------------------------------- // item의 이름을 반환한다. public String getName() { return name; } // item의 수량을 반환한다. public int getQuantity() return quantity;

쇼핑 카트 (Cont.) -ShoppingCart.java //******************************************************* // ShoppingCart.java // item의 배열로 쇼핑 카트를 표현한다. import java.text.NumberFormat; public class ShoppingCart { private int itemCount; // 카트에 담긴 총 item 수 private double totalPrice; // 카트에 담긴 item의 총가격 private int capacity; // 현재 카트의 최대 수용량. //--------------------------------------------------- // 5개의 item을 담을 수 있는 쇼핑 카트를 생성한다. public ShoppingCart() capacity = 5; itemCount = 0; totalPrice = 0.0; } // 쇼핑 카트에 item을 추가한다. public void addToCart(String itemName, double price, int quantity)

쇼핑 카트 (Cont.) -ShoppingCart.java //--------------------------------------------------- // 모든 쇼핑 카트에 담긴 내용물의 정보를 반환한다. public String toString() { NumberFormat fmt = NumberFormat.getCurrencyInstance(); String contents = "\nShopping Cart\n"; contents += "\nItem\t\tUnit Price\tQuantity\tTotal\n"; for (int i = 0; i < itemCount ; i++ ) contents += cart[i].toString() + "\n"; contents += "\nTotal Price : " + fmt.format(totalPrice); contents += "\n"; return contents; } // 쇼핑카트에 담을 수 있는 item의 개수를 3개 늘린다. public void increaseSize()

평균 구하기 Average.java를 작성하자. Average.java를 수정해보자 명령 줄에서 받은 string을 출력한다. string이 없는 경우 “No arguments”를 출력한다. Average.java를 수정해보자 명령 줄에서 제공받는 정보는 정수이다. argument의 평균을 계산하여 출력한다. - parseInt() 사용.