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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать документ)
align="justify">      Для сравнения вычислительной эффективности  этих приложений были использованы одинаковые входные данные. В каждом приложении выдавалось время вычислений в каждом опыте. Результаты представлены в таблице 1.

    Таблица 1. Сравнение вычислительной эффективности  приложений

  Время выполнения, мс
Кол-во точек Консольное  приложение

на языке C#

Приложение  с использование скриптового  языка Perl Приложение  WPF Консольное  приложение на языке F#
1000 0 0 31.25 0
10000 0 37 31.25 2.001
100000 16 295 46.875 19.001
1000000 188 3145 171.875 181.0104
10000000 1250 28968 937.5 1609.092

      Из  таблицы 1 видно, что серверное приложение оказалось самым производительным. Также мы видим, что самым медленным по времени выполнения является веб-приложение на базе классической технологии ASP с использованием языка скриптов. Это связано с тем, что при выполнении данного приложения оно не компилируется, а интерпретируется.  

      Данные  результаты получаются, если использовать ПК с системными требованиями:

    • Pentium® Dual-Core CPU 2,00 GHz;
    • ОЗУ: 2,00 Гб;
    • Операционная система: Windows XP SP3.
 

 

Заключение

     В ходе работы были разработаны четыре приложения - настольное приложение на языке С#, приложения на базе ASP, с использованием языка скриптов Perl, Web-приложение на базе WPF, настольное приложение на языке F#. Приложения представляют различные технологии программирования, включая Web-технологии. По результатам была исследована вычислительная эффективность.

     В ходе выполнении данной курсовой работы также были закреплены знания по курсу "Технологии программирования" и приобретены навыки клиент-серверной реализации прикладной задачи (задачи вычисления площади геометрической фигуры методом Монте-Карло) в виде Web приложения с использованием Web сервера IIS и Web сервисов XML, технологий ASP и JSP, языков C#, JavaScript, Perl и XAML, а также различных инструментальных систем и библиотек, автоматизирующих проектирование и программирование создаваемого приложения.  

 

Список использованных источников 

  1. ГОСТ 19.106 - 78 ЕСПД. Требования к программным  документам, выполненным печатным способом.
    1. ГОСТ 19.401 - 78 ЕСПД. Текст программы. Требования к содержанию и оформлению.
    1. ГОСТ 19.402 - 78 ЕСПД. Описание программы.
    2. ГОСТ 19.404 – 79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению.
    3. ГОСТ 19.701 – 90 (ИСО 5807-85). ЕСПД. Схемы алгоритмов, программ, данных и систем.
    4. . Г. Шилдт П. Полный справочник по C#. – ООО "И.Д. Вильямс", 2007г. – 752с.
    5. Мак-Дональд М., Шпушта М. Microsoft ASP.NET 2.0 с примерами на C# 2005 для профессионалов. – М.: ООО "И.Д. Вильямс", 2006. – 1408с.
    6. Троелсен Э. Язык программирования С# и платформа .NET 2.0 М.: Вильямс, 2007. —1167с
    7. Орлов С. Технологии разработки программного обеспечения: Учебник. – СПб.: Питер, 2002. – 464 с.
 
 
 
 
 

 

Приложение

Настольное  консольное приложение на языке C#

Файл Program.cs

using System;

using System.Collections.Generic;

using System.Text;  

namespace Consolekkr

{

    class Program

    {

            static float f1(Point A, Point B, Point P)

        {

            float temp = 0;

            temp = P.y * (B.x - A.x) / (B.y - A.y) - A.y * (B.x - A.x) / (B.y - A.y) + A.x;

            return temp;

        }

        static float smat(Point A, Point B, Point C)

        {

            return ((B.x * C.y - C.x * B.y) - (A.x * C.y - A.y * C.x) + (A.x * B.y - B.x * A.y)) / 2;

        }

        static float sras(float p, float a, float s)

        {

            float k = 0;

            k = s * p / a;

            return k;

        }

        static float pogr(float s, float s1)

        {

            float z = 0;

            z = Math.Abs(((s-s1) / s1)*100);

            return z;

        }

        static void Main(string[] args)

        {

            for (;;)

            {

            Console.WriteLine("^");

            Console.WriteLine("|                  E");

            Console.WriteLine("|                 *");

            Console.WriteLine("|               **");

            Console.WriteLine("|             ****");

            Console.WriteLine("|           *****");

            Console.WriteLine("|         ******");

            Console.WriteLine("|       *******");

            Console.WriteLine("|     ********");

            Console.WriteLine("|____B______C________________________->x");

            Console.WriteLine("Выберите как вы хотите задать точки: ");

            Console.WriteLine("1. Задать самому");

            Console.WriteLine("2. Использовать контрольный примеры");

            Console.WriteLine("3. Выход");

            Point B = new Point();

            Point C = new Point();

            Point E = new Point();

            Point P = new Point();

            int n = 0;

            DateTime dtr = new DateTime();

            Random rnd = new Random();

            float shot = 0;

            float sp = 0;

            float xmax = 0;

            float xmin = 0;

            float sm = 0;

            float sr = 0;

            float pog = 0;

            Int32 choise = Convert.ToInt32(Console.ReadLine());

            if (choise == 1)

            {

                Console.WriteLine("ВВедите Bx: ");

                B.x = (float)Convert.ToDouble(Console.ReadLine());

                B.y = 0;

                Console.WriteLine("Введите Cx: ");

                C.x = (float)Convert.ToDouble(Console.ReadLine());

                C.y = 0;

                Console.WriteLine("Введите Ex: ");

                E.x = (float)Convert.ToDouble(Console.ReadLine());

                Console.WriteLine("Введите Ey: ");

                E.y = (float)Convert.ToDouble(Console.ReadLine());

            }

            if (choise == 2)

            {

                Console.WriteLine("Выберете контрольный вариант: ");

                Console.WriteLine("1. Ax < Ex < Bx");

                Console.WriteLine("2. Ex = Bx");

                Console.WriteLine("3. Bx < Ex < Cx");

                Console.WriteLine("4. Ex = Cx");

                Console.WriteLine("5. Cx < Ex < Dx");

                Int32 choise2 = Convert.ToInt32(Console.ReadLine());

                if (choise2 == 1)

                {

                    B.x = 40;

                    E.x = 30;

                    C.x = 64;

                    E.y = 150;

                    B.y = 0;

                    C.y = 0;

                }

                if (choise2 == 2)

                {

                    B.x = 40;

                    E.x = 40;

                    C.x = 64;

                    E.y = 150;

                    B.y = 0;

                    C.y = 0;

                }

                if (choise2 == 3)

                {

                    B.x = 40;

                    E.x = 50;

                    C.x = 64;

                    E.y = 150;

                    B.y = 0;

                    C.y = 0;

                }

                if (choise2 == 4)

                {

                    B.x = 40;

                    E.x = 64;

                    C.x = 64;

                    E.y = 150;

                    B.y = 0;

                    C.y = 0;

                }

                if (choise2 == 5)

                {

                    B.x = 42;

                    E.x = 30;

                    C.x = 64;

                    E.y = 150;

                    B.y = 0;

                    C.y = 0;

                }

            }

            if (choise == 3)

            {

                break;

            }

            n = 10000000;

                dtr = DateTime.Now;

                if (B.x >= C.x && B.x >= E.x)

                {

                    xmax = B.x;

                    if (C.x >= E.x)

                        xmin = E.x;

                    else xmin = C.x;

                }

                if (C.x >= B.x && C.x >= E.x)

                {

                    xmax = C.x;

                    if (B.x >= E.x)

                        xmin = E.x;

                    else xmin = B.x;

                }

                if (E.x >= B.x && E.x >= C.x)

                {

                    xmax = E.x;

                    if (B.x >= C.x)

                        xmin = C.x;

                    else xmin = B.x;

                }

                sm = smat(E, B, C);

                Console.WriteLine("\nТочная площадь треугольника  равна {0}\n", sm);

                Console.WriteLine("\nКоличество точек      Площадь        Погрешность,%       Время вычислений, с");

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