Построитель графиков на C#

Автор работы: Пользователь скрыл имя, 05 Октября 2011 в 16:20, дипломная работа

Краткое описание

Мир компьютерных и информационных технологий без преувеличения можно назвать наиболее динамичной областью современных знаний. Практически каждый год появляются новые модели процессоров и комплектующих, новые версии операционных систем и программного обеспечения. Все это происходит на фоне постоянного усложнения не только отдельных физических и программных компонентов, но и лежащих в их основе концепций и идей. Появилась надобность создавать все более большие сложные программы.

Содержание работы

ПОСТАНОВКА ЗАДАЧИ 6

ВВЕДЕНИЕ 7

1. ОБЩАЯ ЧАСТЬ 8

1.1. Обзор состояния вопроса 8

1.2. Основные этапы разработки программных продуктов 11

1.2.1. Концептуализация 12

1.2.2. Анализ разрабатываемого приложения 14

1.2.3. Проектирование разрабатываемого приложения 16

1.2.4. Эволюция приложения 17

1.2.5. Сопровождение приложения 19

1.3. Технологии разработки программных продуктов 20

1.3.1. Объектно-ориентированное программирование 20

1.3.2. Технология .NET 21

1.3.2.1. Компоненты .NET 23

1.3.2.2. Двоичный стандарт компонентов 25

2. СПЕЦИАЛЬНАЯ ЧАСТЬ 27

2.1. Разработка программы 27

2.1.1. Анализ разрабатываемого приложения 27

2.1.2. Проектирование разрабатываемого приложения 34

2.2. Языки программирования 35

2.3. Выбор языка программирования 37

2.4. Применение графиков в решении уравнений 38

3. ЭКОНОМИЧЕСКАЯ ЧАСТЬ 41

3.1. Исходные данные 41

3.2. Применяемые формулы с расшифровкой условных обозначений 42

3.3. Расчет полной себестоимости разработки программного

продукта по базовому варианту 45

3.4. Расчет полной себестоимости разработки программного

продукта по эксплуатационному варианту 46

3.5. Расчет полной себестоимости разработки программного

продукта по варианту разработки 57

3.6. Расчет экономической эффективности внедрения

программного продукта 48

3.7. Социально-психологические аспекты

использования разработки 50

4. ЭКСПЛУАТАЦИЯ ТЕХНИЧЕСКИХ И ПРОГРАММНЫХ

СРЕДСТВ 51

4.1. Эксплуатация технических средств 51

4.2. Эксплуатация разработанной программы 52

ЗАКЛЮЧЕНИЕ 54

СПИСОК ЛИТЕРАТУРЫ 55

ПРИЛОЖЕНИЕ 56

Содержимое работы - 1 файл

Дипломная.doc

— 1.25 Мб (Скачать файл)
>                  begin_ = begin*10;

                  end_ = end*10;

                  step_ = (float)step*10; 

                  for(float i=begin_;i<=end_;i+=step_)

                  {

                        for(float j=begin_;j<=end_;j+=step_)

                        {  

                              num++; 

                              vlist_local[num].x = i*0.1f;

                              vlist_local[num].z = j*0.1f;

                              vlist_local[num].y = sa.Function(vlist_local[num].x, vlist_local[num].z, expression, 2);     

                              vlist[num].x = vlist_local[num].x;

                              vlist[num].y = vlist_local[num].y;

                              vlist[num].z = vlist_local[num].z;

                        }

                  }

                        num_vert = num;

            }

            public void CalculateCoordParametricFunc(ref int num_vert, string expression1, string expression2, string expression3)

            {

                  SyntaxAnalyzer sa = new SyntaxAnalyzer();

                  int num = -1;//счетчик вершин

                  //здесь _begin исправить

                  float begin_, end_, step_;

                  float a, b;

                  begin_ = begin*10;

                  end_ = end*10;

                  step_ = (float)step*10; 

                  for(float i=begin_;i<=end_;i+=step_)

                  {

                        for(float j=begin_;j<=end_;j+=step_)

                        {  

                              num++;

                              a = i*0.1f;

                              b = j*0.1f;

                              vlist_local[num].x = sa.Function(a, b, expression1, 2);

                              vlist_local[num].y = sa.Function(a, b, expression2, 2);

                              vlist_local[num].z = sa.Function(a, b, expression3, 2);

                        }

                  

                  num_vert = num;

            }

            public void AutomaticChoiceInterval()

            {

                  bool is_del = false;//существует ли в текущем выражении знак '/'(разделить)

                  bool is_y = false;//существует ли в текущем выражении 'y'

                  bool is_sqrt = false;//существует ли в текущем выражении 'sqrt'

                  bool sq = false;

                  int i=0, k=0;

                  float f=-1;

                  string temp;

                  is_y = simbol_find(expression1,'y', ref i);

                  i=0;

                  is_del = simbol_find(expression1,'/', ref i);

                  i=0;

                  sq = simbol_find(expression1,'q', ref i); 

                  while(sq == true)

                  {

                        is_sqrt = true;

                        //Вычисляем  все подкоренные выражения

                        while(expression1[k] != ')')

                        {

                              k++;

                              continue;

                        }

                        SyntaxAnalyzer sa = new SyntaxAnalyzer();

                        temp = expression1.Substring(i+3, k-(i+2));

                        temp = temp+" ";

                        f = sa.Function(-3, 0, temp, 1);

                        if(f<0)

                              break; 

                        sq = simbol_find(expression1,'q', ref k);

                        i=k;

                  }

                  int p=0,l=0;

                  //Выбор диапозона  значений 

                  if(TypeFunction == "f(x)=")

                  {

                        i=0; 

                        //Если в  выражении корень и подкоренное  выражение больше нуля

                        if(is_sqrt == true && f>0)

                        {

                              _begin =  -12;

                              _end = 12;

                              _step = 0.1;

                        }

                              //Если в  выражении корень и подкоренное  выражение меньше нуля

                        else if(is_sqrt == true && f<0)

                        {

                              _begin = 0;

                              _end = 12;

                              _step = 0.1;

                        }

                        else if(is_del == true || simbol_find(expression1,'i', ref i) || simbol_find(expression1,'o', ref p) || simbol_find(expression1,'t', ref l))

                        {

                              _begin = -12;

                              _end = 12;

                              _step = 0.1;

                        }

                        else if(is_sqrt == false)

                        {

                              _begin = -3;

                              _end = 3;

                              _step = 0.1;

                        }

                  }

                  else if(TypeFunction == "f(x,y)=")

                  {

                        _begin = -12;

                        _end = 12;

                        _step = 1;

                  }

            } 

            public void InitGraph()//Camera cam, Vector cam_pos, Vector cam_dir

            {

                  SyntaxAnalyzer sa = new SyntaxAnalyzer();

                  int num_vert=0; 

                  if(TypeFunction == "f(x)=")

                  {

                        CalculateCoord2D(ref num_vert, expression1);

                  }

                  else if(TypeFunction == "f(x,y)=")

                  {

                        CalculateCoord3D(ref num_vert, expression1);

                  }

                  else if(TypeFunction == "Параметрический вид")

                  {

                        CalculateCoordParametricFunc(ref num_vert, expression1, expression2, expression3);

                  } 

                  //сохраняем  кол-во вершин в num_vertices

                  num_vertices = num_vert; 

                  //Инициализируем  объект камера

                  cam.InitCamera(cam.pos, cam.dir, world_pos.x*2, world_pos.y*2); 

            }

            public void TransformGraph(Matrix mrot) //поворот графика

            {  

                  float _scale_x = 0;

                  float _scale_y = 0;

Информация о работе Построитель графиков на C#