小さいユーザー名の例外を定義し、ユーザー名を検証するC++プログラム
ユーザー名の文字列があり、いくつかの条件に基づいてユーザー名が有効かどうかを確認する必要があるとします。したがって、ユーザー名の長さが5文字未満の場合にスローされる例外を定義する必要があります。有効なユーザー名の場合は「Valid」、無効なユーザー名の場合は「Invalid」を返し、小さいユーザー名の場合は例外をスローする必要があります。有効なユーザー名の条件は次のとおりです-
-
ユーザー名は5文字の長さである必要があります
-
ユーザー名に2つの連続した「w」があってはなりません
したがって、入力がunames =["amit"、 "to"、 "paul_tim"、 "greg_harry"、 "towwer"]の場合、出力は[Too short:4、Too short:2、Valid、Valid 、無効]最初の2つは小さすぎ、最後の1つには2つの連続した「w」があるため。その他は大丈夫です。
これを解決するには、次の手順に従います-
-
BadLengthExcaptionと呼ばれる例外を定義します
-
メッセージの長さを返します
-
関数validation()を定義します。これにはu_nameが必要です
-
isValid:=true
-
n:=u_nameのサイズ
-
n <5の場合:
-
BadLengthException(n)をスローします
-
-
初期化i:=0の場合、i
-
u_name[i]が'w'と同じで、u_name [i +1]が'w'と同じ場合、次のようになります。
-
isValid:=false
-
-
-
isValidを返す
-
メインの方法から、次の手順を実行します。
-
unamesのすべてのユーザー名u_nameについては、実行してください
-
validate(u_name)
-
有効な場合は有効な印刷
-
それ以外の場合、無効な印刷が無効な場合
-
それ以外の場合、長さが小さい場合は印刷が小さすぎます
-
例
理解を深めるために、次の実装を見てみましょう-
#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
-
C++での直方体の体積と表面積のプログラム
直方体とは何ですか? 直方体は、長方形の6つの面を持つ3次元オブジェクトです。つまり、辺の長さと幅が異なります。立方体と直方体の違いは、立方体の長さ、高さ、幅が等しいのに対し、直方体ではこれら3つは同じではないことです 直方体の特性は次のとおりです- 6つの顔 12個のエッジ 8つの頂点 以下は立方体の図です 問題 長さ、幅、体積が与えられた場合、タスクは直方体の総表面積と体積を見つけることです。ここで、表面積は面が占めるスペースであり、体積は形状に含めることができるスペースです。 直方体の表面積と体積を計算するには、式があります 表面積=2(| * w + w * h
-
QuickSort用のC++プログラム?
クイックソートは、比較を使用してソートされていないリスト(配列)をソートするソート手法です。クイックソートは、パーティション交換ソートとも呼ばれます。 等しいソート項目の相対的な順序が保持されないため、安定したソートではありません。クイックソートは配列を操作できるため、ソートを実行するために少量の追加メモリが必要です。常に最悪の場合のパーティションを選択するわけではないことを除いて、選択ソートと非常によく似ています。したがって、選択ソートのより適切な形式と見なすことができます。 QuickSortは、最も効率的な並べ替えアルゴリズムの1つであり、配列を小さい配列に分割することに基づいていま