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

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


สมมติว่าเรามีสตริงชื่อผู้ใช้ ต้องตรวจสอบความถูกต้องตามเงื่อนไข: กำหนดข้อยกเว้น (exception) เมื่อชื่อสั้นกว่า 5 ตัวอักษร คืนค่า "Valid" สำหรับชื่อถูกต้อง "Invalid" สำหรับชื่อไม่ถูกต้อง และโยนข้อยกเว้นสำหรับชื่อสั้นเกินไป

เงื่อนไขชื่อถูกต้อง:

  • ยาวอย่างน้อย 5 ตัวอักษร
  • ไม่มี 'w' ติดกัน 2 ตัว

เช่น unames = ["amit", "to", "paul_tim", "greg_harry", "towwer"] ผลลัพธ์: [Too short: 4, Too short: 2, Valid, Valid, Invalid]

ขั้นตอนการแก้ปัญหา

  • สร้างคลาส BadLengthException เก็บความยาว
  • ฟังก์ชัน validation(u_name):
    • ถ้าความยาว < 5 โยน BadLengthException
    • ตรวจสอบ 'w' ติดกัน: ถ้ามี isValid = false
    • คืนค่า isValid
  • ใน main: เรียก validation ใน try-catch แสดงผลตามกรณี

ตัวอย่างโค้ด

#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++){       try { bool isValid = validation(unames[i]); 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