Главная
страница 1
Федеральное агентство по образованию

Государственное образовательное учреждение

Высшего профессионального образования

Тульский государственный университет

Кафедра электронных вычислительных машин

Технологии проектирования программного обеспечения для ОС Windows

(Windows Form, ASP.NET, Web-сервисы XML)

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе по дисциплине: «Операционные среды»



Выполнил:

студент гр. 250261 Косухин К.Ю.

Обозначение КП:

К2.005.031.ПЗ

Руководитель работы:

Новиков А.С.

Работа защищена:

_____________оценка_______________

Члены комиссии:

__________________________________




__________________________________




__________________________________


Оглавление


Введение 3

Общая постановка задачи и пути ее решения 4

Решение в общем виде 5

Назначение отдельных модулей и их взаимодействие 7

Контрольные примеры 8

Заключение 10

Библиографический список 11

Приложение 12





Введение


Курсовая работа по дисциплине «Операционные среды» выполняется:

  • для изучения принципов организации и технологий взаимодействия подсистем программного обеспечения в ОС Windows, для ознакомления с инструментальной системой и технологией создания и отладки процедурных и объектно-ориентированных программ на языках С, С++ и С# в интегрированной среде разработки приложений (integrated development environment, IDE) Microsoft (MS) Visual Studio.NET;

  • для ознакомления с технологией создания настольных приложений Windows Form в среде разработки MS Visual Studio.NET;

  • для изучения иерархии и функциональности классов, формирующих типы Web-страниц и элементов управления HTML и Web и получение практических навыков их создания и использования;

  • для ознакомления с технологией и основными стандартами Web-сервисов XML и получения практических навыков создания и тестирования Web-сервисов.

Общая постановка задачи и пути ее решения


Следует разработать и отладить программное обеспечение для нахождения произведения двух комплексных чисел:

  • консольное Win32 приложение;

  • приложение Windows Form с оконным интерфейсом;

  • ASP.NET приложение (Web страницу) с элементами управления HTML или Web;

  • Web-сервис и приложение для его тестирования.

Решение в общем виде


Комплексные числа — расширение множества вещественных чисел. Любое комплексное число может быть представлено как формальная сумма , где a и b — вещественные числа, i — мнимая единица.

Умножение комплексных чисел можно производить по формуле



На языке C# это будет выглядеть следующим образом:



  1. Объявим структуру для комплексногоо числа

struct Complex

{

public double a;



public double b;
public Complex(double aValue, double bValue) {

a = aValue;

b = bValue;

}

}






  1. Сама функция умножения

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);

}



Назначение отдельных модулей и их взаимодействие


В консольном Win32 приложении просим пользователя ввести первое комплексное число (заносим его в структуру), второе комплексное число (и его запоминаем в объект структуры) и умножаем их указанной вышей функцией Multiply.

В Windows Forms приложении с оконным интерфейсом имеем форму с четырьмя полями ввода для ввода двух комплексных чисел. При редактировании текста любого из полей результат, умножения пересчитывается.

В ASP.NET приложении так же разместили 4 поля для ввода значений. При редактировании поля, результат заново пересчитывается.

В Web-сервисе мы имеем ту же функцию умножения комплексных чисел. Но для того, чтобы это работало, как web-сервис, пришлось метод Multiply сделать не статическим, а структуру Complex сделать классом. Клиентское приложение для тестирование – это Windows Forms приложение, которое пересчитывает результат не при каждом редактировании, а только при нажатии на кнопку. На время выполнения асинхронной операции, интерфейс блокируется.


Контрольные примеры


Попробуем рассчитать в созданных приложениях контрольные примеры. Рассчитаем результат умножения

В результате работы программ, должны получить




Проверим, как это сработает в консольном приложении:


Проверим, какой результат в Windows Forms приложении:

Сайт с умножением комплексных чисел:




Клиент web-сервиса отображает результат следующим образом:

Выполнение операции



Результат операции


Все варианты исполнения задания работают правильно.


Заключение


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

Функционал умножения комплексных чисел является универсальным и может быть использован в консольном приложении, в Windows Forms приложении, ASP.NET Web-приложении и в клиент-серверной архитектуре.


Библиографический список


  1. Вилле К. Представляем C#. - М.: ДМК - Пресс, 2001. - 192 с.

  2. Троелсен Э. C# и платформа .Net. Библиотека программиста. – СПб.: Питер, 2002. – 800 с.

  3. Уоткинз Д., Хаммонд М., Эйбрамз Б. Программирование на платформе .Net. - М.: Издательский дом "Вильямс", 2003. – 368 с.

  4. Петзолд Ч. Программирование с использованием Microsoft Windows Forms. Мастер-класс / Пер. с англ. - М.: Русская редакция; СПб. : Питер, 2006. – 432 с.

Приложение


Листинг консольного приложения

// 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">




<b>16 -> 10</b>









































a = + i
b = + i








Смотрите также:
Технологии проектирования программного обеспечения для ос windows (Windows Form, asp. Net, Web-сервисы xml) пояснительная записка к курсовой работе по дисциплине: «Операционные среды»
247.57kb.
1 стр.
Лабораторная работа №5 Использование Web сервисов xml в консольных приложениях и приложениях Windows Forms цель и задачи работы
284.97kb.
1 стр.
2. Дисциплина «Операционные среды». Основные разделы и их содержание, выносимые на экзамен
66.07kb.
1 стр.
Лабораторная работа №2 Создание приложений Windows Form в интегрированной среде ms visual Studio. Net
119.12kb.
1 стр.
Операционные системы Windows и их архитектура
269.62kb.
1 стр.
Средства и технологии Операционные системы
101.46kb.
1 стр.
Службы в Windows xp
84.92kb.
1 стр.
Контрольная работа по дисциплине «Операционные системы» Дата сдачи работы: 2007г
239.49kb.
1 стр.
Операционные системы Windows. Сёмин Вячеслав Валерьевич 2 курс ииит мабиу
78.55kb.
1 стр.
Библиотечный модуль печати налоговых документов с двухмерным штриховым кодом pdf417 Версия 9
34.17kb.
1 стр.
Антивирус Dr. Web для Windows Рекомендуемые описания Краткая
71.03kb.
1 стр.
Dwl-520+ Беспроводный адаптер AirPlus™ для шины pci
87.62kb.
1 стр.