מדריך: איך ליצור מחשבון בC#?

היום נלמד איך ליצור תכנית בסיסית וראשונית בהחלט בC#


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

העצה הכי טובה שלי אליכם: למדו כדי לעשות ולא כדי ללמוד
כאשר אנחנו נכנסים ללימוד של נושא על מנת להשיג תוצר מוגמר, הלימוד יהיה הרבה יותר מהנה וסוחף מאשר אם סתם נחליט יום אחד - "אני רוצה ללמוד C#". בדרך כלל, הדרך מתסכלת מאוד כשאין מטרה.

בחרו את הפרויקט הראשוני שלכם.
הוא יכול להיות מחשבון, משחק איקס עיגול, שאלון טריוויה או כל דבר שעולה על דעתכם.

דרישות קדם: היכרות בסיסית עם עולם התכנות (משתנים, תנאים, לולאות ומתודות)

איך ליצור מחשבון בC#?

1. תחילה נפתח את Visual Stusio 2017

2. ניצור פרויקט חדש מסוג Console Application וניתן לו את השם Calculator

נלחץ על New > Project



נבחר ב Console App .NET Framework, ניתן שם לאפליקציה שלנו ונלחץ על OK











s






.  






3. העתיקו את הקוד הזה לקובץ Program בפרויקט החדש שפתחתם:
לא לדאוג, מיד תקבלו הסבר על כל שורה שכתובה.


הסבר על הקוד:
using System;
using System.Linq;
 שימוש ספריות וטיפוסים אשר נמצאים ב namespace אחר (לאחר ייבוא ה Reference)

namespace Calculator
הגדרת הnamespace

{
    class Program
הגדרת המחלקה

    {
        private static readonly string[] operations = { "+", "-", "*", "/" };
הגדרת מערך אשר יכיל את כל הפעולות החשבוניות שנרצה שהמחשבון שלנו יהיה מסוגל לבצע
שימו לב: המערך יוגדר מחוץ לMain והגדרתו תכלול 3 מילות מפתח;
private: הגדרת המשתנה לשימוש רק ברמת המחלקה שלנו
static: יהיה קיים רק מופע אחד של המשתנה, לא יהיה ניתן לאתחל אותו מאובייקטים שונים
readonly: לא ניתן יהיה לשנות את ערכו של המשתנה לאחר הגדרתו

        static void Main(string[] args)
הגדרת הפונקציה הראשית של האפליקציה

        {
            bool KeepOn = true;
השמת משתנה bool אשר יכיל מידע על האם נרצה להמשיך

            while (KeepOn)
הגדרת לולאה אשר תרוץ כל עוד המשתמש ירצה להמשיך (ערך הbool יהיה true)

            {
                double result = 0;
הגדרת משתנה בו יושם ערך תוצאת החישוב

                double firstNumber = SetNumber("Type you first number : ");
                double secondNumber = SetNumber("Type you second number: ");
קריאה למתודה SetNumber עם ההודעה שנרצה להציג למשתמש כפרמטר, והשמת הערך שיוחזר מהפונקציה במשתנים firstNumber ו secondNumber (משתנים אשר ייצגו את המספרים עליהם נבצע פעולות חשבוניות)

                string stringOperation =
                    SetOperation(
                        "Enter the operation + (addition), - (subtraction), * (multiplication), / (division) :");
קריאה למתודה SetOperation עם ההודעה שנרצה להציג למשתמש כפרמטר, והשמת הערך שיוחזר מהפונקציה במשתנה stringOperation (משתנה אשר יכיל את פעולת החשבון הנבחרת)

                switch (stringOperation)
התחלת בלוק Switch בתוכו תנוהל בחירת המשתמש. נבדוק את ערך הקלט stringOperation ונבצע פעולה מתאימה

                {
                    case "+":
                    case "addition":
                        result = firstNumber + secondNumber;
מקרה חיבור

                        break;
                    case "-":
                    case "subtraction":
                        result = firstNumber - secondNumber;
מקרה חיסור

                        break;
                    case "*":
                    case "multiplication":
                        result = firstNumber * secondNumber;
מקרה כפל

                        break;
                    case "/":
                    case "division":
                        result = firstNumber / secondNumber;
מקרה חילוק

                        break;
                }
                Console.WriteLine("Result of {0} {1} {2} = {3}", firstNumber, stringOperation, secondNumber, result);
הצגת התוצאה שהתקבלה

                Console.WriteLine("Continue?[Y/N]");
תשאול המשתמש האם ירצה להמשיך לבצע פעולות חשבון או לצאת מהאפליקציה

                KeepOn = Console.ReadKey().Key == ConsoleKey.Y;
קבלת קלט עבור המשתנה KeepOn, אם המשתמש יקיש על המקש Y המחשבון ימשיך לפעול

                Console.Clear();
פקודה אשר תנקה את חלון החשבון

            }

        }

        private static double SetNumber(string outputText)
הגדרת מתודה לקבלת מספר אשר מקבלת כפרמטר הודעה להציג למשתמש.
שים לב, המתודה היא private ו static (מהסיבות שהוזכרו קודם)

        {
            double parse;
משתנה אשר יכיל את המספר הנקלט לאחר המרתו לטיפוס double

            Console.Write(outputText);
הדפסת ההודעה למשתמש

            string tempInput = Console.ReadLine();
השמת הקלט בתוך משתנה מטיפוס string בשם tempInput

            while (!double.TryParse(tempInput, out parse))
הגדרת לולאה שתרוץ כל עוד המשתנה שקלטנו (אשר נקלט כstring) לא יהיה בר המרה לטיפוס double

            {
כניסה לבלוק הלולאה אם התנאי מתקיים

                Console.WriteLine("Incorrect input !");
הדפסה שהקלט שהוכנס שגוי

                Console.Write(outputText);
הדפסת הודעת בקשת הקליטה שוב

                tempInput = Console.ReadLine();
קבלת קלט

            }
יציאה מבלוק הלולאה

            return double.Parse(tempInput);
במידה והstring שהתקבל מצליח להיות מומר לטיפוס double נחזיר את הdouble שהמרנו למשתמש

        }

        private static bool IsValidOperation(string input)
הגדרת מתודה  אשר תקבל את קלט המשתמש (פעולת החשבון) ותחזיר האם הקלט שהתקבל הוא פעולה חשבונית תקינה.
המתודה תעשה זאת על ידי בדיקה האם הקלט קיים במערך הפעולות החשבוניות שהגדרנו קודם
        {
            return operations.Contains(input);
בדיקה אם הקלט נמצא במערך באמצעות הפעלת הפעולה Contains על המערך

        }

        private static string SetOperation(string outputText)
הגדרת מתודה לקבלת פעולה חשבונית אשר מקבלת כפרמטר הודעה להציג למשתמש.
שים לב, המתודה היא private ו static (מהסיבות שהוזכרו קודם)
        {
            Console.Write(outputText);
הצגת ההודעה למשתמש

            string tempInput = Console.ReadLine();
קבלת הקלט מהמשתמש אל תוך משתנה tempInput מטיפוס string

            while (!IsValidOperation(tempInput))
הגדרת לולאת while אשר תרוץ כל עוד המשתמש לא יכניס קלט של פעולת חשבון תקינה
            {
תחילת בלוק הלולאה

                Console.WriteLine("Incorrect input !");
הצגת הודעה למשתמש שהקלט שהכניס שגוי

                Console.Write(outputText);
הצגת ההודעה שקיבלנו כפרמטר למשתמש (שוב)

                tempInput = Console.ReadLine();
קבלת הקלט

            }
סגירת בלוק הלולאה

            return tempInput;
החזרת הפעולה החשבונית לאחר הבדיקה
        }
    }
}

עכשיו לאחר שסיימנו לכתוב ולהבין את התכנית שלנו כל מה שנשאר לעשות זה רק להריץ באמצעות לחיצה על F5


אם זוהי תכנית ה C# הראשונה שלכם, עשיתם היום צעד ענק ביכולותיכם ומכאן תוכלו להמשיך וללמוד את שאר הבסיס בעצמכם.

החלטתי לתת לכם כמה מקורות מידע שעזרו לי מאוד בתחילת דרכי כמתכנת:


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

בפוסטים הבאים ניכנס לעולם הבדיקות האוטומטיות והתכנות המתקדם.

הישארו איתי :)

תגובות

  1. עזר לי מאוד!

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

    השבמחק

הוסף רשומת תגובה

פוסטים פופולריים מהבלוג הזה

תכנות מונחה עצמים | Dependency Inversion Principle

מהם קבצי DLL ואיך להשתמש בהם?

מה ההבדל בין אוטומציה לפיתוח רגיל