Технологии программирования

Автор работы: Пользователь скрыл имя, 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

Работа состоит из  1 файл

ТППЗ.docx

— 537.35 Кб (Скачать документ)

                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.TotalMilliseconds + "\n");

                    }

                }

            }

        }

    }

}

Файл Point.cs

using System;

using System.Collections.Generic;

using System.Text; 

namespace Consolekkr

{

    class Point

    {

        public float x;

        public float y;

    }

}

 

Приложение на базе скриптового языка Perl

Файл 2P.html

<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>Локальное Приложение№2  написанное на базе скриптов Perl.</FONT></B></center>

<center><B><FONT SIZE=5 COLOR=BLACK>Приближенное вычисление  площади треугольника BCE методом  Монте-Карло.</FONT></B></center>

<hr> 

<form name="Form" action="http://localhost/cgi/script.pl" method="POST"> 

<br> <br> <br>

<table border=0>

<td> <img src="zadanie.jpg"> </td>

<td>  <B><FONT SIZE=4 COLOR=GREEN>Пример треугольника bce:</FONT></B>

<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()"> &nbsp; <input type="button" value="Тестовый пример 2" onClick="javascript:Test2()"> &nbsp; <input type="button" value="Тестовый пример 3" onClick="javascript:Test3()">  &nbsp; <input type="button" value="Тестовый пример 4" onClick="javascript:Test4()"> &nbsp; <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>

Файл script.pl

#!/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,$ey,$ex) == 1)

{

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>Программа вычисляет  площадь треугольника с помощью  метода Монте-Карло. Программа написанна на базе скриптов Perl.</FONT></B></center> 

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

            <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,};

Информация о работе Технологии программирования