Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

छोटे उपयोगकर्ता नाम के लिए अपवाद को परिभाषित करने और उपयोगकर्ता नाम को मान्य करने के लिए C++ प्रोग्राम

मान लीजिए कि हमारे पास उपयोगकर्ता नामों की एक स्ट्रिंग है और हमें कुछ शर्तों के आधार पर यह जांचना होगा कि उपयोगकर्ता नाम मान्य है या नहीं। इसलिए हमें एक अपवाद को परिभाषित करना होगा जो तब फेंका जाता है जब उपयोगकर्ता नाम की लंबाई 5 वर्णों से कम हो। हमें वैध उपयोगकर्ता नाम के लिए "मान्य" वापस करना होगा, अमान्य उपयोगकर्ता नाम के लिए "अमान्य" और छोटे उपयोगकर्ता नामों के लिए अपवाद फेंकना होगा। मान्य उपयोगकर्ता नाम शर्तें हैं -

  • उपयोगकर्ता नाम पांच वर्णों का होना चाहिए

  • उपयोगकर्ता नाम में लगातार दो 'w' नहीं होने चाहिए

इसलिए, यदि इनपुट unames =["amit", "to", "paul_tim", "greg_harry", "towwer"] जैसा है, तो आउटपुट [बहुत छोटा:4, बहुत छोटा:2, मान्य, मान्य होगा , अमान्य] क्योंकि पहले दो बहुत छोटे हैं, और अंतिम में लगातार दो 'w' हैं। अन्य ठीक हैं।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • BadLengthExcaption नामक अपवाद को परिभाषित करें

  • यह संदेश की लंबाई लौटाएगा

  • फ़ंक्शन सत्यापन () को परिभाषित करें, यह u_name लेगा,

  • isValid :=true

  • n :=u_name का आकार

  • अगर n <5, तो:

    • एक BadLengthException (n) फेंकें

  • प्रारंभ करने के लिए मैं:=0, जब मैं

    • अगर u_name[i] 'w' के समान है और u_name[i + 1] 'w' के समान है, तो:

      • isValid :=false

  • वापसी वैध है

  • मुख्य विधि से निम्न कार्य करें:

  • सभी उपयोगकर्ता नाम 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

  1. C++ में घनाभ के आयतन और सतह क्षेत्र के लिए कार्यक्रम

    घनाभ क्या है? घनाभ एक त्रि-आयामी वस्तु है जिसमें आयत आकार के छह फलक होते हैं जिसका अर्थ है कि इसकी अलग-अलग लंबाई और चौड़ाई की भुजाएँ हैं। घन और घनाभ के बीच का अंतर यह है कि एक घन की लंबाई, ऊंचाई और चौड़ाई समान होती है जबकि घनाभ में ये तीनों समान नहीं होते हैं घनाभ के गुण हैं - छह चेहरे 12 किनारे

  1. C++ में घन के आयतन और सतह क्षेत्र के लिए कार्यक्रम

    घन क्या है? घन एक त्रि-आयामी वस्तु है जिसमें चौकोर आकार के छह फलक होते हैं, जिसका अर्थ है कि इसकी लंबाई और चौड़ाई समान है। घन निम्नलिखित गुणों वाला एकमात्र नियमित हेक्साहेड्रोन है - छह चेहरे 12 किनारे 8 कोने घन की आकृति नीचे दी गई है समस्या पक्ष के साथ दिया गया, कार्य एक घन का कुल सतह क्षेत्र

  1. QuickSort के लिए C++ प्रोग्राम?

    क्विकसॉर्ट एक छँटाई तकनीक है जो एक क्रमबद्ध सूची (सरणी) को क्रमबद्ध करने के लिए तुलना का उपयोग करती है। Quicksort को पार्टीशन एक्सचेंज सॉर्ट के रूप में भी जाना जाता है। यह एक स्थिर प्रकार नहीं है, क्योंकि समान प्रकार की वस्तुओं का सापेक्ष क्रम संरक्षित नहीं है। क्विकसॉर्ट एक सरणी पर काम कर सकता है,