Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เพื่อกำหนดข้อยกเว้นสำหรับชื่อผู้ใช้ขนาดเล็ก และตรวจสอบชื่อผู้ใช้


สมมติว่าเรามีชื่อผู้ใช้หลายชุดและเราจะต้องตรวจสอบว่าชื่อผู้ใช้นั้นถูกต้องหรือไม่ตามเงื่อนไขบางประการ ดังนั้น เราจะต้องกำหนดข้อยกเว้นที่เกิดขึ้นเมื่อชื่อผู้ใช้มีความยาวน้อยกว่า 5 อักขระ เราจะต้องส่งคืน "ถูกต้อง" สำหรับชื่อผู้ใช้ที่ถูกต้อง "ไม่ถูกต้อง" สำหรับชื่อผู้ใช้ที่ไม่ถูกต้องและมีข้อยกเว้นสำหรับชื่อผู้ใช้ที่เล็กกว่า เงื่อนไขชื่อผู้ใช้ที่ถูกต้องคือ −

  • ชื่อผู้ใช้ต้องมีความยาวห้าอักขระ

  • ชื่อผู้ใช้ไม่ควรมี 'w' สองตัวติดต่อกัน

ดังนั้น หากอินพุตเป็นเหมือน unames =["amit", "to", "paul_tim", "greg_harry", "towwer"] ผลลัพธ์จะเป็น [สั้นเกินไป:4 สั้นเกินไป:2 ถูกต้อง ถูกต้อง , Invalid] เนื่องจากสองตัวแรกเล็กเกินไป และอันสุดท้ายมี 'w's สองตัวติดต่อกัน อื่นๆ ก็ได้

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • กำหนดข้อยกเว้นที่เรียกว่า BadLengthExcaption

  • มันจะกลับข้อความความยาว

  • กำหนดฟังก์ชัน validation() ซึ่งจะใช้ u_name

  • isValid :=จริง

  • n :=ขนาดของ u_name

  • ถ้า n <5 แล้ว:

    • โยน BadLengthException(n)

  • สำหรับการเริ่มต้น i :=0 เมื่อฉัน

    • ถ้า u_name[i] เหมือนกับ 'w' และ u_name[i + 1] เหมือนกับ 'w' ดังนั้น:

      • isValid :=เท็จ

  • ผลตอบแทนถูกต้อง

  • จากวิธีหลัก ให้ทำดังนี้:

  • สำหรับชื่อผู้ใช้ u_name ทั้งหมดใน unames ให้ทำ

    • ตรวจสอบ (u_name)

    • ถ้าถูกต้องพิมพ์ถูกต้อง

    • มิฉะนั้นเมื่อพิมพ์ไม่ถูกต้อง INVALID

    • มิฉะนั้นเมื่อความยาวมีขนาดเล็กพิมพ์เล็กเกินไป

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <iostream>
#include <vector>
#include <exception>
using namespace std;
class BadLengthException{
    public:
    int x;
    BadLengthException(int n) {
        x=n;
    }
    int what() const throw(){return x;}
};
bool validation(string u_name) {
    bool isValid = true;
    int n = u_name.length();
    if(n < 5) {
        throw BadLengthException(n);
    }
    for(int i = 0; i < n-1; i++) {
        if(u_name[i] == 'w' && u_name[i+1] == 'w') {
            isValid = false;
        }
    }
    return isValid;
}
int main() {
    vector<string> unames = {"amit", "to", "paul_tim", "greg_harry", "towwer"};
    for(int i = 0; i < unames.size(); i++){
        string u_name = unames[i];
        try {
            bool isValid = validation(u_name);
            if(isValid) {
                cout << "Valid" << '\n';
            } else {
                cout << "Invalid" << '\n';
            }
        } catch (BadLengthException e) {
            cout << "Too short: " << e.what() << '\n';
        }
    }
}

อินพุต

{"amit", "to", "paul_tim", "greg_harry", "towwer"}

ผลลัพธ์

Too short: 4
Too short: 2
Valid
Valid
Invalid