Автор работы: Пользователь скрыл имя, 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
for (int i = 1; i < n + 1; i++)
{
P.x = ((float)rnd.NextDouble() * (xmax - xmin)) + xmin;
P.y = (float)rnd.NextDouble() * E.y;
if (f1(C, E, P) >= P.x && f1(B, E, P) <= P.x)
shot++;
if ((i == 1000) || (i == 10000) || (i == 100000) || (i == 1000000) || (i == 10000000))
{
sp = E.y * (xmax - xmin);
sr = sras(shot, i, sp);
pog = pogr(sr, sm);
TimeSpan dtr1 = DateTime.Now - dtr;
Console.Write(i);
Console.CursorLeft = 22;
Console.Write("{0:F3}", sr);
Console.CursorLeft = 37;
Console.Write("{0:F3}", pog);
Console.CursorLeft = 57;
Console.WriteLine(dtr1.
}
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Consolekkr
{
class Point
{
public float x;
public float y;
}
}
Приложение на базе скриптового языка Perl
<html>
<head>
<meta http-equiv="Content-Type content=text/html; charset=1251">
<title>Курсовая работа по дисциплине "Технологии программирования"</title>
<script language="javascript">
function Test1() {
document.Form.ex.value = 20;
document.Form.ey.value = 50;
document.Form.bx.value = 30;
document.Form.by.value = 0;
document.Form.cx.value = 40;
document.Form.cy.value = 0;
}
function Test2() {
document.Form.ex.value = 30;
document.Form.ey.value = 50;
document.Form.bx.value = 30;
document.Form.by.value = 0;
document.Form.cx.value = 40;
document.Form.cy.value = 0;
}
function Test3() {
document.Form.ex.value = 35;
document.Form.ey.value = 50;
document.Form.bx.value = 30;
document.Form.by.value = 0;
document.Form.cx.value = 40;
document.Form.cy.value = 0;
}
function Test4(){
document.Form.ex.value = 40;
document.Form.ey.value = 50;
document.Form.bx.value = 30;
document.Form.by.value = 0;
document.Form.cx.value = 40;
document.Form.cy.value = 0;
}
function Test5() {
document.Form.ex.value = 50;
document.Form.ey.value = 50;
document.Form.bx.value = 30;
document.Form.by.value = 0;
document.Form.cx.value = 40;
document.Form.cy.value = 0;
}
</script>
</head>
<body background="images/Мир.jpg">
<br><br> <br>
<hr>
<center><B><FONT
SIZE=5 COLOR=BLACK>Локальное
<center><B><FONT
SIZE=5 COLOR=BLACK>Приближенное
<hr>
<form name="Form"
action="http://localhost/cgi/
<br> <br> <br>
<table border=0>
<td> <img src="zadanie.jpg"> </td>
<td> <B><FONT
SIZE=4 COLOR=GREEN>Пример
<pre>
<input style="width: 35px; vertical-align: middle; text-align: center; " type="text" readonly="readOnly"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center; color=#008000" value="X" readonly="readOnly"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center; color=#008000" value="Y" readonly="readOnly">
<input style="width: 35px; vertical-align: middle; text-align: center; COLOR=#008000" type="text"value="E" readonly="readOnly"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center;" name="ex" value="90"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center;" name="ey" value="100">
<input style="width: 35px; vertical-align: middle; text-align: center; COLOR=#008000" type="text"value="B" readonly="readOnly"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center;" name="bx" value="25"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center;" name="by" value="0" readonly="readOnly">
<input style="width: 35px; vertical-align: middle; text-align: center; COLOR=#008000" type="text" value="C" readonly="readOnly"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center;" name="cx" value="50"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center;" name="cy" value="0" readonly="readOnly">
<br><br>
<div id="test"><input type="button" value="Тестовый пример 1" onClick="javascript:Test1()"> <input type="button" value="Тестовый пример 2" onClick="javascript:Test2()"> <input type="button" value="Тестовый пример 3" onClick="javascript:Test3()"> <input type="button" value="Тестовый пример 4" onClick="javascript:Test4()"> <input type="button" value="Тестовый пример 5" onClick="javascript:Test5()">
</div>
</div>
</div>
</div>
</td>
</table>
<br>
<input style="width: 150px; height: 25px; font-weight: bold;" type="submit" value="Вычислить"" />
</pre>
</form>
</body>
</html>
#!/usr/bin/perl -w
use CGI;
use CGI qw(param);
use CGI::Carp qw(fatalsToBrowser);
use strict;
#use CGI qw(all);
$| = 1;
sub BEGIN {
print ("Pragma: no-cache\nCache-control: no-cache\nContent-type: text/html\n\n");
}
my $cgi = new CGI;
my $ex=$cgi->param('ex');
my $ey=$cgi->param('ey');
my $by=$cgi->param('by');
my $bx=$cgi->param('bx');
my $cx=$cgi->param('cx');
my $cy=$cgi->param('cy');
my $max1 = 0;
my $min1 = 0;
use Data::Dumper;
=pod
print "<pre>";
print Dumper [$ex, $ey, $by, $bx, $cx, $cy];
print "</pre>";
=cut
sub maxx{
my $max = 0;
my ($ex1, $bx1, $cx1)=@_;
if (($ex1 >= $bx1) && ($ex1 >= $cx1)){
$max = $ex1;}
if (($bx1 >= $ex1) && ($bx1 >= $cx1)){
$max = $bx1;}
if (($cx1 >= $bx1) && ($cx1 >= $ex1)){
$max = $cx1;}
return $max;
}
sub minx{
my ($ex1, $bx1, $cx1)=@_;
my $min = 0;
if (($ex1 <= $bx1) && ($ex1 <= $cx1)){
$min = $ex1;}
if (($bx1 <= $ex1) && ($bx1 <= $cx1)){
$min = $bx1;}
if (($cx1 <= $bx1) && ($cx1 <= $ex1)){
$min = $cx1;}
return $min;
}
sub controldata{
my ($bx,$cx,$by,$cy,$ey,$ex) = @_;
if (($cy!=0) or ($by != 0) or ($bx > $cx) or ($ey == 0) or ($ey < 0) or ($bx < 0) or ($cx < 0) or ($ex < 0)) { return 0 ;}
else {return 1;}
}
#площадь математически
sub squar{
my ($ax,$ay, $by, $bx, $cx, $cy)=@_;
my $s = (($bx * $cy - $cx * $by) - ($ax * $cy - $ay * $cx) + ($ax * $by - $bx * $ay)) / 2;
return ($s);
}
# площадь прямоугольника в кот вписана трапеция
sub squarect{
my ($min,$max,$y) = @_;
return (($max - $min) * $y);
}
# MK
sub RandGenerAndTest{
my $m = 0;
my ($n, $bx, $by, $cy, $cx, $ex, $ey, $xmax, $xmin) = @_;
for(my
$i = 1; $i < $n; $i++)
{
my $px = $xmin + rand($xmax - $xmin);
my $py = rand($ey);
my $temp = $py * ($ex - $bx) / ($ey - $by) - $by * ($ex - $bx) / ($ey - $by) + $bx;
my $temp1 = $py * ($ex - $cx) / ($ey - $cy) - $cy * ($ex - $cx) / ($ey - $cy) + $cx;
if (($temp1 >= $px) && ($temp <= $px)){
$m++;}
}
return ($m/$n);
}
##############################
#Основная программа
###
if (controldata($bx,$cx,$by,$cy,$
{
my $s = sprintf("%.2f",squar($ex, $ey, $by, $bx, $cx, $cy));
my $xmax = maxx($ex,$bx,$cx);
my $xmin = minx($ex,$bx,$cx);
my $s_pr = squarect($xmin,$xmax,$ey);
#Header
=pod
use CGI qw(:standard);
use strict;
=cut
#print header;
#####
print "<html>
<head>
<meta http-equiv=\"Content-Type content=text/html; charset=1251\">
</head>
<body background=\"Мир.jpg\">
<br><br>
<hr>
<center><B><FONT
SIZE=5 COLOR=GREEN>Программа
<hr>
<form name=\"Form\" action=\"script.pl\" method=\"POST\">
<br />
<br />
<table width=\"500\" id=\"Table\" border=\"-1\" style=\"font-size: 12pt\">
<tr>
<td style=\"width: 77px; text-align: center; height: 20px; vertical-align: middle;\">
<strong style=\"vertical-align: top; text-align: center\">
Количество точек:</strong></td>
<td style=\"width: 120px; height: 20px; text-align: center; vertical-align: middle;\">
<strong style=\"vertical-align: top; text-align: center\">Площадь
методом Монте-карло :</strong>
<td style=\"width: 77px; height: 20px; text-align: center; vertical-align: middle;\">
<strong style=\"vertical-align: middle; text-align: center\">Погрешность вычислений(в %):</strong></td>
<td style=\"width: 127px; height: 21px; text-align: center; vertical-align: middle; line-height: normal; letter-spacing: normal;\">
<strong style=\"vertical-align: top; text-align: center\">Время расчета
<br />
(в сек.):</strong></td>
</tr>
";
########
#Calculation
my $i=0;
use Time::Local;
# Генерация N
for($i=3;$i<8;$i++){
my $count=10**$i;
my $time = time;
my $s_p= sprintf("%.2f",$s_pr * RandGenerAndTest($count, $bx, $by, $cy, $cx, $ex, $ey, $xmax, $xmin));
$time = (time - $time);
#print Dumper {s_p => $s_p, s_pr => $s_pr, count => $i,};