دوستان اینم مشخصاتی که باید داشته باشه
ممنون میشم کمکم کنید
ماشین حساب دقیق
تعريف پروژه
معمولاً محاسبات کامپیوتری بهخاطر محدودیتهای موجود در دقت نگهداری اعداد و همچنین محاسبات نقطهی شناور، دارای خطاهایی است که استفاده از آن را در مواردی که به محاسبات دقیق نیازمندیم، دچار مشکل میکند. در این پروژه سعی ما بر این است که با تعریف انواع دادهای جدید، مشکل محاسبات را برطرف نماییم. همچنین با استفاده از این انواع جدید، ماشین حسابی خواهیم ساخت که محاسبات ریاضی را بدون خطا برای ما انجام دهد.
انواع دادهای جدیدی که در این پروژه معرفی میشوند عبارتاند از: اعداد صحیح با طول دلخواه و اعداد کسری.
اعداد صحیح با طول دلخواه (IntNum)
نوع دادهی IntNum قادر است که اعداد صحیح بدون ایجاد محدودیت روی تعداد ارقام در خود نگهداری نماید. عملهای محاسباتی مانند: +، -، *، /، %، - (یگانی) و نیز عملهای محاسباتی مانند: <، >، <=، >=، == و != را بهعنوان متدهایی روی این نوع جدید تعریف نمایید. همچنین متدهایی مانند double toDouble( IntNum ) برای تبدیل یک IntNum به یک double و نیز IntNum gcd ( IntNum , intNum ) را برای محاسبهی ب.م.م. دو عدد IntNum تعریف نمایید. پیشنهاد میشود برای نگهداری اعداد IntNum از نوع رشتهای استفاده کنید. یک رشته در جاوا میتواند حداکثر دارای طول باشد که میتواند یک طول مناسب برای اعداد صحیح باشد.
اعداد کسری (Rational)
نوع دادهای Rational اعداد کسری را بهصورت دو عدد IntNum (صورت و مخرج) نگهداری مینماید. عملهای ریاضی مانند: +، -، *، /، % و – (یگانی) و عملهای مقایسهای مانند: <، >، <=، >=، == و != را بهعنوان متدهایی روی این نوع جدید تعریف نمایید. همچنین متدهای getNumerator( )، getDenominator( )، inverse( ) و toDouble( ) را بهترتیب برای برگرداندن صورت، مخرج، معکوس و معادل اعشاری نوع کسری تعریف نمایید. همچنین نوع کسری باید دارای متدی بهنام normalize( ) برای تبدیل عدد کسری به سادهترین شکل ممکن باشد.
برنامهی ماشین حساب
برنامهی ماشین حساب عبارت محاسباتی را مرحله به مرحله از ورودی دریافت کرده، عملهای مورد نظر را انجام داده و در پایان هر مرحله نتیجه حاصل تا آن لحظه را نمایش میدهد. هر عدد وارد شده باید قبل از محاسبه به یک عدد کسری تبدیل شود ( دقت نمایید حتی اگر عدد ورودی یک عدد صحیح یا اعشاری باشد، باید ابتدا به یک عدد کسری تبدیل شده و محاسبات روی اعداد کسری انجام گردد ولی در نهایت برای نمایش نتیجه باید عدد بهصورت اعشاری و یا صحیح نمایش داده شود.) ماشین حساب علاوه بر اعمال محاسباتی معمول باید شامل امکانات زیر نیز باشد:
× توابع مثلثاتی sin، cos و tan
× محاسبه فاکتوریل
× بهتوان رساندن
× کار در مبناهای 2(Binary)، 8(Octal) و 16(Hex). بدیهی است برای کار در مبناهای مورد نظر باید کلیدهای لازم روی صفحه کلید وجود داشته باشند.
× امکان ذخیره در یک حافظهی موقت و بازیابی آن در صورت نیاز
واسط کاربر ماشین حساب
واسط ماشین حساب باید بهصورت گرافیکی بوده و از بخشهای زیر تشکیل باشد:
× دکمههای 0 تا 9، A تا F(برای کار در مبنای 16) و ممیز
× دکمههای چهار جهت اصلی و توابع موجود
× انتخابهایی برای انتخاب مبنا
× بخشی برای دریافت ورودیها و نمایش خروجیها
× دکمههایی برای پاک کردن و خاموش کردن
× دکمههایی برای ذخیره در حافظهی موقت، بازیابی حافظه و پاک کردن حافظه
ماشین حساب باید هم بهوسیلهی صفحهکلید و هم باید بهوسیلهی ماوس قابل استفاده باشد. در ضمن افزودن هرگونه امکانات اضافه به ماشین حساب نمره اضافه خواهد داشت.
نحوهی ارزشیابی
موارد زیر در ارزشیابی پروژه مورد نظر خواهند بود:
× استفاده از طراحی شئگرا
× رعایت سبک صحیح برنامهنویسی
× خوانایی برنامه و درج مستندات کافی
× سادگی استفاده و صحت کارکرد برنامه