برنامه نویسی جاوا

آموزش برنامه نویسی جاوا – قسمت ۱۳: محاسبه دخل و خرج ماهیانه با استفاده از کلاس Scanner

در این مرحله از آموزش برنامه نویسی جاوا که با نحوه وارد کردن اطلاعات به درون برنامه خود و همچنین انواع متدهای مورد استفاده در کلاس Scanner آشنا شدیم، نیاز است تا پروژه ای تعریف کنیم تا کاربردی بودن کلاس Scanner بیشتر برای ما روشن شود.

فرض کنیم که ما نیاز داریم تا برنامه ای شخصی طراحی کنیم که این امکان را به ما می دهد تا درآمد ماهیانه خود را وارد آن کنیم، سپس مخارج خود همچون اقساط، بدهی ها، هزینه آب و برق و تلفن و غیره را از آن کم کنیم و در نهایت موجودی باقیمانده را به ما نشان دهد. برای این منظور پروژه ای جدید تحت عنوان ۱۳th Session به معنی جلسه سیزدهم ایجاد کرده و به ادامه مطلب بروید. کلاسی تحت عنوان Project به معنی پروژه در آن می سازیم. برای این منظور کد خود را به این صورت شروع می کنیم:

import java.util.Scanner;
 
class Project {
 
	public static void main(String[] args) {
		Scanner myScanner = new Scanner(System.in);
		System.out.println("My Financial Turnover");
 
	}
}

در ابتدا یک شیئ از روی کلاس Scanner به نام myScanner می سازیم سپس از آنجا که نیاز داریم تا عنوان نرم افزاری که طراحی می کنیم روی صفحه به نمایش در آید در دستور System.out.println(); جمله My Financial Turnover به معنی گردش مالی من را نوشته تا در بخش Console به نمایش درآید. حال نیاز داریم تا متغیری از جنس عددی برای میزان درآمد و هزینه های جاری خود در نظر بگیریم. برای این منظور یکی از دو گزینه int و یا double را که قبلا در آموزش انواع متغیرها توضیح داده شد را می توانیم استفاده کنیم(برای آشنایی بیشتر به آموزش پنجم مراجعه نمایید). چنانچه بخواهیم این امکان را به خود بدهیم که اعداد اعشاری برای میزان حقوق خود وارد کنیم می بایست از متغیر double استفاده کنیم(مثلا قبض آب معادل با ۲۳۰۰۰٫۱۲۰ تومان) ولی اگر بخواهیم ورودی های ما به صورت عدد صحیح باشند بایستی از متغیر int استفاده کنیم(مثلاً ۲۳۴۰۰۰۰ تومان). در این برنامه ما از متغیر int استفاده خواهیم کرد.

حال نیاز داریم تا متغیرهایی برای درآمد ماهیانه، اقساط و هزینه های جاری ایجاد کنیم. به منظور جلوگیری از طولانی شدن کد خود کلیه متغیرها را با یکدیگر ادغام خواهیم کرد و به صورت int monthlyIncome, loanPayment, currentExpenses; می نویسیم. حال یک Statement دیگر مبنی بر نوشتن جمله Please enter your monthly income: به معنی لطفا درآمد ماهیانه خود را وارد نمایید به کد خود به همراه Comment های مورد نیاز می نویسیم و کد ما به صورت زیر در خواهد آمد:

import java.util.Scanner;
 
class Project {
 
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
// The title of the program
System.out.println("My Financial Turnover");
// Variables
int monthlyIncome, loanPayment, currentExpenses;
// Text to ask for entering your income
System.out.println("Please enter your monthly income:");
 
	}
}

جمله Please enter your monthly income: به معنی لطفا درآمد ماهیانه خود را وارد نمایید از ما می خواهد تا عددی را وارد برنامه کنیم، از این رو می بایست مقدار متغیر monthlyIncome که در خط بالا ایجاد کردیم را با استفاده از کلاس Scanner وارد برنامه خود کنیم. برای این منظور کد خود را به شکل زیر تکمیل خواهیم کرد:

import java.util.Scanner;
 
class Project {
 
public static void main(String[] args) {
  Scanner myScanner = new Scanner(System.in);
  // The title of the program
  System.out.println("My Financial Turnover");
  // Variables
   int monthlyIncome, loanPayment, currentExpenses;
   // Code to ask for entering your income
   System.out.println("Please enter your monthly income:");
   monthlyIncome = myScanner.nextInt();
 
	}
}

در حقیقت ما یک متغیر از جنس int یا عدد صحیح تحت عنوان monthlyIncome ایجاد کرده ایم اما هیچ گونه مقداری برای آن در نظر نگرفته ایم. حال با نوشتن کد monthlyIncome = myScanner.nextInt(); به برنامه می گوییم که با استفاده از شیئ ساخته شده از روی کلاس Scanner که قبلاً به اسم myScanner ایجاد کردیم مقداری را از طریق صفحه کلید برای متغیر monthlyIncome در حافظه ذخیره سازد. از سوی دیگر واژه nextInt() نشانگر نوع ورودی است که ما اجازه داریم به برنامه بدهیم و از آنجا که نوع متغیر ما از جنس int است، نوع ورودی هم می بایست از نوع nextInt() باشد.( به طور مثال اگر نوع متغیر ما از جنس double بود می بایست از متد nextDouble() استفاده کنیم).

حال به همین صورت برای متغیرهای loadPayment و currentExpenses به معنی به ترتیب پرداخت وام و هزینه های جاری، از کلاس Scanner استفاده می کنیم که اطلاعات وارد برنامه شود:

import java.util.Scanner;
 
class Project {
 
public static void main(String[] args) {
    Scanner myScanner = new Scanner(System.in);
    // The title of the program
    System.out.println("My Financial Turnover");
    // Variables
    int monthlyIncome, loanPayment, currentExpenses;
    // Code to ask for entering your income
    System.out.println("Please enter your monthly income:");
    monthlyIncome = myScanner.nextInt();
    // Code to ask for entering your loan payment
    System.out.println("Please enter your loan payment:");
    loanPayment = myScanner.nextInt();
    // Code to ask for entering your current expenses
   System.out.println("Please enter your durrent expenses:");
    currentExpenses = myScanner.nextInt();
 
	}
}

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

برنامه نویسی جاوا

برنامه طراحی شده منتظر خواهد ماند تا ما میزان درآمد ماهیانه خود را وارد کنیم و به مجرد اینکه عددی از جنس عدد صحیح وارد کردیم، مرحله بعد اجرا می شود و از ما می خواهد تا میزان اقساط وام را مشخص کنیم و در نهایت از ما می خواهد تا میزان هزینه های جاری را وارد کنیم. فرض کنیم که فردی ماهیانه ۱۰۰۰۰۰۰ تومان درآمد دارد و ۱۲۰۰۰۰ تومان قسط وام دارد و هزینه های جاری وی ۴۰۰۰۰۰ تومان است. در این صورت خروجی برنامه به شکل زیر خواهد بود:

برنامه نویسی جاوا

تا اینجای کار ما توانسته ایم با موفقیت اطلاعات ورودی را وارد برنامه خود کنیم اما این در حالی است که ما نیاز داریم تا میزان اقساط ماهیانه و هزینه های جاری را از درآمد ماهیانه کم کنیم و مانده موجودی را نمایش دهیم. برای این منظور ما می بایست کد خود را به شکل زیر تکمیل کنیم:

import java.util.Scanner;
 
class Project {
 
public static void main(String[] args) {
  Scanner myScanner = new Scanner(System.in);
  // The title of the program
  System.out.println("My Financial Turnover");
  // Variables
  int monthlyIncome, loanPayment, currentExpenses;
  // Code to ask for entering your income
  System.out.println("Please enter your monthly income:");
  monthlyIncome = myScanner.nextInt();
  // Code to ask for entering your loan payment
  System.out.println("Please enter your loan payment:");
  loanPayment = myScanner.nextInt();
  // Code to ask for entering your current expenses
  System.out.println("Please enter your durrent expenses:");
  currentExpenses = myScanner.nextInt();
  // Calculating the remainder
  int result = monthlyIncome - (loanPayment + currentExpenses);
  System.out.println("The left over money equals to: " + result);
 
	}
}

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




2 thoughts on “آموزش برنامه نویسی جاوا – قسمت ۱۳: محاسبه دخل و خرج ماهیانه با استفاده از کلاس Scanner

  1. دشتی

    سایتتون عالیه در مورد جاوا من خیلی استفاده کردم
    اگر بتونید مطالب پیشرفته تر هم اضافه کنید بینظیره
    خیلی ممنون

    پاسخ
    1. امیر حسین صادقی

      منون از لطفتون. خوشحالیم که تونستیم کمکتون کنیم. در آینده مقالات بشتری از برنامه نویسی منتشر می کنیم

      پاسخ

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *