Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metodicheskoe_posobie_VGKS_po_S.docx
Скачиваний:
49
Добавлен:
13.02.2016
Размер:
433.75 Кб
Скачать

Лабораторная работа 3 Ввод – вывод на консоль. Визуализация через файлы. Независимый переключатель и шрифты

Цель работы.

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

План занятия.

Изучить теоретические сведения формирования программы на С#.

По приведенному листингу программы разработать на Visual Studio программу и отладить ее. Составить программу по индивидуальному заданию.

Краткие теоретические сведения.

Процедуры консольного ввода-вывода:

Console.Read()

Console.Readline()

Console.Write(“выводимая строка”)

Console.Writeline(“выводимая строка”))

Пример программы:

Вычислить выражение y = sin(x):

float x,y;

Console.Write(“x = “); x=Convert.ToDouble(Console.Readline());

y = Math.Sin(x);

Console.Write(“y = {0}“,y);

Элементы визуализации результатов через файлы.

Используем два файла текстового типа: один для хранения вводимых данных и другой для результата: r.txt и w.txt.

Эти файлы должны располагаться там, где находится и программный файл .exe. Для работы с файлами необходимо:

1. Объявить переменную типа файл в виде:

а) для файла r.txt:

StreamReader fr=new StremReader (“r.txt”,Encoding.GetEncoding(1251));

б) Для файла w.txt:

StreamWriter fw=new StremWriter (“w.txt”,false,

Encoding.GetEncoding(1251));

2. Из файла fr прочитать исходные данные.

Предложим, что для переменной x в файле r.txt записано:

ЦЕНА= 5

Читаем:

sr=fr.ReadLine; //читается sr=”ЦЕНА= 5”; // переменная sr типа string sr;

string[] buf; //Создаем массив строк

buf=sr.Split(‘=’); // В buf заносятся элементы разбитые по знаку =, т. е.

// buf[0]=”цена” и buf[1]=5

fr. Close; // закрывается файл

3) Вычисляется выражение :

x=Convert. ToDouble(buf[1]);

y=Math.Sin(x);

4) в файл fw записывается результат:

fw.WriteLine(sr); // исходные данные

fw.WriteLine(“прибыль={0}, y); //ответ

м

Форматирование строк при выводе на консоль и в файлы.

Синтаксис:

Console.Write (“y={0.5:F.2} x={1.##.##}”, x,y);

В фигурных скобках записывается формат вывода для переменных x и y.

Синтаксис элемента форматирования в {}

{n[.m[:спецификатор[.число]]}

n –номер переменной , начиная с 0 (в приведенном примере это 0 для x и 1 для y);

m – минимальная ширина поля в символах; если длина числа больше, то будет больше символов .

cпецификатор:

С –валюта, у нас к числу будет добавляться буква Р (рубль);

Х –шеснадцатеричное;

D – дробное двойной точности;

F – дробное;

число – число дробных знаков в D и F;

В качестве спецификатора может использоваться шаблон из 0 или # в виде 0#.##

0 – любая цифра, в том числе и 0, если ноль десятков

# – любая цифра кроме незначащего 0 // 5.2 – по шаблону выше будет 05.2

// .0052 – по шаблону выше будет 00.0052

Модальные стандартные окна.

Позволяют на экран выдавать сообщения.

Все модальные окна вызываются одинаково:

MessageBox (параметры);

Вид модального окна зависит от параметров. Существует более 30 видов этих параметров (найти их самостоятельно).

double x=0.5;

MessageBox.Show (“x=”+Convert.ToString(x));

Директивы препроцессора.

Директивы препроцессора позволяют перед компиляцией убирать и добавлять часть кода. Это практически всегда необходимо при отладке программы. Управление операторами препроцессора определяется с использованием символов. Символ – это логические переменные. Логическая переменная, например DEBUG принимает true, если она установлена оператором:

#define DEBUG

и значение false, если она установлена оператором

#undef DEBUG

Операторы #define и #undef записываются самыми первыми (можно за комментариями, если они есть).

Пример:

#define DEBUG

class Example 1

{public statiс void Main ()

{int i=5, k;

k=6*i;

#if DEBUG

MessageBox(“k=”+(string)k);

#endif

}}

Оператор препроцессора #if

# if символ 1

текст c#

#elif символ 2

текст c#

#elif символ 3

текст c#

#else

текст c#

#endif

Порядок выполнения работы.

// ШРИФТЫ ChexBox и установка цветов

//FORM

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

bool RD, GR, BL;

Color COLR_T, COLR_B;

public Form1()

{

InitializeComponent();

COLR_T = label1.ForeColor;

COLR_B = textBox2.BackColor;

}

private void button2_Click(object sender, EventArgs e)

{

this.Close();

}

private void checkBox2_CheckedChanged(object sender, EventArgs e)

{

switch (checkBox2.Checked)

{

case true: GR= true; break;

case false: GR = false; break;

}

}

private void button1_Click(object sender, EventArgs e)

{

fontDialog1.ShowDialog();

this.label1.Font = fontDialog1.Font;

textBox2.Text = fontDialog1.Font.Size.ToString();

}

private void checkBox1_CheckedChanged(object sender, EventArgs e)

{

switch (checkBox1.Checked)

{

case true: RD = true; break;

case false: RD = false; break;

}

}

private void checkBox3_CheckedChanged(object sender, EventArgs e)

{

switch (checkBox3.Checked)

{

case true: BL = true; break;

case false: BL = false; break;

}

}

private void label1_MouseHover(object sender, EventArgs e)

{

int CCCR,CCCG,CCCB;

if (!RD) CCCR = COLR_T.R; else CCCR = 255;

if (!GR) CCCG = COLR_T.G; else CCCG = 255;

if (!BL) CCCB = COLR_T.B; else CCCB = 255;

this.label1.ForeColor = System.Drawing.Color.FromArgb(CCCR,CCCG,CCCB);

}}}

Индивидуальное задание.

Составьте программу ввода из текстового файла значений переменных а, b, c, которые в файле записаны в формате:

a=5.1; b=7.9; c=6.8;

Вычислите выражение:

Выведите в файл результат в виде Y=6.7.

Содержание отчета.

Представить отлаженную программу по индивидуальному заданию.

Литература.

Павловская Т.А. С#, Программирование на языке высокого уровня. – М., СПб: Питер, 2010, с.262-263

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]