|
에궁 정 그러시다니 뭐 간단한게 만들어보았습니다...
다듬어서 사용하세요 ^^
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TMemo *Memo1;
TEdit *Edit1;
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
void __fastcall Num_order(int i); //order를 정해주기 위한 함수입니다.
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
AnsiString kor_trans = "";
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Num_order(int i)
{
switch(i)
{
case 1 : kor_trans = kor_trans + "";
break;
case 2 : kor_trans = kor_trans + "십";
break;
case 3 : kor_trans = kor_trans + "백";
break;
case 4 : kor_trans = kor_trans + "천";
break;
case 5 : kor_trans = kor_trans + "만";
break;
case 6 : kor_trans = kor_trans + "십";
break;
case 7 : kor_trans = kor_trans + "백";
break;
case 8 : kor_trans = kor_trans + "천";
break;
case 9 : kor_trans = kor_trans + "억";
break;
case 10 : kor_trans = kor_trans + "십";
break;
case 11 : kor_trans = kor_trans + "백";
break;
case 12 : kor_trans = kor_trans + "천";
break;
}
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
kor_trans = "";
int temp = Edit1->Text.Length();
int check_order = temp;
AnsiString temp1 = Edit1->Text;
for(int i=1;i<=temp;i++)
{
switch(temp1[i])
{
case '0' : kor_trans = kor_trans + "";
break;
case '1' : kor_trans = kor_trans + "일";
Num_order(check_order);
break;
case '2' : kor_trans = kor_trans + "이";
Num_order(check_order);
break;
case '3' : kor_trans = kor_trans + "삼";
Num_order(check_order);
break;
case '4' : kor_trans = kor_trans + "사";
Num_order(check_order);
break;
case '5' : kor_trans = kor_trans + "오";
Num_order(check_order);
break;
case '6' : kor_trans = kor_trans + "육";
Num_order(check_order);
break;
case '7' : kor_trans = kor_trans + "칠";
Num_order(check_order);
break;
case '8' : kor_trans = kor_trans + "팔";
Num_order(check_order);
break;
case '9' : kor_trans = kor_trans + "구";
Num_order(check_order);
break;
}
check_order--;
}
Memo1->Lines->Add(kor_trans);
}
//---------------------------------------------------------------------------
소스는 그냥 case문을 이용해서 만들었습니다.
좀더 줄일려면 병규님처럼 order를 정해주기 위해서 약간의
연산을 첨가하면 되겠지요 ^^
전체적인것을 파악하시는데 이렇게 해드리는게 더 좋을것 같아서요^^
그럼 즐프하세여
|