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

[تنبيه - عنوان غير مناسب : ]برنامج جديد من برمجتى ^_^

بدأه الشريف أحمد في 20 مايو 2009 · 13 رد · 951 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أول محاولاتى مع الجافا

http://ibnyassen.googlepages.com/Test.jar

ملف الجار بتاع الجافا

طبعا لازم تكون مركب JRE

الملف صغير جدا و حجمه 2كيلو بايت

ماتبخلوش بالتجربة ^_^

و عندى أسألة

لما المستخدم يضغط على Ok بدون إدخال قيمة يتوقف البرنامج

أزاى أخليه يعطيه رسالة تنبيه ؟

الكود هنا

package test;

/**
 *
 * @author sherif
 */
import javax.swing.JOptionPane;
public class Main {
	private static String reply;

	public static void main(String[] args) {
		// TODO code application logic here
		int correctCount = 0;
		int count = 0;
		String output = "";


		while (count < 10 ){

			int num1 = (int)(Math.random()* 10);
			int num2 = (int)(Math.random()* 10);

			if (num1 < num2) {
				int temp = num1;
				num1 = num2;
				num2 = temp;
			}

			String Sanswer = JOptionPane.showInputDialog(null, num1 + " - " + num2 + " يساوى كام ؟\n");

			int  answer = Integer.parseInt(Sanswer);
			if (answer == num1 - num2){
				reply = " شــــــــــــاطـــر";
				correctCount++; 
			}
			else
			   reply = "إجابتك غلط يا حلو  " + "و الصح  " + (num1 - num2 );
			JOptionPane.showMessageDialog(null, reply);
			output += "\n " + num1 + "-" + num2 + "=" + answer + reply;


			count++;


		}

		JOptionPane.showMessageDialog(null, "your Correct answers is " + correctCount + "\n" + output );
	}

}
#2

تعديلات جديدة لتفادى الإدخال الفارغ

لازالت مشكلة إدخال حروف موجودة

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package test;

/**
 *
 * @author sherif
 */
import javax.swing.JOptionPane;
public class Main {
	private static String reply;

	public static void main(String[] args) {
		// TODO code application logic here
		int correctCount = 0;
		int count = 0;
		String output = "";


		while (count < 10 ){

			int num1 = (int)(Math.random()* 10);
			int num2 = (int)(Math.random()* 10);

			if (num1 < num2) {
				int temp = num1;
				num1 = num2;
				num2 = temp;
			}

			String Sanswer = JOptionPane.showInputDialog(null, num1 + " - " + num2 + " يساوى كام ؟\n");

			String Zero = "";
			if(Sanswer.equals(Zero)){
				JOptionPane.showMessageDialog(null, "لازم تدخل رقم يا زعيم ");
				Sanswer = JOptionPane.showInputDialog(null, num1 + " - " + num2 + " يساوى كام ؟\n");
				if(Sanswer.equals(Zero)){
					JOptionPane.showMessageDialog(null, "كده البرنامج هيقفل");
				}
			}

			int  answer = Integer.parseInt(Sanswer);
			if (answer == num1 - num2){
				reply = " شــــــــــــاطـــر";
				correctCount++; 
			}
			else
			   reply = "إجابتك غلط يا حلو  " + "و الصح  " + (num1 - num2 );
			JOptionPane.showMessageDialog(null, reply);
			output += "\n " + num1 + "-" + num2 + "=" + answer + reply;


			count++;


		}

		JOptionPane.showMessageDialog(null, "your Correct answers is " + correctCount + "\n" + output );
	}

}

تم تعديل هذه المشاركة بواسطة الشريف أحمد في 20 مايو 2009 في 14:23

#3

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

بالنسبة لاختبار إذا تم إدخال شيء أام لا، فيمكنك استعمال الميثود isEmpty الخاصة بString


if(Sanswer.isEmpty()){
...........
 //String Zero = "";

بالنسبة لمعرفة إذا تم إدخال أرقام أو شيء آخر، يمكنك استعمال الregular expression


//the input contains one or more digit
} else {
//no digit
}
 if(Sanswer.matches(\\d+)) {



if(Sanswer.isEmpty()){
JOptionPane.showMessageDialog(null, "لازم تدخل رقم يا زعيم ");
Sanswer = JOptionPane.showInputDialog(null, num1 + " - " + num2 + " يساوى كام ؟\n");
if(Sanswer.isEmpty()){
JOptionPane.showMessageDialog(null, "كده البرنامج هيقفل");
}
}
if(!Sanswer.matches("\\d+")){
JOptionPane.showMessageDialog(null, "لازم تدخل رقم يا زعيم ");
Sanswer = JOptionPane.showInputDialog(null, num1 + " - " + num2 + " يساوى كام ؟\n");
if(!Sanswer.matches("\\d+")){
JOptionPane.showMessageDialog(null, "كده البرنامج هيقفل");
}
}
 String Sanswer = JOptionPane.showInputDialog(null, num1 + " - " + num2 + " يساوى كام ؟\n");

تم تعديل هذه المشاركة بواسطة herch في 20 مايو 2009 في 15:37

#4

شكرا جدا ^_^

اﻷكواد الأولى مش ظاهرة كويس

فيها حروف داخلة عليها

ممكن تظبطها ^_^

#5

الماتشيز تستخدم أزاى داخل الكود ؟؟

#6

تم التصحيح

المثال الأخير يبين كيف تستعمل matches

#7

أنا عملت كده و لسه فيه مشكلة

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package test;

/**
 *
 * @author sherif
 */
import javax.swing.JOptionPane;

public class Main {

	private static String reply;

	public static void main(String[] args) {
		// TODO code application logic here
		int correctCount = 0;
		int count = 0;
		String output = "";


		while (count < 5) {

			int num1 = (int) (Math.random() * 10);
			int num2 = (int) (Math.random() * 10);

			if (num1 < num2) {
				int temp = num1;
				num1 = num2;
				num2 = temp;
			}

			String Sanswer = JOptionPane.showInputDialog(null, num1 + " - " + num2 + " يساوى كام ؟");

			if (!Sanswer.matches("\\d+") || Sanswer.isEmpty()) {
				JOptionPane.showMessageDialog(null, "لازم تدخل رقم ");
			}
			else {
				int answer = Integer.parseInt(Sanswer);

				if (answer == num1 - num2) {
					reply = " شــــــــــــاطـــر";
					correctCount++;
				}
				else {
					reply = "إجابتك غلط يا حلو  " + "و الصح  " + (num1 - num2);
				}

				JOptionPane.showMessageDialog(null, reply);
				output += "\n " + num1 + "-" + num2 + "=" + answer + reply;
						count++;
}


		}

		JOptionPane.showMessageDialog(null, "your Correct answers is " + correctCount + "\n" + output);
	}
}

بس فيه حاجة غلط

أنا مثلا عامل خمس مرات للعد

بيلغى المرات إللى بيتم الإدخال فيها فارغ أو حروف

الحل أيه ^_^

تعديل

الحل إدخال الكونتر داخل الـ else

تم تعديل هذه المشاركة بواسطة الشريف أحمد في 20 مايو 2009 في 19:33

#8

يرجى استخدام اللغة العربية الفصحى

تحياتي

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

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

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

728x90.png

#9

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

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

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

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

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

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

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

/index.php?showtopic=29343

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

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

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

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

728x90.png

#10

أعتذر عن هذا الخطأ

لكن لى سؤال آخر عن لماذا اللغة العربية تظهر بشكل غير متناسق داخل Message dialog ؟؟

تم تعديل هذه المشاركة بواسطة الشريف أحمد في 21 مايو 2009 في 16:24

#11

هل ممكن أن توضح أكثر؟

لا يبدو لي أن هناك أية مشاكل

تحياتي

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

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

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

728x90.png

#12

لاحظ إن الأرقام معكوسة

يعنى مكتوب

3-6

و عند فصل الأرقام فى سطر و الكلام العربى فى سطر تظهر صحيحة

output += "n " + num1 + "-" + num2 + "=" + answer + "n" + reply + "n";

الصورتين فى المرفقات

post-170824-1242927995_thumb.png

post-170824-1242928475_thumb.png

تم تعديل هذه المشاركة بواسطة الشريف أحمد في 21 مايو 2009 في 20:55

#13

:nose_pick:

أعتذر، كانت إجابتي خاطئة، لذلك أزلتها

تم تعديل هذه المشاركة بواسطة herch في 21 مايو 2009 في 21:16

#14

على ما يبدو أن الجافا تعتبر الأرقام حروف انجليزية لهذا تتعامل معها على أساس أنها ltr

ويبدو أن الجافا لديها مشكلة في الدمج بين اللغات rtl و ltr

ربما String هي من لديها المشكلة

لكني غير متأكد

تحياتي

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

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

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

728x90.png

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