حل تمرین های فصل چهارم کتاب برنامه نویسی جاوا جعفرنژاد قمی

سلام

حل تمرین های فصل چهارم کتاب برنامه نویسی جاوا استاد جعفرنژاد قمی رو هم در اینجا قرار دادم

امیدوارم که براتون مفید باشه

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

من تا هر جا که تونستم و وقتشو داشتم تمرینا رو حل میکنم و اینجا قرار میدم

بعضی تمرینا خیلی سختن و خیلی مواقع وقت زیادی رو میگیرن تا حل شن اما این صرف وقت بعد از حل کردن تمرین کلی به آدم میچسبه و به آدم کیف میده که هر موقع از برنامه اش ران میگیره


شما میتونید حل تمرین فصل های قبل رو از لینک های زیر مشاهده کنید

حل تمرین های فصل سوم کتاب برنامه نویسی جاوا جعفرنژاد قمی

حل تمرین های فصل دوم کتاب برنامه نویسی جاوا جعفر نژاد قمی


بریم سراغ حل مسائل

۱- کلاسی برای مدل سازی یک مستطیل بنویسید. ای کلاس را طوری طراحی کنید که بتواند طول و عرض مستطیل را از ورودی خوانده مساحت و محیط اشیای مستطیل را حل کند و به خروجی ببرد.

نکته : از این به بعد چون وارد کلاس سازی شدیم برنامه ها ممکنه در چند فایل مختلف قرار میگیره که من اینجا اسم هر کلاس رو میگم که دچار اشتباه نشید

در کلاس اصلی

import java.util.*;
public class Solution4_1 {
 public static void main(String[] args) {
 Rectangle rect = new Rectangle();
 rect.daryaft();
 rect.mohasebe();
 rect.natije();
 }
}
 

در کلاس جدید Rectangle

import java.util.*;
public class Rectangle {
 Scanner input = new Scanner(System.in);
 private int tool,arz;
 private double masahat,mohit;
 public void daryaft (){
 System.out.print("Lotfan Arz Ra Vared Konid : ");
 arz = input.nextInt();
 System.out.print("Lotfan Tool Ra Vared Konid : ");
 tool = input.nextInt();
 }
 public void mohasebe (){
 masahat = tool*arz;
 mohit= 2*(tool+arz);
 }
 public void natije (){
 System.out.printf("Masahat Mostatil = %.2f \n",masahat);
 System.out.printf("Mohit Mostatil = %.2f \n",mohit);
 }
} 

۲- کلاسی به نام ChekingAccount با فیلد های داده ای برای شماره حساب و موجودی بنویسید. این کلاس باید سازنده ای داشته باشد که بتواند مقادیری را برای این فیلد های داده دریافت کند …

نکته : والا این سوال رو میشه به چند روش حل کرد با اینکه چند خط توضیح داده شده واسش اما ابهام زیادی داره یکی از ساده ترین راه حل های ممکن اینه که تو کلاس اصلی از طریق نمونه سازی به سازنده مقدار بدی ، یکی دیگه اش اینه که تو کلاس اصلی از کاربر مقدار بخوای و بعد مقداری که کاربر بهت میده رو واسه سازنده بفرستی ، یکی دیگه این که میتونی از متد های set و get استفاده کنی من همون راه اول که خیلی آسونتره رو استفاده کردم که همون جا تو نمونه سازی از کلاس به سازنده ام دستی مقدار دادم و اون مقدار تو سازنده ثبت میشه ، برای نمایش اطلاعات هم از متد Namayesh استفاده کردم

در کلاس اصلی

public class Solution4_2_TestAccount {

public static void main(String[] args) {
ChekingAccount t1 = new ChekingAccount(15455882, 50.0000);
ChekingAccount t2 = new ChekingAccount(15441382, 150.0000);
t1.Namayesh();
t2.Namayesh();
}
}

در کلاس ChekingAccount

public class ChekingAccount {
private double shomarehesab;
private double mojoodi;
private double hadeaghal = 200.00;

public ChekingAccount(double s,double m) {
shomarehesab = s;
mojoodi = m;
}
public void Namayesh(){
System.out.printf("Shomare Hesab = %.0f , Mojodi = %.0f , Hadeaghal Mojodi = %.0f \n",shomarehesab,mojoodi,hadeaghal);
}
}

۳- یک برنامه جاوا بنویسید که مشخص کند از الان تا ابتدای تابستان سال آینده ، چند روز است .

در کلاس اصلی

 public class Solution4_3 {
 public static void main(String[] args) {
 Tabestan t = new Tabestan();
 t.Daryaft();
 t.Mohasebe();
 t.Namayesh();
 }
} } 

در کلاس جدید Tabestan

 
import java.util.*;
public class Tabestan {
 Scanner input = new Scanner(System.in);
 private int sal,mah,rooz;
 private double fmah,jame=0,jamenahaei;
 public void Daryaft(){
 System.out.print("Tarikh Ra Ba Enter Vared Konid mah,rooz :");
 mah = input.nextInt();
 rooz = input.nextInt();
 }
 public void Mohasebe(){
 if (rooz>31){
 System.out.print("Tarikh Rooz Tavalod Eshtebah Vared Shode.");
 System.exit(0);
 }
 if (mah==1){
 jame = 365-rooz;
 }
 else if (mah<=6&&mah>=2)
 {
 fmah=(mah-1)*31;
 jame = 365-(fmah+rooz);
 }
 else if (mah<=11&&mah>=7)
 {
 fmah=((mah-1)*30)+6;
 jame = 365-(fmah+rooz);
 }
 else if (mah==12)
 {
 fmah=((mah-1)*29)+17;
 jame = 365-(fmah+rooz);
 }
 jamenahaei = jame +93;
 }
 public void Namayesh (){
 System.out.printf("Zaman Baghi Mande Ta Tabestan Sal Baed : %.0f Rooz \n ",jamenahaei);
 }
}
 

۴- برنامه ای بنویسید که تعدادی عدد را خوانده ، حاصل جمع ، مجموع مربعات ، مجموع مکعبات آن ها را محاسبه کند و به خروجی ببرد

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

 
import java.util.*;
public class Solution4_4 {
 public static void main(String[] args) {
 Scanner input = new Scanner(System.in);
 float n;
 char ch ;
 double jame=0,moraba=0,mokaab=0;
 while (true){
 System.out.print("Adad Ra Vared Konid : ");
 n = input.nextFloat();
 jame+=n;
 moraba+=(n*n);
 mokaab+=(n*n*n);
 System.out.print("Aya Edame Midahid (y/n) : ");
 ch = input.next().charAt(0);
 if (ch!='y')
 break;
 else 
 continue;
 }
 System.out.printf("Majmoe A'dad = %.2f \n",jame);
 System.out.printf("Majmoe Morabaat = %.2f \n",moraba);
 System.out.printf("Majmoe Mokaabat = %.2f \n",mokaab);
 }
}

۵- برنامه ای بنویسید که دانش آموزی را مدل سازی کند. اشیای این کلاس باید بتوانند نمرات را بخوانند ، معدل را حساب کنند و به خروجی ببرند.

در کلاس اصلی

 
public class Solution4_5 {
 public static void main(String[] args) {
 Daneshjoo d = new Daneshjoo();
 d.Daryaft();
 d.Namayesh();
 } 
}
 

در کلاس Daneshjoo

 
import java.util.*;
public class Daneshjoo {
 Scanner input = new Scanner (System.in);
 private float nomre,jame=0;
 private int i=0;
 private char ch;
 private double moadel;
 public void Daryaft(){
 while (true){
 System.out.print("Nomre Ra Vared Konid : ");
 nomre = input.nextFloat();
 jame +=nomre;
 i++;
 System.out.print("Aya Nomre Digari Vared Mikonid ? (y/n) : ");
 ch = input.next().charAt(0);
 if (ch!='y')
 break;
 else 
 continue;
 }
 }
 public void Namayesh(){
 moadel = jame /i;
 System.out.printf("Moadel Daneshjoo = %.2f \n",moadel);
 }
}
 

۶- یک دانشجو را مدل سازی کنید ، بطوری که تمام رفتار ها و صفاتی را که به ذهن شما می رسد ، در این مدل در نظر بگیرید

در کلاس اصلی

 
public class Solution4_6 {
public static void main(String[] args) {
Daneshjoo d = new Daneshjoo();
d.Nam();
d.Namayesh();
}
}
 

در کلاس جدید Daneshjoo

import java.util.*;
public class Daneshjoo {
Scanner input = new Scanner (System.in);
private double shomare,moadel;
private String reshte,nam,family;
private char ch;
private float nomre,jame,jameVahed;
private int vahed;

public Daneshjoo() {
jame=0;
jameVahed = 0; }
public void Nam(){
System.out.print("Nam Ra Vared Konid : ");
nam= input.next();
System.out.print("Famili Ra Vared Konid : ");
family= input.next();
System.out.print("Shomare Daneshjoei Ra Vared Konid : ");
shomare= input.nextDouble();
Reshte();
}
public void Reshte(){
System.out.print("Reshte Tahsili Ra Vared Konid : ");
reshte = input.next();
Nomre();
}
public void Nomre(){
while(true){
System.out.print("Nomre Ra Vared Konid : ");
nomre = input.nextFloat();
System.out.print("Tedad Vahed Ra Vared Konid : ");
vahed = input.nextInt();
jame +=(nomre*vahed);
jameVahed+=vahed;

System.out.print("Aya Edame Midahid (y/n) : ");
ch = input.next().charAt(0);
if (ch!='y')
break;
else
continue;

}
Moadel();
}
public String Moadel(){
moadel = jame/jameVahed;
if (moadel>=12)
return "Ghabooli";
else
return "Mashrooti";
}
public void Namayesh(){

System.out.printf(" Nam Daneshjoo :%s %s \n Shomare Daneshjoei : %.0f \n Reshte : %s \n Moadel : %.2f \n Vazeiat Tahsili : %s \n",nam,family
,shomare,reshte,moadel,Moadel());
}
}
 

۷- برنامه ای بنویسید که کارکنان یک موسسه را مدل سازی کند. کلاس کارمند باید سازنده ای داشته باشد که میزان حقوق …

در کلاس اصلی

 import java.util.*;
public class Solution4_7_1 {
 public static void main(String[] args) {
 Scanner input = new Scanner (System.in);
 String name;
 double hoghogh;
 System.out.print("Nam Khod Ra Vared Konid : ");
 name = input.next();
 System.out.print("Hoghogh Khod Ra Vared Konid : ");
 hoghogh = input.nextDouble();
 Karmand k = new Karmand(name,hoghogh);
 k.Daryaft();
 k.Namayesh();
 }
}

در کلاس جدید Karmand

 import java.util.*;
public class Karmand {
 Scanner input = new Scanner (System.in);
 private String nam;
 private double hoghogh,hnakhalesh,kasr1,kasr2,kosorat;
 private float bime,maliat;
 public Karmand(String n , double h) {
 nam=n;
 hoghogh = h;
 }
 public void Daryaft(){
 System.out.print("Nerkh Bime Ra Vared Konid : ");
 bime = input.nextFloat();
 System.out.print("Nerkh Maliat Ra Vared Konid : ");
 maliat = input.nextFloat();
 Mohasebe();
 }
 public void Mohasebe(){
 kasr1 = (hoghogh/100)*bime;
 kasr2 =(hoghogh/100)*maliat;
 kosorat = kasr1+kasr2;
 hnakhalesh = hoghogh-kosorat;
 }
 public void Namayesh(){
 System.out.printf(" Nam = %s \n Hoghogh Khales = %.3f \n Hoghogh Nakhalesh = %.3f \n Mizan Kosarat = %.3f \n "
 ,nam,hoghogh,hnakhalesh,kosorat);
 }
}

۸- برنامه ای بنویسید که تهویه یه منزل را مدل سازی کند ، برنامه ای بنویسید که آن را تست کند.

جواب : راستش این سوال من کاملا منظورش از تست کردن سوال رو نفهمیدم و نمیدونم که چطور باید برنامه رو تست کنم

اما تو مدل سازی میشه میزان هوای ورودی ، میزان هوای خروجی ، هوای گرم ، هوای سرد در منزل ، زمان تهویه هوا ، مدت تهویه هوا و … چیزای دیگه درنظر گرفت

من اگر جواب این سوال رو تونستم از جای دیگه پیدا کنم حتما قرار میدم .

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

خسته نباشید 🙂

2 دیدگاه On حل تمرین های فصل چهارم کتاب برنامه نویسی جاوا جعفرنژاد قمی

جوابی بنویسید:

آدرس ایمیل شما به صورت عمومی منتشر نخواهد شد.