この課題にどのように取り組むべきですか? 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.
}
}
戦いの半分はそこにあります。これを概念的に真に理解するのに役立つものは、プロジェクトを完了するのに役立つこれらのアイテムになります。
Casting
Arrays
Generics
Loops
うまくいけば、それはあなたを助けます。これらはいくつかの基本的な教訓です。MSDN の入門レベルのチュートリアル コースをお勧めします。
textbox
値を求めるプロンプトを作成します。buttons
。ProcessButton
これまでの値を処理するためINPUT
のボタンと、ユーザー入力を取得するためのボタン (テキストボックスに値を入力した後にkey event handler
押すことを好む場合は、を使用することもできます)ENTER
List<int>
値がテキストボックスに入力されているので、問題に応じてそれらを に保存します。ProcessButton
を呼び出して出力しますList<int>.Sum()
List<int>
usingforeach
ステートメントの各項目を出力します。