Автор работы: Пользователь скрыл имя, 25 Декабря 2011 в 02:57, курсовая работа
Целью курсовой работы является исследование вычислительной эффективности технологий программирования, включая веб-технологии, а также закрепление знаний, полученных в курсе “Технологии программирования”.
Введение 5
1 Постановка задачи 7
2 Разработка технического задания 9
2.1 Анализ задачи проектирования 9
2.2 Технические требования 11
3 Алгоритм решения задачи 13
3.1 Метод Монте-Карло 13
3.2 Определение попадания точки внутрь треугольника 13
4 Настольное консольное приложение 16
4.1 Среда разработки MS Visual Studio 2010 16
4.2 Логическое проектирование приложения 16
4.3 Результаты работы приложения 18
4.4 Системные требования 18
4.5 Руководство системного программиста 19
4.6 Руководство программиста 19
4.7 Руководство пользователя 20
5 Web приложение на базе скриптового языка Perl 22
5.1 Инструментальные средства разработки 22
23
5.2. Реализация приложения 23
5.3. Результаты работы приложения. 26
5.4. Руководство программиста 27
5.5. Руководство системного программиста 27
5.7. Системные требования 28
6 Web-приложение на базе WPF и Web-сервисов ASP.NET 29
6.1 Программные средства разработки приложения 29
6.2 Логическое проектирование приложения 30
6.3 Генерирование прокси-класса 33
6.4 Системные требования 34
6.5 Руководство системного программиста 34
6.6 Руководство программиста 35
6.7 Руководство пользователя 38
6.8 Тестирование приложения 39
7 Настольное приложение на языке F# 40
7.1 Инструментальные средства разработки 40
7.2 Логическое проектирование приложения 40
7.3 Результат работы приложения 42
Результат работы консольного приложения представлен на Рис. 11. 42
7.4 Системные требования 43
7.5 Руководство системного программиста 43
7.6 Руководство программиста 43
7.7 Руководство пользователя 44
8 Анализ вычислительной эффективности 46
Заключение 48
Список использованных источников 49
<s:element minOccurs="1" maxOccurs="1" name="s1" type="s:double" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="pogrResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="pogrResult" type="s:double" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="f1SoapIn">
<wsdl:part name="parameters" element="tns:f1" />
</wsdl:message>
<wsdl:message name="f1SoapOut">
<wsdl:part name="parameters" element="tns:f1Response" />
</wsdl:message>
<wsdl:message name="smatSoapIn">
<wsdl:part name="parameters" element="tns:smat" />
</wsdl:message>
<wsdl:message name="smatSoapOut">
<wsdl:part name="parameters" element="tns:smatResponse" />
</wsdl:message>
<wsdl:message name="srasSoapIn">
<wsdl:part name="parameters" element="tns:sras" />
</wsdl:message>
<wsdl:message name="srasSoapOut">
<wsdl:part name="parameters" element="tns:srasResponse" />
</wsdl:message>
<wsdl:message name="pogrSoapIn">
<wsdl:part name="parameters" element="tns:pogr" />
</wsdl:message>
<wsdl:message name="pogrSoapOut">
<wsdl:part name="parameters" element="tns:pogrResponse" />
</wsdl:message>
<wsdl:portType name="ServiceSoap">
<wsdl:operation name="f1">
<wsdl:input message="tns:f1SoapIn" />
<wsdl:output message="tns:f1SoapOut" />
</wsdl:operation>
<wsdl:operation name="smat">
<wsdl:input message="tns:smatSoapIn" />
<wsdl:output message="tns:smatSoapOut" />
</wsdl:operation>
<wsdl:operation name="sras">
<wsdl:input message="tns:srasSoapIn" />
<wsdl:output message="tns:srasSoapOut" />
</wsdl:operation>
<wsdl:operation name="pogr">
<wsdl:input message="tns:pogrSoapIn" />
<wsdl:output message="tns:pogrSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ServiceSoap" type="tns:ServiceSoap">
<soap:binding
transport="http://schemas.
<wsdl:operation name="f1">
<soap:operation soapAction="http://tempuri.
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="smat">
<soap:operation soapAction="http://tempuri.
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="sras">
<soap:operation soapAction="http://tempuri.
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="pogr">
<soap:operation soapAction="http://tempuri.
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="ServiceSoap12" type="tns:ServiceSoap">
<soap12:binding
transport="http://schemas.
<wsdl:operation name="f1">
<soap12:operation soapAction="http://tempuri.
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="smat">
<soap12:operation soapAction="http://tempuri.
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="sras">
<soap12:operation soapAction="http://tempuri.
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="pogr">
<soap12:operation soapAction="http://tempuri.
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Service">
<wsdl:port name="ServiceSoap" binding="tns:ServiceSoap">
<soap:address location="http://localhost:
</wsdl:port>
<wsdl:port name="ServiceSoap12" binding="tns:ServiceSoap12">
<soap12:address location="http://localhost:
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
<?xml version="1.0" encoding="utf-8"?>
<discovery xmlns:xsi="http://www.w3.org/
<contractRef ref="http://localhost:14572/
<soap address="http://localhost:
<soap address="http://localhost:
</discovery>
Настольное консольное приложение на языке F#
open System
open System.Collections
open System.Text
//////////////////////////////
////-----------------||||||---
let xmax (bx:double,cx:double,ex:
if bx >= cx && bx >= ex then
bx
elif cx >= bx && cx >= ex then
cx
else
ex;;
//////////////////////////////
////-----------------||||||---
let xmin (bx,cx,ex) =
if bx <= cx && bx <= ex then
bx
elif cx <= bx && cx <= ex then
cx
else
ex;;
//////////////////////////////
////-----------------||||||---
let rec f1(n,bx,by,cx,cy,ex,ey,max,
if n = 1 then shof
else
begin
let px = p.NextDouble()*(max-min)+min in
let py = p.NextDouble()*ey in
if (px <= (py*(ex-cx)/(ey-cy)-cy*(ex-cx)
f1(n-1,bx,by,cx,cy,ex,ey,max,
else f1(n-1,bx,by,cx,cy,ex,ey,max,
end;;
//////////////////////////////
////-----------------||||||---
let smat(bx,by,cx,cy,ex,ey) =
Math.Abs((bx*cy-cx*by-(ex*cy-
//////////////////////////////
////-----------------||||||---
let sras(p:double,a:double,s:
s*p/a;;
//////////////////////////////
////-----------------||||||---
let pogr(s:double,s1:double) =
Math.Abs(((s-s1)/s1)*100.0);;
//////////////////////////////
////-----------------||||||---
let srect(ey,max,min) =
ey*(max-min);;
while true do
Console.WriteLine("^");
Console.WriteLine("|
Console.WriteLine("|
Console.WriteLine("|
Console.WriteLine("|
Console.WriteLine("| *****");
Console.WriteLine("| ******");
Console.WriteLine("| *******");
Console.WriteLine("| ********");
Console.WriteLine("|____B_____
Console.WriteLine("Выберите как вы хотите задать точки: ");
Console.WriteLine("1. Ввести вручную");
Console.WriteLine("2. Использовать контрольный примеры");
Console.WriteLine("3. Выход");
let choise =
Convert.ToInt32(Console.
if choise = 1 then
begin
Console.WriteLine("Введите Bx")
let by = 0.0
let bx:double = Convert.ToDouble(Console.
Console.WriteLine("Введите Cx")
let cx:double = Convert.ToDouble(Console.
let cy = 0.0
Console.WriteLine("Введите Ex")
let ex:double = Convert.ToDouble(Console.
Console.WriteLine("Введите Ey")
let ey:double = Convert.ToDouble(Console.
let rnd = Random()
let dtr1 = DateTime.Now
let shoot = f1(1000,bx,by,cx,cy,ex,ey,
let dtr2 = DateTime.Now
Console.WriteLine("\nТочная площадь треугольника равна {0}\n", smat(bx,by,cx,cy,ex,ey))
Console.WriteLine("\