この課題にどのように取り組むべきですか? if/else ステートメントを使用する必要がありますか?
課題 1:
任意の数の正の値を受け入れる Windows アプリケーションを作成します。ユーザーはボタンをクリックして、入力されたすべてのデータをいつでも処理できます。結果の出力:
- 入力された n 個の数字すべての合計と、それに続く n 行が入力順に表示されます。
- 元の入力番号;
- この数値が合計に占める割合。
この課題にどのように取り組むべきですか? if/else ステートメントを使用する必要がありますか?
課題 1:
任意の数の正の値を受け入れる Windows アプリケーションを作成します。ユーザーはボタンをクリックして、入力されたすべてのデータをいつでも処理できます。結果の出力:
私はプロジェクト全体を理解していませんが。これは、少なくとも確実な方向性を示しているはずです。
この時点で、プロジェクトがキャンバスと共にデザイナー モードで開きます。一度何が起こっclickているかを説明するのに役立ちますForm。
ウィンドウの右側に と が表示さSolution ExplorerれPropertiesます。
ソリューション エクスプローラー: プロジェクトの内容が表示されます。次の内容が含まれます。
Assembly、Resource、およびSettings情報。Assembliesを拡張したり、実行中の他のアプリケーションにリンクしたりするのに役立つすべてのプロジェクト参照が含まれます。次のアイテムは、あなたのForm. これが最も重要な部分です。これは、すべての操作が行われる場所になるためです。
次に、私が言及した 2 番目の項目です。Properties. 入っているものではSolution Explorerなく、離れて立っているタブ。そのコンポーネントのすべての変更が表示されます。この場合、あなたのForm.
左側では、実際に に移動しToolboxます。これらは、Microsoft がすぐに提供するすべてのコンポーネントです。TextboxコンポーネントをToolbox(Formキャンバス)からドラッグするだけです。
transformation位置と寸法を操作するためのいくつかの点があるアウトラインに気付くでしょう。
さらに先に進む前に、何が起こったのかを詳しく説明します。に空白textboxを入力しましたForm。デフォルトでは、 と呼ばれTextBox1ます。コンポーネントが何であるかを特定し、目的の機能を特定することをお勧めします。ユーザーのファーストネームを探している場合は、名前を付けますtxtFirst。そうすれば、何を操作しているのかを理解しやすくなります。
私の目標は、あなたを正しい方向に導くことなので、次の手順に従ってください。
Label名前lblInputを付けます (テキストを任意の名前に変更します)。Textbox名前を付けてドラッグしtxtInputます。Rich Textbox名前を付けてドラッグしrtxtDisplayます。これら 3 つのコンポーネントは本質的にUser Interface. すべてのやり取りはここで行われます。しかし、インターフェイスには 1 つ欠けElementています。ボタン、これは と呼ばれるものを作成するので重要ですEvent。これらは本質的にインターフェイスに変更を通知するため、何かを行っているように見えます。
Button名前はbtnAddです。これでインターフェース全体が完成しました。ボタンをダブルクリックします。画面が変わります。このテキストがすべて表示されます。
重要な部分は、ボタンを選択して移動した場所です。
private void btnAdd_Click(object sender, EventArgs e)
{
// Implementation Here.
}
これによりEvent、ロジックを実行してアプリケーションを作成できるようになります。さて、私はあなたのコードを実行するつもりはありません。しかし、私はあなたが順応して学ぶことができるように、近いことをします。
private void btnAdd_Click(object sender, EventArgs e)
{
// Method One: "Casting"
// By default txtInput is a String, you require integers. So you can add.
/* So you would want to ensure proper Error Handling exists, otherwise when you cast you'll receive an invalid cast exception. */
txtInput.Text = (int)data;
}
ご覧のとおり、//と/*は、ロジックを理解しやすくするためにコメントするさまざまな方法です。私はあなたに何が起こっているのかを説明するためにそれを使用しています. はtxtInput.Text任意の入力string値を取り、現在は になっcastedていintegerます。
private void btnAdd_Click(object sender, EventArgs e)
{
// Method Two: "Array"
int[] data;
}
これで、実際に参照がメモリに割り当てられます。これにより、複数のものを に保存できますArray。textboxこのメソッドは、すべての入力を に渡す場合にうまく機能しますRich Textbox。次に、2 番目のボタンで配列を埋めて、各項目を追加できます。
この例では、実際にアスペクト全体を記述しますが、前述したように、ニーズを満たすために特定のことを行う必要があります。
public partial class Form1 : Form
{
// Create Storage
List<string> store = new List<string>();
private void button1_click(object sender, EventArgs e)
{
// Will add the input of the textbox to list each time button clicked.
store.Add(textbox1.Text);
}
private void button2_click(object sender, EventArgs e)
{
// Logic to Add the items.
}
}
戦いの半分はそこにあります。これを概念的に真に理解するのに役立つものは、プロジェクトを完了するのに役立つこれらのアイテムになります。
CastingArraysGenericsLoopsうまくいけば、それはあなたを助けます。これらはいくつかの基本的な教訓です。MSDN の入門レベルのチュートリアル コースをお勧めします。
textbox値を求めるプロンプトを作成します。buttons。ProcessButtonこれまでの値を処理するためINPUTのボタンと、ユーザー入力を取得するためのボタン (テキストボックスに値を入力した後にkey event handler押すことを好む場合は、を使用することもできます)ENTERList<int>値がテキストボックスに入力されているので、問題に応じてそれらを に保存します。ProcessButtonを呼び出して出力しますList<int>.Sum()List<int>usingforeachステートメントの各項目を出力します。