Расчет процентов и вывод изображений из этих процентов c # WPF - PullRequest
0 голосов
/ 10 июня 2018

Итак, я использую Visual Studio, у меня есть 4 текстовых поля, в каждом из которых будет число от 1 до 5, а затем у меня есть кнопка вычисления, которая при нажатии подсчитает процент добавленных чисел,Награда выводится в виде изображения (либо золотая звезда (90% или выше), серебряная звезда (90-75%), бронзовая звезда (75 - 60%) или нет).Эта награда выводится в графическом окне.Я не знаю, как это сделать, поэтому всякая помощь приветствуется.

Вот мой текущий код

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void btnCalculate_Click(object sender, RoutedEventArgs e)
    {
        double dPercentage = Convert.ToDouble(((Convert.ToInt32(txtScore1.Text) + Convert.ToInt32(txtScore2.Text) + Convert.ToInt32(txtScore3.Text) + Convert.ToInt32(txtScore4.Text)) * 20) / 100);//calculates the percentage

        if(dPercentage > 89)
        {
            imgAward.Source = new BitmapImage(new Uri(@"Images/gold.png", UriKind.RelativeOrAbsolute));
        }
        else if(dPercentage > 74 && < 90)
        {
            imgAward.Source = new BitmapImage(new Uri(@"Images/silver.png", UriKind.RelativeOrAbsolute));
        }
        else (dPercentage > 59 && < 74)
        {
            imgAward.Source = new BitmapImage(new Uri(@"Images/bronze.png", UriKind.RelativeOrAbsolute));
        }
    }
}}

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

Помимо логических ошибок при принятии решения, процентный расчет неверен.Попробуйте это ...

    private void btnCalculate_Click(object sender, RoutedEventArgs e)
    {
        double dPercentage = Convert.ToDouble(((Convert.ToInt32(txtScore1.Text) + Convert.ToInt32(txtScore2.Text) + Convert.ToInt32(txtScore3.Text) + Convert.ToInt32(txtScore4.Text))) / 20.0) * 100;//calculates the percentage

        if (dPercentage >= 90)
        {
            imgAward.Source = new BitmapImage(new Uri(@"Images/gold.png", UriKind.RelativeOrAbsolute));
        }
        else if (dPercentage >= 75)
        {
            imgAward.Source = new BitmapImage(new Uri(@"Images/silver.png", UriKind.RelativeOrAbsolute));
        }
        else if (dPercentage >= 60)
        {
            imgAward.Source = new BitmapImage(new Uri(@"Images/bronze.png", UriKind.RelativeOrAbsolute));
        }
        else
        {
            imgAward.Source = null;
        }
    }
0 голосов
/ 10 июня 2018

Сначала ваша логика здесь неправильна

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void btnCalculate_Click(object sender, RoutedEventArgs e)
    {
    double dPercentage = Convert.ToDouble(((Convert.ToInt32(txtScore1.Text) + Convert.ToInt32(txtScore2.Text) + Convert.ToInt32(txtScore3.Text) + Convert.ToInt32(txtScore4.Text))) / 20.0) * 100;//calculates the percentage

    if(dPercentage >= 90)
    {
        //Percentage is greater than 89
        MessageBox.Show("Eligible For the Gold Award");

        imgAward.Source = new BitmapImage(new Uri("pack://application:,,,/Images/gold.png", UriKind.Absolute));
    }
    else if(dPercentage >= 75)
    {
            //(90-75%)
     MessageBox.Show("Eligible For the Silver Award");
        imgAward.Source = new BitmapImage(new Uri("pack://application:,,,/Images/silver.png", UriKind.Absolute));
    }
    else if (dPercentage >= 60)
    {
            // (75 - 60%)
     MessageBox.Show("Eligible For the Bronze Award");
        imgAward.Source = new BitmapImage(new Uri("pack://application:,,,/Images/bronze.png", UriKind.Absolute));
    }else{
        MessageBox.Show("Not Eligible For the Award");
        }
}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...