الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[تنبيه - عنوان غير مناسب : ]الفززززعه يااهل الفزعه

بدأه molla في 19 يونيو 2009 · 18 رد · 752 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هذا برنامجي للبحث بنظام بنك للحصول على الرصيد واضافة اوخصم قيمه

الخطا فقط في ميثود البحث الثنائي وكيف يبحث في المصفوفه

بليييييز ابي الرد بسرررررررعه

import java.io.FileReader;


 class besmellah {

protected double balance;
 protected int accountNumber;

 // default constructor
 public besmellah()
 {
  System.out.println("BankAccount: default constructor called");

  balance = 0.0;
  accountNumber = 0;
 }

 // constructor, takes a balance and an account number
 public besmellah(double aBalance, int aNumber)
 {
  System.out.println("BankAccount: constructor called with "
		+ aBalance + " and " + aNumber);
  balance = aBalance;
  accountNumber = aNumber;
 }

 // put a specified amount of money into our account
 public void deposit(double amt)
 {
  balance += amt;

  // print something out so we can see which methods are 
  // being called  
  System.out.println("BankAccount: deposit " + amt + 
		"  balance = " + balance);
 }

 // Take out a specified amount from our account.
 // If there isn't enough in the account, don't take out any money
 // and return false.  Otherwise take the money and return true.
 public boolean withdrawal(double amt)
 {
  if (balance < amt)
  {
   System.out.println("BankAccount: withdrawal " + amt +
		" but we only have " + balance +
		" in the account!");
   return false;
  }

  balance -= amt;

  // print something out so we can see which methods are 
  // being called  
  System.out.println("BankAccount: withdrawal " + amt + 
		"  balance = " + balance);
  return true;
 }

 // display information about this account
 public void writeOutput()
 {
  System.out.println("Account #" + accountNumber + " $" +
		balance);
 }

 public boolean equals(BankAccount otherAccount)
 {
  return (accountNumber == otherAccount.accountNumber);
 }


 }




class test{


  public static void main(String args[]) {

	try {
	 String[][]A=new String[11][1];

	  FileReader fr = new FileReader("bankFile.txt");
	  BufferedReader br = new BufferedReader (fr);  

	  for(int i=0; i<11; i++ ){
	   for(j=0; j<1; j++)
		   A[j] = (String) br.readline();  
	  }






	  fr.close();
	} catch (Exception e) {
	  System.out.println("Exception: " + e);
	}


	public static final int NOT_FOUND = -1;



	 public static <T extends Comparable<? super T>>
				  int binarySearch( T [][] A, T x )
	{
		int low = 0;
		int high =A.length() - 1;
		int mid;

		while( low <= high )
		{
			mid = ( low + high ) / 2;

			if( A[ mid ][2].compareTo( x ) < 0 )
				low = mid + 1;
			else if( A[ mid ][2].compareTo( x ) > 0 )
				high = mid - 1;
			else
				return mid;
		}


		return NOT_FOUND;	 // NOT_FOUND = -1
	}
		Integer [][] A = new Integer [][];
		  Arrays.sort(A);

  // Search an element
  int index = Arrays.binarySearch(A, 3);


  }

}
#2

أخي هل الخطأ منطقي أم خطأ لغوي syntax??

الخوارزمية صحيحة ولا مشاكل فيها

بالنسبة للأخطاء اللغويى يوجد لديك خطأ عند الجملة التالية

int high =A.length() - 1;

يفترض بها أن تصبح

int high =A.length - 1;

وتعريف المصفوفة لديك يجب أن يكون فيه قيم

 Integer [][] A = new Integer [][];

أي يجب أن يصبح كالتالي مثلاً

 Integer [][] A = new Integer [5][5];

والجمل التالية خارج نطاق الدوال

				Arrays.sort(A);

  // Search an element
  int index = Arrays.binarySearch(A, 3);

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3

الأخ الكريم/الأخت الكريمة

السلام عليكم ورحمة الله وبركاته

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#4

أولا اعتذر عن عنوان الموضوع وان شاء الله لن يتكرر

أشكرك أخي ع المساعده

تم تعديل ماأشرت اليه والحمدلله قل عدد الاخطاء

لكن كيف استدعي الميثودزdeposit والخصم ؟؟؟

اكرر شكري اخي :)

وكذلك البحث عن عنصر كيف يتم ؟؟؟

#5

اضفت استدعاء الميثودات بالمين كلاس (الملف بسيط يحتوي على 3 صفوف و2 اعمده )..لكن يطلع خطا

:(

	Integer [][] A = new Integer [3][2];

  deposit(20);
   A.withdrawal(30);
   A.writeOutput();





  }

}

اختي استثنائيه تفاءلت لما شفتك متواااجده بالموضوع

الليله تسليم البرنامج :(

#6

أخي ضع الشيفرة كاملة

وأخبرني أي سطور الذي تحصل فيها المشكلة

تحيااتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7

أخي علاء كما ذكرت سابقا مشكلتي في المين كلاس

الان ملف التكست على الشكل التالي

AcctId Name balance

19111 Ahmad 20.03

22222 Salem 3000.

35466 Maha 23.45

كيف اجعل البرنامج يصل الى الرصيد

balance

ويجري عملية الاضافه لأحمد والخصم لسالم ؟؟

أتمنى انك عرفت المطلوب

class test{


  public static void main(String args[]) {

	try {
	 String[][]A=new String[11][1];

	  FileReader fr = new FileReader("F://Final proj-353//mmm.txt");
	  BufferedReader br = new BufferedReader (fr);  

	  for(int i=0; i<11; i++ ){
	   for(j=0; j<1; j++)
		   A[j] = (String) br.readline();  
	  }






	  fr.close();
	} catch (Exception e) {
	  System.out.println("Exception: " + e);
	}


	public static final int NOT_FOUND = -1;




	public static <T extends Comparable<? super T>>
				  int binarySearch( T [][] A, T x )
	{
		int low = 0;
		int high =A.length - 1;
		int mid;

		while( low <= high )
		{
			mid = ( low + high ) / 2;

			if( A[ mid ][2].compareTo( x ) < 0 )
				low = mid + 1;
			else if( A[ mid ][2].compareTo( x ) > 0 )
				high = mid - 1;
			else
				return mid;
		}


		return NOT_FOUND;	 // NOT_FOUND = -1
	}

		Integer [][] A = new Integer [3][2];

  deposit(20);
   A.withdrawal(30);
   A.writeOutput();





  }

}

ولك جزيل الشكر :)

#8

يا أخي كيف تقوم بكتابة دالة داخل دالة؟؟؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#9

لم أفهم قصدك أخي

البرنامج تم تسليمه لكن أبي أعرف مكان الخطأ ...لاني حاولت لكن ماطلع معي شي << يمكن لاننا وقت اختبارات :(

ع العموم أحيي فيكم روح التعاون الله لايحرمكم من فضله ويمن علينا بما من عليكم فيه

دعواتي لكم

#10

أخي يجب أن تكون كل الدوال موجودة في نطاق الفئة class

ولا يصح أن يكون داخل الدالة main دوال أخرى أو حقول fields

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#11

اللي فهمته أخوي أنه من الخطأ ان اضع الداله

Integer [][] A = new Integer [3][2];

طيب كيف راح احدد أن القيمه المطلوبه هي الbalance بالعمود الاخير !

أتمنى التوضيح أكثر :)

#12

يا أخي لا يجوز أن يكون لديك السناريو التالي

 public static void main(String args[]) {

public static <T extends Comparable<? super T>>
				  int binarySearch( T [][] A, T x )
	{
		int low = 0;
		int high =A.length - 1;
		int mid;

		while( low <= high )
		{
			mid = ( low + high ) / 2;

			if( A[ mid ][2].compareTo( x ) < 0 )
				low = mid + 1;
			else if( A[ mid ][2].compareTo( x ) > 0 )
				high = mid - 1;
			else
				return mid;
		}


		return NOT_FOUND;	 // NOT_FOUND = -1
	}
}

وإنما الدالة binarySearch تكون خارج الدالة main كالتالي

 public static void main(String args[]) {
}
public static <T extends Comparable<? super T>>
				  int binarySearch( T [][] A, T x )
	{
		int low = 0;
		int high =A.length - 1;
		int mid;

		while( low <= high )
		{
			mid = ( low + high ) / 2;

			if( A[ mid ][2].compareTo( x ) < 0 )
				low = mid + 1;
			else if( A[ mid ][2].compareTo( x ) > 0 )
				high = mid - 1;
			else
				return mid;
		}


		return NOT_FOUND;	 // NOT_FOUND = -1
	}

تحياتي

تم تعديل هذه المشاركة بواسطة علاء الصالحي في 24 يونيو 2009 في 23:10

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#13

عملت مثل ماقلت لي لكن مازال هناك 7 أخطاء :(

أتعبتك معي أخوي ..والحمدلله طلعت بكم فائده أما الحل النهائي ..قدر الله وماشاء فعل

بالنسبه للميثودز صحيحه اللهم بعض الاخطاء في المكان والساينتاكس ...لكن لما نزلت هذا البرنامج في منتدى صن مايكروسفت قالوا لي هذا " مو برنامج حاولي مره أخرى " !!

الفرق واضح جدا بين مساعدتكم لي وبين ردهم علي !!

الله يوفقكم ويجزاكم خير :)

#14

طيب اكتبي البرنامج بعد تعديلك عليه

وسأشرح لك ما المشاكل بالضبط

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#15
import java.io.FileReader;
class besmellah {

protected double balance;
	protected int accountNumber;

	// default constructor
	public besmellah()
	{
		System.out.println("BankAccount: default constructor called");

		balance = 0.0;
		accountNumber = 0;
	}

	// constructor, takes a balance and an account number
	public besmellah(double aBalance, int aNumber)
	{
		System.out.println("BankAccount: constructor called with "
								+ aBalance + " and " + aNumber);
		balance = aBalance;
		accountNumber = aNumber;
	} 

	// put a specified amount of money into our account
	public void deposit(double amt)
	{
		balance += amt;

		// print something out so we can see which methods are 
		// being called		
		System.out.println("BankAccount: deposit " + amt + 
								"  balance = " + balance);
	}
	// Take out a specified amount from our account.
	// If there isn't enough in the account, don't take out any money
	// and return false.  Otherwise take the money and return true.
	public boolean withdrawal(double amt)
	{
		if (balance < amt)
		{
			System.out.println("BankAccount: withdrawal " + amt +
								" but we only have " + balance +
								" in the account!");
			return false;
		}					
		balance -= amt;
		// print something out so we can see which methods are 
		// being called		
		System.out.println("BankAccount: withdrawal " + amt + 
								"  balance = " + balance);
		return true;
	}
	// display information about this account
	public void writeOutput()
	{
		System.out.println("Account #" + accountNumber + " $" +
								balance);
	}
	public boolean equals(BankAccount otherAccount)
	{
		return (accountNumber == otherAccount.accountNumber);
	}
	public static final int NOT_FOUND = -1;
	 public static <T extends Comparable<? super T>>
				  int binarySearch( T [][] A, T x )
	{
		int low = 0;
		int high =A.length - 1;
		int mid;

		while( low <= high )
		{
			mid = ( low + high ) / 2;

			if( A[ mid ][2].compareTo( x ) < 0 )
				low = mid + 1;
			else if( A[ mid ][2].compareTo( x ) > 0 )
				high = mid - 1;
			else
				return mid;
		}
		return NOT_FOUND;	 // NOT_FOUND = -1
 }
 }

 class test{

  public static void main(String args[]) {
	try {
		String[][]A=new String[11][1];

	  FileReader fr = new FileReader("F://bank.txt");
	  BufferedReader br = new BufferedReader (fr);  

	  for(int i=0; i<11; i++ ){
		  for(j=0; j<1; j++)
		   A[j] = (String) br.readline();  
	  }	  
	  fr.close();
	} catch (Exception e) {
	  System.out.println("Exception: " + e);
	}			 
  }
	}
#16

جرب هكذا أخي

import java.io.BufferedReader;
import java.io.FileReader;
class besmellah {

protected double balance;
	protected int accountNumber;

	// default constructor
	public besmellah()
	{
		System.out.println("BankAccount: default constructor called");

		balance = 0.0;
		accountNumber = 0;
	}

	// constructor, takes a balance and an account number
	public besmellah(double aBalance, int aNumber)
	{
		System.out.println("BankAccount: constructor called with "
								+ aBalance + " and " + aNumber);
		balance = aBalance;
		accountNumber = aNumber;
	}

	// put a specified amount of money into our account
	public void deposit(double amt)
	{
		balance += amt;

		// print something out so we can see which methods are
		// being called		
		System.out.println("BankAccount: deposit " + amt +
								"  balance = " + balance);
	}
	// Take out a specified amount from our account.
	// If there isn't enough in the account, don't take out any money
	// and return false.  Otherwise take the money and return true.
	public boolean withdrawal(double amt)
	{
		if (balance < amt)
		{
			System.out.println("BankAccount: withdrawal " + amt +
								" but we only have " + balance +
								" in the account!");
			return false;
		}					
		balance -= amt;
		// print something out so we can see which methods are
		// being called		
		System.out.println("BankAccount: withdrawal " + amt +
								"  balance = " + balance);
		return true;
	}
	// display information about this account
	public void writeOutput()
	{
		System.out.println("Account #" + accountNumber + " $" +
								balance);
	}
	public boolean equals(BankAccount otherAccount)
	{
		return (accountNumber == otherAccount.accountNumber);
	}
	public static final int NOT_FOUND = -1;
	 public static <T extends Comparable<? super T>>
				  int binarySearch( T [][] A, T x )
	{
		int low = 0;
		int high =A.length - 1;
		int mid;

		while( low <= high )
		{
			mid = ( low + high ) / 2;

			if( A[ mid ][2].compareTo( x ) < 0 )
				low = mid + 1;
			else if( A[ mid ][2].compareTo( x ) > 0 )
				high = mid - 1;
			else
				return mid;
		}
		return NOT_FOUND;	 // NOT_FOUND = -1
}
}

public class test{

  public static void main(String args[]) {
	try {
		String[][]A=new String[11][1];

	  FileReader fr = new FileReader("F://bank.txt");
	  BufferedReader br = new BufferedReader (fr);  

	  for(int i=0; i<11; i++ ){
		  for(int j=0; j<1; j++)
		   A[j] = (String) br.readLine();  
	  }	  
	  fr.close();
	} catch (Exception e) {
	  System.out.println("Exception: " + e);
	}			
  }
	}

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#17

أوكي اخي

الحمدلله طلع بروسيس كومبليتيد ...بس مايطلع ناتج البحث الثنائي والاضافه على الرصيد والخصم !

ممكن لاني ماحطيت قيم واستدعاء للميثودات

وهذا اللي معقدني كيف اسوي بحث على اسم العميل بالعمود الاول وبعدين أحرك البوينتر على الرصيد واسوي عليه عملية الاضافه والخصم وهو بالعمود الثالث !

عذرا اخوي ادري اني كثرت أسئله لكن هذي المره الأولى اللي يعند معي مشروع جافا بهالشكل :(

ممكن لأني من زمان مااشتغلت فيها ..واكيد انها خيره عشان نستفيد من خبرتك بهالمجال :)

#18

أقترح عليك أن تقوم بعمل فئة (class) تسميها BankAccount

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

وتخزن مجموعة من الكائنات في المصفوفة

بعد هذا تستخدم خوارزمية البحث الثنائي لإيجاد الحساب وإجراء عملية السحب والإضافة عليه

أخي أنا أسلوب كتابتك للكود سيئ جداً

تحتاج إلى القراءة أكثر عن جافا

كما لدي رجاء خاص ألا وهو عدم كتابة الكلمات الإنجليزية باللغة العربية

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#19

من ناحية المصفوفه اللي تكون داخل البرنامج هذي بسيطه لكن المشكله اذا كان يقرأ من ملف خارجي

ع العموم ماقصرت وشكرا على النصيحه :)

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…