Главная страница

лекция. Зиборов. Справочник для опытных и как пособие для начинающих программистов. Компактдиск содержит исходные коды примеров из книги


Скачать 7.39 Mb.
НазваниеСправочник для опытных и как пособие для начинающих программистов. Компактдиск содержит исходные коды примеров из книги
Анкорлекция
Дата13.04.2023
Размер7.39 Mb.
Формат файлаdoc
Имя файлаЗиборов.doc
ТипСправочник
#1060897
страница4 из 31
1   2   3   4   5   6   7   8   9   ...   31
ГЛАВА 2 Программирование консольных приложений

Пример 11. Ввод и вывод в консольном приложении

Иногда, например, для научных расчетов, требуется организовать какой-нибудь самый простой ввод данных, выполнить, может быть, весьма сложную математиче­скую обработку введенных данных и оперативно вывести на экран результат вы­числений.

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

Можно по-разному организовать такую программу, в том числе программируя так называемое консольное приложение(от англ. console— пульт управления) Под консолью обычно подразумевают экран компьютера и клавиатуру.

Для примера напишем консольное приложение, которое приглашает пользователя ввести два числа, складывает их и выводит результат вычислений на консоль.

Для этого запускаем Visual С# 2010, далее создаем новый проект (New Project) выбираем шаблон С# Console Application, задаем имя решения (Name) — Сумма, После щелчка на кнопке ОК попадаем сразу на вкладку программного кода (рис. 2.1).



Рис. 2.1. Вкладка программного кода

Как видите, здесь управляющая среда Visual Studio 2010 приготовила несколь­ко строк программного кода. При запуске консольного или Windows-приложения С# метод Main () является первым вызываемым методом. В фигурных скобках по­сле Main() мы вставим собственный программный код (листинг 2.1).

Листинг 2.1. Ввод и вывод данных в консольном приложении

// Эта программа складывает два числа и выводит сумму на консоль using System;. using System.Text;

// Другие директивы using удалены, поскольку они не используются

// в данной программе
namespace Сумма

{

class Program

{

static void Main(string[] args)

{ // Задаем строку заголовка консоли:

Console.Title = "Складываю два числа:";

Console.BackgroundColor = ConsoleColor.Cyan; // - цвет фона

Console.ForegroundColor = ConsoleColor.Black; // - цвет текста

Console.Clear();
Console.WriteLine("Введите первое слагаемое:");

String Строка = Console.ReadLine();
Single X, Y, Z;

X = Single.Parse(Строка) ; // - преобразование строковой переменной в число Console.WriteLine("Введите второе слагаемое:");

Строка = Console.ReadLine();
Y = Single.Parse(Строка);
Z = X + Y;
Console.WriteLine("Сумма = {0} + {1} = {2}", X, Y, Z) ;

// Звуковой сигнал частотой 1000 Гц и длительностью 0.5 секунд:

Console.Веер(1000, 500);

// Приостановить выполнение программы до нажатия какой-нибудь клавиши: Console.ReadKey();

}

}

}
Итак, в данной программе Main () — это стартовая точка, с которой начинается ее выполнение. Обычно консольное приложение выполняется в окне на черном фоне. Чтобы как-то украсить традиционно черное окно консольного приложения, устано­вим цвет фона окна BackgroundColor сине-зеленым (Cyan), а цвет символов, выводимых на консоль, черным (Black). Выводим строки в окно консоли методом WriteLine, а для считывания строки символов, вводимых пользователем, используем метод ReadLine. Далее объявляем три переменных типа single для соответственно первого числа, второго и значения суммы. Тип данных single применяется тогда, когда число, записанное в переменную, может иметь целую и дробную части. Пере­менная типа single занимает 4 байта. Для преобразования строки символов, введен­ных пользователем в числовое значение, используем метод Parse.

После вычисления суммы необходимо вывести результат вычислений из опера­тивной памяти на экран. Для этого воспользуемся форматированным выводом в фигурных скобках метода WriteLine объекта Console:

Console.WriteLine("Сумма = {0} + {1} = {2}", X, Y, Z)

Затем выдаем звуковой сигнал Веер, символизирующий об окончании про­цедуры и выводе на экран результатов вычислений. Последняя строка в программе Console.ReadKey(); предназначена для приостановки выполнения программы до нажатия какой-нибудь клавиши. Если не добавить эту строку, окно с командной строкой сразу исчезнет и пользователь не сможет увидеть вывод результатов вы­полнения. Программа написана. Нажмите клавишу <F5>, чтобы увидеть результат. Фрагмент работы данной программы представлен на рис. 2.2.

При организации научных расчетов или в ситуации, когда необходимо отла­дить расчетную часть большой программы, когда сервис при вводе данных вообще не имеет значения, можно просто присваивать значения переменным при их объяв­лении. Очень технологичным является вариант, когда данные записываются в тек­стовый файл с помощью, например, Блокнота (notepad.exe), а в программе преду­смотрено чтение текстового файла в оперативную память.



Рис. 2.2. Фрагмент работы консольного приложения

Убедиться в работоспособности программы можно, открыв решение CyMMa.sln в папке Сумма.

Пример 12. Вывод на консоль таблицы чисел с помощью форматирования строк

Пользуясь тем, что шрифт вывода на консоль является моноширным, т. е. каждый выводимый символ (например, точка и заглавная буква "Ш") имеет одинаковую ширину, в данном примере покажем, как путем форматирования строк можно
вывести таблицу в окно консоли. В этой программе выведем в таблицу извлеченный квадратный корень в цикле от нуля до десяти. Для этого запустим Visual Studio 2010, закажем новый проект шаблона С# Console Application, зададим имя
решения (Name) — ТаблКорней и на вкладке программного кода введем программный код, представленный в листинге 2.2.
Листинг 2.2. Вывод таблицы извлечения квадратного корня на консоль

// Консольное приложение задает цвета и заголовок консоли, а затем выводит

// таблицу извлечения квадратного корня от нуля до десяти using System;

// Другие директивы using удалены, поскольку они не используются в данной программе

namespace ТаблКорней

{

class Program

{

static void Main(string[] args)

{
Console.BackgroundColor = ConsoleColor.Cyan;

Console.ForegroundColor = ConsoleColor.Black;

Console.Title = "Таблица"; Console.Clear();

Console.WriteLine("Число Корень");

for (double i = 0; i <= 10; i++)

{

Console.WriteLine("{0,4} {1,8:F4}", i, Math.Sqrt(i));

}

Console.ReadKey();

}

}

}

Как видно из программного кода, в пошаговом цикле for для вывода строк исполь­зуется метод WriteLine, на вход которого подают строку в определенном формате. Причем форматирование производится по тем же правилам, что и в очень часто ис­пользуемом методе string. Format, предназначенном для обработки строк. Использо­ванный формат "{0,4} {i,8:F4}" означает: взять нулевой выводимый элемент, т.е. счетчик цикла i, и записать его с выравниванием вправо в четырех столбцах, после че­го взять первый выводимый элемент, т. е. значение квадратного корня из i, и записать его с выравниванием вправо в следующих восьми столбцах в формате с фиксированной точкой и четырьмя десятичными знаками после запятой. В результате работы данной программы получим таблицу извлечения квадратного корня (рис. 2.3).



Рис. 2.3. Вывод на консоль таблицы

Подобным форматированием мы будем обрабатывать строки в последующих примерах данной книги, пользуясь методом string.Format.

Убедиться в работоспособности программы можно, открыв решение ТаблКор­ней.sin в папке ТаблКорней.

Пример 13. Вызов MessageBox.Showв консольном приложении. Формат даты и времени

Программирование консольного приложения напоминает период конца 1980-х го­дов, когда появились первые персональные компьютеры с очень слабой производительностью и небольшой памятью. Для вывода данных Visual С# имеет удобное средство MessageBox.show, и в консольном приложении его вызвать все-таки мож­но. Покажем на следующем примере, как практически это можно сделать.

Итак, в данном примере следует в консольном приложении вывести в окно MessageBox текущую дату и время в различных форматах, чтобы попутно проде­монстрировать читателю некоторые возможности форматирования строк с помо­щью метода string.Format. Запустим Visual Studio 2010, выберем шаблон кон­сольного приложения С#. Далее необходимо в проект добавить ссылку на библиотеку, содержащую объект MessageBox. Для этого в пункте меню Project вы­берем команду Add Reference, а на вкладке .NET дважды щелкнем на ссылке System.Windows.Forms. Теперь в окне Solution Explorer (Обозреватель решений), раскрывая пункт References (Ссылки), увидим добавленную в наш проект выбран­ную ссылку. В программном коде вставим строку using System.windows.Forms. Директива using используется для импортирования пространства имен, которое

содержит класс MessageBox (листинг 2.3).

Листинг 2.3. Вызов MessageBox. Show в консольном приложении

// Консольное приложение выводит в окно MessageBox текущую дату

// и время в различных форматах, используя String.Format using System;

using System. Windows . Forms ;

// Другие директивы using удалены, поскольку они не используются в данной программе

namespace ConsoleMessageBox

{

class Program

{

static void Main(string[] args)

{

string ДатаВремя = string.Format(

"(d) - это формат \"короткой\" даты: {0:d}\n" +

"(D) - это формат \"полной\" даты: {0:D}\n" +

"(t) - это формат \"короткого\" времени: {0:t}\n" +

" (Т) - это формат \"длинного\" времени: …{0:Т}\n" +

"(f) - выводится \"полная\" дата и \"короткое\" время: ……………..{0:f}\n" +

"(F) - выводится \"полная\" дата и \"длинное\" время:…………….. {0:F}\n" +

"(g) General - короткая дата и короткое время: ………………………….{0:g}\n" +

"(G) General - \"общий\" формат: ………………………………………………..{0:G}\n" +

"Пустой формат - такой же, как формат (G) …… {0)\n" +

"(М) - выводится только месяц и число: ………….{0:М}\n" +

"(U) Universal full date/time - время по Гринвичу…………………………..{0:U}\n" +

"(Y) - по этому формату выводится только год ……….{0:Y}\n",

DateTime.Now) ;

MessageBox.Show(ДатаВремя, "Время и дата в различных форматах");

}

}

}

Запустим наше приложение, нажав клавишу <F5>. В результате появится чер­ное окно консоли, а под ним — диалоговое окно MessageBox (рис. 2.4).

Теперь избавимся от мешающего нам черного окна консоли. Для этого в окне свойств проекта (Project | Properties) на вкладке Application в раскрывающемся списке Output type щелкнем на пункте Windows Application.

Убедиться в работоспособности программы можно, открыв соответствующее решение в папке ConsoleMessageBox.


Рис. 2.4. Вывод текущего времени и даты в различных форматах

Пример 14. Вызов функций Visual Basic из программы С#

Покажем, как можно воспользоваться в вашей Сопрограмме методами другой программной среды, в частности функциями Visual Basic. Решим следующую зада­чу. Программа приглашает пользователя ввести одно число, затем другое, анализи­рует, ввел ли пользователь именно числа, а не другие символы, и выводит резуль­тат суммирования в диалоговое окно. Программировать будем в консольном приложении С#, при этом воспользуемся функцией ввода InputBox, функцией вы­вода MsgBox, а также функцией IsNumeric, которая определяет, число ли подано на вход этой функции. Все эти три функции были еще в Visual Basic 6.0. Для решения этой задачи запустим Visual Studio, выберем проект шаблона кон­сольного приложения С#. Далее необходимо в проект добавить ссылку на библио­теку Microsoft.VisualBasic.dll. Для этого в пункте меню Project выберем команду Add Reference, а на вкладке .NET дважды щелкнем на ссылке Microsoft.VisualBasic. Теперь в окне Solution Explorer, раскрывая пункт References, увидим добавленную в наш проект выбранную ссылку. Затем перейдем на вкладку программного кода и введем текст, представленный в листинге 2.4.

Листинг 2.4. Программный код с вызовом функций Visual Basic

// В данном консольном приложении Visual С# используем функции Visual Basic.

// Приложение приглашает пользователя ввести два числа, анализирует,

// числа ли ввел пользователь, и выводит результат суммирования на экран.

// При этом используем функции Visual Basic: InputBox,

// IsNumeric (для контроля, число ли ввел пользователь) и MsgBox.

using System;

// Другие директивы using удалены, поскольку они не используются в данной программе

namespace VisualBasic1

{

class Program

{ // Для вызова функций из Visual Basic добавим ссылку в текущий проект.

// Для этого в пункте меню Project щелкнем мышью команду

// Add Reference и в диалоговом окне на вкладке .NET выберем

// элемент Microsoft.VisualBasic

static void Main(string[] args)

{

string Строка;

// Бесконечный цикл, пока пользователь не введет именно число:

for (; ; )

{

Строка = Microsoft.VisualBasic.Interaction.

InputBox("Введите первое число:", "Складываю два числа");

if (Microsoft.VisualBasic.Information.IsNumeric(Строка) == true) break;

}

// - преобразование строковой переменной в число:

Single X = Single.Parse(Строка);

// Ввод второго числа:

for (; ; )

{

Строка = Microsoft.VisualBasic.Interaction.

InputBox("Введите второе число:", "Складываю два числа");

if (Microsoft.VisualBasic.Information.IsNumeric(Строка) == true) break;

}

Single Y = Single.Parse(Строка);

Single Z = X + Y;
Строка = string.Format("Сумма = {0} + {1} = {2}", X, Y, Z) ;

// Вывод результата вычислений на экран:

Microsoft.VisualBasic.Interaction.MsgBox(Строка);

}

}

Ввод первого числа организуем с помощью бесконечного цикла for(;;){}. функция InputBox возвращает строку, введенную пользователем в диалоговом ок­не (рис. 2.5).



Рис. 2.5. Диалоговое окно ввода данных

Эта строка анализируется функцией IsNumeric, и если в строке записано число, то происходит выход break из вечного цикла. Аналогично организован ввод второ­го числа. Для преобразования строки символов, введенных пользователем, в число­вое значение используем метод Parse. Кстати, для преобразования строки симво­лов в числовое значение платформа .NET Framework содержит в себе метод TryParse, который более эффективно решает подобные задачи по проверке типа введенных данных и преобразованию их в числовое значение.

После вычисления суммы необходимо вывести результат вычислений из опера­тивной памяти в диалоговое окно MsgBox. Для этого вначале подготовим строку вывода с помощью метода String.Format. Выражение "Сумма = {0} + {1} = {2}" означает: взять нулевой выводимый элемент, т. е. переменную х, и записать ее вме­сто первых фигурных скобок, после чего взять первый выводимый элемент, т. е. переменную y, и записать ее вместо вторых фигурных скобок, аналогично — для третьего выводимого элемента.

Результат работы программы представлен на рис. 2.6.



Рис. 2.6. Диалоговое окно вывода данных

Каждый раз, запуская это приложение, нам приходится искать диалоговые окна под черным окном консоли. Чтобы избавиться от этого окна, в окне свойств проек­та (Project | Properties) на вкладке Application в раскрывающемся списке Output type щелкнем на пункте Windows Application.

Убедиться в работоспособности программы можно, открыв соответствующее решение в папке CcылкаHaVisualBasic.

ГЛАВА 3 Инициирование и обработка событий мыши и клавиатуры
1   2   3   4   5   6   7   8   9   ...   31


написать администратору сайта