Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Жарков В.А. - Visual C++ 2005, DirectX 9.0c и Microsoft Agent в компьютерной графике, мультимедиа и играх (Листинги книги) - 2005

.pdf
Скачиваний:
307
Добавлен:
13.08.2013
Размер:
1.14 Mб
Скачать

Глава 65. Установка веб-компонентов Windows для веб-программирования на ос-

нове ASP.NET

Веб-программирование заключается в создании коммуникации между клиентами и серверами в изолированной локальной (например, корпоративной) и глобальной (Интернет) сети. Под словом “клиенты” понимаются установленные на компьютеры программные продукты (например, платформа Visual Studio) пользователей, которые при помощи браузера, например, Internet Explorer и веб-службы получают какуюлибо информацию с сервера. Под словом “серверы” понимаются программные продукты, установленные на компьютеры провайдеров (предоставляющие услуги хостинга), которые размещают у себя приложения в виде сайтов и при помощи вебслужбы посылают информацию с сайтов на браузер пользователя по его запросу.

Веб-приложение и веб-службу мы должны разрабатывать на базе известного программного продукта корпорации Microsoft, который называется Internet Information Services (IIS) - Информационные службы Интернета. Эти службы IIS поставляются в комплекте со всеми операционными системами Windows 98/2000/XP/Server 2003, однако перед работой их нужно запустить в режим Started (Работает); по умолчанию службы находятся в режиме Stopped (Отключено), о чем мы расскажем в следующем параграфе.

12. Открываем панель командной строки (по схеме: Start (Пуск), Programs (Все программы), Visual Studio, Visual Studio .NET Tools, Visual Studio .NET Command Prompt) и в этой панели Visual Studio Command Prompt в командной строке над ми-

гающим курсором записываем следующую команду для инсталляции ASP.NET (Active Server Pages .NET), рис. 65.7:

aspnet_regiis –i (или команду aspnet_regiis /i)

и нажимаем клавишу Enter. Появляется строка:

Start installing ASP.NET (1.1.4322.0)

а через некоторое время – строка об окончании инсталляции (рис. 65.7):

Finished installing ASP.NET (1.1.4322.0)

Далее уже можно разрабатывать проекты веб-приложений и веб-служб по методике, описанной в наших предыдущих книгах [7-9]. Методику разработки вебслужбы на базе новой платформы Visual Studio 2005 мы рассмотрим в следующей главе.

Глава 66. Методика разработки вебслужбы

Листинг 66.1. Автоматически сгенерированный код.

// WebService1Class.h #pragma once

using namespace System; using namespace System::Web;

using namespace System::Web::Services; namespace WebService1

{

///WARNING: If you change the name of this class,

///you will need to change the

///'Resource File Name' property

///for the managed resource compiler tool

///associated with all .resx files

///this class depends on. Otherwise,

///the designers will not be able

///to interact properly with localized

///resources associated with this form.

public ref class WebService1Class :

public System::Web::Services::WebService

{

public:

WebService1Class()

{

InitializeComponent();

//

//TODO: Add the constructor code here

//

}

protected:

void Dispose(Boolean disposing)

{

if (disposing && components)

{

components->Dispose();

}

__super::Dispose(disposing);

}

private:

/// <summary>

292Жарков В.А. Компьютерная графика, мультимедиа и игры на Visual C++ 2005

///Required designer variable.

/// </summary> System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code

///<summary>

///Required method for Designer support -

///do not modify

///the contents of this method

///with the code editor.

///</summary>

void InitializeComponent()

{

}

#pragma endregion

//WEB SERVICE EXAMPLE

//The HelloWorld() example service returns

//the string "Hello, World!".

//To test this web service, ensure

//that the .asmx file in the deployment path is

//set as your Debug HTTP URL,

//in project properties.

//and press F5.

public:

[System::Web::Services::WebMethod] String ^HelloWorld();

// TODO: Add the methods of your Web Service here

};

}

На листинге 66.1 в коде примера: public:

[System::Web::Services::WebMethod] String ^HelloWorld();

показан синтаксис добавления любого нашего метода.

Видно, что в объявлении метода записан тэг [System::Web:: Services:: WebMethod], который позволяет клиенту использовать этот метод. Мы можем записать любой наш метод и без этого тэга, но тогда этот метод не будет доступен клиенту.

Часть XII. Создание баз данных и интеграция с другими СУБД

Глава 67. Создание баз и наборов данных

Листинг 67.1. Объявление и создание экземпляра набора данных.

private: System::Void button1_Click( System::Object^ sender, System::EventArgs^ e)

{

DataSet^ ds1 = gcnew DataSet();

}

Листинг 67.2. Код для выполнения анимации.

//Объявляем булеву переменную myHeight со значением false: bool static myHeight = false;

private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e)

{

//Программируем анимацию: if (myHeight == false)

{

//Изменяем высоту форме до 500: this->Height = 500;

//Изменяем значение myHeight на противоположное: myHeight = true;

}

else

{

//Изменяем высоту форме до 490: this->Height = 490;

//Изменяем значение myHeight на противоположное: myHeight = false;

}

}

Глава 68. Разработка баз данных при помощи шаблонов на основе SQL Server 2005

В Visual Studio 2005 существует несколько вариантов разработки баз данных с использованием специальных шаблонов. В качестве первого примера рассмотрим шаблон SQL Server Class Library, основанный на использовании библиотеки специ-

альных классов. В VS щелкаем New Project (или File, New, Project), в панели New Project (рис. 68.1) в окне Project Types выбираем Visual C++, в окне Templates выде-

ляем шаблон SQL Server Class Library, в окне Name записываем имя проекта SQLServerClassLibrary1, в окне Location оставляем по умолчанию (или выбираем новый) путь к папке, в которой будет расположен проект, щелкаем OK.

Часть XIII. Приложения Visual C++ для использования на практике, например, в промышленности

Глава 69. Алгоритмы для расчета площади, объема и массы изделий и заготовок

Напомним, что перед нами стоит задача: разработать методологию создания вычислительной системы из различных приложений комплекса Visual C++ с использованием элементов компьютерной графики. Если в предыдущих главах мы разрабатывали приложения для математических вычислений и построения графиков функций, то с этой главы начнем разрабатывать приложения для решения практических проблем в науке и технике (например, в промышленности, строительстве, сельском хозяйстве и т.д.). Одной из самых распространенных таких проблем является определение площади поверхности, объема и массы любого изделия (вещи, продукта, детали), которое или уже изготавливается, или планируется изготавливать (выпускать). Расчет площади поверхности, объема и массы необходимо выполнять абсолютно для всех изделий (как вновь спроектированных, так и существующих, но, например, модернизированных изделий); такой расчет является самостоятельной (часто сложной) инженерной задачей, которая обычно решается приближенно с заданной точностью. Для решения этой задачи будем использовать объектноориентированную философию, которая (как уже отмечалось) включает три основных понятия: объектно-ориентированный анализ; объектно-ориентированное проектирование и объектно-ориентированное программирование ООП (Object Oriented Programming, OOP). С целью реализации принципов объектно-ориентированной философии сначала необходимо разработать класс объектов-изделий.

В этой главе перед нами стоит задача: разработать методику расчета массы заданного по чертежу изделия (детали). Поэтому для нас важным становится следующий (за технологическим признаком) признак классификации, а именно: геометрическая форма изделий. Существует много классификаций изделий по геометрической форме. Для примера выбранную (заранее по технологическому признаку) номенклатуру изделий мы разделим по геометрической форме на следующие классы объектов-изделий:

1.Класс объектов-изделий типа стакана.

2.Класс объектов-изделий типа втулки.

3.Класс объектов-изделий типа оси и так далее.

Глава 70. Консольное приложение для расчета массы изделий

Листинг 70.1. Проект Part3. Файл Part3.cpp.

//This is the main project file for VC++ application project

//generated using an Application Wizard.

#include "stdafx.h"

using namespace System;

//Мы начинаем записывать код: double d, H, s;

double pi = Math::PI;

double rho = 7850; //kg/(m*m*m) - for steel (для стали). double A, V, m, D;

double Area1() //Площадь круга:

{

double A1, Rn; Rn = H;

A1 = pi*(d-2*Rn)*(d-2*Rn)/4; return A1; //mm*mm

}

double Area2() //Площадь тора:

{

double A2, Rn; Rn = H;

A2 = pi*(Rn-s/2)*(2*(Rn-s/2)+pi*(d-2*Rn)/2); return A2; //mm*mm

}

double Area() //Площадь поверхности детали:

{

double A1, A2;

A1 = Area1(); A2 = Area2(); A = A1+A2; return A; //mm*mm

}

double Volume() //Объем детали:

{

A = Area(); V = A*s; return V; //mm*mm*mm

}

double mass() //Масса детали:

{

Console::Write("Part diameter, mm, d ="); d = Convert::ToDouble(Console::ReadLine());

Глава 70. Консольное приложение для расчета массы изделий

297

Console::Write("Part heigth, mm, H =");

 

H = Convert::ToDouble(Console::ReadLine());

 

Console::Write("Part thickness, mm, s =");

 

s = Convert::ToDouble(Console::ReadLine());

 

A = Area();

//mm*mm

 

V = Volume();

//mm*mm*mm

 

m = V*rho*1.0e-9; //kg Console::WriteLine("");//Пробельная строка. //Вывод площади:

Console::Write("Part area, mm*mm, A ="); Console::WriteLine(A);

//Вывод объема:

Console::Write("Part volume, mm*mm*mm, V ="); Console::WriteLine(V);

//Вывод массы:

Console::Write("Part mass for steel,kg, m ="); Console::WriteLine(m);

return m;

}

double DBlank() //Диаметр плоской заготовки:

{

A = Area(); D = Math::Sqrt(4*A/pi); //Вывод диаметра заготовки: Console::Write("Blank diameter, mm, D ="); Console::WriteLine(D);

Console::WriteLine("");//Пробельная строка. return D;

}

//Мы закончили написание кода.

int _tmain()

{

// TODO: Please replace the sample code below //with your own.

//Мы комментируем бывшую здесь нижнюю строку: //Console::WriteLine(L"Hello World");

//Мы начинаем записывать код: //Рассчитать площадь: Area();

//Рассчитать объем: Volume();

//Рассчитать массу детали: mass();

//Рассчитать размеры заготовки: DBlank();

298 Жарков В.А. Компьютерная графика, мультимедиа и игры на Visual C++ 2005

//Мы закончили написание кода.

}

Глава 71. Вычисление массы изделий при помощи формы

Листинг 71.1. Методы для расчета параметров детали.

//Объявляем переменные: double d, H, Rn, s; double A, V, m, D; double rho;

double static pi = Math::PI; //Метод для расчета площади круга: double Area1()

{

double A1 = pi*(d-2*Rn)*(d-2*Rn)/4; return A1; //mm*mm

}

//Площадь нижнего тора: double Area2()

{

double A2 = pi*(Rn-s/2)*(2*(Rn-s/2)+pi*(d-2*Rn)/2); return A2; //mm*mm

}

//Площадь цилиндра: double Area3()

{

double A3 = pi*(d-s)*(H-Rn); return A3; //mm*mm

}

//Площадь всей поверхности детали: double Area()

{

double A = 0, A1, A2, A3;

A1 = Area1(); A2 = Area2(); A3 = Area3(); A = A1+A2+A3;

return A;

}

//Объем детали: double Volume()

{

A=Area(); V=A*s; return V;

}

//Масса детали: double mass()

Соседние файлы в предмете Программирование на C++