البرمجة

تحسين الأمان في نظام التصويت

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

فيما يلي توضيح لكيفية تحقيق هذا الهدف في الكود المعطى:

  1. أولاً، يجب إضافة متغير لتتبع عدد محاولات إدخال رقم الموظف الفاشلة. يمكن أن يكون هذا متغيرًا عدديًا يبدأ من الصفر.

  2. ثانيًا، في كل مرة يتم فيها إدخال رقم الموظف بشكل غير صحيح، يجب زيادة قيمة هذا المتغير بمقدار واحد.

  3. ثالثًا، يجب فحص قيمة هذا المتغير في كل مرة يتم فيها إدخال رقم الموظف. إذا وصلت القيمة إلى 3، فعليك إعادة المستخدم إلى الشاشة الرئيسية.

لتطبيق هذه الخطوات، يمكنك تعديل الكود كما يلي:

java
public void manageVote() { boolean moveOn = false; int failedAttempts = 0; // تعيين عدد المحاولات الفاشلة إلى صفر في البداية while (!moveOn) { System.out.print("Please enter your staff ID :"); String input = getInput(); theStaff = vc.getStaff(Integer.parseInt(input)); if (theStaff != null) { String pass = null; System.out.print("Enter your password"); pass = getInput().trim(); if (theStaff.getPass().equals(pass)) { getStaffVote(); moveOn = true; } else { failedAttempts++; // زيادة عدد المحاولات الفاشلة بمقدار واحد System.out.println("Incorrect username/password."); if (failedAttempts == 3) { // إذا وصل عدد المحاولات الفاشلة إلى 3، قم بإعادة المستخدم إلى الشاشة الرئيسية System.out.println("You have reached the maximum number of failed attempts."); System.out.println("Returning to the main screen..."); moveOn = true; } } } else { System.out.println("Error! Staff ID not found.\nPress ENTER to try again or \"q\" to QUIT : " ); if ("q".equalsIgnoreCase(getInput())) { System.out.println("Good bye!"); moveOn = true; } } } }

بهذه الطريقة، تم تضمين الآلية التي تسمح بثلاث محاولات فقط قبل أن يتم إرجاع المستخدم إلى الشاشة الرئيسية. قمت بإضافة متغير failedAttempts لتتبع عدد المحاولات الفاشلة وزيادته بمقدار واحد في كل مرة يتم فيها إدخال رقم الموظف بشكل غير صحيح.

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

بالطبع، سنكمل المقال بشرح المزيد من التفاصيل والتعديلات التي يمكن إجراؤها لتحسين الكود.

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

  2. بالإضافة إلى ذلك، يمكنك تحسين رسائل الإخطار لتكون أكثر وضوحًا وإيضاحًا للمستخدم بما يحدث. يمكنك أيضًا إضافة تعليقات إضافية داخل الكود لشرح العمليات المنطقية والتحكمات.

لتطبيق هذه التحسينات، يمكنك متابعة الكود التالي:

java
public void manageVote() { boolean moveOn = false; int failedAttempts = 0; while (!moveOn && failedAttempts < 3) { // تأكد من عدم تجاوز الحد المسموح به من المحاولات الفاشلة System.out.print("Please enter your staff ID :"); String input = getInput(); theStaff = vc.getStaff(Integer.parseInt(input)); if (theStaff != null) { String pass = null; System.out.print("Enter your password"); pass = getInput().trim(); if (theStaff.getPass().equals(pass)) { getStaffVote(); moveOn = true; } else { failedAttempts++; System.out.println("Incorrect username/password. You have " + (3 - failedAttempts) + " attempts left."); } } else { System.out.println("Error! Staff ID not found.\nPress ENTER to try again or \"q\" to QUIT : " ); if ("q".equalsIgnoreCase(getInput())) { System.out.println("Good bye!"); moveOn = true; } } } if (failedAttempts >= 3) { // إذا تجاوز عدد المحاولات الفاشلة الحد المسموح به، قم بإرجاع المستخدم إلى الشاشة الرئيسية System.out.println("You have reached the maximum number of failed attempts. Returning to the main screen..."); } }

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

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

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

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

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