1

これは宿題です(私はいつもそれを指摘するようにしていますので、前もって書いておきます)。プログラムは変換プログラムです。ユーザーは、コンボ ボックスから変換オプションを選択し、長さ (つまり、フィートからメートル) を入力すると、プログラムは変換を計算します。配列部分が混乱しているので、いくつか質問があります。正しい方向に進んでいることを確認したかったのです。

配列を使用してコンボボックスにデータを入力していると思います(完全には理解していませんが、提供されている例を使用しました)。ユーザーが計算ボタンを押したときに、コンバージョン値を同じ配列に保存する必要がありますか? 何かのようなもの:

string [,] conversions = { {kilometers to miles, .11111}, {miles to kilometers, .11111}}

それとも、私が持っているもので正しい方向に向かっていますか? コード化されているので明確にするために、配列がコンボボックスに入力されるため、余分なデータを追加すると、それらの数値がコンボボックスに表示されますが、これは実際には目的ではありません。

次の質問は、ユーザーが [計算] ボタンを押したときに、ユーザーが選択したオプションをどのように知るのでしょうか? インデックスと関係があると思いますが、実際に宣言しているものについては混乱していますか?

***** この質問は無視してください。私は答えを見つけたと思います*********

ラベルの更新に関する回答

最後に、私の最後の質問は、ページのテキストボックスの横にラベルがあるため、ユーザーが「マイルからキロメートル」を選択すると、入力テキストボックスにマイルが表示され、回答テキストボックスにキロメートルが表示されるということです...それは何と呼ばれますか?私は私の本でそれを見つける必要があり、できません.何かが欠けていることは知っていますが、例または本のどこでそれがカバーされているかを見つけようとしていますが、単にそれが表示されていません.


以下は、私が現在持っている私のコードです。

public partial class FrmConversions : Form
{
    const double Miles_To_Kilometers = 1.6093;
    const double Kilometers_To_Miles = 0.6214;
    const double Feet_To_Meters = 0.3048;
    const double Meters_To_Feet = 3.2808;
    const double Inches_To_Centimeters = 2.54;
    const double Centimeters_To_Inches = 0.3937;

    public FrmConversions()
    {
        InitializeComponent();
    }


    private void btnExit_Click(object sender, EventArgs e)
    {
        this.Close();
    }


    private void FrmConversions_Load(object sender, EventArgs e)
    {
        cboConversions.Items.Clear(); //clear the combobox

        string[,] conversions =
            {
                {"Kilometers to Miles"  , "Miles to Kilometers"},
                {"Feet to Meters"       , "Meters to Feet"},
                {"Inches to Centimeters", "Centimeters to Inches"}
            };

        foreach (string str in conversions)
        {
            cboConversions.Items.Add(str);
        }
    }


    private void btnClear_Click(object sender, EventArgs e)
    {
        txtEntry.Clear();
        txtAnswer.Clear();
    }


    public bool IsDecimal(TextBox txtEntry, string name)
    {
        try
        {
            Convert.ToDecimal(txtEntry.Text);
            return true;
        }

        catch (FormatException)
        {
            MessageBox.Show(name + " must be a decimal value.", "Entry Error");
            txtEntry.Focus();
            return false;
        }
    }


    private void btnCalculate_Click(object sender, EventArgs e)
    {
        int index = cboConversions.SelectedIndex;
        if (index != -1)
        {
            try
            {
                if (IsDecimal())
                {
                    txtAnswer.Text = ToString;
                }

                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message + "\n\n" +
                    ex.GetType().ToString() + "\n" +
                    ex.StackTrace, "exception");
                }
            }
        }
    }
}


}
4

1 に答える 1