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

سؤال للجميع:أرجو أن يرضى المشرف

مغلق
بدأه العرب غثاة في 16 سبتمبر 2009 · 2 رد · 405 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله

والصلاة والسلام على رسول الله وصحبه وآله ومن ولاه

أحبتي أساتذتي وأخوتي أنا لا آزال مبتدء بلغة السي بلس وعندي مسألة أريد من حضراتكم إفادتي فيها حماكم الله

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

أدرس كثيرا فيها حتى أحلها

وهذه المسألة هي:

(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 أو 2

يتم فحص هذه القول الذكورة وإظهار رسالة خطأ مناسبة تدل على نوع الطأ عندما يكون أحد هذه القول

غي صحيح، وإعادة القيمة - 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

فنحصل على الرقم : 4920 , ت نبدل بي الرقام فيكون العدد هو : 0294

من أجل فك التشفي نضيف 3 لكل رقم ث نسب باقي القسمة على عشرة, ونبدل الناتج بالرقم, ث نبادل بي

الرقمي الول والرابع و الرقمي الثان والثالث:

(0 + 3) % 10 = 3 % 10 = 3

(2 + 3) % 10 = 5 % 10 = 5

(9 + 3) % 10 = 12 % 10 = 2

(4 + 3) % 10 = 7 % 10 = 7

فنحصل على الرقم : 3527 , ت نبدل بي الرقام فيكون العدد هو : 7253 وهو الرقم الصلي. يتم إضافة أصفار

. على يسار العداد الؤلفة من أقل من أربعة أرقام, مثلً العدد 23 يصبح 0023

عند التعامل مع كلمات السر يب تشفيها قبل إضافتها إل الصفوفة, وفك تشفيها إذا أردنا قراءتا من الصفوفة.

:main الجرائية الرئيسة

ي تم الت صريح عن ال صفوفات الثلث وت صفي ج يع عنا صر م صفوفت العط يات main ف الجرائ ية الرئي سة

الصحيحة والناقلت, ث يبدأ تنفيذ البنامج بإظهار قائمة توي الوامر التالية:

Welcome to BMS:

Choose a command from the menu:

1. add customer

2. update customer

3. delete customer

4. print all customers data (without deleted

customers)

5. print the data of one customer

6. print the transactions of a customer between tow

dates

7. print the whole balance of the bank

8. login as customer

9. exit

وتت عملية الدخول بنجاح, تظهر login يتم تديد اختيار المر بإدخال الرقم الوافق, إذا اختار الستخدم المر

عندها قائمة أخرى تتعلق بالزبون:

Welcome Customer “Customer Name”

Choose a command:

1. Add money to your account

2. Draw many from your account

3. Show your balance

4. exit

فانا الآن أدرسها وأحاول وضع خوارزمية عامة لها

ولكن كيفية تغيير الحساب للزبون لم أفهمه جيدكيف يتم ذلك

أخوتي نتمنى الأستفادة من خبراتكم في دراستنا

وتذكرو قول حبيبنا محمد:لا يؤمن أحدكم حتى يجب لأخيه ما يحب لنفسه.

بارك الله فينا وفيكم.

وكل عام والمسلمين بخير.

#2

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

حتى لا يتم إغلاق الموضوع يجب عليك أولا وضع محاولاتك في الحل

يعني حاول تكتب الحل كـ كود حتى تتم مساعدتك

لا يهم حتى لو كان هناك خطأ فسيساعدك الجميع

لأنه يمنع وضع السؤال فقط بدون محاولات

programmerssu3.gif
#3

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

حياك الله أخي الكريم ،،

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

أمر أخر السؤال هنا مترجم بشكل حرفي ، ولن يستطيع أحد فهم أو قرائه السؤال بهذا الشكل من أساسه .

سأضطر لغلق الموضوع ،، واذا أردت نصيحتي فقم بقرائه ما هو مطلوب منك وقسمه الى أجزاء صغيره وابدأ في حل كل جزء وان استصعب عليك أمر فقم بالسؤال عنه في موضوع جديد .. وهكذا الى أن تنتهي المشكلة بالكامل ..

بالتوفيق أخي الكريم ،،

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

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

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