Preferences 에 Text file edcoding을 UTF-8로 사용하다가 글씨가 이상하게 잘 깨져서
다시 MS949로 설정했는데, 뭐지.
이제는 Scanner에서 한글이 깨지네..

아놔., 그래서 다시 UTF-8로 바꾸고 사용중인데, 계속 Scanner만 쓰면 한글이 오류.
그래서 이것 저것 다 찾아보다가 이클립스의 환경설정파일을 수정하면 된다길래 해보니 된다.

하는방법.

이클립스 설치폴더에 eclipse.ini 파일을 열어 (그냥 메모장으로 열면 글씨가 깨질 수 있으니 에딧플러스 추천)

맨 밑줄에
-Dfile.encoding=UTF-8
을 추가 한 후에 이클립스를 시작! 한글이 된다.

이상!

'Programming > BASIC' 카테고리의 다른 글

SOAP vs REST 비교  (0) 2013.08.06
StarUML 사용방법  (3) 2011.04.05
JSP와 JAVASCRIPT 차이  (0) 2011.03.24
이클립스 웹 환경 설정  (3) 2011.03.24
이클립스(eclipse) 첫 실행 후 설정  (2) 2011.03.24
SyntaxHighlighter 가 무엇인가.. 바로 아래와 같이 블로그에 프로그램코드를 깔끔하게 보여주도록 해주는 것이다.
public class Hello4 {

	public static void main(String[] args) {
		System.out.println("안녕하세요!! JAVA를 즐깁시다.");
	}
}

가장 먼저 프로그램을 받아 블로그에 적용시켜야한다.
http://alexgorbatchev.com/SyntaxHighlighter/
위에서 다운받자. 현재 가장 최신버전은 syntaxhighlighter_3.0.83 이다.

압축을 풀면 폴더들이 보이는데 여기서 필요한것은 styles 와 scripts 폴더이다. 이 둘 안에있는 파일들을 티스토리 관리모드 HTML/CSS 편집 에서 파일 업로드로 모두 올려버리자.
그리고나서 HTML편집의 skin.html 의 <head>아래 부분에 아래 코드를 입력하여 자바 스크립트 파일을 적용시키자.


<!-- syntax highlight -->
<script type="text/javascript" src="./images/shCore.js">
 
<!-- code syntaxhighlighter -->
<script type="text/javascript" src="./images/shCore.js"></script> 
<script type="text/javascript" src="./images/shBrushAS3.js"></script> 
<script type="text/javascript" src="./images/shBrushAvs.js"></script> 
<script type="text/javascript" src="./images/shBrushBash.js"></script> 
<script type="text/javascript" src="./images/shBrushCpp.js"></script> 
<script type="text/javascript" src="./images/shBrushCSharp.js"></script> 
<script type="text/javascript" src="./images/shBrushCss.js"></script> 
<script type="text/javascript" src="./images/shBrushDelphi.js"></script> 
<script type="text/javascript" src="./images/shBrushDiff.js"></script> 
<script type="text/javascript" src="./images/shBrushGroovy.js"></script> 
<script type="text/javascript" src="./images/shBrushJava.js"></script> 
<script type="text/javascript" src="./images/shBrushJavaFX.js"></script> 
<script type="text/javascript" src="./images/shBrushJScript.js"></script> 
<script type="text/javascript" src="./images/shBrushMsx.js"></script> 
<script type="text/javascript" src="./images/shBrushPerl.js"></script> 
<script type="text/javascript" src="./images/shBrushPhp.js"></script> 
<script type="text/javascript" src="./images/shBrushPlain.js"></script> 
<script type="text/javascript" src="./images/shBrushPowerShell.js"></script> 
<script type="text/javascript" src="./images/shBrushPython.js"></script> 
<script type="text/javascript" src="./images/shBrushRuby.js"></script> 
<script type="text/javascript" src="./images/shBrushScala.js"></script> 
<script type="text/javascript" src="./images/shBrushSql.js"></script> 
<script type="text/javascript" src="./images/shBrushVb.js"></script> 
<script type="text/javascript" src="./images/shBrushXml.js"></script> 
<script type="text/javascript" src="./images/shLegacy.js"></script> 
<link rel="stylesheet" type="text/css" href="./images/shCore.css"> 
<link rel="stylesheet" type="text/css" href="./images/shThemeDefault.css"> 
<script type="text/javascript"> 
    SyntaxHighlighter.config.bloggerMode = true;
    SyntaxHighlighter.config.clipboardSwf = './images/clipboard.swf';
    SyntaxHighlighter.all();
</script>
<!-- code syntaxhighlighter -->
입력이 끝나면 저장을 한 후 글을 써보자. 
 
<pre class="brush: java">소스코드 작성
</pre>
brush 뒤에 자바 뿐만아니라 지원할 수 있는 언어가 매우 많다. 더 자세한 내용은 홈페이지를 참조하길 바란다.

'IT World > Computer' 카테고리의 다른 글

윈도우7 AERO 먹통문제, (미러 드라이버)  (15) 2011.04.01
32비트OS에서 4G 메모리 활용하기  (0) 2011.03.24

▶요구사항 : 사원번호, 급, 호, 수당을 입력받아 아래의 처리조건에 의해 사번, 급, 호, 수당, 지급액, 세금, 차인 지급액을 계산하여 출력시켜주는 급여관리프로그램을 작성하시오.


▶처리조건

  1. 급, 호별 급여

 호봉

1급 

2급 

 1호

 95000

 80000

 2호

 92000

 75000

 3호

 89000

 70000

 4호

 86000

 65000

 5호

 83000

 60000


  2. 지급액별 세율 및 조정액


 지급액

세율 

조정액 

 70,000미만

 70,000~79,999

0.005

300 

 80,000~89,999

0.007 

500 

 90,000 이상

0.012 

1000 


  3. 지급액 = 급여 + 수당

  4. 세금 = (지급액*세금)-조정액

  5. 차인 지급액 = 지급액 - 세금

아래는 실행 결과이다. (입력 출력 선택에따라 여러명을 추가 입력 할 수 있다.)




프로젝트 결과 다운로드 : 


 

'Project > JAVA' 카테고리의 다른 글

자바 전화요금 명세서 프로그램 작성  (1) 2011.04.04
자바 달력만들기  (2) 2011.04.04
자바 알파벳 피라미드 만들기  (3) 2011.04.04
자바 다이아몬드 출력하기  (1) 2011.04.04

문제 : 전화요금 명세서 프로그램 작성


1. 입력양식 (data.txt)  //첨부파일 

구분     전화번호       이름         통화량


2. 출력양식

구분    전화번호        이름        기본요금       통화료      세금       합계


3. 처리조건

 1)입력되는 구분의 값이 1이면 영업용, 2면 관청용, 3이면 가정용

 2)기본요금은 영업용이 6000원, 관정용이 4800원, 가정용이 4000원이다.

 3)통화료는 1통화에 40원이다.

 4)세금은 기본 요금과 통화료를 합한 금액의 10%를 부과한다.

 5)출력결과 인쇄시 5줄마다 한 줄씩 띄운다.


-----------------------------------------------------------------------------------

-----------------------------------------------------------------------------------

해결..






0). 각자 임무대로 클래스를 나눈다.

  1)메인, 2)고객정보, 3)입력, 4)요금계산, 5) 기본 요금(static) 6)출력




1) 메인

 public class Main {

/**

* 전화요금 명세서 프로그램

*/

public static void main(String[] args) {

Customer [] array = new Customer[10];

Input input = new Input(array);

input.input();

Calc calc = new Calc(array);

calc.calc();

Output output = new Output(array);

output.display();

}

}

 data.txt 파일에 10명의 정보가 들어있다.

 고객 정보를 배열로 저장하여 각 클래스에 넘겨준다.

 입력과 계산, 출력 모두 Customer에서 생성되는 고객 정보의 주소를 입력으로 사용한다. (Call by reference)



2)고객정보

 public class Customer {

private int gubun, tongwha, fee;

private double sum, tax;

private String telno, name;

public Customer(int gubun, String telno, String name, int tongwha) {

this.gubun = gubun;

this.tongwha = tongwha;

this.telno = telno;

this.name = name;

}

public int getFee() {

return fee;

}

public void setFee(int fee) {

this.fee = fee;

}

public double getSum() {

return sum;

}

public void setSum(double sum) {

this.sum = sum;

}

public double getTax() {

return tax;

}

public void setTax(double tax) {

this.tax = tax;

}

public int getGubun() {

return gubun;

}

public int getTongwha() {

return tongwha;

}

public String getTelno() {

return telno;

}

public String getName() {

return name;

}

}


  고객의 기본정보는 private로 보호하며 접근하기위해 겟터와 셋터 (get/set)메소드를 생성한다.


 Customer 생성메소드를 재정의 (Overriding)



 3)입력

 import java.util.Scanner;

import java.io.File;

import java.io.FileNotFoundException;

import javax.swing.JOptionPane;

public class Input {

private Customer [] array;

Scanner scan;

public Input (Customer[] array){

this.array = array;

File file = new File("D:\\JavaRoom\\전화요금프로젝트\\data.txt");

try {

scan = new Scanner(file);

} catch (FileNotFoundException e) {

JOptionPane.showMessageDialog(null, "File Not Found");

System.exit(-1);

}

}

public void input(){

for (int i = 0; i < this.array.length; i++) {

String line = this.scan.nextLine().trim(); //데이터 한 줄의 양 끝 공백을 지운다.

String [] array2 = line.split("\\s+");

this.array[i] = new Customer(Integer.parseInt(array2[0]),array2[1],array2[2],

Integer.parseInt(array2[3]));

}

}

}


File과 Scanner를 이용한 입력.

-경로는 한글이 아닌 영문을 권유한다.(한글이 안되는건 아닌데 문제가 있을 수 있나보다..)

파일이 없을경우를 대비해 예외처리를 해준다.

 

System.exit(-1); // 프로그램 종료메소드로 0은 정상종료이고 그 외의 값은 비정상 종료를 의미한다.

 

 

 



 

 4)요금계산

 

 


public class Calc {

private Customer [] array;

public Calc(Customer [] array){

this.array = array;

}

public void calc(){

for (int i = 0; i < this.array.length; i++) {

int fee = calcFee(this.array[i].getTongwha());

double tax = calcTax(this.array[i].getGubun(),fee);

double sum = calcSum(this.array[i].getGubun(), fee, tax);

this.array[i].setFee(fee);

this.array[i].setTax(tax);

this.array[i].setSum(sum);

}

}

private int calcFee(int tongwha){

return tongwha*40;

}

private double calcTax(int gubun, int fee){

return (Default.getDefault(gubun)+fee)*0.1;

}

private double calcSum(int gubun, int fee, double tax){

return Default.getDefault(gubun)+fee+tax;

}

}


 클래스와 메소드는 분할할 수록 좋다,

구분에 따라 기본 가격이 다르기때문에 이러한 일을 따로 Default 클래스에서 처리 해 주도록 하여 사용하였다.

 



 5) 기본 요금

 // 기본요금

public class Default {

public static final int SALES = 6000; //영업용

public static final int GOVERnMENT = 4800; //관청용

public static final int HOME = 3000; //가정용

public static int getDefault(int gubun){

int _default = 0;

switch (gubun) {

case 1: _default = Default.SALES;

break;

case 2: _default = Default.GOVERnMENT;

break;

case 3: _default = Default.HOME;

break;

}

return _default;

}

}

 구분에 따른 기본요금은 기본적인 switch case문으로 해결


 6)출력

 


public class Output {

private Customer [] array;

public Output(Customer [] array){

this.array = array;

}

public void display(){

printLabel();

int count =0;

for (Customer c : this.array){

System.out.printf("%2d%12s%7s%,6d%10d%,12.2f%,12.2f\n", //숫자 자리수 앞에 콤마를 넣으면 3자리마다 콤마를 찍는다.

c.getGubun(),c.getTelno(),c.getName(),Default.getDefault(c.getGubun()),c.getFee(),

c.getTax(),c.getSum());

count ++;

if (0==count%5) {

System.out.println();

}

}

}

private void printLabel(){

System.out.println(" 전화요금 명세서");

System.out.println(" 구분        전화번호        이름  기본요금         통화료            세금              합계");

System.out.println("___________________________________________________________________");

}

}

 출력값의 정렬을 위해 \t을 사용하는것이 보통이지만 숫자의 경우 오른쪽 정렬이기때문에 간격이 안맞을 수 있다. 이럴때 출력의 변환문자 앞에 정수를 넣어 자리수를 확보 해 준다.(실수는 소수점)

 5줄마다 생기는 공백라인은 count 를 사용





출력 확인!!

 

프로젝트 소스파일

'Project > JAVA' 카테고리의 다른 글

자바 급여 관리 프로그램 설계  (3) 2011.04.04
자바 달력만들기  (2) 2011.04.04
자바 알파벳 피라미드 만들기  (3) 2011.04.04
자바 다이아몬드 출력하기  (1) 2011.04.04

+ Recent posts