小さいユーザー名の例外を定義し、ユーザー名を検証する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つであり、配列を小さい配列に分割することに基づいていま