지난번 학고도 있고 해서 다시 공부를 열심히 해보려고 합니다.

공부를 하며 정리 되는대로 올리도록 하겠습니다.

심!기!일!전!

파란 블로그의 라삐 님께서 정리하신 Eclipse단축키 입니다.
원본 주소 : http://blog.paran.com/rabbii/14608118
 
Kind Category Name (Command) Key Sequence When Remark
Function
Key
File Rename F2 In Windows  
Edit Show Tooltip Description F2 Editing in Structured Text Editors  
Navigate Open Declaration F3 In Windows
Navigate Open Type Hierarchy F4 In Windows  
File Refresh F5 In Windows  
Run/Debug Debug Last Launched F11 In Windows  
Window Activate Editor F12 In Windows Editor창으로

←↓→
Arrow
Text Editing Scroll Line Down Ctrl+Down Editing Text  
Text Editing Scroll Line Up Ctrl+Up Editing Text  
Navigate Go to Previous Member Ctrl+Shift+Up Editing Java Source  
Navigate Go to Next Member Ctrl+Shift+Down Editing Java Source  
Navigate Backward History Alt+Left In Windows History
Navigate Forward History Alt+Right In Windows
Text Editing Move Lines Up Alt+Up Editing Text  
Text Editing Move Lines Down Alt+Down Editing Text  
Edit Select Previous Element Alt+Shift+Left Editing in Structured Text Editors Select…
Edit Select Next Element Alt+Shift+Right Editing in Structured Text Editors
Edit Select Enclosing Element Alt+Shift+Up Editing in Structured Text Editors
Edit Restore Last Selection Alt+Shift+Down Editing in Structured Text Editors
File
Control
File New Ctrl+N In Windows  
File New menu Alt+Shift+N In Windows  
File Close Ctrl+F4 In Windows  
File Close All Ctrl+Shift+F4 In Windows  
File Save Ctrl+S In Windows  
File Save All Ctrl+Shift+S In Windows  
File Print Ctrl+P In Windows  
File Properties Alt+Enter In Windows  
Goto
&
Move
Navigate Go to Line Ctrl+L Editing Text  
Navigate Go to Matching Bracket Ctrl+Shift+P Editing Java Source  
Navigate (Go to) Last Edit Location Ctrl+Q In Windows  
Navigate Previous Ctrl+, In Windows ★오류부분
   바로가기
Navigate Next Ctrl+. In Windows
Edit Find Next Ctrl+K Editing Text  
Edit Find Previous Ctrl+Shift+K Editing Text  
Eclipse Window Maximize Active View or Editor Ctrl+M In Windows 화면크게보 기
Window Next Editor Ctrl+F6 In Windows  
Window Previous Editor Ctrl+Shift+F6 In Windows  
Window Quick Switch Editor Ctrl+E In Windows  
Window Show Key Assist Ctrl+Shift+L In Dialogs and Windows ★키모음보 기
Comment Source Toggle Comment Ctrl+/, Ctrl+7, Ctrl+Shift+C Editing Java Source 한줄주석
Edit Add Block Comment Ctrl+Shift+/ Editing in Structured Text Editors 선택영역주 석
Edit Remove Block Comment Ctrl+Shift+\ Editing in Structured Text Editors  
Source Add Javadoc Comment Alt+Shift+J In Windows 주석자동추가
Java
Editor
Source Organize Imports Ctrl+Shift+O In Windows import 자동
Source Add Import Ctrl+Shift+M Editing Java Source import 커서
Source Indent Line Ctrl+I Editing Java Source  
Text Editing Open Structure Ctrl+F3 TapestryEditorScope  
Navigate Quick Outline Ctrl+O Editing Java Source  
Navigate Quick Hierarchy Ctrl+T Editing Java Source  
Edit Quick Fix Ctrl+1 Editing in Structured Text Editors ★빠른오류 수정
Eclipse
Editor
Navigate Open Resource Ctrl+Shift+R In Windows
Edit Find and Replace Ctrl+F In Windows  
Search Open Search Dialog Ctrl+H In Windows 자바찾기
Search References in Workspace Ctrl+Shift+G In Windows
Edit Content Assist Ctrl+Space In Dialogs and Windows
Edit Format Document Ctrl+Shift+F Editing in Structured Text Editors ★형식맞추 기
Text Editing To Lower Case Ctrl+Shift+Y Editing Text ★대소문자변경
Text Editing To Upper Case Ctrl+Shift+X Editing Text
Etc Edit Run Query command Ctrl+F9 Editing HQL  
Editor
Common
Key
Edit Select All Ctrl+A In Dialogs and Windows  
Edit Copy Ctrl+C, Ctrl+Insert In Dialogs and Windows  
Edit Cut Ctrl+X, Shift+Delete In Dialogs and Windows  
Edit Paste Ctrl+V, Shift+Insert In Dialogs and Windows  
Edit Redo Ctrl+Y In Windows  
Edit Undo Ctrl+Z In Windows  
Edit Delete Delete In Windows  
Text Editing Line End End Editing Text  
Text Editing Line Start Home Editing Text  
Text Editing Text Start Ctrl+Home Editing Text  
Text Editing Text End Ctrl+End Editing Text  


'대학생활 > JAVA' 카테고리의 다른 글

내맘대로 강좌 JAVA편,,,ㅠㅠ  (2) 2009.04.23
JAVA숙제,,,  (1) 2009.04.09
4주차 자바숙제 떳어요,,  (0) 2009.04.01
내맘대로 강좌 JAVA편 4.5편!!  (0) 2009.03.25
내맘대로 강좌 JAVA편 4  (0) 2009.03.25

집에 도착했습니다.

 

사실 도착한지는 꽤 됐지만 이래저래 일이 많아서요,,

 

타블렛 토착 포스팅도 못하고 있네요.

 

일단 팔에 알이 배겨서 병원에 갔다 왔고요,,

 

머리도 파마를 했습니다.(이건 머리 정리되는 내일저녁 인증샷을 올리도록 하죠,,

 

지금 x킨토시 환경도 거의 완성되어가고, 일단 프로그램 모듈은 C++로 작성할 계획입니다.

 

그래야 윈도랑 아이폰에서 껍데기만 바꿔 쓸 수 있죠,,

 

오늘은 html 파서나 만들어 봐야겠습니다.

'대학생활' 카테고리의 다른 글

UNIST 2009년 2학기 기말고사 시간표  (0) 2009.12.05
내맘대로 강좌 공지!!!  (1) 2009.03.25
내맘대로 강좌 공통편 1  (0) 2009.03.20
학생증 드디어 나왔습니다!!!  (0) 2009.03.16
내맘대로 강좌 시작!!  (1) 2009.03.16


블랙보드(UEE)에 김태성 교수님께서 올려주셨네요,,,

누락이 있었을 줄이야,, 다시 올렸습니다,,,

'대학생활' 카테고리의 다른 글

지금은 집 입니다.  (0) 2009.12.22
내맘대로 강좌 공지!!!  (1) 2009.03.25
내맘대로 강좌 공통편 1  (0) 2009.03.20
학생증 드디어 나왔습니다!!!  (0) 2009.03.16
내맘대로 강좌 시작!!  (1) 2009.03.16
드디어 서버 설치가 완료됬어요!

'대학생활 > 동아리' 카테고리의 다른 글

동아리 서버설치(3)  (0) 2009.11.19
동아리 서버설치(2)  (0) 2009.11.19
동아리 서버설치(1)  (0) 2009.11.19
01234567891011

자 너무 많아서 Gallery로 묶었습니다. 웹 플랫폼 빌더로 한번에 웹서버 설치중...

어느새 모여든 회원들,,,

모종의 오류로 플랫폼빌더 재실행,,,

다시 설치해서 텍스트 큐브 설정,,,

드디어 나타난 텍큐 설치화면(위에서 설정 다했는데 왜 또 나오는거지??)

이렇게 삽질을 거듭한 끝에 만들었는데, 결론은 하이퍼-V를 설치하다가 좆ㅋ망ㅋ,,,
지금 기숙사에서 다시 윈도 밀고 재작업 중입니다..ㅠㅠ

'대학생활 > 동아리' 카테고리의 다른 글

드디어 서버 설치 완료!!  (0) 2009.11.20
동아리 서버설치(2)  (0) 2009.11.19
동아리 서버설치(1)  (0) 2009.11.19

자, 이래저래 라이센스도 읽고 이제 설치를 시작했습니다.


자 정품인증을 하고 있습니다.(정품 맞습니다. 마이크로소프트 드림스팍에서 학생들 공부용으로 준거니, 동아리 활동에 쓰는건 라이센스 위반 아니겠죠?)


자 정품 인증샷!!

'대학생활 > 동아리' 카테고리의 다른 글

드디어 서버 설치 완료!!  (0) 2009.11.20
동아리 서버설치(3)  (0) 2009.11.19
동아리 서버설치(1)  (0) 2009.11.19
오늘은 동아리의 서버를 설치했습니다
서버의 OS는 윈도우 서버 2008 R2 스텐다드 버전이고,
서버의 종류는 IIS+PHP+MYSQL 이에요.

설치파일이 다 올라오기를 기다리는중,,,(실수로 접사를 안빼놓고 찍어서 글자가 뭉개졌,,,)

왜인지는 모르겠지만 설치파일이 안올라 와서 그동안 동아리 세미나 홍보용 간판제작(날짜를 빼먹어서 다시만들,,,,쿨럭)

드디어 버전선택 화면. 여러가지 있는데 그냥 2008 R2 스텐다드로 설치~

'대학생활 > 동아리' 카테고리의 다른 글

드디어 서버 설치 완료!!  (0) 2009.11.20
동아리 서버설치(3)  (0) 2009.11.19
동아리 서버설치(2)  (0) 2009.11.19
이전에 구상했던 A.I.은 아니지만 심심해서 후루룩 A.I.를 만들었다.
그냥 랜덤찍어서 아무대나 클릭이라 아직은 병맛이다,,,
=====릴리즈노트=====

버전 0
SDL및 게임엔진 구동 확인

버전 0.1
그래픽 함수셋 제작(동그라미, 선, 네모, 하다보면 따로 빼낼생각)
게임엔진의 단순화?(쓰다보니 지저분한 부분은 쳐냈다. 앞으로 더 정리할 생각, + 간단하게 줄이기)
tic-tac-toe 기본 알고리즘(이랄것도 없이 말 놓을수 있나 확인하기, 말 놓기, 승패 확인 노가다등)완성
승리시 마우스커서에 WIN n(n은 플레이어 번호)가 출력
무승부시 마우스커서에 DRAW 출력

버전 0.2
거지같은 A.I. 생성

TODO :
옆에 뭔가 허전함. 내 이름이라도 넣기.
게임엔진을 좀더 단순화 하고, 모듈화해서 쉽게 생성및 사용가능하도록 변경.
그래픽함수셋을 좀더 늘리고 최적화하고 이것저것 더해서 나만의 라이브러리 만들기.

2009/08/20 - [대학생활/SDL] - tic-tac-toe(원래 이거였네,,, 영어가 딸리니,,,) ver.0.1

일단 구동 성공!!
소스는 올릴까 말까??

SDL라이브러리를 사용했고, 제작기간은 약 1.5개월,,,
사용 컴파일환경은 visual studio 2005 sp1

=====릴리즈노트=====

버전 0
SDL및 게임엔진 구동 확인

버전 0.1
그래픽 함수셋 제작(동그라미, 선, 네모, 하다보면 따로 빼낼생각)
게임엔진의 단순화?(쓰다보니 지저분한 부분은 쳐냈다. 앞으로 더 정리할 생각, + 간단하게 줄이기)
tic-tac-toe 기본 알고리즘(이랄것도 없이 말 놓을수 있나 확인하기, 말 놓기, 승패 확인 노가다등)완성
승리시 마우스커서에 WIN n(n은 플레이어 번호)가 출력
무승부시 마우스커서에 DRAW 출력

TODO :
A.I. 생성
옆에 뭔가 허전함. 내 이름이라도 넣기.
게임엔진을 좀더 단순화 하고, 모듈화해서 쉽게 생성및 사용가능하도록 변경.
그래픽함수셋을 좀더 늘리고 최적화하고 이것저것 더해서 나만의 라이브러리 만들기.

'대학생활 > SDL' 카테고리의 다른 글

tic-tac-toe ver. 0.2  (0) 2009.08.21

저번에는 클래스에 대해서 대략 개요만 짚고 넘어갔어,,
이번에는 실제 클래스의 용례를 알려줄께

#include <iostream>

using namespace std;

class Calculator
{
private:
       double result;                           //결과를 저장할 변수
public:
       Calculator();                             //생성자
       Calculator(double a);                //오버로딩된 생성자
       double addnum(double a);        //덧셈
       double subnum(double a);        //뺄셈
       double mulnum(double a);        //곱셈
       double divnum(double a);          //나눗셈
       double modnum(double a);        //나머지
       double getresult();                     //결과
};

int main()
{
        Calculator c(3.14);
        cout << c.getresult() << endl;

        cout << c.addnum(2.8) << endl;
        cout << c.getresult() << endl;

        cout << c.subnum(1.8) << endl;
        cout << c.getresult() << endl;

        cout << c.mulnum(2.3) << endl;
        cout << c.getresult() << endl;

        cout << c.divnum(2.8) << endl;
        cout << c.getresult() << endl;

        cout << c.modnum(3) << endl;
        cout << c.getresult() << endl;
        
        return 0;
}

Calculator::Calculator()                             //생성자
{
           result=0;
}
Calculator::Calculator(double a)                //오버로딩된 생성자
{
           result=a;
}
Calculator::double addnum(double a)        //덧셈
{
           result+=a;
           return result;
}
Calculator::double subnum(double a)        //뺄셈
{
           result-=a;
           return result;
}
Calculator::double mulnum(double a)        //곱셈
{
           result*=a;
           return result;
}
Calculator::double divnum(double a)          //나눗셈
{
           result/=a;
           return result;
}
Calculator::double modnum(double a)        //나머지
{
           result%=a;
           return result;
}
Calculator::double getresult()                     //결과
{
           return result;
}

간단한 계산 클래스를 만들었어,
순식간에 만들어서 오타가 있을지도 모르니 오타지적은 환영^^
일단 지금까지의 강좌를 잘 읽었다면 어렵진 않은 소스라고 생각해.
우선 맨 처음의

class Calculator

부분은 클래스를 생성하겟다는 선언부분
그 밑의
{
}
는 클래스의 몸통이 되는거지.
그다음
private:
라는것이 있는데,
여기서 ; 가 아니라 : 라는거 주의해야되.
이거는 이 밑으로 나오는것은 클래스 내부의 숨겨진(캡슐화된) 사항이니까,
외부의 참조나 호출은 금지된다는 표시야. 이 밑으로 나오는것은 c.뭐시기 로 호출이 불가능해.

그 다음 변수선언 하고,
public:
이 있는데 이거는 private랑은 반대로,
이 밑의 것들은 외부의 접근을 허용한다. 라는 표지야.
이게 없으면 class를 만들어도 소용이 없지뭐,,,
사용할것들이 없으니,,,

그다음 main함수에 들어와서 처음나오는거
Calculator c(3.14);
이거는 Calculator클래스의 object인 c를 생성하면서, 생성자 Calculator(double a)를 호출하라는거. 생성자는 좀있다가 설명할께.

그다음은 이제 만들어놓은 갖가지 메소드를 사용해보고,,,

그밑에 Calculator:: 하고 시작하는것들 있지? 이게 메소드의 몸통을 선언하는거야.
위에서 class선언때는 프로토 타입만 선언해놨잖아? 그럼 몸통을 정의 해야지.
근데 여러클래스를 한 프로그램에서 사용한다면 같은이름의 함수를 여러 클래스에서 쓸수도 있잖아? 그래서 컴파일러가 어떤함수가 어떤 클래스껀지 알수있도록 클래스이름을 써주는거야.
그다음은 함수선언과 똑같은데, 처음에 반환형에 아무것도 안써주고, 이름이 class이름이랑 같은놈이 2개 있지? 이게 생성자야.
생성자는 object가 생성될때 호출되는 함수인데, 여기서는 일반적으로 맴버변수들의 초기화등을 담당하도록 해.
하나는 생성할때 인자가 없이 Calculator a; 식으로 선언할때 호출되는거도 다른 하나는 Calculator a(1.23); 식으로 선언될때 호출되는거야. C++은 같은이름의 함수라도 인자의 종류와 갯수가 다르다면 다른 함수로 인식하기 때문에 써먹을수 있는 방법이지.
오늘은 클래스와 생성자까지 했어. 아직은 포인터에대해 배우지 않았고, 동적인 할당과 정적인 할당, 그에앞서 배열도 안배웠으니,,, 소멸자는 나중으로 넘겨놓을께,, 여기까지 모르는거는
nateon : dcmichael@nate.com
msn : dcmichael@live.co.kr
H.P. : 010-2885-4585
또는 블로그의 댓글
로 연락하면 언제든지 답변해줄테니까 당장 숙제에 관한것말 알려달라고만 하지말고 C++을 제대로 공부해보자!!

'대학생활 > C++' 카테고리의 다른 글

C++숙제,,,  (0) 2009.04.09
4주차 C++숙제가 떳습니다.  (0) 2009.04.01
3주차 C++숙제가 나왔습니다!!  (0) 2009.03.23
내맘대로 강좌 C++편 6 (함수편)  (5) 2009.03.23
내맘대로 강좌 C++편 5  (2) 2009.03.19

그냥 이걸로 때울께요,,
더이상 자바는 저도 아는게 없고,,,
하지만 질문을하시면 언제든지 답변은 해드릴테니,,,
보시고 모르겠는부분은
nateon : dcmichael@nate.com
msn : dcmichael@live.co.kr
로 물어보시거나 여기에 덧글(덧글은 회원가입이 필요 없어요)로 남겨주시면 
12시간 이내로 답변 해드릴테니,,,
언제나 질문은 환영이예요,,!!

'대학생활 > JAVA' 카테고리의 다른 글

Eclipse 단축키  (0) 2010.03.21
JAVA숙제,,,  (1) 2009.04.09
4주차 자바숙제 떳어요,,  (0) 2009.04.01
내맘대로 강좌 JAVA편 4.5편!!  (0) 2009.03.25
내맘대로 강좌 JAVA편 4  (0) 2009.03.25
C++숙제,,, 대학생활/C++ 2009. 4. 9. 17:56

이제 C++패스했다고, 점점 귀찮아 집니다....ㄷㄷ

1. Julian dates. Suppose you would like to know how many days ago Columbus was born. It is tedious to figure this out by hand, because months have different lengths and because you have to worry about leap years. Many people, such as astronomers, who deal with dates a lot have become tired of dealing with the craziness of the calendar and instead represent days in a completely different way: the so-called Julian day number. That value is defined as the number of days that have elapsed since Jan. 1, 4713 B.C. A convenient reference point is that October 9, 1995, is Julian day 2,450,000.

Here is an algorithm to compute the Julian day number: Set jd, jm, jy to the day, month, and year. If the year is negative, add 1 to jy. (There was no year 0. Year 1 B.C. was immediately followed by year A.D. 1) If the month is larger than February, add 1 to jm. Otherwise, add 13 to jm and subtract 1 from jy. Then compute

long jul = floor(365.25 * jy) + floor(30.6001 * jm) + d + 1720995.0

We store the result in a variable of type long; simple integers may not have enough digits to hold the value. If the date was before October 15, 1582, return this value. Otherwise, perform the following correction:

int ja = 0.01 * jy;

jul = jul + 2 - ja + 0.25 * ja;

Now write a function

long julian(int year, int month, int day)

that converts a date into a Julian day number. Use that function in a program that prompts the user for a date in the past, then prints out how many days that is away from today's date.

이게 1번문제 이고

 

2. Write a procedure void sort2(int& a, int& b) that swaps the values of a and b if a is greater than b and otherwise leaves a and b unchanged. For example,

int u = 2;

int v = 3;

int w = 4;

int x = 1;

sort2(u, v);

/* u is still 2, v is still 3 */

sort2(w, x);

/* w is now 1, x is now 4 */
이게 2번인데,,,
1번은 무슨 juliandate라는 만년력을 구하라는 문제 같고,,
2번은 간단히 크기가 작은것을 앞으로 큰것을 뒤로 보내는 문제 같네여,, C++은 BB를 보시면 교수님의 ppt도 있고, wiley에 보시면 교재도 있으니,, 참조변수에 관한것을 좀 보시는것이 도움이 되겠네요,,

JAVA숙제,,, 대학생활/JAVA 2009. 4. 9. 17:36

요즘 정신없이 사느라 티스토리도 못들어 오네요,,,ㄷㄷ
일단 이번숙제는

1. Write a unit conversion program that asks users to identify the unit from which they want to convert and the unit to which they want to convert. Available units should be mm, cm, m, ft, and in. Define two objects of a class UnitConverter that convert between meters and a given unit.
Convert from:
in
Convert to:
mm
Value:
10
10 in = 254 mm
Use the following class as your main class:
import java.util.Scanner;

/**
   This class converts between two units.
*/
public class ConversionCalculator
{
   public static void main(String[] args)
   {
      Scanner in = new Scanner(System.in);

      System.out.println("Convert from:");
      String fromUnit = in.nextLine();

      System.out.println("Convert to:");
      String toUnit = in.nextLine();

      UnitConverter from = new UnitConverter(fromUnit);
      UnitConverter to = new UnitConverter(toUnit);

      System.out.println("Value:") ;
      double val = in.nextDouble();

      double meters = from.toMeters(val);
      double converted = to.fromMeters(meters);

      System.out.println(val+ " "+ fromUnit+ " = "+ converted
            + " "+ toUnit);
   }
}


이거입니다.
mm, cm, m, ft, in중 2개를 선택받아 서로 단위를 변환하는 계산기 문제인데요,,
UnitConverter 란 클래스를 만들어서
생성자에서는 처음 들어간 string을 갖고 처음의 단위를 계산하고, toMeter라는 함수를 이용해서 공통단위인 Meter로 고침니다. 그다음 그Meter단위 숫자를 받아서 다시 원하는 단위로 고치는,,,


순서는 이렇습니다.

1. 먼저 2개의 단위를 입력받습니다.
2.  이것을 각각 from, to라는 UnitConverter클래스에 생성자의 인자로 주어 from, to의 단위를 정합니다.
3. 그다음 from을 meter로 바꾸는 함수를 이용해 meter값을 임시변수에 넣습니다.
4. meter단위인 임시변수를 to 에 집어넣어 to 단위로 바꿈니다.
5. 이것을 출력합니다.,,,

말은 쉽지만, 이걸 하려면 if노가다나 단위변환상수를 정해놔야겠군요,,,

'대학생활 > JAVA' 카테고리의 다른 글

Eclipse 단축키  (0) 2010.03.21
내맘대로 강좌 JAVA편,,,ㅠㅠ  (2) 2009.04.23
4주차 자바숙제 떳어요,,  (0) 2009.04.01
내맘대로 강좌 JAVA편 4.5편!!  (0) 2009.03.25
내맘대로 강좌 JAVA편 4  (0) 2009.03.25
늦었지만 공지 합니다.
제가 C++을 패스하고 좀 게을러 졌네요,,,

1번.
"Do you want to continue?"라는 문구를 출력한뒤 사용자게  "Y", "Yes", "OK", "Sure", or "Why not?"을 입력하면 "OK"를 출력하고, "N", "No"를 입력하면 "Terminating"을 출력,
둘다 아니면 "Bad input"을 출력하도록 하고, 대소문자는 구분하지 않는대요,,

2번.
계속 사용하던 Employee 클래스형 변수를 이용해서 이름과 시급을 읽어 냅니다.
그후 일주일에 몇시간을 일했는지를 물어보고, 1주일의 급여를 계산하는데,
주당 40시간 이상 일한부분은 1.5배의 봉금을 주래요,,, (맞나, 오역이 있으면 댓글이나 쪽지로,,)

문제는 이 두가지 인데,
1번은 입력을 받은뒤 if문을 쓸줄 아느냐? 라는 문제이고,
2번은,, 글쎄,, 값을 갖고,,,, 이것도 if문이네요,,
열심히 해 보세요(참 쉽죠?)

그리고 제가 모든것을 다 설명드릴수는 없지만(검열때문에), dcmichael@nate.com <<네이트온
으로 쪽지주시면 모르는 부분은 좀더 자세히 설명해 드리겠습니다

'대학생활 > C++' 카테고리의 다른 글

내맘대로 강좌 C++편 7 (클래스)  (1) 2009.04.23
C++숙제,,,  (0) 2009.04.09
3주차 C++숙제가 나왔습니다!!  (0) 2009.03.23
내맘대로 강좌 C++편 6 (함수편)  (5) 2009.03.23
내맘대로 강좌 C++편 5  (2) 2009.03.19
너무 늦었지만, 공지합니다.
이번 숙제는 두개의 수를 입력받을수 있고
합, 차, 곱, 평균, 차이의 절대값, 둘중 큰수, 둘중 작은수
들을 출력할수 있는 클래스 Pair을 설계하는것 이 첫번째 숙제고요,

두번째는 DataSet 라는 클래스를 설계해서 값을 입력받고, 입력받은값중
제일 큰 수와 제일 작은수를 출력하는 클래스를 설계하랍니다.

우선 첫번째 Pair클래스는
 public class Pair
{
   /**
      Constructs a pair.
      @param aFirst the first value of the pair
      @param aSecond the second value of the pair
   */
   public Pair(double aFirst, double aSecond) { . . . }

   /**
      Computes the sum of the values of this pair.
      @return the sum of the first and second values
   */
   public double getSum() { . . . }
   . . .
}
이런식이 되야겠구요,
두번째 DataSet 클래스문제는 초기화땐 Integer.MIN_VALUE, Integer.MAX_VALUE 라는 함수를 사용하고, 대소를 구분할땐 Math.max, Math.min함수를 사용하라는 힌트가 주어졌군요,,, if 같은거 쓰지 말래요,,,
그리고 각각 Pair클래스를 테스트하는 PairTester클래스와
DataSet클래스를 테스트하는 DataSetTest클래스도 만들어야 겠네요,,

제가 모든것을 다 설명드릴수는 없지만(검열때문에), dcmichael@nate.com <<네이트온
으로 쪽지주시면 모르는 부분은 좀더 자세히 설명해 드리겠습니다

'대학생활 > JAVA' 카테고리의 다른 글

내맘대로 강좌 JAVA편,,,ㅠㅠ  (2) 2009.04.23
JAVA숙제,,,  (1) 2009.04.09
내맘대로 강좌 JAVA편 4.5편!!  (0) 2009.03.25
내맘대로 강좌 JAVA편 4  (0) 2009.03.25
내맘대로 강좌 JAVA편 3  (0) 2009.03.25

앞으로 C++은 월,수,금
자바는 화,목,토 에 올리도록 노력해 볼께요,,
제가 요즘 생활이 많이 불규칙해져서,, 언제 생각나면 더 올릴지는 모르고, 몸이 안좋다고 빼먹을지는 모르지만,,, 기본적인 업뎃 날짜는 이렇게 해 놓을게요,,
요즘 동아리에 많이 가입하는바람에,,,

p.s. 동아리에 가입하는거 제한은 없겠죠?
지금 연극, 방송, 기타, 컴터에 가입하려는데,,,

'대학생활' 카테고리의 다른 글

지금은 집 입니다.  (0) 2009.12.22
UNIST 2009년 2학기 기말고사 시간표  (0) 2009.12.05
내맘대로 강좌 공통편 1  (0) 2009.03.20
학생증 드디어 나왔습니다!!!  (0) 2009.03.16
내맘대로 강좌 시작!!  (1) 2009.03.16

지금 와일리를 보다가 나온건데, 콘솔이 아닌 다이얼로그로 입력, 출력하는법 발견,,

Call the static showInputDialog method of the JOptionPane class, and supply the string that prompts the input from the user. For example,
String input = JOptionPane.showInputDialog("Enter price:");
That method returns a String object. Of course, often you need the input as a number. Use the Integer.parseInt and Double.parseDouble methods to convert the string to a number:
double price = Double.parseDouble(input);
You can also display output in a dialog box:
JOptionPane.showMessageDialog(null, "Price: " + price);
Finally, whenever you call the showInputDialog or showMessageDialog method in a program that does not show any other frame windows, you need to add a line
System.exit(0);
to the end of your main method. The showInputDialog method starts a user interface thread to handle user input. When the main method reaches the end, that thread is still running, and your program won't exit automatically. To force the program to exit, you need to call the exit method of the System class. The parameter of the exit method is the status code of the program. A code of 0 denotes successful completion; you can use nonzero status codes to denote various error conditions.
                                                              (원문 출처 와일리,,,)

이 장에 의하면
JOptionPane.showInputDialog("Enter price:");
이 함수는 Enter Price:라는 문구가 들어간 입력 다이얼로그를 띄워주고 다이얼로그에서 확인이 눌리거나 엔터가 쳐질경우 그 값을 srting 형으로 반환합니다.
그 뒤 Double.parseDouble(string)이나 Int.parseInt(string)함수로 각각의 형으로 고칠수 있는것 같구요,,,,
근데 이거를 사용하면 main함수 마지막에
system.exit(0);을 꼭 써야 한다네요,,,

'대학생활 > JAVA' 카테고리의 다른 글

JAVA숙제,,,  (1) 2009.04.09
4주차 자바숙제 떳어요,,  (0) 2009.04.01
내맘대로 강좌 JAVA편 4  (0) 2009.03.25
내맘대로 강좌 JAVA편 3  (0) 2009.03.25
3주차 JAVA숙제가 나왔습니다^^  (2) 2009.03.23

계속 이어서 Arithmetic Operations and Mathematical Functions, Calling Static Methods, Strings, Reading Input 에 대해 설명할께,,,

일단 Arithmetic Operations and Mathematical Functions 요놈,,,
Arithmetic Operations는 산술적인 연산자 + - * / ()설명인데,,, 수학하고 같으니 PASS!!
Mathematical Functions는
Math.sqrt(x)
Square root of x (≥0)
Math.pow(x, y)
xy (x > 0, or x = 0 and y > 0, or x < 0 and y is an integer)
Math.sin(x)
Sine of x (x in radians)
Math.cos(x)
Cosine of x
Math.tan(x)
Tangent of x
Math.asin(x)
Arc sine (sin-1x ε [-π/2, π/2], x ε [-1, 1])
Math.acos(x)
Arc cosine (cos-1x ε [0, π], x ε [-1, 1])
Math.atan(x)
Arc tangent (tan-1x ε [-π/2, π/2])
Math.atan2(y, x)
Arc tangent (tan-1y/x ε [-π, π]), x may be 0
Math.toRadians(x)
Convert x degrees to radians (i.e., returns x · π/180)
Math.toDegrees(x)
Convert x radians to degrees (i.e., returns x · 180/π)
Math.exp(x)
ex
Math.log(x)
Natural log (ln(x), x > 0)
Math.round(x)
Closest integer to x (as a long)
Math.ceil(x)
Smallest integer ≥x (as a double)
Math.floor(x)
Largest integer ≤x (as a double)
Math.abs(x)
Absolute value |x|
Math.max(x, y)
The larger of x and y
Math.min(x, y)
The smaller of x and y
                                                                            (출처 와일리,,,,,)
이거 있다고,, 그냥 그렇다고,,,

그다음은 Calling Static Methods
이건,,,,
int x=4;
double rootofx = x.sqrt();
이렇게 삽질하지 말고
double rootofx = Math.sqrt(x);
이렇게 하래,,,

Strings
String 클래스에는 substr및 각종함수들이 준비되어 있어서 문자열을 사용하기 편하다,,
라는,,,,,,,

이번엔 중요한 Reading Input!!!
C++은 인풋을 읽어오기가 쉬워서 숙제에도 가끔 인풋이 필요했지만,,,
자바는 없었지? 드디어 나왔어 인풋 받는법,,,

Scanner in = new Scanner(System.in);
이렇게 하면 인풋을 받는 스트림이 생긴거야.
그 다음엔
system.out.print("input number : ");
int quantity = in.nextInt();
이렇게 하면 input number : 뒤에 커서가 깜박인데,,, 거기에 숫자를 쓴다음 엔터를 치면quantity에 들어간다는데,,, 지금 컴을 포맷해서 아직 테스트는,,,,

그다음 in.nextInt() 대신 in.nextDouble();을 쓰면 double를 받아오고,,,in.nextLine(); 하면 한 줄(엔터까지) 받아서 string으로,,,in.next(); 까지만 해도 string으로 받는 다는데, 이건 아마 스페이스바가 구분자인가봐,,,
일단 예제,,(출처 와일리 교재 내부,,)

1 import java.util.Scanner;
2
3  /**
4    This program simulates a transaction in which a user pays for an item
5    and receives change.
6    */
7    public class CashRegisterSimulator
8    {
9       public static void main(String[] args)
10      {
11     Scanner in = new Scanner(System.in);
12
13     CashRegister register = new CashRegister();
14
15     System.out.print(“Enter price: ”);
16     double price = in.nextDouble();
17     register.recordPurchase(price);
18
19     System.out.print(“Enter dollars: ”);
20     int dollars = in.nextInt();
21     System.out.print(“Enter quarters: ”);
22     int quarters = in.nextInt();
23     System.out.print(“Enter dimes: ”);
24     int dimes = in.nextInt();
25     System.out.print(“Enter nickels: ”);
26     int nickels = in.nextInt();
27     System.out.print(“Enter pennies: ”);
28     int pennies = in.nextInt();
29     register.enterPayment(dollars, quarters, dimes, nickels, pennies);
30
31     System.out.print(“Your change: ”);
32     System.out.println(register.giveChange());
33      }
34 }

register클래스가 뭔진 몰라도 돈을 입력받을수 있는 클래스인가봐,,,
여하간 여기서 중요한건 register가 아니라 Scanner in 의 용법이니까
실행이 안되면 눈으로 라도 보고,,, 용법만이라도 익혀,,, 근데 아마 저거 다 클럽에 있던,,,
내가 블로그에 퍼놓은  헤더파일에 있는예제인듯

'대학생활 > JAVA' 카테고리의 다른 글

4주차 자바숙제 떳어요,,  (0) 2009.04.01
내맘대로 강좌 JAVA편 4.5편!!  (0) 2009.03.25
내맘대로 강좌 JAVA편 3  (0) 2009.03.25
3주차 JAVA숙제가 나왔습니다^^  (2) 2009.03.23
내맘대로 강좌 JAVA편 2  (0) 2009.03.16

정말 자바강좌는 나도 공부하며 쓰려니까 쓰기가 어렵군,,,

우선 클래스가 무엇인지와 변수가 무엇인지에 대해 대략 설명은 한것 같은데,,,
좀더 자세한 부분을 설명하도록 할께,,

우선
와일리의 쳅터 4의 목차를 보면
        Syntax 4.1: Cast
        Advanced Topic 4.1: Big Numbers
        Advanced Topic 4.2: Binary Numbers
        Random Fact 4.1: The Pentium Floating-Point Bug
        4.2. Constants
        Syntax 4.2: Constant Definition
        Quality Tip 4.1: Do Not Use Magic Numbers
        Quality Tip 4.2: Choose Descriptive Variable Names
        4.3. Assignment, Increment, and Decrement
        Productivity Hint 4.1: Avoid Unstable Layout
        Advanced Topic 4.3: Combining Assignment and Arithmetic
        4.4. Arithmetic Operations and Mathematical Functions
        Common Error 4.1: Integer Division
        Common Error 4.2: Unbalanced Parentheses
        Quality Tip 4.3: White Space
        Quality Tip 4.4: Factor Out Common Code
        4.5. Calling Static Methods
        Syntax 4.3: Static Method Call
        Common Error 4.3: Roundoff Errors
        How To 4.1: Carrying Out Computations
        4.6. Strings
        Productivity Hint 4.2: Reading Exception Reports
        Advanced Topic 4.4: Escape Sequences
        Advanced Topic 4.5: Strings and the Char Type
        Random Fact 4.2: International Alphabets
        4.7. Reading Input
        Advanced Topic 4.6: Formatting Numbers
        Advanced Topic 4.7: Using Dialog Boxes for Input and Output
        4.8. Chapter Summary
        Classes, Objects, and Methods Introduced in this Chapter
        Review Exercises
        Programming Exercises
        Programming Projects
        Answers to Self-Check Questions
        Further Reading
이렇게 되어있어,,, 중요한거는 4.x부분인데,,,
보면
cast, big number, constants, assignment, Increment, and Decrement, Arithmetic Operations and Mathematical Functions, Calling Static Methods, Strings, Reading Input
이 있어,,헉헉

cast 라는것은 형을 변환 시키는 거야. 예를들면,

double dValue=3.5;
int iValue = (int)dValue; 이렇게 하면 dValue 가 int 형으로 바뀌어서 들어가는거야,,
근데 이상하지? 3.5는 정수가 아닌데 어떻게 될까?
1. 반올림
2. 버림
3. 올림




답은 2번 버림,,,, 소숫점은 무조건 버려, 그럼 int를 double에 넣을땐?
상관없지 뭐,, 그땐 오류없이 잘 들어가,,
이런식으로 형을 변환시키는 것을 형변환(casting)이라고 해. 나중에 클래스끼리도 캐스팅이 되긴 하는데, 이거는 서로 부모, 자식 관계가 있는경우에만 되니까 나중에 설명할께,,

그다음으로는 big number인데,, 와일리에 보면 math라는 클래스안에 BigInterger 랑 BigDecimal 클래스가 있어서 큰수 계산이 된데,,,,

다음은 상수(constants)
인데 상수는 C나 C++언어를 배운 사람은 const예약어를 사용한다고 알고있을거야.
하지만 C++의 클래스에서도 사용했듯이 자바는 final이라는 예약어를 사용해.

예를 들면

final double PI = 3.14;
// PI=3.141592             //에러,,,
double radian = 3;
double area=radian*radian*PI;

이런식으로 PI값은 항상 정해져있어서 고쳐지면 안될때 사용하는거,,,
이게바로 상수의 사용법

그다음은 assignment, Increment, and Decrement

이거는 대입과 증가 감소인데,,,

대입은 계속 해왔고,,,
증가와 감소가 있는데,,
int i=0;
i=i+1;         //1
i+=1;         //2
i++;          //3
system.out.println(i);


결과는 3
왜냐하면 1번은 쉽게 알수있는거고,
2번은 1번을 줄여서 쓸수있게 한거고,,
3번은 i에 1을 더하라는거야,, 그래도 i+++한다고 2가 더해진다는 생각은 버려!!

근데 신기한게,,,
int i=0;
system.out.println(++i);
system.out.println(i++);
이렇게 하면 1하고 1이 출력되,

왜냐하면 ++i는 +1을 한 다음 함수라든지 대입을 하고,
 i++은 대입이나 함수에 먼저 처리를 한다음 +1을 하기 때문,,,헥헥,,, 다음은 뒷글에 이어서,,,

'대학생활 > JAVA' 카테고리의 다른 글

내맘대로 강좌 JAVA편 4.5편!!  (0) 2009.03.25
내맘대로 강좌 JAVA편 4  (0) 2009.03.25
3주차 JAVA숙제가 나왔습니다^^  (2) 2009.03.23
내맘대로 강좌 JAVA편 2  (0) 2009.03.16
내맘대로 강좌 JAVA편 1  (3) 2009.03.16
내용은
Implement a class Student. For the purpose of this exercise, a student has a name and a total quiz score. Supply an appropriate constructor and methods getName(), addQuiz(int score), getTotalScore(), and getAverageScore(). To compute the latter, you also need to store the number of quizzes that the student took. Supply a StudentTester class that tests all methods.

Use the following class as your tester class:
/**
   This program tests the Student class.
*/
public class StudentTester
{
   public static void main(String[] args)
   {
      Student student = new Student("Cracker, Carla");

      // TODO: Add some quizzes

      // TODO: Print actual and expected name, total score
  }
}
Complete the following class in your solution:
/**
   A student who is taking quizzes.
*/
public class Student
{ 
   /**
      Constructs a student with a given name.
      @param n the name
   */
   public Student(String n)
   {  
      . . .
   }

   /**
      Gets the name of this student.
      @return the name
   */
   public String getName()
   {  
      . . .
   }

   /**
      Adds a quiz score.
      @param score the score to add
   */
   public void addQuiz(int score)
   {  
      . . .
   }

   /**
      Gets the sum of all quiz scores.
      @return the total score
   */
   public double getTotalScore()
   {  
      . . .
   }
   
   /**
       Gets the average of all quiz scores.
       @return the average score
   */
   public double getAverageScore()
   {  
      . . .
   }
   . . .
}
 
이렇게 길지만 1문제라는거^^ 처음부분만 잘읽으면 할수 있을거에요,,
그리고 자바강좌가 안올라오는건 저도 자바를 잘 몰라서 공부중이거든요 ^^a
어쨌든 열심히 해서 낙오자 없이 모두 S 받자고요

'대학생활 > JAVA' 카테고리의 다른 글

내맘대로 강좌 JAVA편 4  (0) 2009.03.25
내맘대로 강좌 JAVA편 3  (0) 2009.03.25
내맘대로 강좌 JAVA편 2  (0) 2009.03.16
내맘대로 강좌 JAVA편 1  (3) 2009.03.16
2주차 JAVA숙제,,,(파일 삭제)  (0) 2009.03.15

내용은 아래와 같아요~~

1. Your boss, Juliet Jones, is getting married and decides to change her name. Complete the following program so that you can type in the new name for the boss:

	int main()
	{
	   Employee boss("Jones, Juliet", 45000.00);
	   /* your code goes here; leave the code above and below unchanged */
	
	   cout << "Name: " << boss.get_name() << "\n";
	   cout << "Salary: " << boss.get_salary() << "\n";
	
	   return 0;
	}

The problem is that there is no set_name member function for the Employee class. Hint: Make a new object of type Employee with the new name and the same salary. Then assign the new object to boss.

2. Write a program that reads in three-floating point numbers and print the largest of the three inputs. For example:
Please enter three numbers: 4 9 2.5The largest number is 9.

1번 문제는 지난번의 Employee클래스 또 써먹는 거구요,
2번 문제는 숫자 3개의 크기비교하는 문제네요,,,

우리 교수님 항상 클래스문제와 프로그램 구현능력문제를 골고루 내주시는군요,,,
여러분 수고하세요^^

'대학생활 > C++' 카테고리의 다른 글

C++숙제,,,  (0) 2009.04.09
4주차 C++숙제가 떳습니다.  (0) 2009.04.01
내맘대로 강좌 C++편 6 (함수편)  (5) 2009.03.23
내맘대로 강좌 C++편 5  (2) 2009.03.19
내맘대로 강좌 C++편 4  (2) 2009.03.18
이번에는 함수편이야.

먼저 우리가 C++언어를 짤때 항상 들어가는
int main()
{
     return 0;
}

에 대해 설명하려고해.

왜 함수예기를 한다고 하고서 main예기를 하냐고?
그야 main이 함수니까 그러지.

int main()

이거는 함수 main을 선언한다는거야
그러면서 int형의 값을 반환하고 인자는 안받겠다는거야.
이름이 main이라는것은 프로그램을 실행시키면 맨처음 불려지는 함수라는 뜻이고,

그러면 이제 선언과 반환과 인자에 대해 알아봐야지,

선언이라는 것은 이런 함수가 있으니까 알아둬라, 라고 컴파일러(우리는 visual c++)한테 말해주는거고, 구현은 실제 함수의 작동방식을 써넣는거야. 근데 main함수같은경우는 한번에 하잖아? 다른 함수들도 이렇게 해도 되긴 하는데, C언어때는 컴파일러가 항상 위에서부터 컴파일을 해서 함수를 쓸때 main위에 선언을 해야 에러가 안났거든,, 근데 main위에 함수를 전부 구현해놓으면 main이 맨처음 불려나가는 함수인건데도 맨 마지막에 쓰이는 상황이 발생하잖아?
그래서 main위에 전부 선언하고, 다시 밑에서 구현을 하느라고 선언과 구현을 따로할수있게 됬어.

그리고 이제 인자와 반환값이란,,,이거는 수학의 함수와 똑같은거야. 수학에서
f(x)=ax+b
라고 하면 f라는 함수에 x라는 인자를 줘서 ax+b라는것을 함수값이라고 하잖아?
여기서 x는 C++의 인자 함수값인 ax+b는 반환값이야.

그럼 함수선언의 예제를 한번 보자.

double FunctionEx(int i, double d, float f)
{
      double value=0;
      value= i+d+f;
     
      return value;
}

이 함수가 뜻하는 의미를 알겠어?
여기서 숙제,
// example1.cpp
#include <iostream>

double FunctionEx(int i, double d, float f)
{
      double value=0;
      value= i+d+f;
     
      return value;
}

int main()
{
       int k=0;
       double p=0;
       float t=0;
       cout<<"please input int, double, float"<<endl;
       cin>>k>>p>>t;
       cout<<FunctionEx(k,p,t)<<endl;
       return 0;
}

이거를 각자 실행해서 입력값과 출력값을 댓글로!!

'대학생활 > C++' 카테고리의 다른 글

4주차 C++숙제가 떳습니다.  (0) 2009.04.01
3주차 C++숙제가 나왔습니다!!  (0) 2009.03.23
내맘대로 강좌 C++편 5  (2) 2009.03.19
내맘대로 강좌 C++편 4  (2) 2009.03.18
내맘대로 강좌 C++편 3  (4) 2009.03.17

어쩌다보니 공통편이 나오네,,

제어문에 관한거야.
제어문이란 프로그램이 순서대로 쭉 밑으로만 가는게 아니라,

다시 반복도 하고, 조건이 안맞으면 건너 뛰기도하는,,, 그런게 제어문이야.
이번 2주차 C++3번 숙제는 이거 꼭 쓸듯,,,

우선
if( 조건1 )
{
TODO1();
}
else if( 조건2 )
{
TODO2();
}
else
{
TODO3();
}

이거는 조건부분에 a>1 이라고 하면 a가 1보다 클때 그부분의 TODO함수가 실행이 되,
예를들면

int a=15;
if( a<5 )
{
cout<<"a 는 5보다 작다";
}
else if( a>=5 && a<15 )
{
cout<<"a 는 5보다 크고 15보다 작다";
}
else
{
cout<<"a 는 15보다 크다";
}

하면 "a 는 5보다 크고 15보다 작다"가 출력되는거야
조건문에 < 랑 > 는 알테고,, <=(작거나 같다) >=(크거나 같다)
&&(and) 양쪽 모두 참일때 참
||(shift+\) 양쪽중 하나라도 참이면 참
==(같으면 참)
을 써서 논리적인 표현이 가능해

그다음은
while( 조건)
{
TODO();
}

조건은 만족하는동안 계속 반복

for( ㉠ ; ㉡ ; ㉢ )
{
todo(); //㉣
}

㉠으로 반복전 처리
㉡은 while의 조건부분
㉣은 실행부
㉢은 후처리,,,


for( i=0 ; i<5 ; i=i+1 )
{
       cout << i << "회째 반복"<<endl;
}

하면 처음에
i=0실행
그다음 cout
그다음 i=i+1
그다음 i<5비교
그다음 cout
반복,,,, i<5가 거짓이 될때까지,,,

뭐 이정도면 숙제는 가능할듯,,
설마 내가 이렇게 새벽까지 공들여 나는 다 끝낸 숙제때문에 노력하는걸 알면,,,,
댓글이 좀 달리겟지?

'대학생활' 카테고리의 다른 글

지금은 집 입니다.  (0) 2009.12.22
UNIST 2009년 2학기 기말고사 시간표  (0) 2009.12.05
내맘대로 강좌 공지!!!  (1) 2009.03.25
학생증 드디어 나왔습니다!!!  (0) 2009.03.16
내맘대로 강좌 시작!!  (1) 2009.03.16
지금 학교 교재랑 많이 달라서 보기 싫지?
하지만 이게OOP의 기본이라 어쩔수 없어.

우선 지난번의 답을 말하자면 오버라이딩이야.
오버라이딩은 상속받은 부모 클래스의 메소드에 올라탄다는뜻으로 기억해둬

오버라이딩도 메소드를 생성하는 방법이랑 똑같애.
근데 생각해보니까 메소드만들기를 안 알려줬네?

메소드는

int 동물::걷기(int 부위, int 각도)
{
할일();
}

이렇게 하면 되고, 오버라이딩도 똑같이

int 사람::걷기(int 부위, int 각도)
{
할일();
}
하면 된다고 나와있어,,, 아직 안써봐서,,ㄷㄷ

두서없이 클래스에 대해 이야기 하고있는데,,, 따라 올만해?

이제 생성자, 소멸자, 권한만 하면 클래스에 대해서는 잠시 쉬어도 되,
클래스도 좋지만 다른 문법을 알아야 클래스를 쓰던 말든 하지,,,

그럼 이야기 시작 할께,

접근 권한이란 전에 class 기본 틀을 보여줄때
private:
이랑
public:
이 있었지? 이게 접근 권한이야.
public:밑에 있는놈들은 외부에서 man1.뭐시기 로 접근이 가능하지만,
private:밑에 있는 놈들은 외부에서 man1.뭐시기 가 안되.
그럼 어떻게 private밑에 있는 놈들을 건드리냐? 그건 public:밑에 메소드를 만들어서
그 건들수 없는놈을 건들게 시키면 되.

전에 얘기한데로 남의 목을 잡고 돌리면 기분나빠하지만, "목을 돌려라" 라고하면 기분이 덜 나쁘잖아?(그게 그건가?)

하여간 OOP의 원칙이 캡슐화와 추상화인데, 캡슐화는 메소드는 사용하게 하되, 안에서 어떻게 돌아가는지는 개체 밖에서는 모르도록 하자는 거고, 추상화는 인간클래스를 만들때 동물->포유->이족보행->사람 식으로 만들듯이 자세한 성질(메소드)는 하위의 상속받은 클래스에서 만들고 상위에서는 대략 추상적으로만 만들어서 일반성을 갖게 하자(우려먹을수 있게)는 거야.

메소드를 통하지 않고
목의 근육1 각도=15˚;
목의 근육2 각도=15˚;
            .
            .
            .
            .
성대("안녕하세요.");
하면, 그건 캡슐화가 안되있는거고,
man1.숙여라(목);
man1.숙여라(허리);
man1.say("안녕하세요");를 한다음
숙여라(int 부위)메소드와 say(string)메소드를 만들어서 그 안에다가 저런거를 집어 넣으면 클래스를 사용하는 외부에서는 목 근육이 어떻게 움직이는지 말은 성대로 하는지 복화술을 하는지 알게뭐야? 그냥 시키면 되지. 이런거를 위해 캡슐화가 있는거야.

그리고 전에 설명한듯이 사람만들고, 개만들고, 기린만들고 하려면 동물에 관한 기본사항을 만든 동물 클래스를 만들고 상속받는다고 했지? 이때 동물에다가는 기본 메소드만 넣으면 되니까 이런걸 추상화라고 해.

잠시 삼천포로 갔지만 중요한걸 빼먹고 와서,,,
그다음 생성자와 소멸자인데,

사람이 태어나면, 나이, 성별, 키, 손의 크기, 발의 크기등을 모두 갖고있잖아?
이것을 처음에 지정해 주는게 생성자야.
생성자는 public:밑에있는 반환값이 없는(메소드 안에 return;이 없는) 클래스랑 이름이 같은 메소드라고 생각하면 되,

이 안에는 처음 변수들의 초기값을 넣는다고 생각하면 되, 또 태어나자마자 "응애"하고 울고싶으면 생성자안에 say("응애");를 하면 되고
사람클래스의 생성자가 불려지는 시기는 프로그램 내에서
사람 man1;
이라고 하면 man1이 생성되잖아? 이때 불려져. 근데 이것보다는
사람* man2=new 사람;
man2->say("안녕하세요"); 를 더 자주쓰는것 같던데,,, 차이점 아는사람은 댓글로!!!

그럼 소멸자가 뭔지 감이 오지? 프로그램이 끝나서 개체가 사라질때나,
delete man2; 처럼 개체가 폐기되는경우에 호출되는건데 이름은 "~클래스이름"이야
사람클래스의 소멸자는
~사람() 이 되는거지.
클래스이름 앞에 딴글자라는게 아니라 갈매기표시가 붙는다는거야.
이건 사람으로 치면 유언을 남기고 자기 자신을 정리하는 거야. 사용중이던 자원(메모리)를 반환하고, 기타등등  딱히 생성자 소멸자를 안만들면 기본으로 생성시 초기값은 다 0으로 소멸시 메모리 처리는 알아서 해준다는데,,, 할수 있으면 하는게 컴퓨터 건강에 좋겠지?

뭐 이걸로 클래스 기초는 다 한셈이야. 책으로 몇십페이지나 되는 설명을 이렇게 간단한(실행도 안되는)소스로 설명을 했더니 내용이 이만큼 밖에 씩이나 나오네,,,

앞으로는 C++언어의 기타 문법들을 할꺼야.
변수 공부는 알아서 하고, 다음은 간단한 연산자와, 제어문에 대해 이야기 하겠어

'대학생활 > C++' 카테고리의 다른 글

3주차 C++숙제가 나왔습니다!!  (0) 2009.03.23
내맘대로 강좌 C++편 6 (함수편)  (5) 2009.03.23
내맘대로 강좌 C++편 4  (2) 2009.03.18
내맘대로 강좌 C++편 3  (4) 2009.03.17
내맘대로 강좌 C++편 2  (1) 2009.03.17

지난번에 string class에 대해서 설명을 했지?
이번엔 본격적으로 OOP의 꽃인 class에 대해 설명을 시작 할꺼야.

메소드에 관해선 JAVA강좌1편을 참고하도록 하고,
class라는것은 숙제 2에 나오는 Object를 찍어내는 틀? 정도로 생각하면되.

class를 만드는 방법은 #include 와 int main()사이에

class 사람
{
private:
//맴버변수들
pubric:
//메소드들
}

이렇게 하면 되

class안에는 멤버변수와 메소드가 들어가는데, 멤버변수라는것은 각 오브젝트마다 갖고있는 변수들이야. 예를 들면

사람 class인 man1 Object를 만들었다고 하자.
그러면 사람 class안에 선언해놓은 멤버변수와 메소드를 모두 갖는 man1 Object가 생성되는거야 사람 안에는 팔, 다리, 머리 등이 있고 앉기 서기 걷기 뛰기등이 있지?
앞의 팔 다리 머리 혈액 등이 멤버변수, 앉기 서기 걷기 뛰기등이 메소드야.

이제 man1한테 명령을 해야 하는데, 상사가 팔을 직접 잡고 움직이면 기분 나쁘지? 마찬가지로 Object도 멤버변수에 직접 값을 대입하면 기분 나빠하니까 멤버변수를 조정하는 메소드를 만들어서 man1.움직여라(팔,15˚) 이런식으로 해야 man1이 기분나빠하지않고 정확히 움직일수 있단말이야, 알았지?

그리고 니가 신이라고 생각하고, 이제 막 지구에 생명체를 만든다고 해봐.

사람 class를 만들고 강아지 class를 만드는데 사람도 걷기 뛰기 등이 있고, 강아지도 걷기 뛰기등이 있잖아. 그래서 생각해낸거야 동물 class를 만들고 이것을 좀더 확장해서 사람 class를 만들고 강아지 class를 만들면 걷기 뛰기등을 다시 만들 필요도 없고, 기린 class를 만들때 뛰기를 만드는 것을 잊어먹지도 않을것 아냐?
이런것을 상속이라고 해.
상속을 쓰는 방법은

class 사람 : public 동물
{
private:
//맴버변수들
pubric:
//메소드들
}

이렇게 하면 동물 클래스의 맴버변수와 메소드가 사람클래스에도 모두 생겨,

근데 여기서 또 문제가 되는게, 사람은 2족보행이고 강아지는 4족 보행이잖아?
이 경우는 메소드의 이름은 똑같이 걷기 뛰기 이지만 내용은 달라야 겠지?
이거는 어떻게 할까?

아는사람은 정답을 댓글로!!
모르는사람은 알려달라고 댓글로!!!

어쩨 방문자는 200이 넘는데, 댓글은 하나도 없고, 방명록도 없어?

'대학생활 > C++' 카테고리의 다른 글

내맘대로 강좌 C++편 6 (함수편)  (5) 2009.03.23
내맘대로 강좌 C++편 5  (2) 2009.03.19
내맘대로 강좌 C++편 3  (4) 2009.03.17
내맘대로 강좌 C++편 2  (1) 2009.03.17
내맘대로 강좌 C++편 1  (0) 2009.03.16

이번엔 string 형이야.

C++은 대소문자를 구분하니 주의하도록

string은 말 그대로 문자열이야. 문자열이란 "Hello world"같이 따옴표로 묶여있는 char형의(문자)들의 배열이지.

string형은 형이라기보다는 클래스인데, 왜냐하면 생 문자열은 char string[]속에 넣는게 맞거든, string클래스는 이것을 포함하면서 간단한 문자열 메소드들을 갖고 있어.

예를 들면 length()메소드 라던가 substr(int, int)메소드같은

length()메소드는 개체에 들어있는 문자열의 길이를 int형으로 반환하는 것이고,

substr(a, b)는 개체의 문자열에서 a번째 글자부터 b번째 글자까지의 문자열을 다시 string형으로 반환하는 메소드야. 또한 + 연산자가 있어서 두개 이상의 string을 합칠수도 있지.

숙제!!

1 #include <iostream>
2 #include <string>
3
4 using namespace std; 5
6 int main()
7 {
8    cout << "Enter your full name (first middle last): ";
9    string first;
10   string middle;
11   string last;
12   cin >> first >> middle >> last;
13   string initials = first.substr(0, 1)
14      + middle.substr(0, 1) + last.substr(0, 1);
15   cout << "Your initials are " << initials << "\n";
16
17   return 0;
18 }

이 소스를 실행해서 표시값을 댓글로!!

'대학생활 > C++' 카테고리의 다른 글

내맘대로 강좌 C++편 5  (2) 2009.03.19
내맘대로 강좌 C++편 4  (2) 2009.03.18
내맘대로 강좌 C++편 2  (1) 2009.03.17
내맘대로 강좌 C++편 1  (0) 2009.03.16
2주차 C++숙제,,(파일 삭제)  (0) 2009.03.15

C++과 JAVA를 동시에 보는 사람은 알겠지만,,,
C++이 좀더 내용이 적은듯 하지만, 그건 내가 C++은 내머릿속에 있는것을 정리하기 때문이고
JAVA는 책보고 공부한걸 써서 그래,,

오늘은 인풋과 아웃풋에 대해 알아볼꺼야. 그럼 또 예제소스부터

1  #include <iostream>
2
3  using namespace std;
4
5  int main()
6  {
7     cout << "How many pennies do you have? ";
8     int pennies;
9     cin >> pennies;
10
11    cout << "How many nickels do you have? ";
12    int nickels;
13    cin >> nickels;
14
15    cout << "How many dimes do you have? ";
16    int dimes;
17    cin >> dimes;
18
19    cout << "How many quarters do you have? ";
20    int quarters;
21    cin >> quarters;
22
23    double total = pennies * 0.01 + nickels * 0.05 +
24       dimes * 0.10 + quarters * 0.25;
25          /* total value of the coins */
26
27    cout << "Total value = " << total << "\n";
28
29    return 0;
30 }
자,, 지난번에 아웃풋 하는 방법인 cout은 설명을 했고,
새로 생긴것만 보면 cin이라는게 생겼지? 그리고 화살표 방향도 변수에서 함수쪽이 아닌
함수에서 변수쪽으로 되어있지?

17    cin >> dimes;

간단히 말하면 이게 인풋 끝이야. 프로그램을 실행하다가 cin을 만나면 잠시 멈추고 커서가 깜빡깜빡 하거든? 이때 글이나 숫자를 쓴 다음에 엔터를 치면 변수에 저장이 되는거야.

하지만 이때 변수의 형(int, double등)과 인풋값이 다르면 런타임에러(소스에는 에러가 없지만, 실제 작동은 의도치 않은대로 되는 에러)가 발생할수 있으니까 인풋을 받기전에는 cout으로 적당히 "숫자를 입력하세요" 라던지 "이름 : "이라고 출력해주는 쎈쓰!

왠지 짧다고 생각되면, 댓글을 남기는 쎈쓰!!(내가 잠이 많아서 오전엔 이것밖에 못쓰지만,,, 혹시 밤새 댓글이 달렸나? 하고 일찍일어날수도 있다는거,,,)

'대학생활 > C++' 카테고리의 다른 글

내맘대로 강좌 C++편 5  (2) 2009.03.19
내맘대로 강좌 C++편 4  (2) 2009.03.18
내맘대로 강좌 C++편 3  (4) 2009.03.17
내맘대로 강좌 C++편 1  (0) 2009.03.16
2주차 C++숙제,,(파일 삭제)  (0) 2009.03.15

드디어 나오는군요 우리학교의 학생증!!!

일단 적절한 플래쉬로 모자이크를(디카가 구려서 억지로 입혀졌지만)씌운뒤

다시 삽질해서 올려봅니다.

'대학생활' 카테고리의 다른 글

지금은 집 입니다.  (0) 2009.12.22
UNIST 2009년 2학기 기말고사 시간표  (0) 2009.12.05
내맘대로 강좌 공지!!!  (1) 2009.03.25
내맘대로 강좌 공통편 1  (0) 2009.03.20
내맘대로 강좌 시작!!  (1) 2009.03.16

빨리하고 물리 보고서 써야 되는데,,,

Rectangle box = new Rectangle(5, 10, 20, 30);
이것이 뜻하는 것은,

Rectangle box 먼저 Rectangle 클래스대로 box개체의 공간을 할당 받는거야.

근데 공간만 있지 거기에 내용이 없잖아? 그래서

new Rectangle(5, 10, 20, 30)
라고 새로운 (5,10)에 위치하고 (가로 X 세로) = (20 X 30)인 직사각형을 만드는거야.

그다음에 Rectangle클래스에 있는 get뭐시기 메소드를 이용하면 가로 세로 x y를 모두 구할수 있어

예를 들면

System.out.println(box.getwidth);
하면 아마 20이 출력될꺼야.

이런식으로 하는거지,,,
나머지는 직접 읽어봐도 간단한 설명과 예제니까 직접 wiley를 읽어 보라고 안그러면 license값이 아깝잖아?

'대학생활 > JAVA' 카테고리의 다른 글

내맘대로 강좌 JAVA편 4  (0) 2009.03.25
내맘대로 강좌 JAVA편 3  (0) 2009.03.25
3주차 JAVA숙제가 나왔습니다^^  (2) 2009.03.23
내맘대로 강좌 JAVA편 1  (3) 2009.03.16
2주차 JAVA숙제,,,(파일 삭제)  (0) 2009.03.15