Министерство науки и высшего образования Российской Федерации ОРСКИЙ ГУМАНИТАРНО-ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ (ФИЛИАЛ) ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ОБРАЗОВАНИЯ «ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» Факультет среднего профессионального образования ОТЧЁТ по учебной практике ПМ.06 Сопровождение информационных систем ОГУ 09.02.07. 7024. 177 П Руководитель от факультета преподаватель высшей категории _______________ М.А. Кузниченко подпись дата Студент группы 21ИСП-1 _________________ подпись дата Орск 2024 Е.В. Дубинина Аннотация Учебная практика по профессиональному модулю «ПМ.06 Сопровождение информационных систем» проходила в шестом учебном семестре и была посвящена изучению html-разметке и основ создания WPF-приложений на языке программирования C# в среде разработки Visual Studio. Отчёт по учебной практике содержит ?? страниц, в том числе ? рисунков, ? таблиц, ? источников. ОГУ 09.02.07. 7024. 177 П Изм. Лист № докум. Разраб. Дубинина Е.В Провер. Кузниченко М.А. Реценз. Н. Контр. Утверд. Подпись Дата Лит. Отчёт по учебной практике Лист Листов 2 ?? 21ИСП- 1 Содержание Введение ........................................................................................................................... 4 Практика-1 Создание HTML – документа .................................................................... 5 Практика-2 Название ...................................................................................................... 7 Практика-3 Название ...................................................................................................... 7 Заключение .................................................................................................................... 27 Список использованных источников .......................................................................... 28 Лист 3 Введение Учебная практика студентов проводится в соответствии с федеральным государственным образовательным стандартом среднего профессионального образования по специальности 09.02.07 «Информационные системы и программирование», которым определено, что учебная практика студентов является обязательным компонентом учебного плана. Задачей учебной практики является освоение видов профессиональной деятельности: проектирование и разработка модулей информационной системы, закрепление и углубление знаний и умений в применении современных технологий программирования, формирование общих и профессиональных компетенций, приобретение практического опыта в рамках профессионального модуля «ПМ.06 Сопровождение информационных систем», предусмотренного ФГОС СПО. С целью овладения указанными видами деятельности студент в ходе учебной практики должен овладеть следующими профессиональными компетенциями (ПК): ПК 6.1. Разрабатывать техническое задание на сопровождение информационной системы. ПК 6.2. Выполнять исправление ошибок в программном коде информационной системы. ПК 6.3. Разрабатывать обучающую документацию для пользователей информационной системы. ПК 6.4. Оценивать качество и надежность функционирования информационной системы в соответствии с критериями технического задания. ПК 6.5. Осуществлять техническое сопровождение, обновление и восстановление данных информационной системы в соответствии с техническим заданием. В результате прохождения учебной практики студент должен: знать: основы HML-разметки документа; приёмы разработки WPF-приложений; элементы управление и способы и компоновки; способы обмена данными между страницами приложения; уметь: создавать гипертекстовый документ; создавать WPF-приложения в среде Visual Studio; реализовывать обработчики событий; управлять передачу данных между страницами приложения; создавать пользовательские классы и пакеты; работать со стилями и ресурсами проекта; тестировать приложение. Лист 4 Практика-1 Создание HTML – документа Цель: получить навыки гипертекстовой разметки html-страницы. Задание. a) Создать страницу с данными о себе (группа (заголовок первого уровня), ФИО (курсив, шрифт 14пт), дата рождения (зелёный цвет, шрифт Arial 14 пт), электронная почта (синий цвет, подчеркивание, 12 пт)); каждое значение с новой строки, дополнить пояснительным текстом. b) Создать новую страницу basnya.html. Поместить в неё любую малоизвестную басню Крылова И.А. Название оформить как заголовок второго уровня, по центру, красным цветом. Текст стихотворения окрасить синим цветом. Каждое четверостишие или двустишие отделить пустой строкой <br>. Вывод басни выделить курсовом <i>. Просмотреть страницу в браузере. c) В конце страницы first.html написать текст «Басни Крылова И.А.» как заголовок третьего уровня, а на следующей строке поместить ссылку на страницу basnya.html, назвав её по названию басни. Протестировать страницы и ссылку в браузере. Текст разметки страницы first.html: <html> <head> <title>Личные данные</title> </head> <body> <font style = "Arial" size = "14 pt"> <h1>Личные данные</h1></font> <font style = "Arial" size = "16 pt"> <font style = "Arial" size = "14 pt"> Группы: 21ИСП-1<br></font> ФИО: Дубинина Екатерина Владимировна <br></font> <font style = "Arial" size = "12 pt" color = "green"> Дата рождения: 08.04.2006</font> <font style = "Arial" size = "12 pt" color = "blue" > <u> <br> kabelsnab2006@mail.ru</u></font> <p> Басни Крылова И.А. <P> <a href = " file:///C:/Users/Екатерина/Desktop/Учебная%20практика%203%20курс/basnya.html "target="_blank">Музыканты</a> </body> </html> Результат выполнения файла first.html в Yandex расположен на рисунке 1.1. Лист 5 Рисунок 1.1 – Просмотр файла first.html Текст разметки страницы basnya.html: <html> <head> <title>Басня</title> </head> <body> <h3> Музыканты </h3> <font style = "Arial" color = "blue"> Сосед соседа звал откушать;<br> Но умысел другой тут был:<br> Хозяин музыку любил<br> И заманил к себе соседа певчих слушать.<br> <br> Запели молодцы: кто в лес, кто по дрова,<br> И у кого что силы стало.<br> В ушах у гостя затрещало,<br> И закружилась голова.<br> <br> «Помилуй ты меня,- сказал он с удивленьем,-<br> Чем любоваться тут? Твой хор<br> Горланит вздор!»-<br> «То правда,- отвечал хозяин с умиленьем,-<br> <br> Они немножечко дерут;<br> Зато уж в рот хмельного не берут,<br> И все с прекрасным поведеньем».<br> <i>А я скажу: по мне уж лучше пей,<br> Да дело разумей.<br> Лист 6 </font> </body> </html>Результат выполнения файла basnya.html в Yandex расположен на рисунке 1.2. Рисунок 1.2 – Просмотр файла basnya.html Практика-2 Название Цель: Задание. Результат выполнения. Практика-3 Первое знакомство с WPF Цель: научиться создавать WPF-проект на примере простых вычислений. Задание. Вычислить стоимость весового товара с заданными значениями цены за 1 кг и веса. Текст файла MainWindow.xaml <Window x:Class="Praktika3.MainWindow" Лист 7 xmlns:local="clr-namespace:Praktika3" mc:Ignorable="d" Title="MainWindow" Height="350" Width="500"> <Grid x:Name="layoutGrid"> <Grid.Background>#FFFA</Grid.Background> <Button Name="Button1" Content="Приветствие" HorizontalAlignment="Left" Margin="223,12,0,0" VerticalAlignment="Top" Click="Button_Click"/> <Label Name="Label1" Content="Введите имя" HorizontalAlignment="Left" Margin="0,10,0,0" VerticalAlignment="Top"/> <TextBox Name="textBox1" HorizontalAlignment="Left" Margin="84,14,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="120"/> <TextBox Name="TextValue1" HorizontalAlignment="Left" Height="21" Margin="97,72,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="82"/> <TextBox Name="TextValue2" HorizontalAlignment="Left" Height="22" Margin="10,71,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="82"/> <TextBox x:Name="TextBlock1" HorizontalAlignment="Left" Height="21" Margin="229,72,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="82"/> <Button x:Name="Button2" Content="Сумма" HorizontalAlignment="Left" Margin="184,71,0,0" VerticalAlignment="Top" Click="Button_Click_1" RenderTransformOrigin="-1.811,0.603"/> <TextBox x:Name="txtOneKg" HorizontalAlignment="Left" Height="22" Margin="122,124,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="82"/> <TextBox x:Name="txtKol" HorizontalAlignment="Left" Height="22" Margin="122,155,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="82"/> <Button x:Name="result" Content="Расчёт" HorizontalAlignment="Left" Margin="14,218,0,0" VerticalAlignment="Top" Click="result_Click"/> <TextBox x:Name="txtRaschet" HorizontalAlignment="Left" Height="22" Margin="122,186,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="82" TextChanged="txtRaschet_TextChanged"/><Label Content="Цена за один kg" HorizontalAlignment="Left" Margin="13,123,0,0" VerticalAlignment="Top"/> <Label Content="Вес всего товара" HorizontalAlignment="Left" Margin="13,151,0,0" VerticalAlignment="Top"/> <Label Content="Результат" HorizontalAlignment="Left" Margin="13,182,0,0" VerticalAlignment="Top"/> </Grid> </Window> Текст файла MainWindow.xaml.cs using System; … namespace Praktika3 {public partial class MainWindow : Window {public MainWindow() Лист 8 {InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) //Кнопка приветствия {string text = textBox1.Text; if (text != "") {MessageBox.Show("Привет, " + text + "!"); } else MessageBox.Show("Введите имя"); } private void Button_Click_1(object sender, RoutedEventArgs e) //Кнопка расчёта 2-ух чисел {if (TextValue1.Text == "" || TextValue2.Text == "") {MessageBox.Show("Введите оба числа!"); } else {TextBlock1.Text = (int.Parse(TextValue1.Text) + int.Parse(TextValue2.Text)).ToString(); } } private void result_Click(object sender, RoutedEventArgs e) // Кнопка расчета цены за вес всего товара {if (txtOneKg.Text == "" || txtKol.Text == "") {MessageBox.Show("Введите оба числа!"); } else{txtRaschet.Text = (float.Parse(txtOneKg.Text) * float.Parse(txtKol.Text)).ToString(); }} Результат выполнения приложения показан на рисунке 3.1. Рисунок 3.1 – Результат работы приложения Результат выполнения приложения с ошибкой показан на рисунке 3.2. Лист 9 Рисунок 3.2 – Результат работы приложения с ошибкой Практика-4 Компоновка элементов окна c помощью Grid и StackPanel Цель: изучить контейнеры Grid и StackPanel в WPF- приложениях. Задание. Выполнить индивидуальный (выданный преподавателем) вариант разметки таблицы Grid в новом приложении WPF. Пусть линии сетки будут видимыми ShowGridLines="True". На рисунке 4 представлен макет таблицы Grid. Рисунок 4 – Макет таблицы Grid a) Используйте разные способы определения ширины столбцов. Понаблюдайте, как будет вести себя сетка при изменении размеров окна в режиме работы приложения. b) Зафиксируйте высоту первой и последней строк, а остальные сделайте «резиновыми» и пропорциональными. c) В одну ячейку поместите свои ФИО, в другую – свою группу. В объединённые ячейки впишите полное название ВУЗа, факультета. d) В любые 2-4 ячейки поместите прямоугольники Rectangle и окрасьте их в разные цвета. Лист 10 e) В какую-либо одну ячейку поместите StackPanel с элементами: метка с текстом «Введите имя», текстовое поле для ручного ввода с любым текстом, кнопка с надписью «Далее». Текст разметки страницы: <Window x:Class="Практика_4.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Практика_4" mc:Ignorable="d" Title="MainWindow" Height="480.927" Width="891.753"> <Grid ShowGridLines="True"> <Grid.RowDefinitions> <RowDefinition Height="60"></RowDefinition> <RowDefinition Height="0.5*"></RowDefinition> <RowDefinition Height="65"></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <Rectangle Grid.Column="0" Grid.Row="0" Fill="Tan" Grid.ColumnSpan="3"/> <Rectangle Grid.Column="1" Grid.Row="2" Fill="LightSkyBlue"/> <Rectangle Grid.Column="1" Grid.Row="1" Fill="AliceBlue" /> <Rectangle Grid.Column="0" Grid.Row="1" Fill="LightSalmon" /> <Rectangle Grid.Column="2" Grid.Row="1" Fill="LightSalmon" /> <Rectangle Grid.Column="0" Grid.Row="3" Fill="LightCoral" Grid.ColumnSpan="3"/> <TextBlock Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3" HorizontalAlignment="Center" VerticalAlignment="Center" Text="Орский гуманитарно-технологический институт (филиал) ОГУ" FontSize="18" FontWeight="Bold"/> <TextBlock Grid.Column="1" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="18" FontWeight="Bold">Группа: 21ИСП-1</TextBlock> <TextBlock Grid.Column="3" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" Height="40" FontSize="14" FontFamily="Segoe UI Light">Факультет среднего профессионального образования</TextBlock> <TextBlock Grid.Column="1" Grid.Row="3" HorizontalAlignment="Center" VerticalAlignment="Center" >образования</TextBlock> Лист 11 <TextBlock Grid.Column="0" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="14" FontFamily="Segoe UI Semilight">Дубинина Екатерина Владимировна</TextBlock> <StackPanel Grid.Column="1" Grid.Row="2"> <Label HorizontalAlignment="Center" FontFamily="Vijaya" FontSize="14">Введите имя</Label> <TextBox Width="190" Height="20"></TextBox> <Button Content="Далее" HorizontalAlignment="Center" Width="100" Height="25"></Button> </StackPanel> </Grid> </Window> Результат выполнения работы приложения с вариантом №12 показан на рисунке 4. Рисунок 4 – Результат выполнения работы приложения Практика-5 Контейнеры DockPanel, WrapPanel, Canvas Цель работы: изучить контейнеры DockPanel, WrapPanel, Canvas в WPFприложениях. Задание 1. В новом проекте реализуйте сетку Grid из своего индивидуального задания прошлой практической работы, используя для каждой ячейки только элемент Canvas и окрашивая ячейки в разные цвета). В центре каждой ячейки поместите номер (1,2,3…) или букву (A, B, C …). Текст файла MainWindows1.xaml: Лист 12 Title="MainWindow" Height="300" Width="950"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="60"></RowDefinition> <RowDefinition Height="0.5*"></RowDefinition> <RowDefinition Height="65"></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <Rectangle Grid.Column="0" Grid.Row="0" Fill="Gray" Grid.ColumnSpan="3"/> <Rectangle Grid.Column="0" Grid.Row="1" Fill="Tan"/> <Rectangle Grid.Column="2" Grid.Row="1" Fill="Tan"/> <Rectangle Grid.Column="1" Grid.Row="3" Fill="Indigo"/> <Rectangle Grid.Column="2" Grid.Row="3" Fill="Khaki"/> <Rectangle Grid.Column="0" Grid.Row="3" Fill="Khaki"/> <TextBlock Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3" HorizontalAlignment="Center" VerticalAlignment="Center" FontFamily="Times New Roman" FontWeight="Bold" FontSize="18">1</TextBlock> <TextBlock Grid.Column="1" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="22">3</TextBlock> <TextBlock Grid.Column="0" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontFamily="Cambria" FontStyle="Italic" FontSize="22">2</TextBlock> <TextBlock Grid.Column="3" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontFamily="Verdana" FontStyle="Italic" FontSize="22">4</TextBlock> <TextBlock Grid.Column="0" Grid.Row="3" HorizontalAlignment="Center" VerticalAlignment="Center" FontFamily="Cambria" FontStyle="Italic" FontSize="22">5</TextBlock> <TextBlock Grid.Column="3" Grid.Row="3" HorizontalAlignment="Center" VerticalAlignment="Center" FontFamily="Verdana" FontStyle="Italic" FontSize="22">7</TextBlock> <TextBlock Grid.Column="1" Grid.Row="3" HorizontalAlignment="Center" VerticalAlignment="Center" FontFamily="Verdana" FontStyle="Italic" FontSize="22">6</TextBlock> </Grid> </Window> На рисунке 5.1 представлен результат работы разметки. Лист 13 Рисунок 5.1 – Результат работы разметки Задание 2. Создать новое WPF-приложение. Используя DockPanel, в верхней части окна текстовое поле ввода, кнопку и WrapPanel. В контейнере WrapPanel поместить в строку друг за другом 6 пар элементов: картинка и надпись под ней. Эту пару элементов поместить в StackPanel с вертикальной ориентацией. Текст файла MainWindows1.xaml: Title="MainWindow" Height="450" Width="700"> <Grid ShowGridLines="True" <DockPanel LastChildFill="True"> <TextBox DockPanel.Dock="Top" Background="Beige">Поле ввода</TextBox> <Button DockPanel.Dock="Top" Background="LightBlue">Кнопка</Button> <WrapPanel DockPanel.Dock="Top"> <StackPanel Orientation="Vertical"> <Image HorizontalAlignment="Left" Source="./images/картинка3.jpg" Height="200" Width="140" /> <Label>Рисунок 1</Label> </StackPanel> <StackPanel Orientation="Vertical" Margin="10.5"> <Image HorizontalAlignment="Left" Source="./images/картинка1.jpg" Height="200" Width="140" /> <Label>Рисунок 2</Label> </StackPanel> <StackPanel Orientation="Vertical" Margin="10.5"> <Image HorizontalAlignment="Left" Source="./images/картинка2.jpg" Height="200" Width="140" /> <Label>Рисунок 3</Label> </StackPanel> <StackPanel Orientation="Vertical" Margin="10.5"> <Image HorizontalAlignment="Left" Source="./images/картинка5.jpg" Height="200" Width="140" /> <Label>Рисунок 4</Label> </StackPanel> </WrapPanel> </DockPanel> Лист 14 </Grid></Window> На рисунке 5.2 представлены результаты работы разметки. Рисунок 5.2 – Результаты работы разметки Практика-6 Работа со стилями Цель: научиться определять и использовать различные виды стилей для оформления элементов приложения. Задание: разметка «Калькулятора». Создать разметку дизайна интерфейса для приложения «Калькулятор», разделив главный Grid на 5 равных строк и 5 равных столбцов. Текст разметки страницы App.xaml: <Application x:Class="WpfPracticINDIV6.App" <Style TargetType="TextBox" x:Key="textPole"> <Setter Property="Height" Value="80"></Setter> <Setter Property="Width" Value="630"></Setter> <Setter Property="FontSize" Value="18"></Setter> <Setter Property="HorizontalAlignment" Value="Left"></Setter> <Setter Property="Margin" Value="5"></Setter> <Setter Property="Background" Value="AntiqueWhite"></Setter> </Style> <Style TargetType="Button" x:Key="btnKnopka"> <Setter Property="Height" Value="80"></Setter> <Setter Property="Width" Value="150"></Setter> <Setter Property="FontSize" Value="25"></Setter> <Setter Property="HorizontalAlignment" Value="Center"></Setter> <Setter Property="VerticalAlignment" Value="Center"></Setter> Лист 15 <Setter Property="Margin" Value="5"></Setter> <Setter Property="Background" Value="LightGray"></Setter> </Style> <Style TargetType="Button" x:Key="btnKnopka2"> <Setter Property="Height" Value="80"></Setter> <Setter Property="Width" Value="150"></Setter> <Setter Property="FontSize" Value="18"></Setter> <Setter Property="HorizontalAlignment" Value="Center"></Setter> <Setter Property="VerticalAlignment" Value="Center"></Setter> <Setter Property="Margin" Value="5"></Setter> <Setter Property="Background" Value="Aqua"></Setter> <Setter Property="FontWeight" Value="Bold"></Setter> </Style> </Application.Resources> </Application> Текст разметки страницы Window1.xaml: Title="Window1" Height="450" Width="800"> <Grid ShowGridLines="False"> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> <RowDefinition/> <RowDefinition/> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/><ColumnDefinition/> <ColumnDefinition/><ColumnDefinition/> <ColumnDefinition/><ColumnDefinition/> <ColumnDefinition/><ColumnDefinition/> </Grid.ColumnDefinitions> <TextBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4" Style="{StaticResource text1}"></TextBox> <Button Grid.Row="1" Grid.Column="0" Style="{StaticResource btn1}">1</Button> <Button Grid.Row="1" Grid.Column="1" Style="{StaticResource btn1}">2</Button> <Button Grid.Row="1" Grid.Column="2" Style="{StaticResource btn1}">3</Button> <Button Grid.Row="5" Grid.Column="1" Style="{StaticResource btn2}" ToolTip="Расчитать">=</Button> <Button Grid.Row="5" Grid.Column="2" Style="{StaticResource btn2}" ToolTip="Очистить">AC</Button>="5" Grid.Column="4" Style="{StaticResource btn1}" ToolTip="Тангенс">tg</Button> <Button Grid.Row="3" Grid.Column="4" Style="{StaticResource btn1}" ToolTip="Косинус">cos</Button> Лист 16 ToolTip="Разделитель">.</Button> <Button Grid.Row="0" Grid.Column="5" Style="{StaticResource btn2}" ToolTip="Удалить последний символ">backspace</Button> </Grid> </Window> На рисунке 6.1 представлен результат работы разметки калькулятора. Рисунок 6.1 – Результат работы разметки калькулятора Практика-7 Реализация приложения «Калькулятор» Цель: закрепить навыки использования компонентов, контейнеров, функций обработки строк в приложении калькулятора. Задание: реализовать кнопки «BackSpase» удаление правого символа, «,» десятичная точка или запятая, очистку поля «С» или «АС». 4) Выполнить защиту от некорректных действий пользователя при вводе значений. Добавить на форму кнопки для вычисления тригонометрических функций arctg, arccos, arcsin. Текст разметки страницы MainWindow.xaml.cs: public partial class MainWindow : Window {string ar; double op1 = 0, op2 = 0, res = 0; //Работа с цифрами private void Button_Click(object sender, RoutedEventArgs e) {textResult.Text += ((Button)e.Source).Content; } //Работа с арифм операциями private void Btn_arifm_Click(object sender, RoutedEventArgs e) {if (textResult.Text != "") op1 = double.Parse(textResult.Text); else op1 = 0; ar = ((Button)e.Source).Content.ToString(); textResult.Clear();} //нажатие запятой private void ButtonDSeparat_Click(object sender, RoutedEventArgs e) Лист 17 {string s = textResult.Text; if (s.IndexOf(",") < 0) textResult.Text += ",";} //Нажатие на кнопку стереть private void Btn_Click_BackSpace(object sender, RoutedEventArgs e) {textResult.Text = textResult.Text.Remove(textResult.Text.Length - 1); } private void Button_Click_Ac(object sender, RoutedEventArgs e) { textResult.Text = ""; op1 = 0; op2 = 0; res = 0; } //Возведение в степень private void Btn_Click_Power(object sender, RoutedEventArgs e) { if (textResult.Text != "") { op1 = double.Parse(textResult.Text); ar = "^"; textResult.Clear(); } } //Нажатие на кнопку равно private void ButtonRavno_Click(object sender, RoutedEventArgs e) { if (textResult.Text == "") {op2 = 0; } else {op2 = double.Parse(textResult.Text); } switch (ar) {case "+": res = op1 + op2; break; case "-":res = op1 - op2; break; case "*": res = op1 * op2; break; case "/": if (op2 == 0) {MessageBox.Show("ОШИБКА!:ДЕЛЕНИЕ НА 0"); } else { res = op1 / op2; }break; case "^": res = Math.Pow(op1, op2); break; case "arcsin": res = Math.Asin(op1); break; case "arccos": res = Math.Acos(op1); break; case "arctg":res = Math.Atan(op1); break; } textResult.Text = res.ToString(); } Текст разметки страницы MainWindow.xaml: <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> Лист 18 <RowDefinition/> <RowDefinition/> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/><ColumnDefinition/> <ColumnDefinition/><ColumnDefinition/> <ColumnDefinition/><ColumnDefinition/> <ColumnDefinition/><ColumnDefinition/> </Grid.ColumnDefinitions> <TextBox x:Name="textResult" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Style="{StaticResource textPole}"></TextBox> <Button Grid.Row="1" Grid.Column="0" Style="{StaticResource btnKnopka}" Click="Button_Click">1</Button> <Button Grid.Row="1" Grid.Column="1" Style="{StaticResource btnKnopka}" Click="Button_Click">2</Button> <Button Grid.Row="3" Grid.Column="3" Style="{StaticResource btnKnopka}" Click="Btn_arifm_Click">*</Button> <Button Grid.Row="0" Grid.Column="3" Style="{StaticResource btnKnopka}" Click="Btn_Click_Power">^</Button> <Button Grid.Row="2" Grid.Column="3" Style="{StaticResource btnKnopka}" Click="Btn_arifm_Click">-</Button> <Button Grid.Row="1" Grid.Column="3" Style="{StaticResource btnKnopka}" Click="Btn_arifm_Click">+</Button> <Button Grid.Row="1" Grid.Column="4" Style="{StaticResource btnKnopka}" ToolTip="Разделитель" Click="ButtonDSeparat_Click">.</Button> <Button Grid.Row="0" Grid.Column="5" Style="{StaticResource btnKnopka2}" ToolTip="Удалить последний символ" Click="Btn_Click_BackSpace">backspace</Button> </Grid> </Window> На рисунке 7.1 представлен результат вычисления 2^10. Лист 19 Рисунок 7.1 – Результат вычисления 2^10 На рисунке 7.2 представлен результат вычисления 100/10. Рисунок 7.2 – Результат вычисления 100/10 На рисунке 7.3 представлен результат вычисления 25*5. Рисунок 7.3 – Результат вычисления 25*5 На рисунке 7.4 представлен результат работы программы с ошибкой. Рисунок 7.4 – Результат работы программы с ошибкой Лист 20 Практика-8 Элементы управления списка Цель: научиться использовать в WPF-приложении списки разных типов. Задание: В списке ComboBox определяется функция: LN – натуральный логарифм, LG – десятичный логарифм, LOG2 – двоичный логарифм. В текстовом поле запрашивается аргумент х. Нажатие на кнопку «Логарифм» вычисляет указанный логарифм от данного аргумента и выводит в метке в наглядном виде. Например: LOG2(16)=4. Проверить корректность аргумента для логарифма. Текст разметки страницы MainWindow.xaml.cs: public partial class MainWindow : Window { public MainWindow() {InitializeComponent(); } //при вооде неккоректных значений(0) private void CalculateLogarithm(object sender, RoutedEventArgs e) { double x; if (!double.TryParse(argumentTextBox.Text, out x)) {resultLabel.Content = "Некорректный аргумент"; return; } string selectedFunction = ((ComboBoxItem)logarithmComboBox.SelectedItem).Content.ToString(); double result = 0; //выбор нужного логарифма switch (selectedFunction) {case "LN": result = Math.Log(x); break; case "LG": result = Math.Log10(x); break; case "LOG2": result = Math.Log(x, 2); break; default: resultLabel.Content = "Выбрана неверная функция"; return; } //вывод результата resultLabel.Content = $"{selectedFunction}({x}) = {result}"; } } Лист 21 } Текст разметки страницы MainWindow.xaml: Title="Logarithm Calculator" Height="200" Width="400"> <Grid> <ComboBox x:Name="logarithmComboBox" SelectedIndex="0"> <ComboBoxItem Content="LN"/> <ComboBoxItem Content="LG"/> <ComboBoxItem Content="LOG2"/> </ComboBox> <TextBox x:Name="argumentTextBox" Margin="100,0,0,0" Text="16"/> <Button Content="Логарифм" Click="CalculateLogarithm" Margin="0,30,0,0"/> <Label x:Name="resultLabel" Content="" Margin="0,60,0,0"/> </Grid> </Window> На рисунке 8.1 представлен результат работы программы с двоичным логарифмом. Рисунок 8.1 – Результат работы программы с двоичным логарифмом На рисунке 8.2 представлен результат работы программы с десятичным логарифмом. Лист 22 Рисунок 8.2 – Результат работы программы с десятичным логарифмом На рисунке 8.3 представлен результат работы программы без введённого числа. Рисунок 8.3 – Результат работы программы без введённого числа Лист 23 Практика-10 Работа с датами в WPF-проекте Цель: освоить классы Calendar и DatePicker. Задание: в компоненте DatePicker запрашивается начало срока изучения курса, а в текстовом поле его длительность в днях. Рассчитать дату окончания курса. Если эта дата приходится на воскресенье, то перенести эту дату на понедельник. Текст разметки страницы MainWindow.xaml.cs: public partial class MainWindow : Window // private void CalculateEndDateButton_Click(object sender, RoutedEventArgs e) {//проверяет введено ли начало даты и срок обучения if (NachDatePicker.SelectedDate != null && int.TryParse(DlitelnostTextBox.Text, out int duration)) {//начальная дата DateTime startDate = NachDatePicker.SelectedDate.Value; //конечная дата=начальная + срок обучения DateTime endDate = startDate.AddDays(duration); //является ли день недели конечной даты воскресеньем, если да, то переносится на понедельника if (endDate.DayOfWeek == DayOfWeek.Sunday) { endDate = endDate.AddDays(1); } //показывает дату EndDateLabel.Content = endDate.ToShortDateString(); } else { MessageBox.Show("Введите корректную начальную дату и продолжительность"); } } } } Текст файла MainWindow.xaml: Title="MainWindow" Height="343.814" Width="713.402"> <Grid Margin="0,0,-89,-107"> <Label Margin="10,31,650,356">Введите дату начала</Label> <Label Margin="168,31,464,356">Введите длительность</Label> Лист 24 <DatePicker x:Name="NachDatePicker" Margin="10,68,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Height="47" Width="132"/> <TextBox x:Name="DlitelnostTextBox" Margin="168,68,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Height="41" Width="117"/> <Button x:Name="CalculateEndDateButton" Content="Рассчитать" Margin="332,77,0,0" Click="CalculateEndDateButton_Click" VerticalAlignment="Top" HorizontalAlignment="Left" Height="32" Width="87" RenderTransformOrigin="-1.006,0.931"/> <Label Content="Дата окончания обучения:" Margin="10,120,10,0" VerticalAlignment="Top" HorizontalAlignment="Left"/> <Label x:Name="EndDateLabel" Margin="10,140,10,0" VerticalAlignment="Top" HorizontalAlignment="Left"/> </Grid> </Window> На рисунке 10.1 представлен результат работы программы с длительностью 1 день. Рисунок 10.1 – Результат работы программы с длительностью 1 день На рисунке 10.2 представлен результат работы программы без введённой длительности. Рисунок 10.2 – Результат работы программы без введённой длительности Лист 25 Лист 26 Заключение Учебная практика проходила в седьмом учебном семестре в рамках профессионального модуля «ПМ.06 Сопровождение информационных систем». Целью практики является получение первичных профессиональных умений и навыков в области разработки WPF- приложений на платформе .Net Framework обучающимися специальности 09.02.07 «Информационные системы и программирование». В течение практики нами были изучены …../перечислить навыки/ Цель учебной практики достигнута, поставленные задачи решены. Создан отчёт согласно заданной структуре и правилам оформления студенческих работ. Лист 27 Список использованных источников 1 Работы студенческие. Общие требования и правила оформления. СТО 02069024.101 – 2015. – Оренбург : Изд-во ОГУ, 2015. – 89 с. 2 Лист 28