При нажатии любой цифры программа завершает работу и выводит результат о введенных данных - C#

Узнай цену своей работы

Формулировка задачи:

помогите исправить код. что б при нажатии любой цифры программа завершала работу и выводила результат о введенных даных.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication6
{
    // Пример обработки события, связанного с нажатием  
// клавиши на клавиатуре. 

// Выводим собственный класс EventArgs, который  
// будет хранить код клавиши.  
class KeyEventArgs : EventArgs
{
    public char ch;
}
 
// Объявляем делегат для события. 
delegate void KeyHandler(object source, KeyEventArgs arg);
 
// Объявляем класс события, связанного с нажатием  
// клавиши на клавиатуре.  
class KeyEvent
{
    public event KeyHandler KeyPress;
    // Этот метод вызывается при нажатии  
    // какой-нибудь клавиши.  
    public void OnKeyPress(char key)
    {
        KeyEventArgs k = new KeyEventArgs();
        if (KeyPress != null)
        {
            k.ch = key;
            KeyPress(this, k);
        }
    }
}
// Класс, который принимает уведомления о нажатии клавиши.  
class ProcessKey
{
    public void keyhandler(object source, KeyEventArgs arg)
    {
        Console.WriteLine("Получено сообщение о нажатии клавиши: " + arg.ch);
    }
}
 
class Process
{
 
    public int countt = 0;
    public void keyhandler(object source, KeyEventArgs arg)
    {
 
        if (arg.ch == 121)
        {
            countt++;
        }
        Console.WriteLine("Клавишу Y нажато : " + countt);
    }
}
 
// Еще один класс, который принимает уведомления  
// о нажатии клавиши.  
class CountKeys
{
    public int count = 0;
    public void keyhandler(object source, KeyEventArgs arg)
    {
        count++;
    }
}
 
// Демонстрируем использование класса KeyEvent.  
class KeyEventDemo
{
    public static void Main()
    {
        Process big = new Process();
        KeyEvent kevt = new KeyEvent();
        ProcessKey pk = new ProcessKey();
        CountKeys ck = new CountKeys();
        char ch;
 
        kevt.KeyPress += new KeyHandler(big.keyhandler);
        kevt.KeyPress += new KeyHandler(pk.keyhandler);
        kevt.KeyPress += new KeyHandler(ck.keyhandler);
        Console.WriteLine("Введите несколько символов. " +
            "Для останова введите точку.");
 
        do
        {
            ch = (char)Console.Read();
            kevt.OnKeyPress(ch);
        } while (ch != '.');
 
        Console.WriteLine("Было нажато " +  ck.count + " клавиш.");
    }
}
    }

Решение задачи: «При нажатии любой цифры программа завершает работу и выводит результат о введенных данных»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication6
{
    // Пример обработки события, связанного с нажатием  
    // клавиши на клавиатуре. 
 
 
    // Выводим собственный класс EventArgs, который  
    // будет хранить код клавиши.  
    class KeyEventArgs : EventArgs
    {
        public char ch;
    }
 
    // Объявляем делегат для события. 
    delegate void KeyHandler(object source, KeyEventArgs arg);
 
    // Объявляем класс события, связанного с нажатием  
    // клавиши на клавиатуре.  
    class KeyEvent
    {
        public event KeyHandler KeyPress;
        // Этот метод вызывается при нажатии  
        // какой-нибудь клавиши.  
        public void OnKeyPress(char key)
        {
            KeyEventArgs k = new KeyEventArgs();
            if (KeyPress != null)
            {
                k.ch = key;
                KeyPress(this, k);
            }
        }
    }
    // Класс, который принимает уведомления о нажатии клавиши.  
    class ProcessKey
    {
        public void keyhandler(object source, KeyEventArgs arg)
        {
            Console.WriteLine("\nПолучено сообщение о нажатии клавиши: " + arg.ch);
        }
    }
 
    class Process
    {
        public int countt = 0;
        public void keyhandler(object source, KeyEventArgs arg)
        {
 
            if (arg.ch == 121)
            {
                countt++;
            }
        }
    }
 
    // Еще один класс, который принимает уведомления  
    // о нажатии клавиши.  
    class CountKeys
    {
        public int count = 0;
        public void keyhandler(object source, KeyEventArgs arg)
        {
            count++;
        }
    }
 
    // Демонстрируем использование класса KeyEvent.  
    class KeyEventDemo
    {
        public static void Main()
        {
            Process big = new Process();
            KeyEvent kevt = new KeyEvent();
            ProcessKey pk = new ProcessKey();
            CountKeys ck = new CountKeys();
            char ch;
 
            kevt.KeyPress += new KeyHandler(big.keyhandler);
            kevt.KeyPress += new KeyHandler(pk.keyhandler);
            kevt.KeyPress += new KeyHandler(ck.keyhandler);
            Console.WriteLine("Введите несколько символов. " +
                "Для останова введите точку или цифру.");
 
            do
            {
                ch = Console.ReadKey().KeyChar;
                kevt.OnKeyPress(ch);
            } while (ch != '.' && !char.IsDigit(ch));
 
            Console.WriteLine("Было нажато " + ck.count + " клавиш.");
            Console.WriteLine("Клавиша Y была нажата " + big.countt + " раз(а).");
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы