[C++]2ºÎ°ÁÂ(50)<--ÀÏ¹Ý µ¥ÀÌÅÍ Å¸ÀÔÀ¸·ÎÀÇ º¯È¯
³ª. ÀÏ¹Ý µ¥ÀÌÅÍ Å¸ÀÔÀ¸·ÎÀÇ º¯È¯
ÀÏ¹Ý µ¥ÀÌÅÍ Å¸ÀÔÀÌ »ý¼ºÀÚ¿¡ ÀÇÇØ Å¬·¡½ºÇüÀ¸·Î ¹Ù²î¾îÁú ¼ö°¡ ÀÖ´Ù¸é Ŭ·¡
½ºÇüÀÌ ÀÏ¹Ý µ¥ÀÌÅÍ Å¸ÀÔÀ¸·Î ¹Ù²î¾î Áú ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. Ŭ·¡½ºÇüÀ¸·ÎÀÇ º¯
ȯ¿¡ »ý¼ºÀÚ°¡ »ç¿ëµÇ¾úÀ¸´Ï ÀÏ¹Ý µ¥ÀÌÅÍ Å¸ÀÔÀ¸·ÎÀÇ º¯È¯¿¡´Â Ȥ½Ã Æı«ÀÚ¸¦
¾²´Â °ÍÀÌ ¾Æ´Ï³Ä°í ÇÒ »ç¶÷ÀÌ ÀÖÀ»Áöµµ ¸ð¸£°ÚÁö¸¸ ÀüÇô °³³äÀÌ ¾ø´Â ¼Ò¸®´Ù.
ÀÏ¹Ý µ¥ÀÌÅÍ Å¸ÀÔÀ¸·ÎÀÇ º¯È¯À» Ŭ·¡½º³»¿¡¼ Áö¿øÇϱâ À§Çؼ´Â ¿¬»êÀÚ ¿À¹ö
·ÎµùÀ» »ç¿ëÇÑ´Ù.
¿Ö °©Àڱ⠿¬»êÀÚ ¿À¹ö·ÎµùÀΰ¡ ÇÏ¸é µ¥ÀÌÅÍ Å¸ÀÔ º¯È¯¿¡ »ç¿ëµÇ´Â ij½ºÆ® ¿¬
»êÀÚÀÇ ±â´ÉÀ» ¹Ù²Ù¾î ÁÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. ½Ç¼öÇü d°¡ ÀÖÀ» ¶§ d°¡ longÇü
ÀÌ µÇ±â À§Çؼ´Â (long)d ¶Ç´Â long(d)¿Í °°ÀÌ Ä³½ºÆ®¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù. ±×
·¸´Ù¸é ¸¶Âù°¡Áö·Î TimeÇü °´Ã¼ now°¡ ÀÖÀ» ¶§ now°¡ longÇüÀÌ µÇ±â À§Çؼ´Â
(long)now,¶Ç´Â long(now)¿Í °°Àº ¹æ½ÄÀ¸·Î ij½ºÆ® ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¸é µÉ °ÍÀÌ
´Ù.
±×·¯³ª ij½ºÆ® ¿¬»êÀÚ long()Àº ±âÁ¸¿¡ Á¸ÀçÇÏ´Â µ¥ÀÌÅÍ Å¸ÀÔÀÎ int, double
µîÀº longÇüÀ¸·Î ¹Ù²Ü ´É·ÂÀÌ ÀÖÁö¸¸ »ç¿ëÀÚ°¡ ÀÓÀÇ·Î ¸¸µç Ŭ·¡½ºÇüÀº longÇü
À¸·Î ¹Ù²ÙÁö ¸øÇÑ´Ù. ±×·¡¼ Ŭ·¡½º³»¿¡¼ long() ij½ºÆ® ¿¬»êÀÚ¸¦ Ŭ·¡½ºÇü¿¡
¸Â°Ô ¿À¹ö·Îµù½ÃÄÑ ÁÖ¾î¾ß ÇÑ´Ù. ÀÌ·ÐÀº ´ëÃæ ÀÌ·¸°í ½Ç½ÀÀ» Çغ¸¾Æ¾ß ´õ ½±°Ô
ÀÌÇØ°¡ µÉ °ÍÀÌ´Ù.
#include <iostream.h>
class Time
{
private:
int hour;
int min;
int sec;
public:
Time(int h,int m,int s)
{ hour=h; min=m; sec=s; }
operator long(); // ij½ºÆ® ¿¬»êÀÚ ÇÔ¼ö long() ÀÇ ¿øÇü
void outtime()
{
cout << hour << '/' << min << '/' << sec << '\n';
}
};
Time::operator long() // TimeÇüÀ» longÇüÀ¸·Î ¹Ù²Ù´Â ij½ºÆ® ¿¬»êÀÚ Á¤ÀÇ
{
return hour*3600+min*60+sec;
}
void main()
{
Time now(1,1,1); // °´Ã¼ »ý¼º ¹× ÃʱâÈ
long totalsec;
totalsec=long(now); // TimeÇüÀÇ now°¡ longÇüÀÇ totalsec·Î º¯È¯µÈ´Ù.
cout << totalsec << '\n';
}
½ÇÇà °á°ú´Â 1½Ã 1ºÐ 1Ãʸ¦ ÃʷΠȯ»êÇÑ 3661ÀÌ´Ù.
ÀÌ ¿¹Á¦¿¡¼ operator long();ÀÌ ¹Ù·Î ij½ºÆ® ¿¬»êÀÚ long()À» ¿À¹ö·Îµù½ÃÅ°
´Â °ÍÀÌ´Ù. operator long();À̶ó´Â ¹®±¸°¡ ³·¼³°Ô º¸ÀÌ°ÚÁö¸¸ operator +();
operator =(); µî°ú µ¿ÀÏÇÑ °ÍÀÌÁö º°½º·± ¹®±¸°¡ ¾Æ´Ï´Ù. long()ÀÌ ¿¬»êÀÚ ÇÔ
¼ö¶ó´Â °Í°ú ¿¬»êÀÚ ¿À¹ö·ÎµùÀ» ÀÌÇØÇÏ°í ÀÖ´Ù¸é ¾î·Á¿ï °ÍÀÌ ¾ø´Ù. long() ¿¬
»êÀÚ ÇÔ¼ö´Â TimeÇü °´Ã¼ÀÇ ¸â¹ö hour¿¡ 3600(ÃÊ)À» °öÇÏ°í, min¿¡ 60À» °öÇÑ
°Í°ú sec¸¦ ÀüºÎ ´õÇØ ÀÚÁ¤ ÀÌÈÄÀÇ °æ°ú Ãʸ¦ longÇüÀ¸·Î ¸¸µé¾î ¸®ÅÏÇÏ°í ÀÖ
´Ù. main ÇÔ¼öÀÇ ³»ºÎ¸¦ º¸ÀÚ. TimeÇüÀÇ °´Ã¼ now¿Í longÇü º¯¼ö totalsec¸¦
¸¸µç ÈÄ totalsec=long(now)·Î nowÇü °´Ã¼¸¦ longÇü º¯¼ö¿¡ ´ëÀÔÇÏ°í ÀÖ´Ù. ÀÌ
¶§ µÇÀԵDZâÀü long() ¿¬»êÀÚ¿¡ ÀÇÇØ now °´Ã¼°¡ longÇüÀ¸·Î º¯È¯µÇ¾î Áø´Ù.
totalsec=(long)now·Î ½áµµ ¸¶Âù°¡ÁöÀÌ¸ç ½ÉÁö¾î´Â totalsec=now µî°ú °°ÀÌ
¹Ù·Î ´ëÀÔÀ» Çصµ »ó°üÀÌ ¾ø´Ù. ´ëÀÔ¹®ÀÇ Á¿캯ÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀÌ ´Ù¸£°í ¿ìº¯
ŸÀÔÀ» Áº¯ ŸÀÔÀ¸·Î º¯È¯½ÃÅ°´Â ÇÔ¼ö°¡ ÀÌ¹Ì Á¤ÀǵǾúÀ¸¹Ç·Î ³ª¸ÓÁö´Â ÄÄÆÄ
ÀÏ·¯°¡ ¾Ë¾Æ¼ ó¸®ÇØÁØ´Ù.
´Ù. Ŭ·¡½º³¢¸®ÀÇ º¯È¯
Ŭ·¡½º°¡ µ¥ÀÌÅÍ Å¸ÀÔÀ̶ó´Âµ¥ Ŭ·¡½º¿Í ÀÏ¹Ý µ¥ÀÌÅÍ Å¸ÀÔ³¢¸®ÀÇ º¯È¯ ÇÔ¼ö¸¦
ÀÌÇØÇÑ´Ù¸é Ŭ·¡½º³¢¸®ÀÇ º¯È¯ ÇÔ¼öµµ ±×¿Í º°´Ù¸£Áö ¾ÊÀ¸¹Ç·Î ¾î·ÆÁö ¾Ê°Ô ¼Ò
½º¸¸ ºÁµµ ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. À̹ø¿¡ ¸¸µé¾î º¼ ¿¹Á¦¿¡¼´Â TimeÇü Ŭ·¡
½º¿Í TsecÇü Ŭ·¡½º µÎ °³¸¦ Á¤ÀÇÇÏ°í µÎ Å¬·¡½º°£ÀÇ µ¥ÀÌÅÍ Å¸ÀÔ º¯È¯ ÇÔ¼ö¸¦
¼±¾ðÇÑ´Ù. Tsec Ŭ·¡½º´Â ÀÚÁ¤ ¹× Á¤¿À ÀÌÈÄÀÇ °æ°ú Ãʸ¦ ³ªÅ¸³»´Â totalsec¿Í
¿ÀÀü, ¿ÀÈĸ¦ ³ªÅ¸³»´Â ampmÀ» °¡Áö°í ÀÖÀ¸¸ç ÇÏ·çÀÇ ½Ã°£À» ¿ÀÀü/¿ÀÈÄ ¿Í 12
½Ã ÀÌÈÄÀÇ °æ°úÃÊ·Î ³ªÅ¸³½´Ù.
Time Ŭ·¡½º¿Í Tsec´Â »ç½Ç Ç¥Çö ¹æ½ÄÀÌ ´Ù¸¦ »ÓÀÌÁö °á±¹Àº °°Àº ´ë»óÀ» Ç¥
ÇöÇÏ°í ÀÖÀ¸¹Ç·Î »óÈ£ º¯È¯ÀÌ ¾ó¸¶µçÁö °¡´ÉÇÏ´Ù. ¿¹Á¦´Â ´ÙÀ½°ú °°Àºµ¥ Ŭ·¡
½º°¡ µÎ °³³ª µÇ´Ù º¸´Ï ¿¹Á¦Ä¡°í´Â Á¶±Ý ±æ´Ù.
1 #include <iostream.h>
2 #include <conio.h>
3 class Tsec; // Tsec°¡ classÀÓÀ» ¹Ì¸® ¾Ë¸²
4 class Time // Time classÀÇ ¼±¾ð
5 {
6 public:
7 int hour;
8 int min;
9 int sec;
10 Time() {}
11 Time(int h,int m,int s)
12 { hour=h; min=m; sec=s; }
13 operator Tsec(); // TimeÇüÀ» °´Ã¼¸¦ TsecÇüÀ¸·Î ¹Ù²Ù´Â ÇÔ¼ö
14 void outtime()
15 {
16 cout << hour << '/' << min << '/' << sec << '\n';
17 }
18 };
19 class Tsec
20 {
21 public:
22 long totalsec;
23 int ampm;
24 Tsec() {}
25 Tsec(long l)
26 {
27 totalsec=l % (3600*12L);
28 ampm=(l > (3600*12L));
29 }
30 operator Time(); // TsecÇüÀÇ °´Ã¼¸¦ TimeÇüÀ¸·Î ¹Ù²Ù´Â ÇÔ¼ö
31 void outtsec()
32 {
33 if (ampm==0) cout << "AM ";
34
35 cout << totalsec << '\n';
36 }
37 };
38 Time::operator Tsec() // º¯È¯ ÇÔ¼ö Á¤ÀÇ
39 {
40 Tsec temptsec; // º¯È¯À» À§ÇÑ Àӽà °´Ã¼
31 temptsec.totalsec=hour*3600+min*60+sec;
32 if (temptsec.totalsec > 3600*12L)
33 {
34 temptsec.totalsec-=3600*12L;
35 temptsec.ampm=1;
36 }
37 else temptsec.ampm=0;
38 return temptsec;
39 }
40 Tsec::operator Time() // º¯È¯ ÇÔ¼ö Á¤ÀÇ
41 {
42 Time imsi; // º¯È¯À» À§ÇÑ Àӽà °´Ã¼
43 imsi.hour=totalsec/60/60 +ampm*12;
44 imsi.min=(totalsec/60) % 60;
45 imsi.sec=totalsec % 60;
46 return imsi;
47 }
48 void main()
49 {
50 Time now(1,1,1);
51 Tsec nowts;
52 Time then;
53 Tsec thents(3600);
54 clrscr();
55 nowts=now; // Time ÇüÀÇ °´Ã¼°¡ TsecÇüÀÇ °´Ã¼°¡ µÊ
56 nowts.outtsec();
57 then=thents; // Tsec ÇüÀÇ °´Ã¼°¡ TimeÇüÀÇ °´Ã¼°¡ µÊ
58 then.outtime();
59 }
ÀϺη¯ ÀԷ½ÃÄÑ ½ÇÇà½ÃÄÑ º¸´Â ¼ö°í¸¦ ´ú±â À§ÇØ Ä£ÀýÇÏ°Ô ½ÇÇà °á°úµµ ¹àÈù
´Ù.
AM 3661
1/0/0
ÀÌ¾î¼ °è¼ÓµË´Ï´Ù. ==============>>>>>>>
--------------------------------------------------------------------------------
´ÙÀ½