При нажатии любой цифры программа завершает работу и выводит результат о введенных данных - 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 + " раз(а)."); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д