اخبار و اطلاعات مربوط به دروس

در این وبلاگ مباحث مرتبط با دروس تدریسی توسط اینجانب پیگیری می شود.

اخبار و اطلاعات مربوط به دروس

در این وبلاگ مباحث مرتبط با دروس تدریسی توسط اینجانب پیگیری می شود.

هدیه ای از طرف دانشجویان
Mbt925.ir

برنامه نویسی پیشرفته - تمرین پنجم

شنبه, ۲۲ اسفند ۱۳۹۴، ۱۰:۱۱ ق.ظ

برنامه ای بنویسید که یک خانواده را پیاده سازی کند.

کلاس خانواده (Family) دارای ساختار زیر است:

  • حالت ها:
  • پدر از نوع انسان
  • مادر از نوع انسان
  • آرایه ای از فرزندها ([]Human) با طول ثابت 100
  • درجه ی خوشبختی/رضایت: عددی صحیح بین 1 تا 10
  • سطح درآمد: عددی صحیح بین 0 تا 100 میلیون
  • رفتارها:
  • setter و getter برای تنظیم و دریافت پدر، مادر، درجه ی رضایت و سطح درآمد
  • تابع print برای چاپ اطلاعات خانواده
  • تابع addChild: مشخصات فرزند را دریافت کرده و آن را به آرایه اضافه می کند
  • تابع removeChild: اندیس فرزند را دریافت کرده و آن را از آرایه حذف می کند
  • تابع printHappinessLevel: یکی از سه مقدار "Happy" (مقادیر 4 تا 7)،(مقادیر 1 تا 3) "Not Happy" و "HappyFull" (مقادیر 8 تا 10) را چاپ می کند.
  • تابع printIncomeLevel: یکی از چهار مقدار "Poor"،(مقادیر بین 1 میلیون تا 3 میلیون) "Average" (مقادیر کمتر از 1 میلیون)،(مقادیر بین 3 میلیون تا 10 میلیون) "Good" و "Very Good" (مقادیر بیشتر از 10 میلیون) را چاپ می کند.

کلاس انسان (Human) دارای ساختار زیر است:

  • حالت ها:
  • شماره ملی: رشته ای با طول دقیقا 10 (نه کمتر و نه بیشتر)
  • نام و نام خانوادگی
  • جنسیت: عددی صحیح بین 1 و 2 (1: زن، 2: مرد)
  • سن: عددی صحیح بین 0 تا 100
  • رفتارها:
  • تنها یک سازنده دارد که کد ملی را به عنوان ورودی دریافت می کند
  • setter و getter برای همه حالت ها
  • تابع print برای چاپ مشخصات انسان

منوی برنامه:

  • برنامه دارای یک منو با گزینه های زیر است:
  • 1: ایجاد یک خانواده جدید (در هر زمان تنها یک خانواده وجود دارد: در نتیجه ایجاد خانواده جدید، خانواده ی قبلی را از بین خواهد برد)
    • برای ایجاد خانواده اطلاعات زیر دریافت می شود
    • 1-1: درجه ی رضایت
    • 1-2: میزان درآمد
  • 2: تعیین پدر خانواده (پدر قبلی از بین خواهد رفت)
    • برای تعریف پدر اطلاعات زیر دریافت می شود:
    • 2-1: شماره ملی
    • 2-2: نام و نام خانوادگی پدر
    • 2-3: سن پدر
    • جنسیت پدر به صورت خودکار مقداردهی می شود (از ورودی دریافت نمی شود)
  • 3: تعیین مادر خانواده (مادر قبلی از بین خواهد رفت)
    • برای تعریف مادر اطلاعات زیر دریافت می شود:
    • 2-1: شماره ملی
    • 2-2: نام و نام خانوادگی مادر
    • 2-3: سن مادر
    • جنسیت مادر به صورت خودکار مقداردهی می شود (از ورودی دریافت نمی شود)
  • 4: اضافه کردن فرزند به خانواده
    • برای ایجاد یک فرزند اطلاعات زیر دریافت می شود:
    • 4-1: شماره ملی فرزند
    • 4-2: نام و نام خانوادگی فرزند
    • 4-3: سن فرزند
    • 4-4: جنسیت فرزند
  • 5: حذف فرزند ار خانواده
    • شماره ملی فرزند دریافت شده و در صورت وجود حذف می شود
  • 6: چاپ اطلاعات خانواده (شامل اعضای خانواده، درجه ی رضایت و سطح درآمد)
  • 7: خروج از برنامه

نکته ها:

  • همه توابع باید معتبر بودن ورودی را بررسی کنند. برای مثال تابع removeChild ابتدا بررسی می کند که آیا فرزندی با اندیس ورودی برای حذف کردن وجود دارد؟ و یا تابع setter مربوط به درجه ی رضایت خانواده، ابتدا بررسی می کند که مقدار ورودی در بازه 1 تا 10 قرار دارد یا خیر.
  • دو تابع printHappinessLevel و printIncomeLevel خصوصی هستند و تنها توسط تابع print مورد استفاده قرار می گیرند.
  • استفاده از ابزارهای خوانده نشده موجب کاهش نمره ی تمرین می گردد.
  • استفاده از توابع اضافی مجاز است.

ارسال تمرین:

  • فرصت ارسال این تمرین تا روز شنبه، 29 اسفند، ساعت 24 هست.
  • فرصت ارسال تمرین به هیچ عنوان تمدید نخواهد شد.
  • نحوه ارسال تمرین ها در این پست توضیح داده شده.
  • عنوان ایمیل: برنامه نویسی پیشرفته، نام دانشجو، عنوان تمرین
  • مثال: برنامه نویسی پیشرفته، علی بهرامی، تمرین پنجم

  • بیگلری

نظرات  (۲)

استاد اگر امکانش هست یک نمونه ورودی و خروجی بزارید . ممنون .
پاسخ:
یکی از چالش های این تمرین، عدم وجود ورودی و خروجی هست!
یعنی استاد واقعا ممنون که مارو با یه همچین چالش هایی روبرو میکنید!!!!!!!!!!!!
تاحد سکته پیش میریم.............
پاسخ:
خواهش می کنم!

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی