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

كود آله حاسبه قمت بعمله منذ شهرين تقريبا

بدأه شاب مسلم في 16 يونيو 2004 · 10 رد · 1,836 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
/*
	Programmer:Shab Muslem
  Date Written:  24.03.2004

  Design and implement, in Java, a simple working calculator with
  a friendly user interface using your choice of the Java layout managers.
  This should incorporate a button for each of the numbers 0 to 9,
  a button for the = sign and buttons for the +, - , / ,* operators.
  A read only display area will also be needed.
  The calculator must be fully functional.
  Divide by zero must be trapped.
  Feel free to add any extra functionality.
*/


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class  calculator4  extends JFrame
{

	private JTextField result; // create a JLabel
	private JButton btn0n,btn1n,btn2n, btn3n,btn4n ,btn5n ,btn6n ,btnBin ,btnDecimal;
	private JButton btn7n ,btn8n ,btn9n,btnPower,btnC,btnBackspace;
	private JButton	btnPlus ,btnMin ,btnMul ,btnD, btnEqual,btnDec ,btnsqrt,btnsqrd ,btnNeg;
	double opt1, opt2;
	String sign;
	String num1= "";


	private JPanel resultpanel, buttonpanel;

	public calculator4()
	{
 	 super (" Shab Muslem  calculator's ");

 	 Container c = getContentPane ();
 	 resultpanel = new JPanel();
 	 result = new JTextField("0                                                                                                                                       ");

 	 result.setBackground(Color.yellow);
 	 result.setFont(new Font( "Serif", Font.BOLD,14));
 	 resultpanel.add (result);
 	 c.setLayout(new BorderLayout() );
 	 c.add (resultpanel,BorderLayout.NORTH);

 	 buttonpanel = new JPanel(new GridLayout (6,4) );
 	 c.add (buttonpanel,BorderLayout.CENTER);

 	 btn7n = new JButton("7");
 	 buttonpanel.add (btn7n);
 	 btn8n = new JButton("8");
 	 buttonpanel.add (btn8n);
 	 btn9n = new JButton("9");
 	 buttonpanel.add (btn9n);
 	 btnD = new JButton("/");
 	 btnD.setBackground(Color.white);
 	 buttonpanel.add (btnD);
 	 btn4n = new JButton("4");
 	 buttonpanel.add (btn4n);
 	 btn5n = new JButton("5");
 	 buttonpanel.add (btn5n);
 	 btn6n = new JButton("6");
 	 buttonpanel.add (btn6n);
 	 btnMul = new JButton("*");
 	 btnMul.setBackground(Color.white);
 	 buttonpanel.add (btnMul);
 	 btn1n = new JButton("1");
 	 buttonpanel.add (btn1n);
 	 btn2n = new JButton("2");
 	 buttonpanel.add (btn2n);
 	 btn3n = new JButton("3");
 	 buttonpanel.add (btn3n);
 	 btnMin = new JButton("-");
 	 btnMin.setBackground(Color.white);
 	 buttonpanel.add (btnMin);
 	 btn0n = new JButton("0");
 	 buttonpanel.add (btn0n);
 	 btnNeg = new JButton("+/-");
 	 btnNeg.setBackground(Color.white);
 	 buttonpanel.add (btnNeg);
 	 btnDec = new JButton(".");
 	 btnDec.setBackground(Color.white);
 	 buttonpanel.add (btnDec);
 	 btnPlus = new JButton("+");
 	 btnPlus.setBackground(Color.white);
 	 buttonpanel.add (btnPlus);
 	 btnsqrt = new JButton("square root");
 	 btnsqrt.setBackground(Color.green);
 	 buttonpanel.add (btnsqrt);
 	 btnsqrd = new JButton("sqrd");
 	 btnsqrd.setBackground(Color.green);
 	 buttonpanel.add (btnsqrd);
 	 btnPower = new JButton("power");
 	 btnPower.setBackground(Color.green);
 	 buttonpanel.add (btnPower);
 	 btnEqual = new JButton("=");
 	 btnEqual.setBackground(Color.cyan);
 	 buttonpanel.add (btnEqual);

 	 btnBin = new JButton("Decimal To Binary");
 	 btnBin.setBackground(Color.green);
 	 buttonpanel.add (btnBin);
 	 btnDecimal = new JButton("Binary To Decimal");
 	 btnDecimal.setBackground(Color.green);
 	 buttonpanel.add (btnDecimal);
 	 btnBackspace = new JButton("Backspace");
 	 btnBackspace.setBackground(Color.green);
 	 buttonpanel.add (btnBackspace);
 	 btnC = new JButton("C");
 	 btnC.setBackground(Color.pink);
 	 buttonpanel.add (btnC);

 	 ButtonHandler handler = new ButtonHandler();
 	 btn0n.addActionListener( handler );
 	 btn1n.addActionListener( handler );
 	 btn2n.addActionListener( handler );
 	 btn3n.addActionListener( handler );
 	 btn4n.addActionListener( handler );
 	 btn5n.addActionListener( handler );
 	 btn6n.addActionListener( handler );
 	 btn7n.addActionListener( handler );
 	 btn8n.addActionListener( handler );
 	 btn9n.addActionListener( handler );
 	 btnDec.addActionListener( handler );
 	 btnNeg.addActionListener( handler );
 	 btnC.addActionListener( handler );

 	 OperatorButtonHandler handleOperator = new OperatorButtonHandler();
 	 btnD.addActionListener( handleOperator );
 	 btnMul.addActionListener( handleOperator );
 	 btnMin.addActionListener( handleOperator );
 	 btnPlus.addActionListener( handleOperator );
 	 btnsqrt.addActionListener( handleOperator );
 	 btnsqrd.addActionListener( handleOperator );
 	 btnPower.addActionListener( handleOperator );
 	 btnBackspace.addActionListener( handleOperator );
 	 btnBin.addActionListener( handleOperator );
 	 btnDecimal.addActionListener( handleOperator );

 	 OperatorButtonHandler2 handleOperator2 = new OperatorButtonHandler2();
 	 btnEqual.addActionListener( handleOperator2 );

 	 setSize ( 560,310 );
 	 show();
	}

	public static void main (String args[])
	{
  calculator4 app = new calculator4();

  app.addWindowListener( new WindowAdapter ()
  {public void windoClosing ( WindowEvent e ){System.exit (0);}
  } );
	}

	private class ButtonHandler implements ActionListener
	{
  public void actionPerformed(ActionEvent ae)
  {

 	 String str = ae.getActionCommand();

 	 if (str.equals("0") )
 	 {
    num1=num1+ "0";
    result.setText(""+ num1);
 	 }
   	 else if (str.equals("1") )
   	 {
    num1=num1+ "1";
    result.setText(""+ num1);
 	 }
   	 else if (str.equals("2") )
   	 {
    num1=num1+ "2";
    result.setText(""+ num1);
 	 }
 	 else if (str.equals("3") )
 	 {
    num1=num1+ "3";
    result.setText(""+ num1);
 	 }
 	 else if (str.equals("4") )
 	 {
    num1=num1+ "4";
    result.setText(""+ num1);
 	 }
 	 else if (str.equals("5") )
 	 {
    num1=num1+ "5";
    result.setText(""+ num1);
 	 }
 	 else if (str.equals("6") )
 	 {
    num1=num1+ "6";
    result.setText(""+ num1);
 	 }
 	 else if (str.equals("7") )
 	 {
    num1=num1+ "7";
    result.setText(""+ num1);
 	 }
 	 else if (str.equals("8") )
 	 {
    num1=num1+ "8";
    result.setText(""+ num1);
 	 }

 	 else if (str.equals("9") )
 	 {
    num1=num1+ "9";
    result.setText(""+ num1);
 	 }
 	 else if (str.equals(".") )
 	 {
    num1=num1+ ".";
    result.setText(""+ num1);
 	 }
 	 else if (str.equals("+/-") )
 	 {
    num1=num1+ "-";
    result.setText(""+ num1);
 	 }
 	 else if (str.equals("power") )
 	 {
    num1=num1+ "power";
    result.setText(""+ num1);
 	 }
 	 else if (str.equals("C") )
 	 {
    num1="";
    result.setText("0");
 	 }
  }
	}

	private class OperatorButtonHandler implements ActionListener
	{
  public void actionPerformed(ActionEvent ae)
  {
 	 String str1 = ae.getActionCommand();

 	 if (str1.equals("+") )
 	 {
    opt1= Double.parseDouble(num1);
    result.setText( "+");
    sign = "+";
    num1="";
 	 }
 	 else if (str1.equals("-") )
 	 {
    opt1=Double.parseDouble(num1);
    result.setText( "-");
    sign = "-";
    num1="";
 	 }
 	 else if (str1.equals("*") )
 	 {
    opt1=Double.parseDouble(num1);
    result.setText( "*");
    sign = "*";
    num1="";
 	 }
 	 else if (str1.equals("/") )
 	 {
    opt1=Double.parseDouble(num1);
    result.setText( "/");
    sign = "/";
    num1="";
 	 }

 	 else if (str1.equals("square root") )
 	 {
    opt1=Double.parseDouble(num1);
    double a =Math.sqrt( opt1 );
    result.setText( ""+a);
    num1="";
 	 }

 	 else if (str1.equals("sqrd") )
 	 {
    opt1=Double.parseDouble(num1);
    double a = opt1*opt1;
    result.setText( ""+a);
    num1="";
 	 }

 	 else if (str1.equals("power") )
 	 {
    opt1=Double.parseDouble(num1);
    result.setText( "power");
    sign = "power";
    num1="";
 	 }

 	 else if (str1.equals("Backspace") )
 	 {
    if (num1.length() > 1)
    {
   	 num1=num1.substring(0,num1.length()-1);
   	 result.setText( ""+num1);
    }
    else
    {
   	 num1="";
   	 result.setText("0");
    }
 	 }

 	 else if (str1.equals("Decimal To Binary") )
 	 {
    String	m="";
    double b =Double.parseDouble(num1);
    int a  = (int)(b);
    int number = a;
    if(b < 1)
    {
   	 result.setText( "The decimal number   "+b+ "  smaller than one. Please Re-Enter number larger than one.  " );
   	 num1="";
    }
    else
    {

   	 while (a > 0)
   	 {
      if ( a%2==0)
      {
     	 a = a/2;
     	 m= "0" +m;
      }
      else
      {
     	 a = a/2;
     	 m ="1"+ m;
      }
   	 }
   	 result.setText( "The decimal number   "+number+ "   =  " +m+ "   in Binary  ");
   	 num1="";
    }
 	 }

 	 else if (str1.equals("Binary To Decimal") )
 	 {
    String theNum1 = num1;
    int a  =Integer.parseInt(num1);
    int i,sum=0,count, m;

    boolean isNotB = false;

    int lengthNum =num1.length();

    while( num1.length() !=0)
    {
   	 String ferstNum = num1.substring(0,1);
   	 int Nub  =Integer.parseInt(ferstNum);

   	 if(num1.length() !=0)
      num1=num1.substring(1,num1.length());

   	 if(Nub !=0 && Nub !=1)
      isNotB = true;
    }
    if(isNotB == true)
   	 result.setText( " This number   "  +a+ "    is  not  binary  number. Please Re-Enter binary number   " );

    else
    {
   	 count = theNum1.length();

   	 for ( i=(count);i>=0;i--)
   	 {
      m =a/ (int)(Math.pow(10,i));
      if (m%2 ==1)
      sum += Math.pow(2,i);
   	 }
   	 result.setText( "The binary number   "+a+ "   =  "+ +sum+ "   in Decimal  ");
   	 num1="";
    }
 	 }

  }
	}

	private class OperatorButtonHandler2 implements ActionListener
	{
  public void actionPerformed(ActionEvent ae)
  {
 	 String str2 = ae.getActionCommand();
 	 opt2= Double.parseDouble(num1);

 	 if ( sign.equals("+"))
 	 {
    double a = opt1 + opt2;
    result.setText( "  "+ opt1+"  " +sign+"  "+ opt2+"  =  "+ a   );
    num1="";
 	 }
 	 else if ( sign.equals("-"))
 	 {
    double a = opt1 - opt2;
    result.setText(  "  "+ opt1+"  " +sign+"  "+ opt2+"  =  "+ a  );
    num1="";
 	 }
 	 else if ( sign.equals("*"))
 	 {
    double a = opt1 * opt2;
    result.setText(  "  "+ opt1+"  " +sign+"  "+ opt2+"  =  "+ a );
    num1="";
 	 }
 	 else if ( sign.equals("power"))
 	 {
    double a = Math.pow(opt1, opt2) ;
    result.setText(  "  "+ opt1+"  " +sign+"  "+ opt2+"  =  "+ a );
    num1="";
 	 }
 	 else if ( sign.equals("/"))
 	 {
    if ( opt2 == 0)
    {
   	 result.setText("Cannot divide by zero.");
   	 num1="";
    }
    else
    {
   	 double a = opt1 / opt2;
   	 result.setText(  "  "+ opt1+"  " +sign+"  "+ opt2+"  =  "+ a  );
   	 num1="";
    }
 	 }
  }
	}
}

تم تعديل هذه المشاركة بواسطة شاب مسلم في 16 يونيو 2004 في 22:51

#2

انتظر رد وتقييم الاخوة الاعضاء على برنامجي هذا

وبارك الله فيكم

#3

والله الة حاسبة حلوة الله يعطيك العافية

لست متواجد بشكل يومي

#4

انا يا أخي لم ينفذ البرنامج معي يا ريت تفيديني

الخطأ الي بيطلعليي هو

F:\Program Files\Xinox Software\JCreator LE\MyProjects\calc\cal\calc.java:20: class calculator4 is public, should be declared in a file named calculator4.java

public class calculator4 extends JFrame

^

نموت وتحيا ...................فلسطين .

#5
اقتباس
F:\Program Files\Xinox Software\JCreator LE\MyProjects\calc\cal\calc.java

يا اخي انت مخزن الملف باسم calc.java

والبرنامج اسمه calculator4.java

public class  calculator4/*Filename*/  extends JFrame

بتحل المشكلة عن طريق تخزين الملف باسم calculator4.java

لست متواجد بشكل يومي

#6

برنامج ممتاز...واحلا ما فيه هو اظهار العمليه كامله مع النتيجه

احبذ ان يطور البرنامج لكي يقوم بعمليات حسابيه على النتيجه المسبقه

على سبيل المثال

1+1=2
+1=3

شكرًا على الجهد

#7

شكرا لك اخي شاب مسلم... نتمنى منك المزيد من العطاء

بعد ان تتم مناقشة حول البرنامج سوف انقله الى الارشيف

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#8

للرفع

وجزى الله خيرا اخواني الذي شجعوني

#9

يعطيك العافية و جهد مبارك والى مزيد من العطاء و التقدم

وجزاك الله خيرا

استغفر الله واتوب اليه

اللهم اتنا في الدنيا حسنة وفي الاخرة حسنة وقنا عذاب النار

لااله الا انت سبحانك اني كنت من الظالمين

اللهم اني اسألك الهدى والتقى والعفاف والغنى

اللهم استجب دعـــــــــــــائي الصالح يارب

#10

الله يعطيك الف عافية مجهوود رائع ...

والصراحة انا بستفيد من هيك مشاريع لانو حالية عم نستخدم ببرامجي gui ولكن بال ــNetBeans IDE بالتالي تنقصني بعض المعلومات

شكرا الك

الله معك

#11

اخواني الكرام هذا البرنامج قمت به اثناء دراستي في السنة الاولى في الكليه السيمي ستر الثاني

وكان هذا في بداية عام 2004

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

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

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

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

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