Скачать 247.53 Kb.
|
Федеральное агентство по образованию Государственное образовательное учреждение Высшего профессионального образования Тульский государственный университет Кафедра электронных вычислительных машин Технологии проектирования программного обеспечения для ОС Windows (Windows Form, ASP.NET, Web-сервисы XML) ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к курсовой работе по дисциплине: «Операционные среды»
ОглавлениеВведение 3 Общая постановка задачи и пути ее решения 4 Решение в общем виде 5 Назначение отдельных модулей и их взаимодействие 7 Контрольные примеры 8 Заключение 10 Библиографический список 11 Приложение 12 ВведениеКурсовая работа по дисциплине «Операционные среды» выполняется:
Следует разработать и отладить программное обеспечение для нахождения произведения двух комплексных чисел:
Комплексные числа — расширение множества вещественных чисел. Любое комплексное число может быть представлено как формальная сумма ![]() Умножение комплексных чисел можно производить по формуле ![]() На языке C# это будет выглядеть следующим образом:
^ В консольном Win32 приложении просим пользователя ввести первое комплексное число (заносим его в структуру), второе комплексное число (и его запоминаем в объект структуры) и умножаем их указанной вышей функцией Multiply. В Windows Forms приложении с оконным интерфейсом имеем форму с четырьмя полями ввода для ввода двух комплексных чисел. При редактировании текста любого из полей результат, умножения пересчитывается. В ASP.NET приложении так же разместили 4 поля для ввода значений. При редактировании поля, результат заново пересчитывается. В Web-сервисе мы имеем ту же функцию умножения комплексных чисел. Но для того, чтобы это работало, как web-сервис, пришлось метод Multiply сделать не статическим, а структуру Complex сделать классом. Клиентское приложение для тестирование – это Windows Forms приложение, которое пересчитывает результат не при каждом редактировании, а только при нажатии на кнопку. На время выполнения асинхронной операции, интерфейс блокируется. ^ Попробуем рассчитать в созданных приложениях контрольные примеры. Рассчитаем результат умножения ![]() В результате работы программ, должны получить ![]() Проверим, как это сработает в консольном приложении: ![]() Проверим, какой результат в Windows Forms приложении: ![]() Сайт с умножением комплексных чисел: ![]() Клиент web-сервиса отображает результат следующим образом:
Все варианты исполнения задания работают правильно. ЗаключениеВ результате выполнения контрольно-курсовой работы были созданы программы, рассчитывающие умножение комплексных чисел. Функционал умножения комплексных чисел является универсальным и может быть использован в консольном приложении, в Windows Forms приложении, ASP.NET Web-приложении и в клиент-серверной архитектуре. ^
ПриложениеЛистинг консольного приложения // add4.cs using System; using System.Collections.Generic; using System.Text; using System.Globalization; namespace Add4 { struct Complex { public double a; public double b; public Complex(double aValue, double bValue) { a = aValue; b = bValue; } } class InputOutput { static void Main(string[] args) { Complex left = ReadComplex("Введите первое комплексное число (a + bi)"); Complex right = ReadComplex("Введите второе комплексное число (a + bi)"); Complex result = Multiply(left, right); Console.WriteLine("результат: {0} + {1}i", result.a, result.b); Console.ReadKey(); } static Complex ReadComplex(string caption) { Console.WriteLine(caption); double a = ReadDouble("\tВведите a: "); double b = ReadDouble("\tВведите b: "); return new Complex(a, b); } static double ReadDouble(string caption) { Console.Write(caption); return double.Parse(Console.ReadLine()); } static Complex Multiply(Complex left, Complex right) { return new Complex( left.a * right.a - left.b * right.b, left.b * right.a + left.a * right.b); } } } Листинг Windows Forms приложения using System; using System.Collections.Generic; using System.Windows.Forms; namespace Lab2 { struct Complex { public double a; public double b; public Complex(double aValue, double bValue) { a = aValue; b = bValue; } } static class Program { /// /// The main entry point for the application. /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Globalization; namespace Lab2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } void TextBox1TextChanged(object sender, EventArgs e) { ValidateTextBox((TextBox)sender); UpdateResult(); } void ValidateTextBox(TextBox textbox) { double value; TryGetvalue(textbox, out value); } void UpdateResult() { Complex left; if(!TryGetComplexValue(aaText, abText, out left)) return; Complex right; if(!TryGetComplexValue(baText, bbText, out right)) return; Complex result = Multiply(left, right); resultLabel.Text = string.Format( "a * b = {0} + {1}i", result.a, result.b); } bool TryGetComplexValue(TextBox aText, TextBox bText, out Complex value) { double a = 0; double b = 0; bool result = TryGetvalue(aText, out a) && TryGetvalue(bText, out b); value = result ? new Complex(a, b) : new Complex(); return result; } bool TryGetvalue(TextBox textbox, out double value) { bool result = double.TryParse(textbox.Text, out value); textbox.BackColor = result ? SystemColors.Window : Color.Red; if(!result) resultLabel.Text = "a * b = ?"; return result; } static Complex Multiply(Complex left, Complex right) { return new Complex( left.a * right.a - left.b * right.b, left.b * right.a + left.a * right.b); } } } Листинг ASP.NET Web-приложения <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
![]() | Пояснительная записка к курсовой работе 10 страниц, 2 рисунка, 1 таблица, 3 источника | ![]() | Целью курсовой работы является получение навыков по вычислению параметров системы связи, анализу полученных результатов, а также... |
![]() | Государственного образовательного учреждения высшего профессионального образования Российский химико-технологический университет | ![]() | Сеть книжных магазинов. – Челябинск: юурГУ, ЭиП-208, 2012. – 50 с., 13 ил., 1 прил |
![]() | Расчет допускаемой тормозной силы из условия безъюзного торможения подвижного состава | ![]() | Представление основных операторов(описанных в разделе семантики) с помощью тетрад 34 |
![]() | Санкт-Петербургский Государственный Университет Аэрокосмического Приборостроения (СПб гуап) | ![]() | Курсовая работа по теории автоматов выполняется с целью закрепления ранее полученных знаний, приобретения навыков и умений самостоятельного... |
![]() | ![]() | Ученик может исправить полученную оценку. Завуч может добавить информацию о новом учителе или ученике, а также удалить о выбывших.... |