Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2020, 12:47   #1
Мария19043
Пользователь
 
Регистрация: 03.12.2018
Сообщений: 83
По умолчанию лямбда выражения в с# работа с калькулятором

Это калькулятор, как бы правильно все оформить? хотелось бы чтобы именно при сложении выводился текст в блокнот, а работает со всеми действиями (вычитание, умножение и тд)
- не пойму куда добавить сообщение "пользователь выбрал сложение"
Код:
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;
using System.IO;

namespace WpfApp5
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        double Calculate() => firstNumber + secondNumber;
        string Logger() => "[" + DateTime.Now + "]\t-\tПользователь " + userAction + " Результат: " + userResult + "\n" ;
        
        string LoggerPath() => Directory.GetCurrentDirectory() + "\\log\\log" + initialize_len + ".txt";
        double firstNumber = 0;
        double secondNumber = 0;
        string[] files;
        int initialize_len = -1;
        string userAction = "";
        string userResult = "";
        string sc = "";
        Control control = new Control();
        bool point = false;
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            
            string content = (string)((Button)sender).Content;
            switch (content){
                case "=":
                    if (control.ActionTransfer != "")
                    {
                        control.NumberTransfer = Convert.ToDouble(CalcTextBox.Text);
                        CalcTextBox.Text = control.ActionTransfer;
                    }
                    break;
                case "log":
                case "%":
                case "Sqrt":
                case "^":
                case "+":
                case "-":
                case "*":
                case "/":
                case "C":
                    control.NumberTransfer = Convert.ToDouble(CalcTextBox.Text);
                    control.ActionTransfer = content;
                    CalcTextBox.Text = " ";
                    break;
                default:
                    if (content == ",")
                    {
                        if (!point)
                        {
                            CalcTextBox.Text += content.ToString();
                            point = !point;
                        }
                    }
                    else
                    {
                        CalcTextBox.Text += content.ToString();
                    }
                    break;
            }
        }

        private void CalcTextBox_TextChanged(object sender, TextChangedEventArgs e)
        {
            
            if (Double.TryParse(CalcTextBox.Text, out firstNumber))
            {
                CalcTextBox.Text = Calculate().ToString();
                userAction = "ввел число";
                userResult = Calculate().ToString();
            }
            else
            {
                userAction = "не ввел все цифры/ввел неверно";
                userResult = "ошибка";
                
            }
            if (initialize_len == -1)
            {
                if (Directory.Exists(Directory.GetCurrentDirectory() + "\\log"))
                {
                    
                    files = Directory.GetFiles(Directory.GetCurrentDirectory() + "\\log");
                    initialize_len = files.Length;
                }
                else
                {
                    Directory.CreateDirectory(Directory.GetCurrentDirectory() + "\\log");
                    files = Directory.GetFiles(Directory.GetCurrentDirectory() + "\\log");
                    initialize_len = files.Length;

                }
            }
            File.AppendAllText(LoggerPath(), Logger());
        }
        ~MainWindow()
        {
            userAction = " завершает работу с приложением";
            userResult = " успешно";
            File.AppendAllText(LoggerPath(), Logger());
      
    }
    }
}
Мария19043 вне форума Ответить с цитированием
Старый 02.12.2020, 12:19   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Мария19043 Посмотреть сообщение
не пойму куда добавить сообщение "пользователь выбрал сложение"

Код:
string content = (string)((Button)sender).Content;

userAction = " пользователь выбрал действие \""+content +"\"";
userResult = " успешно";
File.AppendAllText(LoggerPath(), Logger());
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так, что бы не выводилась строка лямбда выражения события? Мaкс C# (си шарп) 2 23.07.2018 12:43
Лямбда-выражения с STL shilovec5377 Visual C++ 3 11.06.2015 22:42
лямбда выражения(c#) помогите разобраться kirkl Помощь студентам 2 21.02.2015 10:55
События и лямбда-выражения Devdev12 Общие вопросы .NET 2 11.09.2013 14:32
win 32 работа с калькулЯтором programmm Помощь студентам 3 13.05.2011 22:57