البرمجة

مشكلة الطرح في C#

من الواضح أنك تواجه مشكلة في عملية الطرح في الكود الخاص بك. عندما تقوم بطرح قيمة أقل من القيمة المحددة (20 في حالتك) من قيمة أخرى، يجب عليك التأكد من أن العملية تتم بشكل صحيح. في كودك، تقوم بطرح قيمة PassengersTXT.Text من Seating.FirstClass دون التحقق من صحة العملية.

لحل هذه المشكلة، يجب عليك تعديل الكود للتأكد من أن العملية تتم بشكل صحيح. يمكنك استخدام التالي:

csharp
int passengers = Convert.ToInt32(PassengersTXT.Text); if (Seating.FirstClass - passengers < 0) { MessageBox.Show("Not Enough Seats in First Class", "ERROR!", MessageBoxButtons.OK, MessageBoxIcon.Error); LEFcPassanger form = new LEFcPassanger(); form.Show(); this.Close(); } else { Seating.FirstClass -= passengers; AppFin frm = new AppFin(); frm.Show(); this.Close(); }

تأكد من أنك تستخدم القيمة المحسوبة passengers في كل مكان بدلاً من استخدام Convert.ToInt32(PassengersTXT.Text) مرتين.

المزيد من المعلومات

من الواضح أنك تعمل على تطبيق يتعلق بحجز المقاعد في طائرة، حيث يتم تقديم خيارات للركاب لحجز مقاعدهم في درجات مختلفة من الرحلة (First Class، Business Class، Economy Class). الجزء الذي تعاني منه المشكلة يبدو أنه يتعلق بطرح عدد الركاب الذين حجزوا مقاعدهم في الفئة الأولى (First Class) من إجمالي عدد المقاعد المتاحة.

عندما يختار الركاب الحجز في الفئة الأولى، يجري تقديم عدد الركاب الذين يرغبون في الحجز (PassengersTXT.Text) من عدد المقاعد المتاحة في الفئة الأولى (Seating.FirstClass). إذا كان العدد الناتج أقل من أو يساوي صفر، يتم عرض رسالة تنبيه بأنه لا توجد مقاعد كافية، وإلا يتم تحديث عدد المقاعد المتاحة في الفئة الأولى وفتح نافذة جديدة للمتابعة.

يمكنك تحسين الكود عن طريق استخدام متغير مؤقت لتخزين عدد الركاب المحجوزين، وتحديث عدد المقاعد المتاحة بناءً على هذا المتغير. كما يمكنك تنظيم الشفرة لتجنب تكرار التعليمات.

تحتاج إلى إجراء بعض التغييرات في الكود الخاص بك لتحقيق ذلك. إليك كيفية تحسين الكود:

csharp
private void LSum_Load(object sender, EventArgs e) { PassengersTXT.Text = LEFcPassanger.sendtext; DepartDateTXT.Text = LutonDepart.sendtext; DepTimeTXT.Text = LutonSat.sendtext; TravelTypeTXT.Text = LEClass.sendtext; DepartTXT.Text = Form2.sendtext; ArriveTXT.Text = LArrive.sendtext; } private void BookButton_Click(object sender, EventArgs e) { int passengers = Convert.ToInt32(PassengersTXT.Text); int remainingSeats = Seating.FirstClass - passengers; if (remainingSeats < 0) { MessageBox.Show("Not Enough Seats in First Class", "ERROR!", MessageBoxButtons.OK, MessageBoxIcon.Error); LEFcPassanger form = new LEFcPassanger(); form.Show(); this.Close(); } else { Seating.FirstClass = remainingSeats; AppFin frm = new AppFin(); frm.Show(); this.Close(); } }

في هذا الكود المحسن، يتم استخدام متغير passengers لتخزين عدد الركاب المحجوزين، ثم يتم حساب العدد المتبقي من المقاعد المتاحة في الفئة الأولى (remainingSeats). إذا كان العدد المتبقي أقل من صفر، يتم عرض رسالة تنبيه، وإلا يتم تحديث عدد المقاعد المتاحة وفتح نافذة جديدة للمتابعة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

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