2015-04-16 2 views
-3

Я делаю программу WPF, чтобы определить, сколько часов требуется, чтобы сделать определенное количество хлеба.C# wpf textbox while

мне нужно пользователю ввести

  • Объем хлеба они хотят сделали
  • Емкость они могут создать хлеба в час

и это должно дать результаты с тем, как много часов хлеб был выпекаем и производился в течение этого часа, так что для 130 кусков хлеба вместимостью 50 результат был бы

1-50 
2-50 
3-50 

Я считаю, что проблема в моем цикле while, но я не совсем уверен, в чем проблема. В настоящее время я не получаю желаемый результат, хотя программа будет компилироваться.

private void btnStart_Click(object sender, RoutedEventArgs e) 
{ 
    int Bread = 0; 
    int Capacity = 0; 
    int Time = 0; 
    int InitialTime = 0; 
    Bread = int.Parse(txtBread.Text); 
    Time = int.Parse(txtTime.Text); 
    InitialTime = int.Parse(txtInitialTime.Text); 
    Capacity = int.Parse(txtCapacity.Text); 

    while (Bread > 0) 
    { 
     if (Bread > Capacity) 
     { 
      Bread -= Capacity; 
      txtResult.Text = txtResult.Text + "\n" + (Bread - Capacity).ToString(); 
      InitialTime += Time; 
      txtResult.Text = txtResult.Text + "\n" + (Bread - Capacity).ToString(); 
     } 

     else 
     { 
      Bread -= Capacity; 
      txtResult.Text += Bread.ToString(); 
      InitialTime += Time; 
     } 
} 

Спасибо всем :)

+0

Что все это нужно сделать с 'while' цикла ? Вы сказали нам немного о том, что вы пытаетесь сделать, но не в том, что с ним не так, поэтому нам сложно сказать вам, где проблема. –

+0

переплет - ваш друг – kmcnamee

+1

Добро пожаловать в переполнение стека!Непонятно, что вы спрашиваете здесь. Проверьте [Как спросить] (stackoverflow.com/help/how-to -ask). –

ответ

0

Хорошо я знаю, что вы уже спрашивали об этом, и я пытался помочь вам, но ваш вопрос так трудно понять, я, видимо, не было.

Итак, цикл while хорошо выглядит, как я это сделал, кроме того, что результаты не имеют смысла, потому что я не знаю, чего вы хотите.

Я собираюсь попытаться перевести вашу проблему на то, что я понимаю, вы покажете нам, какими должны быть результаты, но не то, что они есть. Похоже, что вы хотите, количество часов, хлеб был достигнут, и потенциал для этого часа

string printString = ""; 
int totalTime = 0; 
int timeInterval = 1; 
while (Bread > 0) 
{ 
    if (Bread > Capacity) 
    { 
     Bread -= Capacity; 
     totalTime += timeInterval; 
     printString += string.Format("{0} - {1}\n", totalTime, Capacity); 
    } 

    else 
    { 
     Bread -= Capacity; 
     totalTime += timeInterval; 
     printString += string.Format("{0} - {1}", totalTime, Capacity); 
     txtResult.text = printString; 
    } 
} 

Это будет запускать цикл While, когда хлеб больше 0, он будет ввести, если заявление, если есть по-прежнему больше хлеба, чем количество хлеба, которое вы можете сделать , и каждый раз через цикл он будет потреблять емкость с хлеба и добавлять час к тому времени.

В последнем проходе через хлеб будет меньше емкости, и он будет работать через инструкцию else, затем он поместит printString в текстовое поле результата, что сделает хлеб меньше 0 и закончит цикл.

Если это не так, как вы хотите, тогда вам нужно быть намного понятнее, чем вам нужна помощь.

Я также хотел бы отметить в кодексе выше. Я писал только переменные, которые я использую, которые вы еще не объявили, поэтому не извлекайте все свои другие переменные, если они все еще используются в коде.

Я сделал полную программу, чтобы посмотреть, если вы все еще возникают проблемы с

CLASS

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 

namespace WpfApplication7 
{ 
/// <summary> 
/// Interaction logic for MainWindow.xaml 
/// </summary> 
public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     int bread = Convert.ToInt32(txtBread.Text); 
     int capacity = Convert.ToInt32(txtCapacity.Text); 
     string printString = ""; 
     int totalTime = 0; 
     int timeInterval = 1; 
     while (bread > 0) 
     { 
      if (bread > capacity) 
      { 
       bread -= capacity; 
       totalTime += timeInterval; 
       printString += string.Format("{0} - {1}\n", totalTime, capacity); 
      } 

      else 
      { 
       bread -= capacity; 
       totalTime += timeInterval; 
       printString += string.Format("{0} - {1}", totalTime, capacity); 
       txtResult.Text = printString; 
      } 
     } 
    } 
} 
} 

XAML

<Window x:Class="WpfApplication7.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <TextBox HorizontalAlignment="Left" Height="23" Margin="69,42,0,0" TextWrapping="Wrap" Name="txtBread" Text="" VerticalAlignment="Top" Width="120"/> 
     <TextBox HorizontalAlignment="Left" Height="23" Margin="69,70,0,0" TextWrapping="Wrap" Name="txtCapacity" Text="" VerticalAlignment="Top" Width="120"/> 
     <TextBox HorizontalAlignment="Left" Height="255" Margin="221,42,0,0" TextWrapping="Wrap" Name="txtResult" Text="" VerticalAlignment="Top" Width="177"/> 
     <Button Content="Button" HorizontalAlignment="Left" Margin="114,98,0,0"  VerticalAlignment="Top" Width="75" Click="Button_Click"/> 

    </Grid> 
</Window> 
+0

спасибо Scriven, это правда, что я спросил об этом раньше, но я didn я получаю ответ, sot я опубликовал снова, я понимаю, что вопрос не очень ясен, но я новичок в программировании, спасибо большое :) – progrkito

+0

Помогло ли вам это, или есть что-то еще Понимаю? – Scriven

+0

Также у меня есть один вопрос, почему в моем коде после исправления кода, теперь после нажатия кнопки, результат равен нулю – progrkito