6. 設計一聰明餐桌程式

圖???

using Q6.Properties;

namespace Q6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            foreach (var item in main)
            {
                主餐ToolStripMenuItem.DropDownItems.Add(item.Key).Click += (s, c) =>
                {
                    (A[0] == "" ? A : B)[0] = item.Key;
                    draw();
                };
            }
            foreach (var item in salad)
            {
                沙拉ToolStripMenuItem.DropDownItems.Add(item.Key).Click += (s, c) =>
                {
                    (A[1] == "" ? A : B)[1] = item.Key;
                    draw();
                };
            }
            foreach (var item in soup)
            {
                濃湯ToolStripMenuItem.DropDownItems.Add(item.Key).Click += (s, c) =>
                {
                    (A[2] == "" ? A : B)[2] = item.Key;
                    draw();
                };
            }
            foreach (var item in sweet)
            {
                原燒冰淇淋ToolStripMenuItem.DropDownItems.Add(item.Key).Click += (s, c) =>
                {
                    (A[3] == "" ? A : B)[3] = item.Key;
                    draw();
                };
            }
        }

        List<string> A = new List<string>() { "", "", "", "" };
        List<string> B = new List<string>() { "", "", "", "" };

        void draw()
        {
            groupBox1.Controls.Clear();
            groupBox1.Controls.Add(label1);
            groupBox1.Controls.Add(priceA);
            groupBox2.Controls.Clear();
            groupBox2.Controls.Add(label3);
            groupBox2.Controls.Add(priceB);
            for (int z = 0; z < 2; z++)
            {
                var price = 0;
                for (int i = 0; i < 4; i++)
                {
                    Dictionary<string, int> k = null;
                    switch (i)
                    {
                        case 0:
                            k = main;
                            break;
                        case 1:
                            k = salad;
                            break;
                        case 2:
                            k = soup;
                            break;
                        case 3:
                            k = sweet;
                            break;
                    }

                    string? item = z == 0 ? A[i] : B[i];
                    var idx = k.Keys.ToList().IndexOf(item);
                    if (idx == -1) continue;
                    var p = k.Values.ToList()[idx];
                    price += p;

                    var lbl= new Label();
                    lbl.Text = item + "(" + p + "元)";
                    lbl.Left = (i % 2) * 250;
                    lbl.Width = 200;
                    lbl.Top = (i / 2) * 290+20;
                    
                    PictureBox picture = new PictureBox();
                    picture.Height = 250;
                    picture.Width = 250;
                    picture.SizeMode = PictureBoxSizeMode.StretchImage;
                    picture.Left = (i % 2) * 250;
                    picture.Top = (i / 2) * 290+40;
                    picture.Image = (Bitmap)Resources.ResourceManager.GetObject("_" + idx + "_" + i);
                    (z == 0 ? groupBox1 : groupBox2).Controls.Add(picture);
                    (z == 0 ? groupBox1 : groupBox2).Controls.Add(lbl);
                }
 (z == 0 ? priceA : priceB).Text = price.ToString()+" 元";
            }
        }

        Dictionary<string, int> main = new()
        {
                        {"蕃茄雞肉義大利麵",75 },
            {"羅勒海鮮義大利麵",70},
            {"奶油燻雞義大利麵",65 },
            {"白酒蛤蠣麵",80 },
        };
        Dictionary<string, int> salad = new()
        {
            {"水果優格沙拉",45},{"生春捲沙拉",40},{"筊白筍青蔬沙拉",50},{"牛蕃茄沙拉",40}
        };
        Dictionary<string, int> soup = new Dictionary<string, int>()
        {
            {"大蒜蛤蜊湯",45},{"蕃茄海鮮湯",40},{"吟釀味噌湯",40},{"元氣牛肉湯",50}
        };
        Dictionary<string, int> sweet = new Dictionary<string, int>()
        {
            {"原燒冰淇淋",40},{"桂花紅豆湯",45},{"白玉紫米",40},{"黑糖奶酪",35}
        };

        private void groupBox1_Enter(object sender, EventArgs e)
        {
        }

        private void 沙拉ToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void 原燒冰淇淋ToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }
    }
}

Last updated