تمرین ششم: کلاس دانشگاه
برنامه ای بنویسید که یک دانشگاه با مشخصات زیر را پیاده سازی کند. این دانشگاه دارای مجموعه ای از دانشجوها است.
هر دانشجو یک کلاس با مشخصات زیر است:
- فیلدها:
-
نام، نام خانوادگی، شماره دانشجویی، شماره ترم جاری، معدل (سطح دسترسی: 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