- •Отчет по учебной практике
- •Оглавление
- •Html. Web – презентация с использованием css.
- •Лабораторная работа № 1. Простейшее приложение
- •Лабораторная работа № 2. Клиентская область
- •Лабораторная работа № 4. Работа с таймером
- •Индивидуальное задание. Создание анимации
- •Лабораторная работа №1. Простейшее приложение Windows Forms
- •Лабораторная работа №2. Перекодировка текстового файла
- •Список литературы:
Индивидуальное задание. Создание анимации
Цель: Научиться создавать анимации при помощи WinApi.
Краткие теоретические сведения: Для выполнения данного индивидульного задания необходимо использовать навыки, приобретенные при выполнении предыдущих заданий.
Задание. Необходимо создать следующую анимацию:
В лесу танцует избушка на курьих ножках. По нажатию клавиши пробел в окошке появляется баба Яга и затем вылетает из него.
Анализ реализации алгоритма:
Для начала я выбрала подходящий фон. Затем выбрала подходящее изображение избушки и создала его зеркальное отображение, чтобы затем показать танец, меняя эти изображения. Используя приложение Paint, я нарисовала бабу Ягу в окне избушки. Затем, указав начальное положение бабы Яги в окошке, и после этого меняя ее положение, я изобразила вылет бабы Яги из окошка.
Исходный код:
case WM_KEYDOWN:
switch (wParam){
case VK_SPACE:
run = false;
break;
}
break;
case WM_PAINT:
GetClientRect(hWnd, &rect);
hdc = BeginPaint(hWnd, &ps);
hdc2 = CreateCompatibleDC(hdc);
SelectObject(hdc2, hFon);
StretchBlt(hdc, 0, 0, rect.right, rect.bottom, hdc2, 0, 0, fon.bmWidth, fon.bmHeight, SRCCOPY);
DeleteDC(hdc2);
hdc2 = CreateCompatibleDC(hdc);
if (tick%20>=0 && tick%20<10 && dance){
SelectObject(hdc2, hHouse1);
TransparentBlt(hdc, rect.right/3, rect.bottom/4, rect.right/3,rect.bottom*2/3, hdc2, 0, 0,house1.bmWidth, house1.bmHeight, RGB(255,255,255));}
else if (tick%20>=10 && dance){
SelectObject(hdc2, hHouse);
TransparentBlt(hdc, rect.right/3, rect.bottom/4, rect.right/3,rect.bottom*2/3, hdc2, 0, 0,house.bmWidth, house.bmHeight, RGB(255,255,255));}
else if (!dance && tick<=30){
SelectObject(hdc2, hHouse1);
TransparentBlt(hdc, rect.right/3, rect.bottom/4, rect.right/3,rect.bottom*2/3, hdc2, 0, 0,house1.bmWidth, house1.bmHeight, RGB(255,255,255));}
else if (!dance && tick>30 && tick<71){
SelectObject(hdc2, hHouse2);
TransparentBlt(hdc, rect.right/3, rect.bottom/4, rect.right/3,rect.bottom*2/3, hdc2, 0, 0,house1.bmWidth, house2.bmHeight, RGB(255,255,255));}
else if (!dance && go){
SelectObject(hdc2, hHouse1);
TransparentBlt(hdc, rect.right/3, rect.bottom/4, rect.right/3,rect.bottom*2/3, hdc2, 0, 0,house1.bmWidth, house1.bmHeight, RGB(255,255,255));}
DeleteDC(hdc2);
if (go){
hdc2 = CreateCompatibleDC(hdc);
SelectObject(hdc2, hLady);
TransparentBlt( hdc, pos1.x, pos1.y, rect.right/5,rect.bottom/3, hdc2, 0, 0,lady.bmWidth, lady.bmHeight, RGB(255,255,255));
DeleteDC(hdc2);
}
EndPaint(hWnd, &ps);
break;
Скриншоты реализации можно просмотреть в приложении 2.
Выводы: Использовав навыки, приобретенные при выполнении предыдущих заданий, я создала анимацию при помощи WinApi.
С#
Лабораторная работа №1. Простейшее приложение Windows Forms
Цель: Изучить способы работы с текстовыми файлами в C#. Рассмотреть создание диаграмм, меню, диалоговых окон средствами C#.
Краткие теоретические сведения:
Класс Form представляет собой заготовку формы, от которой наследуются классы форм приложения. Помимо множества унаследованных элементов, в этом классе определено большое количество собственных элементов. В библиотеке .NET нет специального класса для представления диалоговых окон. Вместо этого устанавливаются определенные значения свойств в классе обычной формы. В диалоговом окне можно располагать те же элементы управления, что и на обычной форме. Для вывода линий, геометрических фигур, текста и изображений необходимо создатьэкземпляр класса Graphics, описанного в пространстве имен System.Drawing.
Задание:Разработайте приложение Windows Forms при помощи MS Visual Studio C#.
При реализации интерфейса следуйте рекомендациям стандарта CUI (Common User Interface).
Программа должна иметь главное меню, строку состояния и клиентскую область (область рисования).
Главное меню приложения обязательно должно содержать следующие команды (в формате Подменю/Команда):
File/Open - выбор файла
File/Quit - завершение приложения после подтверждения пользователя
Help/About - вывод диалогового окна которое печатает условие задачи и информацию о разработчике (ФИО студента, группа, курс, факультет, ВУЗ)
(команды) - команды необходимые для решения вашей задачи, например, View/Fonts для выбора шрифта, View/Colors для настройки цвета и т.п.
Постройте диаграмму опроса в сети отображающую процентное соотношение проголосовавших.
Входные данные хранятся в текстовом файле. Первая строка файла содержит наименование опроса. Каждая последующая строка файла содержит количество проголосовавших, затем, через пробел и до конца строки текст, соответствующий опции опроса.
Для выбора файла входных данных использовать стандартный диалог.
Анализ реализации алгоритма:
Для создания макета диалогового окна я использовала панель элементов. Используя специальные классы C#, такие как openFileDialog, обеспечила взаимодействие приложения и файловой системы, тем самым предоставляя пользователю возможность указать файл с исходными данными.
Исходный код:
private void ReadData()
{
ClearValues();
using (StreamReader SourceFile = new StreamReader(FileName, System.Text.Encoding.GetEncoding(1251)))
{
string Temp;
NameOfPoll = SourceFile.ReadLine();
int Sum = 0;
while (!SourceFile.EndOfStream)
{
Temp = SourceFile.ReadLine();
int index = Temp.IndexOf(' ');
string StrNum = Temp.Substring(0, index);
Sum += Int32.Parse(StrNum);
CountsOfPoll.Add(Int32.Parse(StrNum));
ModelsOfPoll.Add(Temp.Substring(index + 1));
}
int SumPercents = 0;
for (int i = 0; i < CountsOfPoll.Count - 1; i++)
{
PercentsOfPoll.Add((int)Math.Round(100 * (double)CountsOfPoll[i] / Sum));
SumPercents += PercentsOfPoll[i];
}
PercentsOfPoll.Add(100 - SumPercents);
this.Text = NameOfPoll;
}
}
private void FillDiagram()
{
chart1.Series.Clear();
Series series = new Series();
series.ChartType = SeriesChartType.Pie;
chart1.Series.Add(series);
chart1.Series[0].Points.DataBindXY(ModelsOfPoll, PercentsOfPoll);
chart1.Series[0].IsValueShownAsLabel = true;
}
Результат работы программы можно увидеть в приложении 3.
Выводы: Я изучила способы работы с текстовыми файлами в C#. Рассмотрела создание диаграмм, меню, диалоговых окон средствами C#.
