私がアマチュアっぽく出くわしたら許してください、これを数週間しかやっていません。年齢と選択した保険プランに基づいて、毎月の保険料と合計保険料を計算するアプリケーションを作成する必要があります。
calcButton_click イベントの前にいくつかのメソッドを作成しました。
i) ageCatTest を使用して、クライアントが属する年齢カテゴリを決定します。
ii) deductibleChoice (0、75、または 100) を支払う免責額を決定します。3 つすべてをリストボックスに入れる方が、これら 3 つのオプション以外の回答を含むコードを作成するよりも簡単だと思いました。
iii) どのプランが選択されたか (A または B) を決定するための planChoice。また、リストボックスを使用して、可能な回答の領域を含めようとしました。
行 [0] はプラン A に対応し、行 [1] はプラン B に対応します。列 [0,1,2,3,4] は年齢カテゴリに対応します。 (ageCat)。次に、ageCat メソッドと planChoice メソッドの結果をインデックス キーとして使用して、配列から値が選択されるように設定しようとしました。
最後に、保険料が決定されると、潜在的な割引が掛けられます (ユーザーがリストボックスで免責金額として 0 ではなく 75 または 100 を選択した場合)。
これらすべての結果は、calcButton_click がアクティブ化されたときにいくつかのテキスト ボックスに表示されるはずですが、そうではありません。計算を押してもフリーズしたり遅れたりすることはありません。何も起こりません。
Visual Studio はエラーを見つけることができず、コンパイラに関する限りエラーはありません。ただし、何も起こっていないので、メソッドまたは click_event のいずれかを構造化した方法に問題があると想定していますが、何も見つかりません。誰かが明らかな間違いを見つけることができれば、それは大歓迎です。
ありがとうございました!
namespace InsuranceApp
{
public partial class insuranceCalculator : Form
{
public insuranceCalculator()
{
InitializeComponent();
}
private bool planChoice(string plan)
{
bool planType = false;
if (plan.Equals("B"))
{
planType = true;
return planType;
}
return planType;
}
private decimal deductibleChoice(string deductibleSelect)
{
decimal discount;
discount = 1;
switch (deductibleSelect)
{
case "75":
discount = 0.95m;
return discount;
case "100":
discount = 0.92m;
return discount;
}
return discount;
}
private int ageCatTest(int age)
{
int ageCat = 0;
if (age >= 36 && age <= 45)
{
ageCat = 1;
return ageCat;
}
else if (age >= 46 && age <= 55)
{
ageCat = 2;
return ageCat;
}
else if (age >= 56 && age <= 65)
{
ageCat = 3;
return ageCat;
}
else if (age >= 66 && age <= 75)
{
ageCat = 4;
return ageCat;
}
return ageCat;
}
private void calcButton_Click(object sender, EventArgs e)
{
int[,] plans = {{80, 90, 110, 140, 170},
{100, 110, 125, 170, 210}};
int ageCat;
int planType = 0;
int age;
decimal discount;
string deductible;
decimal coverage = 100000;
decimal monthlyPremium;
int months;
string plan;
decimal totalPremium;
if (int.TryParse((ageTextBox.Text), out age))
{
if (age < 18 || age > 75)
{
MessageBox.Show("Sorry, you are ineligible for travel insurance.");
}
else
{
if (int.TryParse((monthsTextBox.Text), out months))
{
ageCat = ageCatTest(age);
plan = planListBox.SelectedItem.ToString();
if (planChoice(plan) == true)
{
planType = 1;
coverage = 150000;
}
coverageTextBox.Text = coverage.ToString("n2");
deductible = deducSelBox.SelectedItem.ToString();
discount = deductibleChoice(deductible);
monthlyPremium = plans[planType, ageCat];
monthlyPremium = monthlyPremium * discount;
premiumTextBox.Text = monthlyPremium.ToString("n2");
totalPremium = monthlyPremium * months;
totalPremTextBox.Text = totalPremium.ToString("n2");
}
}
}
}
private void exitButton_Click(object sender, EventArgs e)
{
this.Close();
}
}
}