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

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

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

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

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

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

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

تمرین ششم: کلاس دانشگاه

برنامه ای بنویسید که یک دانشگاه با مشخصات زیر را پیاده سازی کند. این دانشگاه دارای مجموعه ای از دانشجوها است.

هر دانشجو یک کلاس با مشخصات زیر است:

  • فیلدها:
  • نام، نام خانوادگی، شماره دانشجویی، شماره ترم جاری، معدل (سطح دسترسی: private)
  • همه فیلدها فقط توابع setter و getter قابل دستیابی هستند. غیر از فیلد شماره دانشجویی که توسط سازنده تنظیم می شود
  • توابع:
  • print: مشخصات کامل دانشجو را چاپ می کند
  • setTerm: تنظیم ترم جاری
  • setAverage: تنظیم معدل
  • سازنده ها:
  • سازنده پیشفرض ندارد!  (همه فیلدها توسط یک بلوک مقداردهی اولیه، به مقادیر پیشفرض (0 برای اعداد و "" برای رشته ها) مقداردهی می شوند)
  • سازنده با یک پارامتر ورودی شماره دانشجویی
  • سازنده با سه پارامتر ورودی: شماره دانشجویی، نام و نام خانوادگی (این سازنده از سازنده قبلی نیز استفاده می کند)

کلاس دانشگاه دارای مشخصات زیر است:

  • فیلدها:
  • آرایه ای از دانشجوها
  • فیلد ایستا تعداد دانشجوها: با اضافه شدن هر دانشجو، مقدار این فیلد افزایش می یابد
  • توابع:
  • اضافه کردن دانشجو: مشخصات یک دانشجو را دریافت کرده و آن را به آرایه اضافه می کند
  • حذف کردن دانشجو: نام خانوادگی دانشجویی را دریافت کرده و دانشجو را حذف می کند
  • جستجوی دانشجو: نام خانوادگی را دریافت کرده و مشخصات کامل آن را چاپ می کند
  • جستجوی دانشجو: یک معدل دریافت کرده و مشخصات کامل همه دانشجوهایی که معادلشان از معدل دریافت شده بیشتر است را چاپ می کند
  • چاپ کردن لیست دانشجوها: مشخصات همه دانشجوهای موجود در آرایه را چاپ می کند

نکات:

  • شماره دانشجویی به صورت خودکار به دانشجوها نسبت داده می شود. شماره دانشجویی اولین دانشجو 1، دانشجوی دوم 2 و ...
  • اگر دانشجویی حذف شود، شماره دانشجویی آن دیگر مورد استفاده قرار نمی گیرد (به مثال دقت کنید)

مهلت ارسال تمرینشنبه، 16 فروردین 93، ساعت 24

اسم توابع را طوری انتخاب کنید که کد زیر بدون مشکل اجرا شود. کد زیر را در تابع main نوشته و اجرا کنید تا از صحت عملکرد برنامه مطمئن شوید.

University university= new University();

university.addStudent("Akram", "Imani", 3, 17.65);

university.addStudent("Sina", "Emadi", 4, 16.34);

university.addStudent("Mina", "Salimi", 2, 18.15);

university.removeStudent("Salimi");

university.searchStudent("Salimi");

university.addStudent("Mina", "Salimi", 2, 18.15);

university.searchStudent("Emadi");

university.searchStudent(17.64);

university.printAll();

خروجی صحیح:

Akram Imani with number 1 Added Successfully

Sina Emadi with number 2 Added Successfully

Mina Salimi with number 3 Added Successfully

Mina Salimi Removed Successfully

There is no Student with LastName Salimi

Mina Salimi with number 4 Added Successfully

2 Sina Emadi, Term:4, Average:16.34

1 Akram Imani, Term:3, Average:17.65

4 Mina Salimi, Term:2, Average:18.15

-------- List of All Students --------

1 Akram Imani, Term:3, Average:17.65

2 Sina Emadi, Term:4, Average:16.34

4 Mina Salimi, Term:2, Average:18.15

  • بیگلری

نظرات  (۱۳)

  • مجتبی خوریانی
  • سلام استاد،
    برای نگهداری دانشجوها از ArrayList استفاده بشه ؟
    پاسخ:
    سلام. خیر، فقط آرایه
  • مجتبی خوریانی
  • استاد ببخشد،
    خروجی این ▼ نباید باشه ؟ (ترتیب جملات)
    (از System.err استفاده کردید فکر کنم)
    "
    Akram Imani with number 1 Added Successfully
    Sina Emadi with number 2 Added Successfully
    Mina Salimi with number 3 Added Successfully
    Mina Salimi Removed Successfully
    There is no Student with LastName Salimi
    Mina Salimi with number 4 Added Successfully
    2 Sina Emadi, Term:4, Average:16.34
    There is no Student with average 17.64
    -------- List of All Students --------
    1 Akram Imani, Term:3, Average:17.65
    2 Sina Emadi, Term:4, Average:16.34
    4 Mina Salimi, Term:2, Average:18.15
    "
    پاسخ:
    تشکر بابت یادآوری. یک سری خطوط جا مونده بود. 
    در مورد جستجوی معدل، به توضیحات ذکر شده در صورت تمرین دقت کنید.
  • دانشجویان مشتاق درس
  • سلام

    استاد شنبه که انشا الله کلاس تشکیل میشه؟؟؟؟؟؟!!!!!1؟!! ما میایم و منتظرتون هستیم 

    :-) :-)

    ما تازه اومدیم سر کلاس ،چرا باید کلاس تشکیل نشه ؟؟!!!؟؟!! :-( :-(

    پاسخ:
    سلام. چون سه شنبه این هفته تشکیل شد و بچه های خوبی بودید،
    تصمیم گرفته شد که هفته آینده تشکیل نشه.
    سال نوی خوبی داشته باشید
    سلام استاد خوب هستید.....
    استاد ارایه ای که تو کلاس دانشگاه ساختیم تو همون کلاس اجازه  مقدار دادن یا اضافه کردن دانشجو رو نمیده چیکار باید بکنیم...
    شی رو که از رو دانشجو تو کلاس دانشگاه ساخته میشه رو باید بدیم به ارایه؟؟؟؟؟
    با تشکر
    پاسخ:
    سلام. باید در کلاس دانشگاه، آرایه ای از دانشجوها تعریف کنید و اشیایی که از نوع دانشجو ایجاد میشن
    رو در آرایه قرار بدید.
    Ostad harbar k karbar ba tabe addstudent daneshju ezafe mikone bayad class vase oon student sakhte beshe??

    پاسخ:
    اگه منظورتون ایجاد شیء هست، بله.
    استاد در سوال گفتید که همه فیلد ها به جز شماره دانشحویی توسط توابع در دسترس باشند.پس چرا باید سازنده سه پارامتری ایجاد کنیم؟
    اصلا این سازنده باید چکار کنه؟
    پاسخ:
    برای اینکه حق انتخاب وجود داشته باشه. هم بشه نام و نام خانوادگی رو با سازنده ست کرد و هم با توابع دستیاب.
    سلام استاد برای حذف کردن یک خانه از ارایه ی دانشجو...تابع وجود داراره ؟یا خودمون یه تابع واسش بنویسیم؟
    پاسخ:
    سلام. خیر تابعی وجود نداره
    سلام استاد
    سال نو مبارک
    تعداد دانشجو ها حد اکثر چند تا باشه
    پاسخ:
    سلام. مهم نیست. هرچقدر که صلاح می دونید
    استاد این 
    setter ,getter که برای فیلدها هستش با اون تابعی که قسمت توابع گفتید فرق داره؟
    پاسخ:
    از نظر نوع پیاده سازی خیر. فقط کاربردشون فرق داره

    سلام استاد

    شما گفتید که تو کلاس دانشجو از سازنده پیش فرض استفاده نکنیم ولی برای اینکه در سازنده 3 پارامتر از سازنده 1 پارامتر استفاده کنیم باید از() this

    استفاده کنیم که بدون سازنده ی بدون پارامتر خطا میگیره

    پس چکار کنیم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

    پاسخ:
    سلام. از this استفاده کنید و یک پارامتر براش ارسال کنید. مثلا this(شماره دانشجویی)
    این Exception معنیش چیه؟
    Exception in thread "main" java.lang.NullPointerException
    at university.university1.addStudent(university1.java:11)
    at university.University.main(University.java:10)
    پاسخ:
    یعنی شما یک شیء تعریف کنید. ولی new نکردینش و میخواید ازش استفاده کنید!
    ما که هرچی تلاش میکنیم بی فایدست ، دیگه منصرف شدیم...استاد دعا کنین ی فرجی بشه شاید این درسا یکم تو سر ما هم رفت...
    استاد در رابطه با سوال بالا (Exception )
    من شئ تعریف کردم new هم کردم چون همون تیکه کدی که خودتون نوشتینو  کپی کردم
    پاسخ:
    کدتون رو ایمیل بفرمائید

    ارسال نظر

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