תרגיל 003 מתוך אוסף תרגילים ב #C מומלץ למתכנתי NET. מתחילים המתכוננים להצלחה בבחינות ובראיונות עבודה כולל הכנה למבחני מיון ליחידת 8200 , ממר"מ , יחידת ראם (השב"כ) ועוד. תרגיל זה מיועד לאימון ותרגול ויש לבצע אותו בהתאם ללוח הזמנים המותאם לתרגיל זה ולחזור על התרגול עד לרמת שליטה מלאה בקוד.
תרגיל מס' 505 עבור מבואות לתכנות מונחה עצמים - Encapsulation
צור תכנית אשר מגדירה אובייקט מסוג Person .האובייקט חייב להכיל שדות עם מציין גישה (Access modify ) מסוג private המשמשים לאחסון נתוני האובייקט .השדה הראשון הינו עבור אחסון השם הפרטי והשני עבור שם המשפחה ( fname & lname ) . שדה נוסף יהיה עבור נתוני הגיל (age).
הוסף לאובייקט מתודות מסוג get & set עבור האפשרות לבצע השמת ערכים אל שדות האובייקט כולל שליפת נתונים מתוך השדות המוגנים (private )
יש לבנות מנגנון אשר מגן על הנתונים כך שלא ניתן יהיה להזין ערך ריק לשדות עבור שם פרטי או משפחה ( במקרה כזה השדות יקבלו את הערך No Name ) ןעבור השדה age לא ניתן יהיה להזין ערך שלילי ( במצב זה יהיה הערך 1).
תקציר נוסח ראיון עבודה \ בחינה \ מבחני מיון \ Senario :
כמתכנת בחברת הייטק הינך מתבקש לבנות תכנית אשר מציגה את נתוני העובדים ע"י אובייקט מסוג person הכולל את פרטי העובד הבסיסיים ביותר ( שם פרטי , שם משפחה , גיל ) בהתאמה להגבלות הבאות:
1.חובה להשתמש בכימוס ( Encapsulation )
2.אין להשתמש במאפיינים עבור השדות (Properties )
3.יש לאתחל ולהדפיס את הנתונים של 2 אובייקטים .
4.השדה age לא יכול להכיל ערך שלילי (במקרה זה הערך יקבל את הערך 1)
5.השדות עבור אחסון השמות לא יקבלו ערך ריק (במקום זאת יקבלו את הערך no name )
* צור 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
81
82
83
84
85
86
87
88
89
90
91
92
|
using System;
namespace DoronAmir
{
public class Person
{
private string fname;
private string lname;
private int age;
public void setFname(string fname)
{
if (fname != "")
{
this.fname = fname;
}
else
{
this.fname = "No Fname";
}
}
public string getFname()
{
return this.fname;
}
public void setLname(string lname)
{
if (lname != "")
{
this.lname = lname;
}
else
{
this.lname = "No Lname";
}
}
public string getLname()
{
return this.lname;
}
public void setAge(int age)
{
if (age > 0)
{
this.age = age;
}
else
{
this.age = 1;
}
}
public int getAge()
{
return age;
}
}
public class MyClass
{
public static void Main()
{
Person p1 = new Person();
p1.setAge(-90);
p1.setFname("");
p1.setLname("Amir");
Person p2 = new Person();
p2.setAge(35);
p2.setFname("Doron");
p2.setLname("Amir");
Console.WriteLine("{0},{1},{2}", p1.getFname(), p1.getLname(), p1.getAge());
Console.WriteLine("{0},{1},{2}", p2.getFname(), p2.getLname(), p2.getAge());
}
}
}
|
|