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

مشكله ببرنامج حجز مقاعد طائره

بدأه meago في 8 مايو 2012 · 7 رد · 1,202 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله " أنا مبتدئ في السي بلس بلس .. وعندي مشروع : وهو عباره عن حجز مقاعد طائره 5 صفوف , و4 اعمده / البرنامج متطلباته كثير واستخدم الفنكشن فيه , أنا بديت فيه بس مو راضي يشتغل فما حبيت اكمل لين اصحح الخطاء , وماعندي غيررركم وأتمنا تساعدوني , والله كرييم , أنا كتبت البدايه الي هي المستخدم يدخل عناصر Array والمطلوب إنها one dimensional الي تقرا المصفوفه من المستخدم / علما بسؤال يقول 5 صفوف و4 اعمده

1 يعني محجوز . و0 فارغ / يعني كل ماسويت شي بوريكم إذا مافيها كلافه , أتمنى الرد / إيوه أنا عندي مشكله بكتابة الدفنشن للدله إلي تشتغل ع اري . وهذا الكود بس توني ماكملته ,

#include<iostream>

using namespace std;
int nempty (int seats [][4]);


void main ()

{
int seats [20];

int a;
cout<<"Enter elements of Array ";
for (int i=0;i<20;i++)

cin>>seats;

        cout<<"1. show number of empty seat"<<endl;

		cout<<"2. show empty seat"<<endl;

		cout<<"3. reserv a seat"<<endl;

		cout<<"4. cancel a seat"<<endl;

		cout<<"5. exit the program"<<endl;

		cin>>a;


		switch (a)

		{

		case 1:
			cout << "numper of empty seats :" << "/t " << nempty(seats)<<endl; 

		case 2:

             break;
		case 3:
			break;		
		case 4:

		    break;
		default:
			break; 

		}

	int nempty (int seats [20])
	{
		int empty =0;

	for  (int i=0;i<20;i++)


	  if (i==0)


	   empty+=1;

	 return empty ;
	}

}

تم تعديل هذه المشاركة بواسطة Μωάμεθ αλάά في 8 مايو 2012 في 19:31

#2

الله يسعدكم .. وينكـــم / انتظر ردكم , والله ماعندي غيركم

#3
meago كتب:

الله يسعدكم .. وينكـــم / انتظر ردكم , والله ماعندي غيركم

اللي فهمتو من السؤال أنك تريد تحويل أبعاد المصفوفة من بعدين لبعد واحد

و الطريقة سهلة؟

مثلا

int A[2][3] = {{3,6,9},{2,5,8}};


int B[2*3]={0};

/*
B[0]=A[0][0];
B[0]=A[0][1];
B[0]=A[0][2];
B[0]=A[1][0];
B[0]=A[1][1];
B[0]=A[1][2];
*/

for(i=0;i<2;i++)
for(j=0;j<3;j++)

b[i*3+j]=a[j];

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

-المصفوفة الأولى - 2 صفوف و 3 أعمدة

-المصفوفة الجديدة - (2صفوف المصفوفة الأولى * 3 أعمدة المصفوفة الأولى ) صفوف

أتمنى تكون إجابتي مفيدة و إذا مافهمت شيء لا تترد في طرح سؤالك

تم تعديل هذه المشاركة بواسطة مومو (momo) في 8 مايو 2012 في 17:54

i love you mama

#4

الله يسعد قلبكـ شكرا , أخيرا حسيت فيه احد حاس فيني , ربي يسعدك يعني عادي اسأل .. لا مو مثل مافهمت , ولا أدري كيف اشرح لك , بس أنا الحين بطلب من المستخدم يدخل هو ارقام الاري الي حجمها 20

وكتبت الكود ..

الله يسعك ويفرج همك ,, ماتدرين قد ايش تساعديني

ارسلت صورة الكود . بس ماوصلت

post-261710-069288800 1336484122_thumb.p

المرفقات
صورة2.png
#5
meago كتب:

الله يسعد قلبكـ شكرا , أخيرا حسيت فيه احد حاس فيني , ربي يسعدك يعني عادي اسأل .. لا مو مثل مافهمت , ولا أدري كيف اشرح لك , بس أنا الحين بطلب من المستخدم يدخل هو ارقام الاري الي حجمها 20

وكتبت الكود ..

الله يسعك ويفرج همك ,, ماتدرين قد ايش تساعديني

ارسلت صورة الكود . بس ماوصلت

إذا ممكن تشرح لي السؤال مرة تانية بلغة مفهومة و واضحة

أخوك مغربي و بصراحة أفهم فقط العربية و الفرنسية لا أجيد التكلم باللغة الإنجليزية

يعني مثلا ماذا تريد من برنامجك أن يفعله وما هي المراحل المتبعة في برنامجك حاول توضح قيللا و ابتعد عن المصطلحات الإنجليزية

و أنا بوعدك إن شاء الله سأعمل على حله

وفقك الله و رعاك

تم تعديل هذه المشاركة بواسطة مومو (momo) في 8 مايو 2012 في 17:45

i love you mama

#6

السلام عليكم

نستكمل باقى تحليل موضوعنا:

نقاط استرشادية :

1.كرسي غير محجوز ياخذ قيمة صفر وهى قيمة افتراضية نحمل بها مصفوفة الكراسي اثناء ﻻعلان عنها.

2.كرسي محجوز يأخذ قيمة 1 .

3.الطائرة بها 20 كرسي مكون من 5 صفوف و 4 اعمدة.

4.لحجز كرسي فاننا نكتب رقم الكرسي من 1 الى 20 البرنامج يحول رقم الكرسي الى تنسيق(صف ، عمود) لكى يتم وضعة فى المكان المناسب بمصفوفة الكراسي.

-المكان المناسب للصف = رقم الكرسي المراد حجزة/عدد الصفوف

-المكان المناسب للصف = رقم الكرسي المراد حجزة %عدد اﻻعمدة.

اليك هذا الكود حتى وقت آخر أن شاء الله:

حاول استكمالة

#include<iostream>
using namespace std;

int const MaxRow = 5;
int const MaxCol = 4;
void AddNewSeats(int n);
void nempty(int seats[MaxRow][MaxCol]);

int main()

{
    int seats [MaxRow][MaxCol] = {
        {-1},
        {-1}
    };
    int a;
    cout << "Enter elements of Array: ";
    for (int row = 0; row < MaxRow; row++)
        for (int col = 0; col < MaxCol; col++)
        {
            cout << "Row: " << row + 1 << " Col: " << col + 1 << " :";
            cin >> seats[row][col];
        }
    cout << "1. show number of empty seat" << endl;
    cout << "2. show empty seat" << endl;
    cout << "3. reserv a seat" << endl;
    cout << "4. cancel a seat" << endl;
    cout << "5. exit the program" << endl;
    cin >> a;

    switch (a)

    {

    case 1:
        cout << "numper of empty seats :" << "/t ";
        nempty(seats);
        break;

    case 2:

        break;
    case 3:
        break;
    case 4:

        break;
    default:
        break;

    }
}

void nempty(int seats[MaxRow][MaxCol])
{
    cout << "Enter elements of Array: ";
    for (int row = 0; row < MaxRow; row++)
    {
        for (int col = 0; col < MaxCol; col++)
        {

            if (seats[row][col] == -1)
                cout << "E  ";
            else
                cout << "-- ";
        }
        cout << endl;
    }
}
void AddNewSeats(int n)
{

}

تقبلو مرورى والله ولى التوفيق

تم تعديل هذه المشاركة بواسطة AudaNix في 9 مايو 2012 في 12:40

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

#7

شكراَ اخواني ع المسااااعده ,, ربي لايحرمكم الأجر ........

أخوي مومو ولا يهمك مره ثانيه لغه فصحى / لاني فرنسيه اتحدى :blush: ... /شكرا ع مساندتك

وأخي AudaNix لاني ماعرفت اقراه بالعربي , ماشاء الله عليك اسلوب معلم ,

المهم ابشركم خلصة المشروع ولله الحمد ..

الله يكون بعون الجمييييييييييييييع

#8

السلام عليكم

نستكمل باقى تحليل موضوعنا وباقى الاكواد حتى يستفيد منه باقى الاعضاء:

نقاط استرشادية :

1.كرسي غير محجوز ياخذ قيمة صفر وهى قيمة افتراضية نحمل بها مصفوفة الكراسي اثناء ﻻعلان عنها.

2.كرسي محجوز يأخذ قيمة 1 .

3.الطائرة بها 20 كرسي مكون من 5 صفوف و 4 اعمدة.

4.لحجز كرسي فاننا نكتب رقم الكرسي من 1 الى 20 البرنامج يحول رقم الكرسي الى تنسيق(صف ، عمود) لكى يتم وضعة فى المكان المناسب بمصفوفة الكراسي.

-المكان المناسب للصف = رقم الكرسي المراد حجزة/عدد الصفوف

-المكان المناسب للصف = رقم الكرسي المراد حجزة %عدد اﻻعمدة.

وهذا الكود بالكامل لبرنامج حجز مقاعد طائره

#include<iostream>
using namespace std;

int const MaxRow = 5;
int const MaxCol = 4;
void ReservSeat(int[][MaxCol], int); // add new seat
void ShowEmptySeats(int[][MaxCol]); // show 
void CancelReservedSeat(int[][MaxCol], int);
int EmptySeatsCount(int[][MaxCol]); // show  

int main()
{
    // بدء تحميل المصفوفة ثانية البعد بصفر أى غير محجوز
    int seats [MaxRow][MaxCol] = {0};
    int choice, s;
    do
    {
        cout << endl << "1. show number of empty seat" << endl;
        cout << "2. show empty seat" << endl;
        cout << "3. reserv a seat" << endl;
        cout << "4. cancel a seat" << endl;
        cout << "5. exit the program" << endl;
        cout << "Enter Choice: ";
        cin >> choice;
        switch (choice)

        {
        case 1:
            cout << "Numper of empty seats :" << EmptySeatsCount(seats) << endl;
            break;
        case 2:
            cout << "2. Show empty seat" << endl;
            ShowEmptySeats(seats);
            break;
        case 3:
            cout << "3. reserv a seat, Enter seat number(1 t0 20): ";
            cin >> s;
            ReservSeat(seats, s);
            break;
        case 4:
            cout << "4. cancel a seat, Enter seat number(1 t0 20): ";
            cin >> s;
            CancelReservedSeat(seats, s);
            break;
        default:
            break;
        }
    }
    while (choice != 5);
}

int EmptySeatsCount(int seat [][MaxCol])
{
    int n = 0;
    for (int row = 0; row < MaxRow; row++)
    {
        for (int col = 0; col < MaxCol; col++)
        {
            if (seat[row][col] == 0) n++;
        }
    }
    return n;
}

void ShowEmptySeats(int seat [][MaxCol])
{

    for (int row = 0; row < MaxRow; row++)
    {
        for (int col = 0; col < MaxCol; col++)
        {
            if (seat[row][col] == 0)
                cout << (row + 1) * (col + 1) << "E" << "   ";
            else
                cout << "--" << "   ";
        }
        cout << endl;
    }
}

void ReservSeat(int seat [][MaxCol], int n)
{

    if (n < 1 || n > 20)
    {
        cout << "Error u must enter betwnn 1 to 20\n";
    }
    else
    {
        int row = n / MaxRow;
        int col = n % MaxCol;
        if (seat[row][col] == 1)
            cout << "Error: Seat reserved before. look for anthory one.";
        else
            seat[row][col] = 1;
    }
}

void CancelReservedSeat(int seat [][MaxCol], int n)
{
    if (n < 1 || n > 20)
    {
        cout << "Error u must enter betwnn 1 to 20\n";
    }
    else
    {
        int row = n / MaxRow;
        int col = n % MaxCol;
        if (seat[row][col] == 0)
            cout << "Error: Seat Cancelled before. look for anthory one.";
        else
            seat[row][col] = 0;
    }
}

وهذة بعض من المخرجات:

1. show number of empty seat
2. show empty seat
3. reserv a seat
4. cancel a seat
5. exit the program
Enter Choice: 3
3. reserv a seat, Enter seat number(1 t0 20): 3

1. show number of empty seat
2. show empty seat
3. reserv a seat
4. cancel a seat
5. exit the program
Enter Choice: 2
2. Show empty seat
1E   2E   3E   --   
2E   4E   6E   8E   
3E   6E   9E   12E   
4E   8E   12E   16E   
5E   10E   15E   20E   

1. show number of empty seat
2. show empty seat
3. reserv a seat
4. cancel a seat
5. exit the program
Enter Choice: 5


RUN SUCCESSFUL (total time: 32s)

وفقنا وياكم الله

1

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

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