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

طلب مساعدة في تحويل برنامج من vb لل سي

مغلق
بدأه hymss في 21 ديسمبر 2011 · 7 رد · 342 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

انا طالب جامعي ادرس لغتي ++C و VB المهم الدكتور حق السي عمره ما اعطانا تطبيقات على الكمبيوتر وكل شغله على الورق وكمان كلها مبادي طلب منا برنامج عن حساب فواتير الكهرباء سويته على الفيجوال ولكن رفضه وطلبه على السي المشكله اني ما اعرف كيف اشتغل على السي ولا حتى كيف انشي مشروع جديد وما هناك وقت للبحث والقراءة المشروع مطلوب السبت القادم تكفون ساعدوني الكود جاهز على الفيجوال بس ابغى كيف انشي مشروع على السي وكيف احول الكود ليتناسب مع اللغة وهذا هو الكود كاملا

    Dim oldR, newR, DiffR, Fac, x, ReP, NofP As Double
        Dim day As Byte

        oldR = CDbl(Me.oldreading.Text)   القراءه السابقة
        newR = Me.newreading.Text      القراءة الحاليه
        day = Me.tdays.Text          عدد الايام

        DiffR = newR - oldR

        Fac = (day * 1000) / 30      قاعدة اخذتها من واحد خبرة في حساب الفواتير


        NofP = DiffR \ Fac



        Select Case NofP
            Case Is >= 10
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100) + ((Fac * 20) / 100) + ((Fac * 22) / 100) + ((Fac * 24) / 100))
                ReP = ((DiffR - (10 * Fac)) * 26) / 100
                x = x + ReP
            Case Is = 9
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100) + ((Fac * 20) / 100) + ((Fac * 22) / 100))
                ReP = ((DiffR - (9 * Fac)) * 24) / 100
                x = x + ReP
            Case Is = 8
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100) + ((Fac * 20) / 100))
                ReP = ((DiffR - (8 * Fac)) * 22) / 100
                x = x + ReP

            Case Is = 7
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100))
                ReP = ((DiffR - (7 * Fac)) * 20) / 100
                x = x + ReP

            Case Is = 6
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100))
                ReP = ((DiffR - (6 * Fac)) * 15) / 100
                x = x + ReP

            Case Is = 5
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((1 * Fac) * 12) / 100))
                ReP = ((DiffR - (5 * Fac)) * 12) / 100
                x = x + ReP
            Case Is = 4
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100))
                ReP = ((DiffR - (4 * Fac)) * 12) / 100
                x = x + ReP
            Case Is = 3
                x = ((((2 * Fac) * 5) / 100) + (((1 * Fac) * 10) / 100))
                ReP = ((DiffR - (3 * Fac)) * 10) / 100
                x = x + ReP
            Case Is = 2
                x = ((((2 * Fac) * 5) / 100))
                ReP = ((DiffR - (2 * Fac)) * 10) / 100
                x = x + ReP
            Case Is = 1
                x = ((((1 * Fac) * 5) / 100))
                ReP = ((DiffR - (1 * Fac)) * 5) / 100
                x = x + ReP
            Case Is = 0
                x = ((DiffR * 5) / 100)


        End Select


        Me.cc.Text = "قيمة الاستهلاك" & " " & FormatNumber(x, 2) & " " & "ريال سعودي "

تم تعديل هذه المشاركة بواسطة hymss في 21 ديسمبر 2011 في 07:36

#2

ممكن توضح لنا هذا الكود ووظيفتة وما شبة

 x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100) + ((Fac * 20) / 100) + ((Fac * 22) / 100) + ((Fac * 24) / 100))

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#3
محمد ابوزايد كتب:

ممكن توضح لنا هذا الكود ووظيفتة وما شبة

 x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100) + ((Fac * 20) / 100) + ((Fac * 22) / 100) + ((Fac * 24) / 100))

هذا الكود لحساب قيمة الفاتورة حسب الشرائح ... تجد عندك في الفاتورة مكتوب مثلا من 1 إلى 1000 بـ 5 هلالات وهكذا فحسب ما صرفت من الكيلووات يتم احتساب فاتورتك

#4

الكود تم تحويلة فى حدود فهمى للبرنامج وتم تحويل كل الشروط كما هى

تحياتى العطرة .....

#include <iostream>
using namespace std;

int main ()
{

    ///////////////////////////
        double oldR, newR, DiffR, Fac, x, ReP, NofP;
        int day ;
        cout << "Enter Previous Reading: ";
        cin >> oldR;    //oldR = CDbl(Me.oldreading.Text)   القراءه السابقة
        cout << "Enter Courrent Reading: ";
        cin >> newR;    //newR = Me.newreading.Text      القراءة الحاليه
        cout << "Enter Days Count: ";
        cin >> day;     // = Me.tdays.Text          عدد الايام

        DiffR = newR - oldR;

        Fac = (day * 1000) / 30; //      قاعدة اخذتها من واحد خبرة في حساب الفواتير


        NofP = (int)DiffR % (int)Fac; // \ == %



        switch((int)NofP)
        {

            case  (10):
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100) + ((Fac * 20) / 100) + ((Fac * 22) / 100) + ((Fac * 24) / 100));
                ReP = ((DiffR - (10 * Fac)) * 26) / 100;
                x = x + ReP;
                break;

            case  (9) :
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100) + ((Fac * 20) / 100) + ((Fac * 22) / 100));;
                ReP = ((DiffR - (9 * Fac)) * 24) / 100;
                x = x + ReP;
                break;

            case (8):
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100) + ((Fac * 20) / 100));
                ReP = ((DiffR - (8 * Fac)) * 22) / 100;
                x = x + ReP;
                break;

            case (7):
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100));
                ReP = ((DiffR - (7 * Fac)) * 20) / 100;
                x = x + ReP;
                break;

            case (6):
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100));
                ReP = ((DiffR - (6 * Fac)) * 15) / 100;
                x = x + ReP;
                break;

            case (5):
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((1 * Fac) * 12) / 100));
                ReP = ((DiffR - (5 * Fac)) * 12) / 100;
                x = x + ReP;
                break;

            case (4):
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100));
                ReP = ((DiffR - (4 * Fac)) * 12) / 100;
                x = x + ReP;
                break;

            case (3):
                x = ((((2 * Fac) * 5) / 100) + (((1 * Fac) * 10) / 100));
                ReP = ((DiffR - (3 * Fac)) * 10) / 100;
                x = x + ReP;
                break;

            case (2):
                x = ((((2 * Fac) * 5) / 100));
                ReP = ((DiffR - (2 * Fac)) * 10) / 100;
                x = x + ReP;
                break;

            case (1):
                x = ((((1 * Fac) * 5) / 100));
                ReP = ((DiffR - (1 * Fac)) * 5) / 100;
                x = x + ReP;
                break;

            case (0):
                x = ((DiffR * 5) / 100);
                break;
        }


        //Me.cc.Text = "قيمة الاستهلاك" & " " & FormatNumber(x, 2) & " " & "ريال سعودي "
        cout << "The consumtion Value: " << x << " Rail sa.";

        return 0;
}

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#5

مشكور اخي محمد يعطيك الصحة والعافية وماقصرت

ممكن كمان لو ما كلفت عليك تعطيني فكرة كيف انشي مشروع في الفيجوال سي واين اضع الكود

انا عارف اني زودتها بس سامحني والله الدكتور ما علمنا شي ء حسبي الله على بعض الدكاتره

#6

فى الرابط التالى ستجد مقالة طويلة نسبيا.

بها كيف نعمل مشروع جديد بأشهر بيئات التطوير ستجد ثرب نهاية المقالة ما تريد

الرابــــــــــــــــــــط

تحياتى العطرة

والله الموفق.

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#7

تسلم اخوي

انشأت المشروع وكل شي تمام بس عندي مشكلتين

الاولى لما اضغط انتر بعد ادخال عدد الايام لايمكنني مشاهدة الناتج حيث تختفي الشاشة بسرعة وعشان اوقفها اضطريت ان اضع سطر زيادة في آخر الكود لطلب ادخال قيمة بس فقط لايقاف الشاشة

الثانية والاهم الناتج يطلع صفر دائما اي ان قيمة x دائما صفر مع ان الكود ان متأكد منه 100% اعتقد ان الخطأ في السطر

NofP = (int)DiffR % (int)Fac; // \ == %

لان المطلوب هنا القيمة الصحيحة بعد القسمة

#include <iostream>
using namespace std;

int main ()
{

    ///////////////////////////
        double oldR, newR, DiffR, Fac, x, ReP, NofP;
        int day ;
		x=0;

        cout << "Enter Previous Reading: ";
        cin >> oldR;    //oldR = CDbl(Me.oldreading.Text)   القراءه السابقة
        cout << "Enter Courrent Reading: ";
        cin >> newR;    //newR = Me.newreading.Text      القراءة الحاليه
        cout << "Enter Days Count: ";
        cin >> day;     // = Me.tdays.Text          عدد الايام

        DiffR = newR - oldR;

        Fac = (day * 1000) / 30; //      قاعدة اخذتها من واحد خبرة في حساب الفواتير


        NofP = (int)DiffR % (int)Fac; // \ == %



        switch((int)NofP)
        {

            case  (10):
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100) + ((Fac * 20) / 100) + ((Fac * 22) / 100) + ((Fac * 24) / 100));
                ReP = ((DiffR - (10 * Fac)) * 26) / 100;
                x = x + ReP;
                break;

            case  (9) :
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100) + ((Fac * 20) / 100) + ((Fac * 22) / 100));;
                ReP = ((DiffR - (9 * Fac)) * 24) / 100;
                x = x + ReP;
                break;

            case (8):
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100) + ((Fac * 20) / 100));
                ReP = ((DiffR - (8 * Fac)) * 22) / 100;
                x = x + ReP;
                break;

            case (7):
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100) + ((Fac * 15) / 100));
                ReP = ((DiffR - (7 * Fac)) * 20) / 100;
                x = x + ReP;
                break;

            case (6):
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((2 * Fac) * 12) / 100));
                ReP = ((DiffR - (6 * Fac)) * 15) / 100;
                x = x + ReP;
                break;

            case (5):
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100) + (((1 * Fac) * 12) / 100));
                ReP = ((DiffR - (5 * Fac)) * 12) / 100;
                x = x + ReP;
                break;

            case (4):
                x = ((((2 * Fac) * 5) / 100) + (((2 * Fac) * 10) / 100));
                ReP = ((DiffR - (4 * Fac)) * 12) / 100;
                x = x + ReP;
                break;

            case (3):
                x = ((((2 * Fac) * 5) / 100) + (((1 * Fac) * 10) / 100));
                ReP = ((DiffR - (3 * Fac)) * 10) / 100;
                x = x + ReP;
                break;

            case (2):
                x = ((((2 * Fac) * 5) / 100));
                ReP = ((DiffR - (2 * Fac)) * 10) / 100;
                x = x + ReP;
                break;

            case (1):
                x = ((((1 * Fac) * 5) / 100));
                ReP = ((DiffR - (1 * Fac)) * 5) / 100;
                x = x + ReP;
                break;

            case (0):
                x = ((DiffR * 5) / 100);
                break;
        }


        //Me.cc.Text = "قيمة الاستهلاك" & " " & FormatNumber(x, 2) & " " & "ريال سعودي "

 cout << "The consumtion Value: " << x << " Rail sa.";
 // This to stop window
cout << "هذا هو البرنامج: ";
        cin >> oldR;    
        return 0;


}

تم تعديل هذه المشاركة بواسطة hymss في 23 ديسمبر 2011 في 14:27

#8
اقتباس
الاولى لما اضغط انتر بعد ادخال عدد الايام لايمكنني مشاهدة الناتج حيث تختفي الشاشة بسرعة وعشان اوقفها اضطريت ان اضع سطر زيادة في آخر الكود لطلب ادخال قيمة بس فقط لايقاف الشاشة

استبدل هذا الكود :

// This to stop window
cout << "هذا هو البرنامج: ";
        cin >> oldR;

بهذا الكود:

    system("Pause");

وفى اول البرنامج ضع الكود:

#include <cstdlib>

اقتباس
الثانية والاهم الناتج يطلع صفر دائما اي ان قيمة x دائما صفر مع ان الكود ان متأكد منه 100% اعتقد ان الخطأ في السطر

NofP = (int)DiffR % (int)Fac; // \ == %

نحن أعتبرت / على انها معامل باقى القسمة % .

فسر الى العادلة وسأرفق لك الحل ان شاء الله.

تحياتى العطرة ... .

تم تعديل هذه المشاركة بواسطة محمد ابوزايد في 23 ديسمبر 2011 في 15:29

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

هذا الموضوع مغلق.

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