✔︎Pickup
【プログラミング】総当たりのプログラム②(実装編)

前回の記事はこちらになっています↓

前回の記事の設計を基にプログラミングを行っていきたいと思います。

プログラムの最終形

最終的なプログラムは以下のようなGUIになります。
これからプログラムを作成する手順を記載していきます。

プログラムの作成手順

Visual studioを起動し、新規のプロジェクトを作成します。

「ファイル(F)」から「新規作成(N)」を選択し、「プロジェクト(P)」を選択する。

左側の「テンプレート」から「Visual C#」を選択し、「Windowsフォームアプリケーション」を選択する。
「名前(N):」を「BFA」としました。
「場所(L):」を「C:\gitwork\project_file」としました。
「ソリューション名(M):」を「BFA」としました。
問題なければ、「OK」を選択します。

プロジェクトが正常に作成されると以下の画面が表示されます。

ではまず、UIの作成から行っていきます。

「ツールボックス」から「TextBox」を選択します。

「TextBox」を右クリックして、「コピー(Y)」を選択します。

「Form1」にクリックすることで「TextBox」が作成されます。

「TextBox」を複数行の表示ができるように設定を変更します。

「Form1」の「TextBox」を右クリックして、「プロパティ(R)」を選択する。

「プロパティ」画面から「Multiline」を選択して、「False」から「True」に変更します。

「プロパティ」画面から「Multiline」を選択して、「False」から「True」に変更できました。

以下の画面のように「TextBox」を拡張して、表示することが可能になります。

次に「Button」を追加します。

「button」を追加して、「プロパティ」の「Text」に「総当たり」という文字を入力しました。

「総当たり」buttonをダブルクリックすることで「Form1.cs」のファイルが開かれます。

ソースコード

プログラムを記述する前のソースコードは以下の記述になっています。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BFA
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

        }
    }
}

private void button1_Click(object sender, EventArgs e)の関数の中にプログラムを記述していきます。
この関数はGUI上で作成した「総当たり」buttonを押すことでプログラムが実行されます。

中間時点のソースコード

まずは1桁目の0~Zを表示することができるプログラムを作成しました。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BFA
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            char[] charlist = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', //調査対象の数字のデータ
                'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', //調査対象の英字小文字のデータ
                'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };//調査対象の英字大文字のデータ
            char one_digits = '0';      //一桁目のデータを格納する変数
            int max_loop_cnt = 62;      //アルファベット26x2 数字10
            int i = 0;                  //一桁目のループカウンタ
            string display_data = "0";  //GUIに表示するデータを格納する変数

            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //1桁目を0~Zまで検索
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            for (i = 0; i < max_loop_cnt; i++)          //一桁目のループ
            {
                one_digits = charlist[i];               //charlistに格納しているデータをone_digitsに1文字ずつ格納していく

                display_data = one_digits.ToString();   //char文字をstringに変換してdisplay_dataに格納する

                textBox1.Text = display_data;           //display_dataをGUIのtextBox1に表示する

                textBox1.Refresh();                     //GUIに表示する文字が実行毎に表示されるようにGUI画面を更新する
            }
        }
    }
}

プログラムの動作確認

1桁目の0~Zを表示することができるプログラムが動作するのか確認してみたいと思います。
「デバッグ(D)」を選択し、「デバッグなしで開始(H)」を選択します。

以下のようなGUIが表示されます。「総当たり」のbuttonをクリックすることでプログラムが実行されます。

速すぎて、目視確認できませんでしたが、「Z」が表示されました。

プログラムのデバッグ

正しく動作しているのか、念のためデバッグしてみます。
「Form1」のプログラムを「×」buttonをクリックして、プログラムを閉じます。
Visual Studioの「デバッグ(D)」から「デバッグの開始(S)」をクリックする。

for文の行の左端をクリックし、ブレークポイントを設定する。

GUIの「総当たり」buttonをクリックして、プログラムを実行する。

for文の行で黄色の矢印が付いているので、プログラムがfor文の指定行で停止していることがわかります。
キーボードの「F11」をクリックして、プログラムを一行ずつ実行して、確認しました。
目視確認で問題なく、動作していましたので1桁目の表示プログラムは完成とします。

1桁目を表示するプログラムが完成しましたので、次回の記事で2~4桁目のプログラムの追加と時間計測を行っていきます。
次の記事は以下になります↓

ブログ村リンク
ポチッと押してね!フォローもしてね!

ブログランキング・にほんブログ村へ
にほんブログ村
おすすめの記事