برنامه نویسی پیشرفته - تمرین هفتم
پنجشنبه, ۲ ارديبهشت ۱۳۹۵، ۱۱:۲۵ ق.ظ
برنامه ای بنویسید که کلاس زیر را توسعه دهد.
کلاس BaseManager دارای مشخصات زیر است. موارد انتزاعی را به شکل مناسب دوباره نویسی کنید.
- فیلدهای عدد و مبنا که در سازنده دریافت می شوند و توسط تابع changeValue هم قابل تغییرند
- تابع convertToBase: یک مبنا دریافت کرده و عدد مربوطه را در آن مبنا برمی گرداند
- تابع sumInBase: یک عدد و مبنا دریافت کرده و آن را با عدد و مبنای خود جمع کرده و نتیجه را برمی گرداند (در هنگام جمع باید مبناها یکسان سازی شوند). نتیجه در مبنای خود شیء برگردانده می شوند
- تابع print: عدد و مبنای جاری را چاپ می کند
- تابع printInAllBases: عدد جاری را در مبنای 2 تا 16 در خروجی چاپ می کند. چاپ را به صورت زیر انجام دهید:
2 3 4 ....>
--------- ---------- ----------
1011 0102 0023
- در جدول بالا، طول همه اعداد باید برابر با طول بلندترین عدد باشد. در مثال بالا در سمت چپ 102 و 23 به تعداد کافی صفر اضافه شده است.
در تابع main اعمال زیر را به ترتیب ذکر شده انجام دهید:
- از کلاس خود یک شیء ایجاد و مقداردهی کنید
- تابع print را فراخوانی کنید
- تابع printInAllBases را فراخوانی کنید
- عدد و مبنای جدیدی از ورودی دریافت کرده و به شیء نسبت دهید
- یک مبنا از ورودی دریافت کرده و برای تابع convertToBase ارسال کرده و نتیجه را چاپ کنید
- یک عدد و مبنای جدید از ورودی دریافت کرده و برای تابع sumInBase ارسال کرده و نتیجه را چاپ کنید.
- تابع print را فراخوانی کنید
- تابع printInAllBases را فراخوانی کنید
نکته ها:
- کلاس BaseManager و کلاس خود را به صورت کامل با استفاده از JavaDoc کامنت گذاری کنید.
- ترتیب ذکر شده در main را دقیقا رعایت کنید
- استفاده از توابع اضافی مجاز است.
ارسال تمرین:
- فرصت ارسال این تمرین تا روز سه شنبه، 7 اردیبهشت، ساعت 1:00 است.
- فرصت ارسال تمرین به هیچ عنوان تمدید نخواهد شد.
- نحوه ارسال تمرین ها در این پست توضیح داده شده.
- عنوان ایمیل: برنامه نویسی پیشرفته، نام دانشجو، عنوان تمرین
- مثال: برنامه نویسی پیشرفته، علی بهرامی، تمرین هفتم
کلاس BaseManager:
public abstract class BaseManager {
private String number;
private int base;
public BaseManager(String number, int base) {
changeValue(number, base);
}
public final void changeValue(String number, int base) {
this.number= number;
this.base= base;
}
// convert number from base to newBase and return
public abstract String convertToBase(int newBase);
// sum [this.number with this.base] and [number with base] and return result in this.base
public abstract String sumInBase(int number, int base);
// print number in base
public abstract void print();
// print number in base 2..16
public abstract void printInAllBases();
}
- ۹۵/۰۲/۰۲
مطمئنا تمرین شما مهم تره ولی انصافا زشت 2بار فیزیک1 بیفتی!!
6ام امتحانه!!نظرتون؟؟!