منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

أمثلة محلولة فى الجافا ...تمثيل نظام بنكي بحيث يحتوي على فئتين لحسابات التوفير و الحسابات الجارية

اذهب الى الأسفل

أمثلة محلولة فى الجافا ...تمثيل نظام بنكي بحيث يحتوي على فئتين لحسابات التوفير و الحسابات الجارية Empty أمثلة محلولة فى الجافا ...تمثيل نظام بنكي بحيث يحتوي على فئتين لحسابات التوفير و الحسابات الجارية

مُساهمة من طرف أحمد مناع الإثنين أبريل 20, 2020 6:46 pm

اهلا وسهلا بكم 

أحد الاخوة على الفيس بوك عرض السؤال التالى :

أمثلة محلولة فى الجافا ...تمثيل نظام بنكي بحيث يحتوي على فئتين لحسابات التوفير و الحسابات الجارية 94001010

الحل :

يتطلب السؤال انشاء صنفين لتمثيل نظام حساب مصرفي الصنف الاول باسم SavingAccount لتمثيل حسابات التوفير و الاخر باسم CurrentAccount لتمثيل الحسابات الجارية مع الاخذ فى الاعتبار تطبيق مبداء الوراثة ....لذلك سنحاول نحدد الطرق و المتغيرات المشتركة لتنفيذ هذا المبدء ....والملاحظ فى السؤال نجد ان الطرق و المتغيرات المشتركة بين الفئتين هما على النحو التالى :

الكود:
 public String holderName;
    public String AccountNo;
    public int branchld=0;
    public float balance= 0.0f;;


لذلك سنتبع الخطوات التالية للك 

1_إنشاء صنف أو فئة باسم Account لنقوم بجمع كافة الطرق و المتيرات المشتركة بين الفئين وذلك على النحو التالى :

الكود:

// إنشاء الفئة التى سيتم الوراثة منها و التى تشمل على المتغيرات و الطرق المشتركة بين الحساب الجاري و حساب التوفير
public class Account {
    
    // تغير المتغيرات التى سيتم تخزين القيم بها
    public String holderName;
    public String AccountNo;
    public int branchld=0;
    public float balance= 0.0f;;
    
    
    // طريقتين لتعين و ارجاع أسم مالك الحساب
    public void setHolder_Name(String Name) {
        this.holderName= Name;
     }
    public String getHolder_Name() {
        return this.holderName ;
     }
    
    //طريقين لتعين و ارجاع رقم الحساب
    public void setAccountNo(String No) {
        this.AccountNo= No;
     }
    public String getAccountNo() {
        return this.AccountNo ;
     }
    
    
    // طريقتين لتعين و ارجاع رقم الفرع
    public void setbran_chld(int No) {
        this.branchld= No;
     }
    public int getbran_chld() {
        return this.branchld ;
     }
    
    
    // طريقتين لتعين و ارجاع رصيد الحسابات
    public void setBalance(float Value) {
        this.balance= Value;
     }
    public float getBalance() {
        return this.balance ;
     }
    
}

2_نقوم بانشاء الفئة SavingAccount على النحو التالى :

الكود:

// إنشاء فئة الخاصة بحسابات التوفير مع الوارثة من فئة الحساب
public class SavingAccount extends Account {
    
    // تعيم متغير لتخزين الحد الادنى لعمليات السحب
    private int WithdrawLimmit=0;
    
    // تعين متغير لتخزين معدل الفائة
    private float interstRate= 0.0f;
    
    
    // إنشاء مشيد الفئة بالبيانات المطلوبة
    public SavingAccount(String AccountNo,String HolderName,int branchld,float balance,float rate,int WithdrawLimmit){
       this.AccountNo=AccountNo;
       this.holderName=HolderName;
       this.branchld=branchld;
       this.balance=balance;
       this.interstRate=rate;
       this.WithdrawLimmit=WithdrawLimmit;
    }
    
    
    
    // طريقتين لتعين و ارجاع غدد مرات السحب اليومي
    public void setLimmit_No(int Limmit_No) {
        this.WithdrawLimmit= Limmit_No;
     }
    public int getLimmit_No() {
        return this.WithdrawLimmit ;
     }
    
    
    // طريقتين لتعين و ارجاع معدل الفائدة
    public void setInterst_Rate(float Value) {
        this.interstRate= Value;
     }
    public float getInterst_Rate() {
        return this.interstRate ;
     }
    
    
    //الطريقة التى ستقوم بطباعة عن بيانات الحسابات
    public void Report(){
        System.out.println("\n ****** Savings Account Details ****** ");
        System.out.println(" Account No: "+ this.getAccountNo());
        System.out.println(" Holder Name: "+ this.getHolder_Name());
        System.out.println(" Bran Chld No: "+ this.getHolder_Name());
        System.out.println(" Current Balance: "+  this.getBalance());
        System.out.println(" Interst Rate: "+  this.getInterst_Rate());
        System.out.println(" Withdraw Limmit: "+  this.getLimmit_No());
        
        System.out.println("\t\t\t\t ****** Savings Account Details ******\n ");
}
    
    
}

3_نقوم بانشاء الفئة CurrentAccount على النحو التالى :

الكود:


// إنشاء الفئة الخاصة بحسابات الجارية
public class CurrentAccount extends Account{
    
    // تعين متغير لتحزين القيمة التى يمكن سحبها بالسالب من الرصيد
     private float overdraft= 0.0f;;

      // إنشاء مشيد الفئة بالبيانات المطلوبة
    public CurrentAccount(String AccountNo,String HolderName,int branchld,float balance,float overdraft){
       this.AccountNo=AccountNo;
       this.holderName=HolderName;
       this.branchld=branchld;
       this.balance=balance;
       this.overdraft=overdraft;
    }
    
     // طريقتين لتعين و ارجاع  القيمة التى يمكن سحبها بالسالب
    public void setOver_Draft(float Value) {
        this.overdraft= Value;
     }
    public float getOver_Draft() {
        return this.overdraft ;
     }
    
    
    //الطريقة التى ستقوم بطباعة عن بيانات الحسابات
    public void Report(){
        System.out.println("\n ****** Current Account Details ****** ");
        System.out.println(" Account No: "+ this.getAccountNo());
        System.out.println(" Holder Name: "+ this.getHolder_Name());
        System.out.println(" Bran Chld No: "+ this.getHolder_Name());
        System.out.println(" Current Balance: "+  this.getBalance());
        System.out.println(" Interst Rate: "+  this.getOver_Draft());
      
        
        System.out.println("\t\t\t\t ****** Current Account Details ******\n ");
}
}

4_أخير نقوم بتنفيذ النظام على النحو التالى :

الكود:

import java.util.Scanner;

public class Manna_Bank {

   // تنفيذ النظام
    public static void main(String[] args) throws InterruptedException {
      
      String Name=null,AccountNo=null;int chld=0; float balance= 0.0f;;
    
      System.out.println("Welcome to the banking system of Manna Bank");
      System.out.println("*************************************");
      System.out.println("");
      System.out.println("Please choose the type of account you want to create?");
      System.out.println("1.Create a Saving Account");
      System.out.println("2.Create a Current Account");
      System.out.println("3. Exit");
      System.out.println("");
      System.out.println("Please Enter your choice:");
      
       Scanner keyboard1 = new Scanner(System.in);
      int choice= keyboard1.nextInt();
      switch (choice){

      case 1:
          //إنشاء كائن الادخال  لإدخالالبيانات من  لوحة المفاتيح.  
         Scanner keyboard = new Scanner(System.in);
         System.out.println("Please Enter AccountNo.");
         AccountNo=keyboard.nextLine();
                          
         System.out.println("Please Enter HolderName.");
         Name=keyboard.nextLine();
        
        
         System.out.println("Please Enter Bran_Chld.");
         chld=keyboard.nextInt();
      
         System.out.println("Please Enter Balance_Value.");
         balance=keyboard.nextFloat();
      
    
      // إنشاء حساب التوفير
      SavingAccount S = new SavingAccount(AccountNo,Name,chld,balance,0.25f,6);
      //طباعة التقرير الخاص بالحساب
      S.Report();
      break;
  
      case 2:
       //إنشاء كائن الادخال  لإدخالالبيانات من  لوحة المفاتيح.  
         Scanner keyboard2 = new Scanner(System.in);
        
      System.out.println("Please Enter AccountNo.");
      AccountNo=keyboard2.nextLine();
      
      System.out.println("Please Enter HolderName.");
      Name=keyboard2.nextLine();
      
      System.out.println("Please Enter Bran_Chld.");
      chld=keyboard2.nextInt();
      
      System.out.println("Please Enter Balance_Value.");
      balance=keyboard2.nextFloat();
      
      // إنشاء الحساب الجاري
      CurrentAccount C = new CurrentAccount(AccountNo,Name,chld,balance,-5000);
      // طباعة التقارير الخاصة بالحساب
      C.Report();
      break;
      case 3:
      System.exit(0);
      break;
      default:
      System.out.println("Invalid Entry!");
     }
      
      


    }
    
}

مخرجات النظام على النحو التالى :

أمثلة محلولة فى الجافا ...تمثيل نظام بنكي بحيث يحتوي على فئتين لحسابات التوفير و الحسابات الجارية Untitl15

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى