آموزش برنامه نویسی جاوا - قسمت ۱۳: محاسبه دخل و خرج ماهیانه با استفاده از کلاس Scanner
شنبه 28 دی 1392 2:51 PM
در این مرحله از آموزش که با نحوه وارد کردن اطلاعات به درون برنامه خود و همچنین انواع متدهای مورد استفاده در کلاس Scanner آشنا شدیم، نیاز است تا پروژه ای تعریف کنیم تا کاربردی بودن کلاس Scanner بیشتر برای ما روشن شود.
فرض کنیم که ما نیاز داریم تا برنامه ای شخصی طراحی کنیم که این امکان را به ما می دهد تا درآمد ماهیانه خود را وارد آن کنیم، سپس مخارج خود همچون اقساط، بدهی ها، هزینه آب و برق و تلفن و غیره را از آن کم کنیم و در نهایت موجودی باقیمانده را به ما نشان دهد. برای این منظور پروژه ای جدید تحت عنوان 13th Session به معنی جلسه سیزدهم ایجاد کرده و به ادامه مطلب بروید. کلاسی تحت عنوان Project به معنی پروژه در آن می سازیم. برای این منظور کد خود را به این صورت شروع می کنیم:
در ابتدا یک شیئ از روی کلاس Scanner به نام myScanner می سازیم سپس از آنجا که نیاز داریم تا عنوان نرم افزاری که طراحی می کنیم روی صفحه به نمایش در آید در دستور System.out.println(); جمله My Financial Turnover به معنی گردش مالی من را نوشته تا در بخش Console به نمایش درآید. حال نیاز داریم تا متغیری از جنس عددی برای میزان درآمد و هزینه های جاری خود در نظر بگیریم. برای این منظور یکی از دو گزینه int و یا double را که قبلا در آموزش انواع متغیرها توضیح داده شد را می توانیم استفاده کنیم(برای آشنایی بیشتر به آموزش پنجم مراجعه نمایید). چنانچه بخواهیم این امکان را به خود بدهیم که اعداد اعشاری برای میزان حقوق خود وارد کنیم می بایست از متغیر double استفاده کنیم(مثلا قبض آب معادل با 23000.120 تومان) ولی اگر بخواهیم ورودی های ما به صورت عدد صحیح باشند بایستی از متغیر int استفاده کنیم(مثلاً 2340000 تومان). در این برنامه ما از متغیر int استفاده خواهیم کرد. حال نیاز داریم تا متغیرهایی برای درآمد ماهیانه، اقساط و هزینه های جاری ایجاد کنیم. به منظور جلوگیری از طولانی شدن کد خود کلیه متغیرها را با یکدیگر ادغام خواهیم کرد و به صورت int monthlyIncome, loanPayment, currentExpenses; می نویسیم. حال یک Statement دیگر مبنی بر نوشتن جمله Please enter your monthly income: به معنی لطفا درآمد ماهیانه خود را وارد نمایید به کد خود به همراه Comment های مورد نیاز می نویسیم و کد ما به صورت زیر در خواهد آمد:
جمله Please enter your monthly income: به معنی لطفا درآمد ماهیانه خود را وارد نمایید از ما می خواهد تا عددی را وارد برنامه کنیم، از این رو می بایست مقدار متغیر monthlyIncome که در خط بالا ایجاد کردیم را با استفاده از کلاس Scanner وارد برنامه خود کنیم. برای این منظور کد خود را به شکل زیر تکمیل خواهیم کرد:
در حقیقت ما یک متغیر از جنس int یا عدد صحیح تحت عنوان monthlyIncome ایجاد کرده ایم اما هیچ گونه مقداری برای آن در نظر نگرفته ایم. حال با نوشتن کد monthlyIncome = myScanner.nextInt(); به برنامه می گوییم که با استفاده از شیئ ساخته شده از روی کلاس Scanner که قبلاً به اسم myScanner ایجاد کردیم مقداری را از طریق صفحه کلید برای متغیر monthlyIncome در حافظه ذخیره سازد. از سوی دیگر واژه nextInt() نشانگر نوع ورودی است که ما اجازه داریم به برنامه بدهیم و از آنجا که نوع متغیر ما از جنس int است، نوع ورودی هم می بایست از نوع nextInt() باشد.( به طور مثال اگر نوع متغیر ما از جنس double بود می بایست از متد nextDouble() استفاده کنیم). حال به همین صورت برای متغیرهای loadPayment و currentExpenses به معنی به ترتیب پرداخت وام و هزینه های جاری، از کلاس Scanner استفاده می کنیم که اطلاعات وارد برنامه شود:
حال چنانچه برنامه را اجرا کنیم تصویر زیر را مشاهده خواهیم کرد:
برنامه طراحی شده منتظر خواهد ماند تا ما میزان درآمد ماهیانه خود را وارد کنیم و به مجرد اینکه عددی از جنس عدد صحیح وارد کردیم، مرحله بعد اجرا می شود و از ما می خواهد تا میزان اقساط وام را مشخص کنیم و در نهایت از ما می خواهد تا میزان هزینه های جاری را وارد کنیم. فرض کنیم که فردی ماهیانه 1000000 تومان درآمد دارد و 120000 تومان قسط وام دارد و هزینه های جاری وی 400000 تومان است. در این صورت خروجی برنامه به شکل زیر خواهد بود:
تا اینجای کار ما توانسته ایم با موفقیت اطلاعات ورودی را وارد برنامه خود کنیم اما این در حالی است که ما نیاز داریم تا میزان اقساط ماهیانه و هزینه های جاری را از درآمد ماهیانه کم کنیم و مانده موجودی را نمایش دهیم. برای این منظور ما می بایست کد خود را به شکل زیر تکمیل کنیم:
در حقیقت یک متغیر از جنس int تحت عنوان result به معنی نتیجه ایجاد می کنیم. مقدار این متغیر را درآمد ماهیانه منهای حاصلجمع میزان قسط وام و هزینه های جاری قرار می دهیم. از آنجا که می خواهیم دو عمل اصلی جمع و تفرین با یکدیگر تداخل نداشته باشند حاصلجمع loanPayment و currentExpenses را داخل پرانتز قرار می دهیم که در این صورت برنامه اول مقدار داخل پرانتز را محاسبه کرده و سپس مقدار آن را از monthlyIncome کم می کند. سپس با قرار دادن System.out.println("The left over money equals to: " + result); جمله The left over money equals to: به معنی میزان پول باقیمانده معادل است با: را در بخش Console به نمایش در می آوریم. یکی از ویژگی های Operator ها یا همان اعمال اصلی ادغام کردن چند چیز علاوه بر محاسبات ریاضیاتی است، از همین رو با قرار دادن علامت + پس از جمله “The left over money equals to;” و نوشتن نام متغیر result می توانیم نتیجه نهایی را به صورت یک string یا جمله به شکل زیر نمایش دهیم:
به طور خلاصه میزان درآمدی که بنده وارد کردم سه میلیون و یکصد هزار تومان است که جمع مخارج(قسط وام و هزینه های جاری) معادل با یک میلیون و دویست هزار تومان از آن کم شده و در نهایت نتیجه حاصل تفریق مخارج از درآمد ماهیانه به میزان یک میلیون و نهصد هزار تومان نمایش داده شد. در این آموزش توانستیم با موفقیت یک پروژه حسابداری کوچک طراحی کنیم. با کمی ذوق و خلاقیت خواهیم توانست با همین دانش ابتدایی از زبان برنامه نویسی جاوا برنامه های متعددی همچون برنامه محاسبه تناسب قد و وزن یا اصطلاحا BMI ، تبدیل سرعت ماشین خود از مایل به کیلومتر، محاسبه هزینه مکالمه تلفنی با خارج از کشور بر حسب دقیقه و بسیاری برنامه های کاربردی دیگر طراحی کنیم.
مدیر تالار های: