Windows Form C# программа, считающая конечный счёт клиента

Суть задания:
создать программу, которая считала бы конечный счёт клиента. Есть 4 комбобокса, которые обозначают категории еды(первые блюда,вторые, десерт и напитки). 3 текстбокса – счёт, где отображаются, выбранная из комбобоксов еда, конечный счёт и налог(от чёта какоето колличество процентов). Клиент может выбрать только что-то одно из комбобокса и это переносится в текстбок Счёт, затем цена, выбранного переноситься в конечный счёт и суммируется.Также есть кнопка очистить все текстбоксы.

Проблемы возникли в следующем:
-нужно ограничить выбор из комбобокса. По моему коду получается, что выбирать можно сколько угодно, а должно быть только один раз
-конечный счёт. Как из массива вытянуть эту цену??чтобы когда что-то выбираешь цена переносилась в конечный счёт и всё складывалось??

Вот мой код:

 

 

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

namespace teht14_5
{

public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();

Eda[] pervye = { new Eda("Aamiaissarvet", 5),
new Eda("Alkukesän salaatti", 10),
new Eda("Ann-Marin keitto ", 15),
};

PervComboBox.Items.AddRange(pervye);

Eda[] vtorye = { new Eda("Ananaskanaa", 20),
new Eda("BBQ Kalkkunakebab", 25),
new Eda("Yrttitarhalohta", 15),
};
VtoryeComboBox.Items.AddRange(vtorye);

Eda[] desert = { new Eda("Donitsi", 3),
new Eda("Jäätelö ",4),
new Eda("Suklaakakku", 5),
};

DesertComboBox.Items.AddRange(desert);

Eda[] napitki = { new Eda("Kahvi", 2),
new Eda("Tee ",2),
new Eda("Mehu", 3),
};

DesertComboBox.Items.AddRange(napitki);
}

class Eda
{
public String Nimi { get; set; }
public double Cena { get; set; }

public Eda(string n, double h)
{
Nimi = n;
Cena = h;
}

public override string ToString()
{
return Nimi + " " + Cena.ToString();
}

}

private void PervComboBox_SelectedIndexChanged(object sender, EventArgs e)
{

string selectedItem = PervComboBox.SelectedItem.ToString();

SchotTextBox.AppendText(selectedItem);

}

 

private void VtoryeComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
string selectedItem1 = VtoryeComboBox.SelectedItem.ToString();

SchotTextBox.AppendText(selectedItem1);

}

 

private void DesertComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
string selectedItem = DesertComboBox.SelectedItem.ToString();

}

 

private void NapitkiComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
string selectedItem = NapitkiComboBox.SelectedItem.ToString();

}

 

private void TyhjennaBtn_Click(object sender, EventArgs e)
{

foreach (Control c in this.Controls)
if (c is TextBox)
(c as TextBox).Clear();

}

 

private void VeroTextBox_TextChanged(object sender, EventArgs e)
{

}

private void SummaTextBox_TextChanged(object sender, EventArgs e)
{
double summa;


}

}
}

 

 

 

Нужна помощь!Заранее спасибо.

Читайте также:

One thought on “Windows Form C# программа, считающая конечный счёт клиента

  1. anonim

    если из каждого комбобокса можно выбрать лишь один элемент, то тогда можешь сделать так (в примере два комбобокса comboBox1 и comboBox2, для которых соответственно вызываются функции comboBox1_SelectedIndexChanged и comboBox1_SelectedIndexChanged):
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
    // при смене выбора каждый раз обновляем Textbox и TotalPrice
    updateTextbox();
    updateTotalPrice();}private void comboBox2_SelectedIndexChanged(object sender, EventArgs e){ updateTextbox(); updateTotalPrice();}  private void updateTextbox() {           textBox1.Text = “”;          if (comboBox1.SelectedIndex != -1)           {                   textBox1.Text += comboBox1.Items[comboBox1.SelectedIndex].ToString();              textBox1.Text += Environment.NewLine;        }         if (comboBox2.SelectedIndex != -1)       {                   textBox1.Text += comboBox2.Items[comboBox2.SelectedIndex].ToString();            textBox1.Text += Environment.NewLine;      }} private void updateTotalPrice(){          double totalPrice = 0.0;      if (comboBox1.SelectedIndex != -1)           {                   var eda1 = comboBox1.Items[comboBox1.SelectedIndex] as Eda;            totalPrice += eda1.Cena;          }          if (comboBox2.SelectedIndex != -1)      {                   var eda2 = comboBox2.Items[comboBox2.SelectedIndex] as Eda;             totalPrice += eda2.Cena;          }         txtTotalPrice.Text = “$” + totalPrice.ToString();}
     
    таким образом цена считается только для выбранных элементов и общая сумма записывается в соответствующий тексбокс

    Reply