doron amir
 
דואר אלקטרוני:
 
 
סיסמה:
 
 
 
 
 
 
לוח פגישות
 
|
 
איזכור סיסמא
 
עברית
 
|
 
english
 
|
 
русский
 
 
 
doron amir
 
קורסים ותרגול
 
עמוד הבית
 
חבילות
הדרכה
 
החשבון שלי
 
אודות
דורון אמיר
 
צור קשר
 
מאגר תרגילים ופתרונות
 
מאמרי גולשים
 
קורס אנדרואיד

[002] תרגיל ב #C : יצירת שעון טקסט ( Properties,Struct,Enum )


[002] תרגיל ב #C : יצירת שעון טקסט ( Properties,Struct,Enum ) בשיעור וידאו

 
תרגיל 002 מתוך אוסף תרגילים ב #C מומלץ למתכנתי NET. מתחילים המתכוננים להצלחה בבחינות ובראיונות עבודה כולל הכנה למבחני מיון ליחידת 8200 , ממר"מ , יחידת ראם (השב"כ) ועוד. תרגיל זה מיועד לאימון ותרגול ויש לבצע אותו בהתאם ללוח הזמנים המותאם לתרגיל זה ולחזור על התרגול עד לרמת שליטה מלאה בקוד.

תרגיל  מס'  002 עבור מבואות לתכנות מונחה עצמים - Encapsulation 

  

צור תכנית אשר מגדירה אובייקט מסוג Clock.האובייקט מאפשר להציג את השעה באופן רנדומלי (השתמש במחלקה Random ) ולהציג את השעה בעוד 4 מדינות (בנוסף לישראל )באופן אקראי (הזמן אקראי ) כולל התחשבות בהפרש השעות יחסית לישראל.

 

1.חובה להשתמש בכימוס ( Encapsulation )

2.יש להשתמש במאפיינים עבור השדות ( Properties )

3.יש לאתחל ולהדפיס את הנתונים דרך ה properties בלבד .

5.אין להשתמש בטיפוס מובנה מסוג DateTime  

6.הדפס לבסוף גם את טבלת הפרשי השעות והמדינות שבחרת להציג.

 

למתקדמים :

 

הצג את השעה בעזרת טקסט ,כלומר עבור השעה 07:58 ו 29 שניות המסך יציג (שעות 24 שע')

Seven and Fiftyeight Minutes [and 29'second] o'clock

 

לדוגמא :

 

 image_1

 טיפ לתחילת התרגיל :

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace DoronAmir
{
    public class Clock
    {
        private int hour;
        private int minute;
        private int second;
 
        public int Hour
        {
            get {return this.hour; }
            set { this.hour = value; }
        }
        public int Minute
        {
            get { return this.minute; }
            set { this.minute = value; }
        }
        public int Second
        {
            get { return this.second; }
            set { this.second = value; }
        }
 
        public string getTime()
        {
            setTime();
            return Hour.ToString("00") + 
":" + Minute.ToString("00") + 
":" + Second.ToString("00");
        }
        private void setTime()
        {
            Random r = new Random();
            Hour = r.Next(0, 25);
            Minute = r.Next(0, 60);
            Second = r.Next(0, 60);
 
        }
 
    }
 
    class Program
    {
        static void Main(string[] args)
        {
 
            Clock c1 = new Clock();
 
            Console.WriteLine(c1.getTime());
        }
    }
}
 

 

 קוד התכנית

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
 
 using System;
namespace DoronAmir
{
    public class Clock
    {
        public enum HourDifference 
        { Jerusalem = 0, Bangkok = 5, 
            Lima = -7, Paris = -1, Tokyo = 7 }
        public enum StateList
        { Jerusalem = 0, Bangkok = 1,
            Lima = 2, Paris = 3, Tokyo = 4,END }
        private int hour;
        private int minute;
        private int second;

        public int Hour
        {
            get { return this.hour; }
            set { this.hour = value; }
        }
        public int Minute
        {
            get { return this.minute; }
            set { this.minute = value; }
        }
        public int Second
        {
            get { return this.second; }
            set { this.second = value; }
        }
        public struct StateInfo
        {
            public StateList stateName;
            public int diff;
 
        }
        public struct StateTime
        {
            public StateInfo state;
            public int hour;
            public int minute;
            public int second;
        }
 
        StateInfo[] arrStatesDiff;
        StateTime[] arrTimeStates;
        private void setTime()
        {
            Random r = new Random();
            Hour = r.Next(0, 24);
            Minute = r.Next(0, 60);
            Second = r.Next(0, 60);
            arrStatesDiff = new StateInfo[(int)StateList.END];
            arrTimeStates = new StateTime[(int)StateList.END];
             for (int i = 0; i < arrStatesDiff.Length; i++)
            {
                    arrStatesDiff[i].stateName = (StateList)i;
                    if (arrStatesDiff[i].stateName.ToString() == 
                        HourDifference.Jerusalem.ToString())
                    {
                        arrStatesDiff[i].diff = (int)HourDifference.Jerusalem;
                    }
                    else if (arrStatesDiff[i].stateName.ToString() ==
                        HourDifference.Bangkok.ToString())
                    {
                        arrStatesDiff[i].diff = (int)HourDifference.Bangkok;
                    }
                    else if (arrStatesDiff[i].stateName.ToString() == 
                        HourDifference.Lima.ToString())
                    {
                        arrStatesDiff[i].diff = (int)HourDifference.Lima;
                    }
                    else if (arrStatesDiff[i].stateName.ToString() ==
                        HourDifference.Paris.ToString())
                    {
                        arrStatesDiff[i].diff = (int)HourDifference.Paris;
                    }
                    else if (arrStatesDiff[i].stateName.ToString() ==
                        HourDifference.Tokyo.ToString())
                    {
                        arrStatesDiff[i].diff = (int)HourDifference.Tokyo;
                    }
                arrTimeStates[i].state = arrStatesDiff[i];
                if (0 <= Hour + arrStatesDiff[i].diff && Hour 
                    + arrStatesDiff[i].diff < 24)
                {
                    arrTimeStates[i].hour = Hour +
                        arrStatesDiff[i].diff;
                }
                else if (Hour + arrStatesDiff[i].diff < 0)
                {
                    arrTimeStates[i].hour = (Hour +
                        arrStatesDiff[i].diff) + 24;
                }
                else
                {
                    arrTimeStates[i].hour = (Hour + 
                        arrStatesDiff[i].diff) - 24;
                }
                arrTimeStates[i].minute = Minute;
                arrTimeStates[i].second = Second;
            }
        }
        public string getTime()
        {
            setTime();
            string msg = "";
            for (int i = 0; i < arrTimeStates.Length; i++)
            {
                msg += "\n The correct time in " 
                    + arrTimeStates[i].state.stateName + 
                    "," + arrTimeStates[i].hour.ToString("00") +
                    ":" + arrTimeStates[i].minute.ToString("00") +
                    ":" + arrTimeStates[i].second.ToString("00");
            }
            return msg;
        }      
        public string showTableTime()
        {
            string tableTime = "";
            for (int i = 0; i < 5; i++)
            {
                tableTime += String.Format("\n--------------\n{0,-10}|{1,3}"
                    , arrStatesDiff[i].stateName, arrStatesDiff[i].diff);
            }
            return tableTime;
 
        }
    }
  
    class Program
    {
 
        static void Main(string[] args)
        {
          Clock c1 = new Clock();
 
          Console.WriteLine(c1.getTime());
          Console.WriteLine(c1.showTableTime());
        }
    }
}
 
 

 

 
תוצאת ריצת הקוד
 

 image_0

 

  תצלום מסך הפתרון עבור שעון טקסט למתקדמים

 

 image_2

 פתרון למתקדמים: שעון טקסט

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
using System;
namespace DoronAmir
{
    class Program
    {
        public struct TextTime
        {
            public string textHour;
            public string textMinute;
            public string textSecond;
        }
        public enum numberToText {
            Midnight, one,two, three,
            four, five, six,seven,
            eight,nine,Ten,Eleven,
            Twelve,Thirteen,Fourteen,Fifteen,
            Sixteen,Seventeen,Eightteen,Nineteen,
            Twenty= 20,Thirty=30,Forty=40,Fifty=50,     
        }
        public static string buildComplexTime(int tens, int ones)
        {
            string complextHour = ((numberToText)(tens * 10)).ToString();
            if (ones != 0)
            {
                complextHour += ((numberToText)(ones)).ToString();
            }
            return complextHour;
        }
        static void Main(string[] args)
        {
            TextTime t1;
            Random rnd = new Random();
            string complexHour="";
            string complexMinute = "";
            int hours = rnd.Next(0,24),
                minutes = rnd.Next(0, 60),
                seconds = rnd.Next(0, 60),
                hTens = 0, hOnes = 0, mTens = 0, mOnes = 0;
            // buid hour
            if (hours > 19 && hours < 24 )
            {
                hTens = hours / 10;
                hOnes = hours % 10;
                complexHour = buildComplexTime(hTens, hOnes);        
            }
            else
            {
                complexHour = ((numberToText)hours).ToString();
            }
            // build minutes
            if (minutes > 19 )
            {
                mTens = minutes / 10;
                mOnes = minutes % 10;
                complexMinute ="and "+ buildComplexTime(mTens, mOnes);
                if (minutes != 0)
                {
                    if (minutes == 1)
                    {
                        complexMinute += " Minute ";        
                    }
                    else
                    {
                        complexMinute += " Minutes";        
                    }
                }       
            }
            t1.textHour = complexHour;
            t1.textMinute = complexMinute;
            t1.textSecond = seconds.ToString();
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("The correct time in jerusalem is");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("{0} {1} [and {2}' seconds]",
                t1.textHour, t1.textMinute, t1.textSecond);
            Console.ForegroundColor = ConsoleColor.White;
        }
    }
}
 

 

חזרה לרשימת השיעורים הטקסטואליים
 
 
אפליקציות אפל
אפליקציות אנדרואיד
001 קורס אנדראויד באתר