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

(BMS (Bank Management System
يقوم بإدارة ما يسمى بعمليات الناقلة ف بنك ما، ل يكن فيه للزبون الدخول إل ++C نريد بناء برنامج بلغة
حسابه ف البنك وإجراء عمليات الناقلة إل باستخدام كلمة السر، ومن ث يستطيع القبام بعمليات إضافة مبلغ لرصيده
الال، أو سحب مبلغ من الرصيد. ويب أن يؤمن البنامج أيضا وظيفة يكن من خللا أن يقوم موظف البنك بإدارة
حسابات الزبائن بيث يكنه القيام بعمليات الضافة والتعديل والذف لسابات الزبائن ومعاملتم، وطباعة بعض
التقارير مثل طباعة بيانات أحد الزبائن مثلً...
وسنستعرض في ما بن العط يات ال ستخدمة ف البنا مج والتوا بع التعل قة بإدارة الز بائن والتوا بع التعل قة بإدارة
عمليات الناقلة ومموعة التوابع الدمية الستعلمية إضافة إل الجرائية الرئيسية.
بن العطيات الستخدمة:
تزن معلومات الزبائن ذات القيم الرفية ف مصفوفة نسميها مصفوفة العطيات الرفية، وتزن العلومات ذات
القيم العددية ف مصفوفة نسميها مصفوفة العطيات العددية، وتزن عمليات الناقلة الت يقوم با الزبون ف مصفوفة
تدعى مصفوفة الناقلت, وفيما يلي شرح عن هذه الصفوفات:
لتخز ين ح سابات ال ستخدمي string 1. مصفوفة العط يات الرف ية: مصفوفة ثنائ ية الب عد من نط
حيث يعب كل سطر منها عن زبون ويعب كل عمود عن معلومة معينة (مثل السم الول). عدد
صحيح عام يترك const ثابت Max_Clients أعمدة هذه الصفوفة هو 6 وعدد أسطرها هو
لكم تديد قيمته وهو يعب عن العدد القصى من الزبائن الذي يكن تزينه، وهذه الصفوفة توي
العلومات التالية: حقل للسم الول، حقل للسم الثان، حقل لتاريخ اليلد، حقل للعنوان، حقل
لرقم الاتف، حقل لعنوان البيد اللكترون.
2. مصفوفة العطيات العددية: مصفوفة ثنائية البعد، حجم وأبعاد هذه الصفوفة يطابق ما ذكر عن
الصفوفة الول وهي توي العلومات التالية: رقم الزبون، عدد صحيح يعب عن الشهر الذي اشترك
فيه ف البنك، ورقم آخر للسنة، رقم يعب عن الرصيد البدائي، رقم يعب عن حالة الستخدم مذوفا
أم ل وهذا القل يأخذ إحدى قيمتي إما القيمة صفر الت تعب عن أن حساب الزبون غي مذوف
وإما القيمة واحد الت تعن أن حساب هذا الزبون ت حذفه (ت إغلق حساب الزبون)، رقم يعب عن
كلمة السر الشفرة.

3. مصفوفة الناقلت: مصفوفة ثنائية البعد عدد أعمدتا 6 وعدد أسطرها هو عدد الناقلت العظمي
المكن أن يقوم با كل الزبائن وهي توي البيانات التالية: رقم الزبون النفذ للعملية، رقم العملية،
رقم الشهر، رقم السنة، نوع العملية ( 1: إضافة مبلغ – 2: سحب مبلغ)، قيمة البلغ.


يتم ف البداية وضع أصفار ف جيع عناصر مصفوفة العطيات العددية، ويعتب رقم السطر هو رقم الزبون، وبذلك
يكن حساب عدد الزبائن الال بالرور على مصفوفة العطيات العددية وفحص القل "رقم الزبون" فيكون عدد الزبائن
الال مساويا لعدد السطر الت تكون فيها قيمة القل "رقم الزبون" ل تساوي الصفر، ويكون رقم الزبون مساويا
لرقم السطر الوجودة فيه معطياته.
1. تابع إضافة زبون :
ترر إل هذا التابع الوسطاء التالية: مصفوفة العطيات الرفية ومصفوفة العطيات الصحيحة و جيع قيم القول
الت ستضاف لتسجيل الزبون الديد أي حقول مصفوفة العطيات الرفية (السم الول والكنية وتاريخ اليلد ورقم
الاتف و البيد اللكترون), وحقول مصفوفة العطيات الصحيحة (الشهر والسنة والرصيد الول وكلمة السر الواجب
تشفيها قبل تزينها ف الصفوفة), أما رقم الزبون فيتم حسابه بالرور على سطور مصفوفة العداد الصحيحة وفحص
قيمة القل رقم الزبون وأول سطر تكون فيه قيمة الرقم مساوية للصفر يتم اعتبار رقم هذا السطر هو رقم الزبون،
والقل الذي يعب عن الذف يأخذ القيمة صفر للدللة على أن هذا الزبون غي مذوف (فليس من النطقي إضافة زبون
وحذفه بنفس الوقت).
يعيد تابع الضافة قيمة صحيحة هي رقم الزبون إن كانت الوسطاء المررة صحيحة، ويعيد القيمة - 1 للدللة على
أن أحد العطيات غي صحيحة، حيث أنه يب إجراء تقق من صحة العطيات قبل إضافة القيم على مصفوفة العطيات
الصحيحة كما يلي:
[12- الشهر ضمن الال [ 1 (a
[2100- السنة ضمن الال [ 1990 (b
الرصيد الول عدد موجب أكب من الصفر (c
[9999- كلمة السر ضمن الال [ 1 (d
أما بالنسبة لصفوفة العطيات الرفية فالطلوب التحقق فقط من السم الول الذي ليب أن يكون سلسلة فارغة.
يتم فحص هذه القول الذكورة وإظهار رسالة خطأ مناسبة تدل على نوع الطأ عندما يكون أحد هذه القول غي
صحيح، وإعادة القيمة - 1 للدللة على أن عملية الضافة ل تتم.
2. تابع تعديل معطيات زبون:
يرر لذا التابع مصفوفت العطيات الصحيحة والرفية ورقم الزبون، ث يتم إظهار قائمة توي معطيات الزبون، كل
حقل على سطر, وبانب كل حقل رقم، إضافة إل سطر يتم فيه تديد رقم (- 1 مثلً) يكن للمستخدم اختياره عندما
يريد التوقف عن تعديل حقول أخرى، ويطلب من الستخدم اختيار رقم يقوم بإدخاله لتحديد القل الذي سيتم تعديله



أو اختيار رقم الروج، ث يدخل القيمة الديدة. تتم هذه العملية بشكل تكراري حت يقوم الزبون بإدخال الرقم الدال
على أنه يريد الروج وعلى أنه ل يريد تعديل حقول أخرى
يب إجراء عملية تقق من صحة العطيات كما ف تابع الضافة ولكن ف هذه الالة ل يتم الروج من التابع
ولكن يتم فقط إظهار رسالة الطأ اللئمة ث إظهار قائمة التعديل الت تطلب منه اختيار حقل للتعديل أو الروج.
3. تابع حذف زبون:
يأخذ هذا التابع كوسيط مصفوفة العطيات الصحيحة ورقم الزبون الراد حذفه، و تتم عملي الذف بوضع القيمة
واحد ف القل "مذوف" لدللة على ان هذا الزبون مذوف، ولكن قبل وضع هذه القيمة يب إظهار رسالة تأكيد
للدللة على أن عملية true فتتم عندها عملية الذف ويعيد التابع عندها القيمة Y للحذف، فإن أدخل الستخدم القيمة
false فهذا يعن أنه يريد التراجع عن عملية الذف، ويعيد التابع عندها القيمة N الذف قد تت، وإن أدخل القيمة
للدللة على أن عملية الذف ل تتم، ويب التحقق من أن رقم الزبون الراد حذفه هو رقم موجود أي هو رقم زبون
.false تت إضافته مسبقا، فإن ل يكن الرقم موجودا أو كان غي مقبول فإن التابع سيظهر رسلة خطأ ويعيد القيمة
إدارة عمليات الناقلة:
عمليات الناقلة هي عمليات يقوم با الزبون، ويري هنا تزين معطيات هذه العمليات ف مصفوفة الناقلت،
حيث يتم ف البداية وضع أصفار ف جيع عناصر مصفوفة الناقلت، ويعتب رقم السطر هو رقم العملية، وبذلك يكن
حساب عدد العمليات الال بالرور على مصفوفة الناقلت وفحص القل "رقم العملية" فيكون عدد العمليات الال
مساويا لعدد السطر الت تكون فيها قيمة القل "رقم العملية" ل تساوي الصفر، ويكون رقم العملية مساويا لرقم
السطر الوجودة فيه معطيات هذه العملية.
1. تابع مبادلة مصرفية (إضافة أو سحب مبلغ إل الرصيد):
يأخذ الوسطاء التالية: رقم الزبون، مصفوفة الناقلت، قيمة البلغ، الشهر، السنة، نوع العملية ( 1 إضافة مبلغ، 2
سحب مبلغ). يتم تديد السطرالذي ستتم إضافة العملية عليه كما يلي: يتم الرور على الصفوفة وفحص القل "رقم
العملية" اعتبارا من العنصر الول وأول عنصر تكون قيمته صفر تتم الضافة ف سطر هذا العنصر, ويعتب رقم هذا
السطر هو رقم العملية, ويعيد هذا التابع رقم هذه العملية للدللة على أن العملية أضيفت بشكل ناجح, ويعيد - 1 ف
حال كون قيمة أحد الوسطاء غي صحيحة حسب القواعد التالية:
[12- الشهر ضمن الال [ 1 (a
[2100- السنة ضمن الال [ 1900 (b
قيمة البلغ عدد موجب أكب من الصفر (c
نوع العملية إما 1 أو

يتم فحص هذه القول الذكورة وإظهار رسالة خطأ مناسبة تدل على نوع الطأ عندما يكون أحد هذه القول
غي صحيح، وإعادة القيمة - 1 للدللة على أن عملية الضافة ل تتم.
:login 2. تابع الدخول
ف حال كون الدخول صحيح، ويعيد true : يأخذ وسيطي : رقم الزبون، كلمة السر. ويعيد قيمة بوليانية
ف حال عدم تقق ذلك مع إظهار رسائل الطأ اللئمة للدللة على أن هذا الرقم غي موجود أو أن رقم زبون false
مذوف أو أن كلمة السر غي صحيحة.
توابع استعلمية:
يطلب إضافة لا سبق إناز وكتابة التوابع التالية الت تعب عن التقارير المكن استنتاجها من العطيات:
1. تابع يأخذ كوسيط رقم الزبون ويسب ويعيد رصيده الال من خلل جع الرصيد البدائي مع البالغ الت
قام بإضافتها وطرح البالغ الت قام بسحبها.
2. تابع يطبع على الشاشة بعض بيانات الزبائن غي الذوفي، وهذه البيانات هي: رقم الزبون, اسه الول,
رصيده الال (يتم حسابه من خلل التابع السابق).
3. تابع يطبع على الشاشة بيانات زبون معي، يرر رقم الزبون كوسيط إضاف إل التابع، وهذه البيانات هي:
رقم الزبون، اسه الول، رقم الاتف، العنوان، الرصيد الال، الالة (إن كان مذوف أم ل).
4. تابع يطبع العمليات الت قام با زبون معي بي تاريي، ترر قيم رقم الزبون ورقمي الشهر والسنة لكل
تاريخ كوسطاء إضافية إل التابع، يطبع على الشاشة رقم كل عملية وقيمة البلغ ونوع هذه العملية.
5. تابع يسب ويعيد عدد صحيح يثل الرصيد الال الكلي للبنك.
تشفي كلمة السر:
تزن كلمات السر بشكل مشفر باستخدام الوارزمية التالية: كلمة السر هي رقم صحيح موجب أصغر من
10000 ، أي أنه عدد صحيح مؤلف من أربعة أرقام، يتم تشفيه كما يلي: يتم إضافة 7 إل كل رقم من أرقام العدد ث
حساب باقي القسمة على 10 ويتم استبدال هذا الباقي بالرقم، ث يتم التبديل بي الرقمي الول والرابع، وبي الرقمي
الثان والثالث.مثال:
العدد 7253 يتم تشفيه كما يلي:
(7 + 7) % 10 = 14 % 10 = 4
(2 + 7) % 10 = 9 % 10 = 9
(5 + 7) % 10 = 12 % 10 = 2
(3 + 7) % 10 = 10 % 10 = 0

أخوتي الرجاء المساعدة في أسرع وقت ممكن وكذلك لوتفضلتم بأعطائي ملاحظات وإفادات حول هذا البرنامج شاكرا لكم اهتمامكم

وصلى الله على نبينا وصحبه وآله .
أخوكم إبراهيم