[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

À̾ °è¼ÓµË´Ï´Ù. ==============>>>>>>>


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

    

 ´ÙÀ½