بالجــافا : برنامج آلة حاسبة (standerd )

الكاتب : alhammady   المشاهدات : 6,063   الردود : 6    ‏2004-04-29
      مشاركة رقم : 1    ‏2004-04-29
  1. alhammady

    alhammady عضو

    التسجيل :
    ‏2003-07-09
    المشاركات:
    119
    الإعجاب :
    0
    السلام عليكم ورحمة الله وبركاتة …..

    الجافا في الحقيقة من اللغات التي ابهرت الجميع كما تعرفون
    ولكني في بدايات تعلمي لهذة اللغة وهذا برنامج لعمل الة حاسبة
    ولكم المجال في تطويرها وهنا اعتمدت على مكتبة ال (Swing)
    وعلى المحرر jdk 1.3 والذي افضلة عن النسخة الرابعة.

    وهنا حاولت ان اجعل كل زر له متغير خاص به من اجل الوضوح
    وكذلك كانت المستمعات (Listener) على مجموعات حسب المهمة
    فالاعداد لها مستمع واحد وكذلك العمليات وهكذا..

    علما بان الكلاس الرئيسي هو Mycalc والذي سنعمل له ترجمة(compiling).
    [align=left]

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    class Mycalc extends JFrame {
    public int flag=0;
    public int tpoint=0;
    public int test=0;
    public double cons=0;
    JTextField txt=new JTextField(14);
    JButton b1 =new JButton(" 1 ");
    JButton b2 =new JButton(" 2 ");
    JButton b3 =new JButton(" 3 ");
    JButton b4 =new JButton(" 4 ");
    JButton b5 =new JButton(" 5 ");
    JButton b6 =new JButton(" 6 ");
    JButton b7 =new JButton(" 7 ");
    JButton b8 =new JButton(" 8 ");
    JButton b9 =new JButton(" 9 ");
    JButton b0 =new JButton(" 0 ");
    JButton plus1 =new JButton(" + ");
    JButton minus1 =new JButton(" - ");
    JButton mul1 =new JButton(" * ");
    JButton div1 =new JButton(" / ");
    JButton equal1 =new JButton(" = ");
    JButton bs =new JButton(" BackSpace ");
    JButton ce =new JButton(" CE ");
    JButton cc =new JButton(" CC ");
    JButton sqrt =new JButton("Sqrt");
    JButton mode =new JButton(" % ");
    JButton revers =new JButton(" 1/X ");
    JButton chang =new JButton("+-");
    JButton point =new JButton(" . ");
    Mycalc(){
    Container c =getContentPane();
    c.setLayout(new GridLayout(1,4,1,1));

    /***************** adding the the tooles to the containers ***********/
    Container c1 =getContentPane();
    c1.setLayout(new FlowLayout(FlowLayout.CENTER,10,10));
    c1.add(txt);

    Container c2 =getContentPane();
    c2.setLayout(new FlowLayout(FlowLayout.CENTER,10,10));

    c2.add(bs);
    c2.add(ce);
    c2.add(cc);

    c2.add(b1);
    c2.add(b2);
    c2.add(b3);
    c2.add(div1);
    c2.add(sqrt);

    c2.add(b4);
    c2.add(b5);
    c2.add(b6);
    c2.add(mul1);
    c2.add(mode);

    c2.add(b7);
    c2.add(b8);
    c2.add(b9);
    c2.add(minus1);
    c2.add(revers);

    c2.add(b0);
    c2.add(chang);
    c2.add(point);
    c2.add(plus1);
    c2.add(equal1);

    /********************** adding listeners *********************/


    ButtonListener1 bl1=new ButtonListener1();
    b1.addActionListener(bl1);
    b2.addActionListener(bl1);
    b3.addActionListener(bl1);
    b4.addActionListener(bl1);
    b5.addActionListener(bl1);
    b6.addActionListener(bl1);
    b7.addActionListener(bl1);
    b8.addActionListener(bl1);
    b9.addActionListener(bl1);
    b0.addActionListener(bl1);

    ButtonListener2 bl2=new ButtonListener2();
    plus1.addActionListener(bl2);
    minus1.addActionListener(bl2);
    mul1.addActionListener(bl2);
    div1.addActionListener(bl2);
    equal1.addActionListener(bl2);


    ButtonListener3 bl3=new ButtonListener3();
    point.addActionListener(bl3);
    chang.addActionListener(bl3);


    ButtonListener4 bl4=new ButtonListener4();
    sqrt.addActionListener(bl4);
    mode.addActionListener(bl4);
    revers.addActionListener(bl4);


    ButtonListener5 bl5=new ButtonListener5();
    bs.addActionListener(bl5);
    ce.addActionListener(bl5);
    cc.addActionListener(bl5);

    /********************* program looked ************************/

    setTitle("CALCULATION PRO...ALHAMMADY");
    txt.setForeground(Color.red);
    txt.setFont(new Font("Dialog",Font.BOLD,18));
    bs.setBackground(Color.pink);
    cc.setBackground(Color.pink);
    ce.setBackground(Color.pink);
    setSize(310,270);
    setVisible(true);
    setResizable(false);
    c1.setBackground(SystemColor.desktop);
    }
    public static void main(String args[]){
    int x=1;
    new Mycalc();
    }
    class ButtonListener1 implements ActionListener
    {
    public void actionPerformed(ActionEvent e){
    Object obj=e.getSource();
    String t1;
    String ss;
    int x;

    if (obj==b1)
    {
    t1=txt.getText();
    x=t1.length();
    ss=t1+"1";
    if (test==1){
    ss="1";
    test=0;
    }
    txt.setText(""+ss);
    }
    if (obj==b2)
    {
    t1=txt.getText();
    x=t1.length();
    ss=t1+"2";
    if (test==1){
    ss="2";
    test=0;
    }
    txt.setText(""+ss);
    }
    else if (obj==b3)
    {
    t1=txt.getText();
    x=t1.length();
    ss=t1+"3";
    if (test==1){
    ss="3";
    test=0;
    }
    txt.setText(""+ss);
    }
    else if (obj==b4)
    {
    t1=txt.getText();
    x=t1.length();
    ss=t1+"4";
    if (test==1){
    ss="4";
    test=0;
    }
    txt.setText(""+ss);
    }
    else if (obj==b5)
    {
    t1=txt.getText();
    x=t1.length();
    ss=t1+"5";
    if (test==1){
    ss="5";
    test=0;
    }
    txt.setText(""+ss);
    }
    else if (obj==b6)
    {
    t1=txt.getText();
    x=t1.length();
    ss=t1+"6";
    if (test==1){
    ss="6";
    test=0;
    }
    txt.setText(""+ss);
    }
    else if (obj==b7)
    {
    t1=txt.getText();
    x=t1.length();
    ss=t1+"7";
    if (test==1){
    ss="7";
    test=0;
    }
    txt.setText(""+ss);
    }
    else if (obj==b8)
    {
    t1=txt.getText();
    x=t1.length();
    ss=t1+"8";
    if (test==1){
    ss="8";
    test=0;
    }
    txt.setText(""+ss);
    }
    else if (obj==b9)
    {
    t1=txt.getText();
    x=t1.length();
    ss=t1+"9";
    if (test==1){
    ss="9";
    test=0;
    }
    txt.setText(""+ss);
    }
    else if (obj==b0)
    {
    t1=txt.getText();
    x=t1.length();
    if (x>0)
    {
    ss=t1+"0";
    if (test==1){
    ss="0";
    test=0;
    }
    txt.setText(""+ss);
    }
    }
    }}

    class ButtonListener2 implements ActionListener
    {
    public void actionPerformed(ActionEvent e){
    Object obj=e.getSource();
    double i;
    String t1;
    if (flag==0)
    { t1=txt.getText();
    i=Double.parseDouble(t1);
    cons = i;
    }
    else if(flag==1){
    test=1;
    t1=txt.getText();
    i=Double.parseDouble(t1);
    cons = cons +i;
    txt.setText(""+cons);
    }
    else if (flag==2)
    { t1=txt.getText();
    i=Double.parseDouble(t1);
    double a=cons;
    if (a==0)
    {cons=i;
    }
    else
    {cons=cons-i;
    }
    txt.setText(""+cons);
    }
    else if(flag==3){
    test=1;
    t1=txt.getText();
    i=Double.parseDouble(t1);
    cons = cons *i;
    txt.setText(""+cons);
    }
    else if(flag==4){
    flag=0;
    test=1;
    t1=txt.getText();
    i=Double.parseDouble(t1);
    String tt;
    if(i==0){
    tt="CANNOT DIVID BY ZERO";
    txt.setText(""+tt);}
    if(i!=0&&cons!=0){
    cons = cons /i;
    txt.setText(""+cons);
    }
    }



    /***************************** oprations buttuns actions ***************************/
    if (obj==plus1)
    {
    flag=1;
    test=1;
    tpoint=0; }


    else if (obj==minus1)
    { flag=2;
    test=1;
    tpoint=0; }

    else if (obj==mul1)
    { flag=3;
    test=1;
    tpoint=0; }
    else if (obj==div1)
    { flag=4;
    test=1;
    tpoint=0; }
    else if (obj==equal1)
    { flag=0;
    test=1; }
    }}


    class ButtonListener3 implements ActionListener
    {
    public void actionPerformed(ActionEvent e){
    Object obj=e.getSource();
    double i;
    String t1;
    String ss;
    if (obj==point)
    {
    if(tpoint==0){
    t1=txt.getText();
    ss=t1+".";
    if (test==1){
    ss="."; }
    test=0;
    tpoint=1;
    txt.setText(""+ss); }
    }

    if (obj==chang)
    {
    t1=txt.getText();
    int r=t1.length();
    if (r>0)
    {
    i=Double.parseDouble(t1);
    i =i*-1;
    txt.setText(""+i);
    }


    }
    }}

    class ButtonListener4 implements ActionListener
    {
    public void actionPerformed(ActionEvent e){
    Object obj=e.getSource();
    double i;
    String t1;
    if (obj==revers)
    { t1=txt.getText();
    int r=t1.length();
    if (r>0)
    {
    i=Double.parseDouble(t1);
    cons=1/i;
    test=0;
    txt.setText(""+cons);
    }


    }
    if (obj==mode)
    { t1=txt.getText();
    i=Double.parseDouble(t1);
    if(flag==1)cons=cons+((i/100)*cons);
    if(flag==2)cons=cons-((i/100)*cons);
    if(flag==3)cons=cons*((i/100)*cons);
    if(flag==4)cons=cons+((i/100)*cons);
    flag=0;
    test=0;
    txt.setText(""+cons);


    }
    if (obj==sqrt)
    { t1=txt.getText();
    int r=t1.length();
    if (r>0)
    {
    i=Double.parseDouble(t1);
    cons=Math.sqrt(i);
    test=0;
    txt.setText(""+cons);
    }
    }


    }}

    class ButtonListener5 implements ActionListener
    {
    public void actionPerformed(ActionEvent e){
    Object obj=e.getSource();
    double i;
    String t1;
    if (obj==ce)
    { txt.setText("");
    }
    if (obj==cc)
    {
    flag=0;
    cons=0;
    test=0;
    tpoint=0;
    txt.setText("");
    }
    if (obj==bs)
    {
    String back="";
    int x,z;
    t1=txt.getText();
    for(x=0;x<t1.length()-1;x++){
    back=back+t1.charAt(x);
    }


    txt.setText(""+back);
    }

    }}


    }




    أرجوا تجريب المثال واي ملاحظات تسجيلها

    سلاااااااااااااام

    أخوكم : الحمادي.
     
  2.   مشاركة رقم : 2    ‏2004-04-29
  3. نجيب المجيدي

    نجيب المجيدي عضو فعّال

    التسجيل :
    ‏2003-12-08
    المشاركات:
    527
    الإعجاب :
    0
    البرنامج جميل لكن لما حتشوف الكود بالـ vb راح تكره الجافا
    هاهاهاها

    طبعاً أشكرك على المجهود بس انت أكيد معي في أن الوقت المهدور في استيراد المكتبات و تعريف اللسنر الخاص بتلقي الأحداث و إنشاء الواجهة كل هذا ملوش داعي
     
  4.   مشاركة رقم : 3    ‏2004-04-30
  5. alhammady

    alhammady عضو

    التسجيل :
    ‏2003-07-09
    المشاركات:
    119
    الإعجاب :
    0
    لا بس فكر معي انت
    الفجوال اساسا بتعمل ايش .............
    انت بالجافا بتبني كل شئ بنفسك
    يعني تحس بمعنى البرمجة

    في الفجوال كل شئ جاهز .

    يعني لغة تعلم الكسل.
     
  6.   مشاركة رقم : 4    ‏2004-04-30
  7. نجيب المجيدي

    نجيب المجيدي عضو فعّال

    التسجيل :
    ‏2003-12-08
    المشاركات:
    527
    الإعجاب :
    0
    لو فكرنا بهذا الشكل راح أقول انك في الجافا أيضاً ما تعمل شي , انت تستدعي برامج جاهزة في المكتبات , يعني انت ما تستطيع تعمل شي مرأي بدون كتبة awt وكذلك تلقي الأحداث وغيرها الكثير ...

    لو فكرنا بهذا الشكل يا عزيزي الحمادي بنرجع نشتغل بلغة الآله !!!
    :)
     
  8.   مشاركة رقم : 5    ‏2004-05-01
  9. alhammady

    alhammady عضو

    التسجيل :
    ‏2003-07-09
    المشاركات:
    119
    الإعجاب :
    0
    بس بهذا المنطق

    ما كناش سمعنا شئ اسمة لغة الجافا بجانب الفجوال

    الا ان لها حظورها الواسع ومجالاتها الخاصة التي تعقد الفجوال فيها

    خاصة على الوب.
     
  10.   مشاركة رقم : 6    ‏2004-05-01
  11. نجيب المجيدي

    نجيب المجيدي عضو فعّال

    التسجيل :
    ‏2003-12-08
    المشاركات:
    527
    الإعجاب :
    0
    يا سلام عليك اخي العزيز
    على فكرة أنا من عشاق الجافا , لكن أريد أن أوصل شيء وهو :

    أننا نستخدم الفيجول لأغراض كثيرة ولكننا نلجأ لاستخدام لغة كالجافا أو السي ++ عندما لا تستطيع vb القيام بالمهمة
    يعني باختصار الجافا لها ما يميزها ليس على الـ vb فقط ولكن على الكثير من اللغات ألأخرى مثل كونها تعمل على أي معالج ولا تهتم بالنظام إطلاقاً ولكن لن يكون ذلك التميز موجوداً في حال أردنا عمل برنامج يظهر رسالة في أوقات الأذان مثلاً :)

    تحياتي أخي الحمادي و أشكرك على إثارتك لهذه المواضيع البرمجية ولك خالص التحية
     
  12.   مشاركة رقم : 7    ‏2004-05-02
  13. alhammady

    alhammady عضو

    التسجيل :
    ‏2003-07-09
    المشاركات:
    119
    الإعجاب :
    0
    والله مشكور استاذي على الافادة

    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
     

مشاركة هذه الصفحة