본문 바로가기

   
Programming/Java

10일차!

반응형
package work;

public class Item {
//   - 상품번호(no), 상품명(name), 가격(price)을 변수로 가지는 클래스(Item 클래스)를 정의하세요.
//   - 기본 생성자를 정의하세요
//   - 상품번호, 상품명, 가격을 전달받아서 생성된 객체의 변수를 초기화하는 생성자를 정ㅇ의하세요.
//   - 상품정보(상품번호, 상품명, 가격)를 화면에 표시하는 display() 메소드를 정의하세요.
      int no;
     String name;
      int price;
     
      public Item(){}
     
      public Item( int no, String name, int price){
            this. no = no;
            this. name = name;
            this. price = price;
     }
     
      public void display(){
           System. out.println( "번호:" + no + "\t이름:" + name + "\t가격:" + price );
     }
     
}


package work;
import java.util.Scanner;

public class ItemDemo {
      public static void main(String[] args){
//         ItemDemo를 정의하세요.
//         - 상품번호, 상품명, 가격을 키보드로 입력받으세요.
//         - 위에서 정의한 Item객체를 생성해서 입력받은 값을 담으세요, 값을 담을 때는 생성자를 활용하세요
//         - 생성된 객체의 display()를실행시켜서 입력된 값을 화면에 표시하세요.
            int no, price;       
           String name;
           Scanner s = new Scanner(System. in);
           System. out.print( "번호 입력 : " );
            no = s.nextInt();
           System. out.print( "이름 입력 : " );
            name = s.next();
           System. out.print( "가격 입력 : " );
            price = s.nextInt();
           Item i = new Item( no, name, price);
            i.display();
            s.close();
     }

     
     
}

order.txt
  123, iphone,600000
  134, ipad,800000
  156,galaxy,79000


package work;
import java.io.File;
import java.util.Scanner;

public class Order {
      public static void main(String[] args) throws Exception{
           Scanner s = new Scanner( new File("src/lang/order.txt" ));
            //스트링 배열 선언
            //1. for문으로 돌면서 s.nextLine
            //2. 돌면서 배열에 하나씩 값을 저장
            //3. split함수를 통해 ,제거
//         order.txt를 작성하세요.
//         - 상품번호, 상품명, 가격순으로 주문정보를 입력하세요.
//           입력 예)     123, iphone,600000
//                     134, ipad,800000
//                     156,galaxy,79000
//         - Scanner를 사용해서 order.txt 파일을 읽어옵니다.
//         - 주문상품정보를 저장하기 위해 Item을 여러개 담을 수 있는 배열을 정의하시고, 파일에서 얻어온 값을 배열에 저장하세요.
//         - 배열에 저장된 정보를 아래와 같이 표시하세요
      //
//         ========================== 주문내역 ===========================
//         상품번호     상품명     상품가격
//         123          iphone     600,000원
//         134          ipad     800,000원
//         156          galaxy     790,000원
//        =============================================================== 
           String[] arr = new String[3];        
           System. out.println( "========= 주문내역 ==========" );
           System. out.println( "상품번호\t상품명\t상품가격" );       
            for( int i=0; i<3; i++){              
                 arr[ i] = s.nextLine();
                String[] temp = arr[ i].split( ",");
                 for( int j=0; j< temp. length; j++){               
                     System. out.print( temp[ j]+ "\t");
                      if( j==2){
                           System. out.print( "원");
                     }
                }
                System. out.println();           
           }          
           System. out.println( "=========================" );
     }
//결과화면_______________________     
//   ========= 주문내역 ==========
//   상품번호    상품명     상품가격
//     123 iphone     600000     원
//     134 ipad 800000     원
//     156galaxy     79000원
//    =========================

}


package beans;
import java.util.Date;

public class Book {
      private int no;
      private String title;
      private String author;
      private int price;
      private String publisher;
      private Date pubdate;
      private String desc;
     
      //기본 생성자정의
      public Book(){}

      public Book( int no, String title, String author, int price){
            this. no = no;
            this. title = title;
            this. author = author;
            this. price = price;
     }
     
      //getter와 setter를 정의힌다
      //getter변수를 읽어오고 싶을때 사용
      //setter변수는 변수를 할당하고싶을때
      //값에 접근 자체를 제어할수 있다. private로 숨겨놓은뒤 get, set객체를 써서 제어가 가능하다.
      public int getNo() {
            return no;
     }

      public void setNo( int no) {
            this. no = no;
     }

      public String getTitle() {
            return title;
     }

      public void setTitle(String title) {
            this. title = title;
     }

      public String getAuthor() {
            return author;
     }

      public void setAuthor(String author) {
            this. author = author;
     }

      public int getPrice() {
            return price;
     }

      public void setPrice( int price) {
            this. price = price;
     }

      public String getPublisher() {
            return publisher;
     }

      public void setPublisher(String publisher) {
            this. publisher = publisher;
     }

      public Date getPubdate() {
            return pubdate;
     }

      public void setPubdate(Date pubdate) {
            this. pubdate = pubdate;
     }

      public String getDesc() {
            return desc;
     }

      public void setDesc(String desc) {
            this. desc = desc;
     }

      @Override
      public String toString() {
            return "Book [no=" + no + ", title=" + title + ", author=" + author
                     + ", price=" + price + ", publisher=" + publisher
                     + ", pubdate=" + pubdate + ", desc=" + desc + "]";
     }
     
      public void print(){
           System. out.println( no);
           System. out.println( title);
           System. out.println( author);
           System. out.println( price);
     }
     
}


package beans;
import java.util.Date;
public class BookDemo {
     
      public static void main(String[] args){
           Book book = new Book();
            book.setNo(123);
            book.setTitle( "자바의 정석" );
            book.setAuthor( "남궁 성" );
            book.setPublisher( "도우출판사" );
            book.setPrice(30000);
            book.setDesc( "자바 강의 교제로 많이 사용되요" );
            book.setPubdate( new Date());
            int no = book.getNo();
           String name = book.getTitle();
           
           System. out.println( "책번호:" + no );
           System. out.println( "책이름:" + name );
           System. out.println( book);
     }
     
}


package beans;
import java.util.Scanner;
public class BookDemo2 {
     
      public static void main(String[] args){
            /*책번호, 책제목, 저자, 가격을 입력받아서 Book 객체를 생성하고
            * 화면에 입력된 내용을 출력하세요
            * 출판일은 현재날짜로 지정하세요
            */
           Scanner s = new Scanner(System. in);
           System. out.println( "입력" );
           
           Book book2 = new Book(111, "자전거 기행" , "김훈" ,15000);
            book2.print();
            //결과___
//         입력
//         111
//         자전거 기행
//         김훈
//         15000

     }
     
}


package beans;

import java.io.File;
import java.util.Scanner;

public class BookDemo3 {
     
      public static void main(String[] args) throws Exception{
           Scanner s= new Scanner( new File("src/lang/book.txt" ));
           Book[] books = new Book[4];
           String[] arr = new String[4];
           
          System. out.println( "=================도서정보================" );
           System. out.println( "번호\t제목\t작가\t출판사\t금액" );
            for( int i=0; i<4; i++){
                 arr[ i] = s.nextLine();
                String[] temp = arr[ i].split( ",");
                 for( int j=0; j< temp. length; j++){
                      books[ i] = new Book(Integer.parseInt( temp[0]), temp[1], temp[2], temp[3],Integer. parseInt( temp[4]));
                }
                 books[ i].print();
           }
          System. out.println( "======================================" );
     }
//결과화면____________________________________________
//              =================도서정보================
//              번호  제목       작가       출판사     금액
//              1    자바의 정석 남궁성     도우출판사  30000
//              2    수도원 기행 공지영     청우       15000
//              3    남한산성    김훈       응수출판사  20000
//              4    수학의 정석 홍성대     성지출판사  30000
//              ======================================
     
     
}


package beans;

import java.io.File;
import java.util.Scanner;

public class BookFileReader {
     
      private String filename;   
     
      public BookFileReader(String filename){
            this. filename = filename;
     }
     
      //어디에 있는 파일을 읽을 지 설정
      public Book[] read() throws Exception{
           Book[] books = new Book[4];
           Scanner s = new Scanner( new File( filename));
           
            for( int i=0; i<4; i++){
                String text = s.nextLine();
                String[] items = text.split( ",");
                
                Book book = new Book();
                 book.setNo(Integer. parseInt( items[0]));
                 book.setTitle( items[1]);
                 book.setAuthor( items[2]);
                 book.setPublisher( items[3]);
                 book.setPrice(Integer. parseInt( items[4]));
                
                 books[ i] = book;
           }
            return books;
     }
     
}


package beans;

public class BookDemo4 {
     
      public static void main(String[] args) throws Exception{
           
           String datafile = "src/lang/book.txt" ;
           
           BookFileReader r = new BookFileReader( datafile);
           Book[] books = r.read();
           
            for(Book b : books){
                System. out.println( b.getTitle());
           }          
     }
     
}


package oop16;

public class InnerClass {

      private String name;
     
      //특정 클래스 내부에서만 사용가능한 클래스
      //클래스 내부에 정의되기 때문에    
      public class SubClass{ //내부클래스는 객체 생성이 안되기 때문에 많이 사용되지 않는다.
            //메소드 안에서도 클래스 선언이 가능하다 불가능은 없음 하지만 사용빈도가 많지 않음
            public void display(){
                System. out. println( name);
           }
     }
}


package oop16;

public interface Click {

      void running();
      //한군데에서만 쓰는 클래스를 굳이 이름을 붙이지말자.
}


package oop16;

public class PowerClick implements Click {
     
      public void running (){
           System. out.println( "파워버튼이 클릭되었습니다." );
     }
}


package oop16;

public class ClickDemo {

      public static void main(String[] args){
           PowerClick pc = new PowerClick();
            pc.running();
            //익명 내부 클래스
            //클래스를 안만들고 전원 오프
            //즉석 구현
            //C:\java_study\workspace\basic\bin\oop16
            //ClickDemo$1 이런식으로 $뒤에 번호가 붙는다.
            //이런식으로 여러개 구현할수 있다.
            //이벤트 기반의 어떠한 처리를 할때 많이 사용된다.

           Click c1 = new Click() {
                 public void running(){
                System. out.println( "파워 오프" );

                }
           };
           
            c1.running();
           
           Click c2 = new Click() {             
                 @Override
                 public void running() {
                      // TODO Auto-generated method stub
                     System. out.println( "화면을 정지시킵니다." );
                }
           };
           
            c2.running();
           
            new Click(){
                 public void running(){
                     System. out.println( "화면을 회전시킵니다." );
                }
           }.running();
//         결과화면____________        
//         파워버튼이 클릭되었습니다.
//         파워 오프
//         화면을 정지시킵니다.
//         화면을 회전시킵니다.

           
     }
}


package beans;

import java.io.File;
import java.util.Scanner;

public class BookManager {
      /**
      * 지정된 제목이 포함된 책들 제공하기 serchByTitle(String
      * 지정된 이름의 출판사에서 출판한 책들 제공하기
      * 지정된 가격의 책들 제공하기
      */   
      private Book[] books = new Book[10];

      public BookManager()  throws Exception {
           Scanner s = new Scanner( new File("src/lang/book.txt" ));
           
            for( int i=0; i<10; i++){
                String text = s.nextLine();
                String[] items = text.split( ",");
                
                Book book = new Book();
                 book.setNo(Integer. parseInt( items[0]));
                 book.setTitle( items[1]);
                 book.setAuthor( items[2]);
                 book.setPublisher( items[3]);
                 book.setPrice(Integer. parseInt( items[4]));
                
                 books[ i] = book;
           }
     }
           
      public Book[] searchByTitle(String name){
           Book[] result = new Book[10];
           
            int cnt = 0;
            for ( int i=0; i<10; i++) {
                Book book = books[ i];
                String title = book.getTitle();
                 if ( title.contains( name)) {
                      result[ cnt] = book;
                      cnt++;
                }
           }
           
            return result;
     }
     
      //* 지정된 이름의 출판사에서 출판한 책들 제공하기
      public Book[] searchByPublishe(String publisheName){
           Book[] result = new Book[10];
           
            int cnt = 0;
            for ( int i=0; i<10; i++) {
                Book book = books[ i];
                String name = book.getPublisher();
                 if ( name.contains( publisheName)) {
                      result[ cnt] = book;
                      cnt++;
                }
           }
           
            return result;
     }
     
     
      //*지정된 가격의 책들 제공하기
      public Book[] searchByPrice( int bookprice){
           Book[] result = new Book[10];
           
            int cnt = 0;
            for ( int i=0; i<10; i++) {
                Book book = books[ i];
                 int price = book.getPrice();
                 if ( price == bookprice) {
                      result[ cnt] = book;
                      cnt++;
                }
           }
           
            return result;
     }
}


package beans;

public class BookDemo5 {
     
      public static void main(String[] args) throws Exception{
           BookManager book = new BookManager();
           System. out.println( book.searchByTitle( "원피스" )[0]);
          System. out.println( book.searchByPublishe( "클라라출판사" )[0]);
           System. out.println( book.searchByPrice(34000)[0]);
     }
//결과화면_________________________________________________________________________________________________     
//   Book [no=52, title=원피스, author=오다이이치로, price=75000, publisher=점프, pubdate=null, desc=null]
//   Book [no=54, title=시구왕 클라라, author=크라라라, price=60000, publisher=클라라출판사, pubdate=null, desc=null]
//   Book [no=21, title=언니저맘에안들죠?, author=김예원, price=34000, publisher=예원출판사, pubdate=null, desc=null]
     
}


1. 알파벳의 갯수를 구하세요.
hello world
캐릭터at로 특정 문자가 몇갠지
알파벳은 for문으로 돌려서 a~z출력 가능

2. 문자열을 다루는 유틸클래스(Stringutil)만들기
- 전달받은 문자열의 길이를 반환하는 메소드
- 전달받은 숫자를 세자리마다','가 들어있는 문자열로 반환하는 메소드
- 전달받은 Date를 'yyyy-mm-dd'형식의 문자열로 반환하는 메소드
- 전달받은 영문 문자열, 대소문자로 변환해서 반환하는 메소드
(반환할 문자열과 대/소문자 구분값을 전달받아야 한다.
public String changeUpperOrLower(String src, String how))
package work;

import java.text.SimpleDateFormat;
import java.util.Date;

public class StringCheck {
      private String temp;
     
      public StringCheck(){}
     
      public StringCheck(String temp){
            this. temp = temp;
     }
     
      //전달받은 문자열의 길이를 반환하는 메소드
      public int StringLength(){      
            return temp.length();
     }
     
      // 전달받은 숫자를 세자리마다','가 들어있는 문자열로 반환하는 메소드
      public String StringComma( int temp){
       String result = String. format("%,d" temp );
       return result;
     }
     
      //전달받은 Date를 'yyyy -mm- dd'형식의 문자열로 반환하는 메소드
      public String StringDate(Date date){
           SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd" );
           String result = sdf.format( date);
            return result;
     }
     
      //전달받은 영문 문자열, 대소문자로 변환해서 반환하는 메소드
      //(반환할 문자열과 대/소문자 구분값을 전달받아야 한다.
      public String changeUpperOrLower(String src, String how){
           String result = src;
            if( how == "m"){
                 result = src.toUpperCase();
           } else if( how == "c") {
                 result = src.toLowerCase();
           }
            return result;
     }
     
}


package work;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringUtil {

      public static void main(String[] args){
           String temp = "열심히 배워서 스킬업을 많이 많이 할것입니다";
            int num = 1234567891;
           String minuscule = "im minuscule";
           String capital = "IM CAPITAL";
           StringCheck sc = new StringCheck( temp);
           System. out.println( sc.StringLength());
           System. out.println( sc.StringComma( num));
           
        Date date = new Date();
        System. out.println( sc.StringDate( date));
       
        System. out.println( sc.changeUpperOrLower( minuscule"m" ));
        System. out.println( sc.changeUpperOrLower( capital"c"));
       
       
     }
}

3. order.txt 파일을 만드세요
상품번호 상품명 가격 구매수량
123,iphone, 100000,2
345,ipad,80000,1
456,galaxy,670000,2

Device 클래스를 정의하세요
번호, 상품명, 가격, 수량
getter/setter, toString() 재정의
OrderManager 클래스를 정의 하세요.
구매자이름, 상품들 String owner, Device[] devices = new Device[3];
생성자에서 order.txt를 읽이서 devices 배열에 다 담기
전체 구매상품 갯수를 계산해서 반환하는 메소드
전체 구매가격을 계산해서 반환하는 메소드
OrderManagerDemo 클래스를 정의하세요
OrderManager를 생성하고, 전체 구매상품갯수와 전체 구매가격을 표시
order.txt
123, iphone,600000,5
134, ipad,800000,4
156,galaxy,79000,7



package work;

public class Device {
//   Device 클래스를 정의하세요
//   번호, 상품명, 가격, 수량
//   getter/setter, toString() 재정의
//   OrderManager 클래스를 정의 하세요.
      private int num;
      private String productname;
      private int price;
      private int quantity;
     
      public Device(){}
     
      public Device( int num, String productname, int price, int quantity){
            this. num = num;
            this. productname = productname;
            this. price = price;
            this. quantity = quantity;
     }
     
      public int allProductCount(){
            int result = 0;
            return result;
     }

      public int allProductPrice(){
            int result = 0;
            return result;
     }
     
      public int getNum() {
            return num;
     }
      public void setNum( int num) {
            this. num = num;
     }
      public String getProductname() {
            return productname;
     }
      public void setProductname(String productname) {
            this. productname = productname;
     }
      public int getPrice() {
            return price;
     }
      public void setPrice( int price) {
            this. price = price;
     }
      public int getQuantity() {
            return quantity;
     }
      public void setQuantity( int quantity) {
            this. quantity = quantity;
     }
     
      @Override
      public String toString() {
            return "Device [num=" + num + ", productname=" + productname
                     + ", price=" + price + ", quantity=" + quantity + "]";
     }
     
}


package work;
import java.io.File;
import java.util.Scanner;
public class OrderManager extends Device{

     Device[] device = new Device[3];
     
      public OrderManager() throws Exception{
           Scanner s = new Scanner( new File("src/lang/order.txt" ));

            for( int i=0; i<3; i++){
                String text = s.nextLine();
                String temp[] = text.split( ",");
                 device[ i] = new Device(Integer.parseInt( temp[0]), temp[1], Integer.parseInt( temp[2]), Integer. parseInt(temp [3]));                
           }
           
     }
     
//   전체 구매상품 갯수를 계산해서 반환하는 메소드
      public int allProductCount(){
            int result = 0;
            for(Device n: device){
                 result += n.getQuantity();
           }
            return result ;
     }
     
//   전체 구매가격을 계산해서 반환하는 메소드 
      public int allProductPrice(){
            int result = 0;
            for(Device n: device){
                 result += n.getPrice();
           }
            return result;
     }
}


package work;

public class OrderManagerDemo {
//   OrderManagerDemo 클래스를 정의하세요
//   OrderManager를 생성하고, 전체 구매상품갯수와 전체 구매가격을 표시
      public static void main(String[] args) throws Exception{
            Device o = new OrderManager();       
           System. out.println( o.allProductCount()); //전체 구매상품갯수
           System. out.println( o.allProductPrice()); //전체구매가격 계싼
     }
}
  



반응형