">
Информатика Сети ЭВМ и телекоммуникаций
Информация о работе

Тема: Пояснительная записка к курсовой работе по информатике

Описание: Курсовой проект выполнен с целью решить практические задания по дисциплине Информатика, в среде программирования Visio Studio Express C 2010. Данный курсовой проект состоит из практической части, в которой подробно описано решение задач.
Предмет: Информатика.
Дисциплина: Сети ЭВМ и телекоммуникаций.
Тип: Методические рекомендации
Дата: 16.08.2012 г.
Язык: Русский
Скачиваний: 124
Поднять уникальность

Похожие работы:

Министерство образования и науки Российской Федерации

«Южно-Уральский государственный университет»

Факультет «Приборостроительный»

Кафедра «Информационно-измерительная техника»

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ

по дисциплине: “Информатика ”

ПС-154.01.03.00.00 ПЗКР

Нормоконтролер(к.т.н., доцент)

«»2012г.

Руководитель (к.т.н., доцент)

___________

«»2012г.

Автор работы

Студент группы

__________

«»2012г.

Работа защищена с оценкой

//

«»2012г.

АННОТАЦИЯ

Курсовая работа по дисциплине «Информатика».- Челябинск: ЮУрГУ, 64 с., 42 ил., библиогр. список – 4 наим.

Курсовой проект выполнен с целью решить практические задания по дисциплине «Информатика», в среде программирования Visio Studio Express C# 2010.

Данный курсовой проект состоит из практической части, в которой подробно описано решение задач.

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

При решении задач использовались данные из практических задач и различные формулы позволяющие найти неизвестные величины.

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

В заключении подводятся итоги проделанной работы.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ3

1ЗАДАНИЕ №13

2ЗАДАНИЕ №23

3ЗАДАНИЕ №33

4ЗАДАНИЕ №43

5ЗАДАНИЕ №53

6ЗАДАНИЕ №63

8ЗАДАНИЕ №83

ЗАКЛЮЧЕНИЕ3

БИБЛИОГРАФИЧЕСКИЙ СПИСОК3

ВВЕДЕНИЕ

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

На сегодняшний день программирование стало неотъемлемой частью в различных сферах жизни, и ни одно предприятие, не может обойтись без специалиста в этой области.

Существует огромное количество различных сред программирования, например среда программирования Delphi, Borland Pascal, Free Pascal и Lazarus, Visio Studio Express C#, Borland C++, но для решения данных практических задач мы выбрали Visio Studio Express C# 2010.

Visio Studio Express C# 2010 - линейка бесплатных интегрированных сред разработки, облегчённая версия Microsoft Visual Studio, разработанная компанией Microsoft.

Согласно утверждению Microsoft, «Express» - редакции предлагают отлаженную, простую в обучении и использовании среду разработки пользователям, не являющимся профессиональными разработчиками программного обеспечения.

Следовательно, целью данного курсового проекта стало решение практических задач с использованием среды программирования Visio Studio Express C# 2010.

Задачи курсового проекта:

Изучить среду программирования Visio Studio Express C# 2010;

Решить практические задачи в Visio Studio Express C# 2010;

Написание отчета о проделанной работе.

ЗАДАНИЕ №1

Даны два действительных положительных числа. Записать алгоритм вычисления среднего арифметического и среднего геометрического этих чисел.

Решение:

Пусть переменные a и b - два действительных положительных числа типа double. Тогда переменная c, равная среднему арифметическому переменных a и b, будет вычисляться по формуле c=(a+b)/2; переменная d, равная среднему геометрическому этих переменных, будет находиться по формуле d=(a*b)^1/2.

Входные данные: a, b (два действительных положительных числа)

Выходные данные: c (среднее арифметическое переменных a и b), d(среднее геометрическое a и b) или строка «неверные данные».

Листинг программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication4

{

class Program

{

static void Main(string[] args)

{

double a, b, c, d;

///a, b - действительные положительные числа

///c - cреднее арифметическое a и b, d - среднее геометрическое a и b

Console.WriteLine("введите значение переменной a");

a = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("введите значение переменной b");

b = Convert.ToDouble(Console.ReadLine());

c = (a + b) / 2;

d = Math.Sqrt(a * b);

Console.WriteLine("среднее арифметическое равно {0}, среднее геометрическое равно {1}", c, d);

Console.ReadKey();

}

}

}

Контрольные примеры:

Контрольный пример 1.

Введем:

a =9033,

b=2343, тогда

с=5688,

d=4600,46943256881.

На рисунке 1 представлен результат, получившийся в программе.



Рисунок 1 - Контрольный пример №1

ЗАДАНИЕ №2

Треугольник задан длинами своих сторон – a, b, c. Определить, является ли он тупоугольным, прямоугольным или остроугольным.

Решение:

Пусть переменные a, b и c типа double – величины сторон треугольника. Чтобы проверить существует ли такой треугольник, используем неравенство a+b>c. Далее чтобы определить вид треугольника, используем теорему Пифагора: a2+b2=c2.

Входные данные: a, b, c (три стороны треугольника)

Выходные данные: cтрока «треугольник прямоугольный» или «треугольник остроугольный», или «треугольник тупоугольный», или «треугольник не существует».

Листинг программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Программа_2

{

class Program

{

static void Main(string[] args)

{

double a, b, c;

///a,b и с - стороны треугольника///

Console.WriteLine("введите значение a");

a = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("введите значение b");

b = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("введите значение c");

c = Convert.ToDouble(Console.ReadLine());

if (a > 0 & b > 0 & c > 0 && a + b > c && a + c > b && b + c > a)

if (a * a + b * b == c * c || a * a + c * c == b * b || c * c + b * b == a * a)

Console.WriteLine("треугольник прямоугольный");

else

if (a * a + b * b > c * c && a * a + c * c > b * b && c * c + b * b > a * a)

Console.WriteLine("треугольник остроугольный");

else Console.WriteLine("треугольник тупоугольный");

else Console.WriteLine("треугольник не существует");

Console.ReadKey();

}

}

}

Контрольные примеры:

Контрольный пример 1.

Введем:

a =13,

b=11,

с=15, тогда

«треугольник остроугольный».

На рисунке 2 представлен результат, получившийся в программе.



Рисунок 2 – Контрольный пример №1

ЗАДАНИЕ №3

Построить и записать алгоритм определения минимального элемента и его индекса в одномерном массиве.

Решение:

Пусть переменные size, x, m и n типа int – размерность массива, индекс элемента этого массива, значение минимального элемента этого массива и индекс минимального элемента массива соответственно. Чтобы проверить, существует ли массив заданной размерности, проверим, выполняется ли условие size=0. Если условие не выполняется, то задаём массив Massiv[0..size-1]. Затем чтобы определить значение минимального элемента массива и его индекс, используем циклическую алгоритмическую структуру.

Входные данные: size, x, m, n, Massiv[0..size-1].

Выходные данные: cтрока «неверные входные данные» или n, m.

Листинг программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Программа_3

{

class Program

{

static void Main(string[] args)

{

int size, x, m, n;

Console.WriteLine("выберите размерность массива A");

size = Convert.ToInt32(Console.ReadLine());

if (size == 0)

Console.WriteLine("неверные входные данные");

else

{

int[] Massiv = new int[size];

Console.WriteLine("Введите исходный массив:");

for (x = 0; x < size; x++)

{

Console.Write("Элемент [" + x + "]: ");

Massiv[x] = int.Parse(Console.ReadLine());

}

Console.WriteLine("Исходный массив:");

for (x = 0; x < size; x++)

{

Console.Write(Massiv[x] + " ");

Console.Write("");

}

m = Massiv[0];

n = 0;

for (x = 1; x < size; x++)

{

if (Massiv[x] < m)

{

m = Massiv[x];

n = x;

}

} Console.WriteLine("минимальный элемент с индексом {0}, значение минимального элемента равно {1}", n, m);

}

Console.ReadKey();

}

}

}

Контрольные примеры:

Контрольный пример 1.

Введем:

size=3,

x=1,

m=Massiv[0],

n=0,

Massiv[2, 6, 2], тогда

n=0, m=2.

На рисунке 3 представлен результат, получившийся в программе.



Рисунок 3 – Контрольный пример №1

ЗАДАНИЕ №4

С клавиатуры пользователь ввел число и систему счисления, в которой это число записано. Определить корректность введенного числа.

Решение:

Пусть переменные Chislo типа string, Osnovanye и i типа int – введённое пользователем число, заданное пользователем основание системы счислении и индекс элементов массива(переменная для циклов) соответственно(подробнее в комментариях).

Входные данные: char[]SymSet, char[]NonActualSet, Chislo, Osnovanye, i.

Выходные данные: cтрока «"Нет возможности записать число в такой системе счисления стандартными методами"» или «Введенная Вами строка содержит лишние символы», или «Число введено корректно » (полученное число), или «Введенное число не соответствует указанной системе счисления».

Листинг программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Программа_4

{

class Program

{

static void Main(string[] args)

{

char[] SymSet = { 0,1,2,3,4,5,

6,7,8,9,A,B,

C,D,E,F,G,H,

I,J,K,L,M,N,

O,P,Q,R,S,T,

U,V,W,X,Y,Z

}; //таблица разрешенных символов

char[] NonActualSet = new char[36]; //сюда будут помещены лишние для указанной системы счисления символы

string Chislo; //здесь будет храниться введенное пользователем число

int Osnovanye; //здесь будет храниться введенное пользователем основание системы счисления

int i; //временная переменная для циклов

Console.WriteLine("Введите основание системы счисления");

Osnovanye = Convert.ToInt32(Console.ReadLine());

if (Osnovanye < 1 || Osnovanye > 36)

Console.WriteLine("Нет возможности записать число в такой системе счисления стандартными методами");

else

{ Console.WriteLine("Введите число в указанной ранее системе счисления");

Chislo = Console.ReadLine();

for (i = 0; i < 36; i++) NonActualSet[i] = Convert.ToChar(0); //забиваем массив сначала нулевыми символами.

for (i = Osnovanye; i < 36; i++) NonActualSet[i] = SymSet[i]; //копируем символы, которые будут лишними для данной системы счисления

Chislo = Chislo.ToUpper();

for (i = 0; i < Chislo.Length; i++) //в цикле проверяем, не ввел ли пользователь какие-нибудь лишние символы

{

if ((Chislo[i] < 0 && Chislo[i] < A || Chislo[i] > 9 && Chislo[i] > Z) && Chislo[i] != .)

Console.WriteLine("Введенная Вами строка содержит лишние символы");

}

while (Chislo[0] == .) Chislo = Chislo.Remove(0, 1); //До тех пор, пока первый символ - точка, удаляем первый символ

if (Chislo.IndexOf(.) != -1) // если есть еще точки...

{

for (i = Chislo.IndexOf(.) + 1; i < Chislo.Length; i++)

{//...удаляем все точки, кроме первой

if (Chislo[i] == .)

{

Chislo = Chislo.Remove(i, 1);

i--; //при удалении символы смещаются назад, поэтому уменьшаем счетчик

}

}

}

if (Chislo.IndexOfAny(NonActualSet, 0) == -1)

Console.WriteLine("Число введено корректно {0}", Chislo); //проверяем на содержание символов из набора лишних

else

Console.WriteLine("Введенное число не соответствует указанной системе счисления");

Console.ReadKey();

}

}

}

}

Контрольные примеры:

Контрольный пример 1.

Введем:

char[]SymSet,

char[]NonActualSet,

Osnovanye=5,

Chislo=24a63,

i, тогда

"Введенное число не соответствует указанной системе счисления".

На рисунке 4 представлен результат, получившийся в программе



Рисунок 4 – Контрольный пример №1

ЗАДАНИЕ №5

С клавиатуры пользователь ввел число и систему счисления, в которой это число записано. Определить корректность введенного числа.

Решение:

Пусть переменные Chislo типа string, Osnovanye, i и j типа int – введённое пользователем число, заданное пользователем основание системы счислении и индексы элементов массива(переменная для циклов) соответственно(подробнее в комментариях).

Входные данные: char[]SymSet, StringBuilder Ch , Chislo, Osnovanye, i, j.

Выходные данные: cтрока «"Нет возможности записать число в такой системе счисления стандартными методами"» или «Введенная Вами строка содержит лишние символы», или «Число введено корректно » (полученное число), или «Введенное число не соответствует указанной системе счисления».

Листинг программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Программа_5

{

class Program

{

static void Main(string[] args)

{

char[] SymSet = { 0,1,2,3,4,5,

6,7,8,9,A,B,

C,D,E,F,G,H,

I,J,K,L,M,N,

O,P,Q,R,S,T,

U,V,W,X,Y,Z

}; //таблица разрешенных символов

string Chislo; //здесь будет храниться введенное пользователем число

StringBuilder Ch = new StringBuilder();

int Osnovanye; //здесь будет храниться введенное пользователем основание системы счисления

int i, j; //временные переменные для циклов

Console.WriteLine("Введите основание системы счисления");

Osnovanye = Convert.ToInt32(Console.ReadLine());

if (Osnovanye < 1 || Osnovanye > 36)

{

Console.WriteLine("Нет возможности записать число в такой системе счисления стандартными методами");

Console.ReadKey();

return;

}

Console.WriteLine("Введите число в указанной ранее системе счисления");

Chislo = Console.ReadLine();

Chislo = Chislo.ToUpper();

for (i = 0; i <= Chislo.Length - 1; i++) //в цикле проверяем? не ввел ли пользователь что-то лишнее

if ((Chislo[i] < 0 && Chislo[i] < A || Chislo[i] > 9 && Chislo[i] > Z) && Chislo[i] != .)

{

Console.WriteLine("Введенная Вами хрень содержит левые символы");

Console.ReadKey();

return;

}

while (Chislo[0] == .) Chislo = Chislo.Remove(0, 1); //До тех пор, пока первый символ - точка, удаляем первый символ

if (Chislo.IndexOf(.) != -1) // если есть еще точки...

{

for (i = Chislo.IndexOf(.) + 1; i < Chislo.Length; i++)

{//...удаляем все точки, кроме первой

if (Chislo[i] == .)

{

Chislo = Chislo.Remove(i, 1);

i--; //при удалении символы смещаются назад, поэтому уменьшаем счетчик

}

}

}

Ch.Clear();

Ch.Append(Chislo);

for (i = 0; i <= Ch.Length - 1; i++)

for (j = Osnovanye; j <= 35; j++)

if (Ch[i] == SymSet[j])//Сравниваем каждый символ введенной строки с каждым из символов в массиве разрешенных за пределами основания с/с.

{ //Если найден лишний символ, то выдаем сообщение и выходим.

Console.WriteLine("Введенное число не соответствует указанной системе счисления");

Console.ReadKey();

return;

}

Console.WriteLine("Число введено корректно " + Ch.ToString());

Console.ReadKey();

}

}

}

Контрольные примеры:

Контрольный пример 1.

Введем:

char[]SymSet,

StringBuilder Ch,

Osnovanye=5,

Chislo=24a63,

i, тогда

"Введенное число не соответствует указанной системе счисления".

На рисунке 5 представлен результат, получившийся в программе.



Рисунок 5 – Контрольные проблемы №1

ЗАДАНИЕ №6

Класс «Точка». В классе определить поля «координата X», «координата Y», автовычисляемое поле, хранящее расстояние от точки до начала координат, непараметризированные методы, проверяющие лежит ли точка на одной из осей, параметризированный метод, сдвигающий точку на n позиций по горизонтали и m позиций по вертикали.

Решение:

Сначала нужно описать класс «Point», его свойства и методы. Далее, пусть переменные n, m –смещение по х и смещение по у соответственно. Используя свойства и методы, проверим, принадлежит ли точка осям, на каком расстоянии находится от начала координат и т.д.

Входные данные: char[]SymSet, StringBuilder Ch , Chislo, Osnovanye, i, j.

Выходные данные: cтрока «"Нет возможности записать число в такой системе счисления стандартными методами"» или «Введенная Вами строка содержит лишние символы», или «Число введено корректно » (полученное число), или «Введенное число не соответствует указанной системе счисления».

Листинг класса:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Окружность

{

class Point

{

int _X, _Y; //тут хранятся координаты точки

double _Vector;//тут хранится расстояние от точки до начала координат

public Point()

{

_X = 0;

_Y = 0;

}

public bool IsXZero()

{//метод возвращает True если точка лежит на оси X

return (_X == 0);

}

public bool IsYZero()

{//метод возвращает True если точка лежит на оси Y

return (_Y == 0);

}

public void MovePoint(int n, int m)

{//метод сдвигает точку на n единиц по оси X и на m единиц по оси Y

_X = _X + n;

_Y = _Y + m;

}

public int X

{//свойство "координата X" точки - управляет полем _X;

set { _X = value; }

get { return _X; }

}

public int Y

{//свойство "координата Y" точки - управляет полем _Y;

set { _Y = value; }

get { return _Y; }

}

public double Vector

{//свойство "расстояние до начала координат" точки - управляет полем _Vector;

get

{

_Vector = Math.Sqrt(_X * _X + _Y * _Y);

return _Vector;

}

}

}

class Program

{

static void Main(string[] args)

{

Point P = new Point();

int n, m;

Console.WriteLine("Введите координату X точки");

P.X = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Введите координату Y точки");

P.Y = Convert.ToInt32(Console.ReadLine());

if (P.IsXZero()) Console.WriteLine("Точка лежит на оси X");

if (P.IsYZero()) Console.WriteLine("Точка лежит на оси Y");

Console.WriteLine("Расстояние до начала координат равно " + P.Vector);

Console.WriteLine("Для продолжения нажмите любую клавишу");

Console.ReadKey();

Console.WriteLine("Введите перемещение по оси X");

n = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Введите перемещение по оси Y");

m = Convert.ToInt32(Console.ReadLine());

P.MovePoint(n, m);

Console.WriteLine("Новые координаты точки после перемещения:");

Console.WriteLine("X="+P.X+" Y="+P.Y);

if (P.IsXZero()) Console.WriteLine("Точка лежит на оси X");

if (P.IsYZero()) Console.WriteLine("Точка лежит на оси Y");

Console.WriteLine("Расстояние до начала координат после перемещения равно " + P.Vector);

Console.ReadKey();

}

}

}

Контрольные примеры:

Контрольный пример 1.

Введем:

P.X=1,

P.Y=2,

n=4,

m=3, тогда

"Расстояние до начала координат равно " 2,23606797749979,

"Новые координаты точки перемещения" 7,07106781186548.

На рисунке 6 представлен результат, получившийся в программе.



Рисунок 6 – Контрольный пример №1

ЗАДАНИЕ №7

Определить статический класс конвертора площади. В основной программе предложить пользователю выбор исходной конвертируемой величины и величины результата. Величины площади: акр, ар, гектар, квадратный метр.

Решение:

Сначала нужно описать класс «StaticConv», его свойства и методы. Далее, пусть переменная square типа double – площадь, а переменная choise типа string – номер варианта конвертирования площади. Прописываем 12 вариантов конвертирования и выберем один из них.

Входные данные: square, choise.

Выходные данные: square.

Листинг класса:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Программа_7

{

class StaticConv //Статический класс конвертера площади

{

//Конвертируем площадь из акров в ары

public static double Acr_Ar(double _ac)

{

return _ac * 40.468564224;

}

//Конвертируем площадь из акров в гектары

public static double Acr_Ha(double _ac)

{

return _ac * 0.40468564224;

}

//Конвертируем площадь из акров в квадратные метры

public static double Acr_Sm(double _ac)

{

return _ac * 4046.8564224;

}

//Конвертируем площадь из аров в акры

public static double Ar_Acr(double _ar)

{

return _ar * 0.024710538146717;

}

//Конвертируем площадь из аров в гектары

public static double Ar_Ha(double _ar)

{

return _ar * 0.01;

}

//Конвертируем площадь из аров в квадратные метры

public static double Ar_Sm(double _ar)

{

return _ar * 100;

}

//Конвертируем площадь из гектаров в акры

public static double Ha_Acr(double _ha)

{

return _ha * 2.4710538146717;

}

//Конвертируем площадь из гектаров в ары

public static double Ha_Ar(double _ha)

{

return _ha * 100;

}

//Конвертируем площадь из гектаров в квадратные метры

public static double Ha_Sm(double _ha)

{

return _ha * 10000;

}

//Конвертируем площадь из квадратных метров в акры

public static double Sm_Acr(double _sm)

{

return _sm * 0.00024710538146717;

}

//Конвертируем площадь из квадратных метров в ары

public static double Sm_Ar(double _sm)

{

return _sm * 0.01;

}

//Конвертируем площадь из квадратных метров в гектары

public static double Sm_Ha(double _sm)

{

return _sm * 0.0001;

}

}

};

программа:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

double square = 0;

Console.WriteLine("Вас приветствует программа конвертор.");

Console.WriteLine("1. Перевести площадь в акрах в ары");

Console.WriteLine("2. Перевести площадь в акрах в гектары");

Console.WriteLine("3. Перевести площадь в акрах в квадратные метры");

Console.WriteLine("4. Перевести площадь в арах в акры");

Console.WriteLine("5. Перевести площадь в арах в гектары");

Console.WriteLine("6. Перевести площадь в арах в квадратные метры");

Console.WriteLine("7. Перевести площадь в гектарах в акры");

Console.WriteLine("8. Перевести площадь в гектарах в ары");

Console.WriteLine("9. Перевести площадь в гектарах в квадратные метры");

Console.WriteLine("10. Перевести площадь в квадратных метрах в акры");

Console.WriteLine("11. Перевести площадь в квадратных метрах в ары");

Console.WriteLine("12. Перевести площадь в квадратных метрах в гектары");

string choice = Console.ReadLine();

switch (choice)

{

case "1":

Console.Write("Введите площадь в акрах: ");

square = (double.Parse(Console.ReadLine()));

square = StaticConv.Acr_Ar(square);

Console.WriteLine("Площадь в арах = {0:F2}", square);

break;

case "2":

Console.Write("Введите площадь в акрах: ");

square = (double.Parse(Console.ReadLine()));

square = StaticConv.Acr_Ha(square);

Console.WriteLine("Площадь в гектарах = {0:F2}", square);

break;

case "3":

Console.Write("Введите площадь в акрах: ");

square = StaticConv.Acr_Sm(double.Parse(Console.ReadLine()));

Console.WriteLine("Площадь в квадратных метрах = {0:F2}", square);

break;

case "4":

Console.Write("Введите площадь в арах: ");

square = StaticConv.Ar_Acr(double.Parse(Console.ReadLine()));

Console.WriteLine("Площадь в акрах = {0:F2}", square);

break;

case "5":

Console.Write("Введите площадь в арах: ");

square = StaticConv.Ar_Ha(double.Parse(Console.ReadLine()));

Console.WriteLine("Площадь в гектарах = {0:F2}", square);

break;

case "6":

Console.Write("Введите площадь в арах: ");

square = StaticConv.Ar_Sm(double.Parse(Console.ReadLine()));

Console.WriteLine("Площадь в квадратных метрах = {0:F2}", square);

break;

case "7":

Console.Write("Введите площадь в гектарах: ");

square = StaticConv.Ha_Acr(double.Parse(Console.ReadLine()));

Console.WriteLine("Площадь в акрах = {0:F2}", square);

break;

case "8":

Console.Write("Введите площадь в гектарах: ");

square = StaticConv.Ha_Ar(double.Parse(Console.ReadLine()));

Console.WriteLine("Площадь в арах = {0:F2}", square);

break;

case "9":

Console.Write("Введите площадь в гектарах: ");

square = StaticConv.Ha_Sm(double.Parse(Console.ReadLine()));

Console.WriteLine("Площадь в квадратных метрах = {0:F2}", square);

break;

case "10":

Console.Write("Введите площадь в квадратных метрах: ");

square = StaticConv.Sm_Acr(double.Parse(Console.ReadLine()));

Console.WriteLine("Площадь в акрах = {0:F2}", square);

break;

case "11":

Console.Write("Введите площадь в квадратных метрах: ");

square = StaticConv.Sm_Ar(double.Parse(Console.ReadLine()));

Console.WriteLine("Площадь в арах = {0:F2}", square);

break;

case "12":

Console.Write("Введите площадь в квадратных метрах: ");

square = StaticConv.Sm_Ha(double.Parse(Console.ReadLine()));

Console.WriteLine("Площадь в гектарах = {0:F2}", square);

break;

default:

Console.WriteLine("Выбор не сделан. До свидания!");

break;

}

Console.WriteLine("Для выхода из программы нажмите любую клавишу");

Console.ReadKey();

}

}

}

Контрольные примеры:

Контрольный пример 1.

Введем:

square=5000,

choise=10, тогда

square=1,24.

На рисунке 7 представлен результат, получившийся в программе.



Рисунок 7 – Контрольный пример №1

ЗАДАНИЕ №8

По результатам работы необходимо в отчёте привести алгоритм в виде блок-схемы и на языке программирования C# (с необходимыми комментариями и пояснениями), а также привести контрольный пример, демонстрирующий правильность работы алгоритма.

Определить класс с двумя/тремя закрытыми полями.

Организовать доступ к закрытым членам класса через свойства.

Определить и заполнить список экземпляров класса (не менее 5 элементов).

Отсортировать список по одному из параметров (выбрать самостоятельно).

Добавить новый элемент в конец списка, добавить новый элемент в произвольную позицию списка (выбрать самостоятельно).

Удалить оба ранее вставленных элемента.

Найти элемент списка по определенному значению одного из его членов (значение задать самостоятельно).

Очистить список.

Задание выполняется согласно вариантам, описанным в лабораторной работе №6, за исключением методов.

Решение:

Сначала нужно описать класс «Point», его свойства и методы. Далее, пусть переменные n, m –смещение по х и смещение по у соответственно. Используя свойства и методы, проверим, принадлежит ли точка осям, на каком расстоянии находится от начала координат и т.д.

Входные данные: никаких, компьютер сам выбирает случайные координаты Х и У.

Выходные данные: List ListGeom.

Листинг программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Lab8

{

class Point

{

private int _X, _Y; //тут хранятся координаты точки

private double _Vector;//тут хранится расстояние от точки до начала координат

public Point()

{

_X = 0;

_Y = 0;

}

static Point()

{

//

}

public bool IsXZero()

{//метод возвращает True если точка лежит на оси X

return (_X == 0);

}

public bool IsYZero()

{//метод возвращает True если точка лежит на оси Y

return (_Y == 0);

}

public void MovePoint(int n, int m)

{//метод сдвигает точку на n единиц по оси X и на m единиц по оси Y

_X = _X + n;

_Y = _Y + m;

}

public void Print()

{

Console.WriteLine("X= " + X + " Y= " + Y + " Расстояние до начала координат= " + Vector);

}

public int X

{//свойство "координата X" точки - управляет полем _X;

set { _X = value; }

get { return _X; }

}

public int Y

{//свойство "координата Y" точки - управляет полем _Y;

set { _Y = value; }

get { return _Y; }

}

public double Vector

{//свойство "расстояние до начала координат" точки - управляет полем _Vector;

get

{

_Vector = Math.Sqrt(_X * _X + _Y * _Y);

return _Vector;

}

}

~Point()

{

//

}

}

class StaticPoint

{

public static void PrintList(List Points)

{

foreach (Point pnt in Points)

pnt.Print();

}

}

class Program

{

static void Main(string[] args)

{

//Введем объект псевдо-случайной величины, она нам нужна для псевдослучайного внесения данных в экземпляры списка

Random random = new Random();

//Создадим пустой список

List PntList = new List

{

new Point() { X = random.Next(-1000, 1000), Y = random.Next(-1000, 1000) },

new Point() { X = random.Next(-1000, 1000), Y = random.Next(-1000, 1000) },

new Point() { X = random.Next(-1000, 1000), Y = random.Next(-1000, 1000) },

new Point() { X = random.Next(-1000, 1000), Y = random.Next(-1000, 1000) },

new Point() { X = random.Next(-1000, 1000), Y = random.Next(-1000, 1000) }

};

//Распечатаем исходный список через статический метод вспомогательного класса StaticPoint

Console.WriteLine("Список:");

StaticPoint.PrintList(PntList);

//Отсортируем список по удалённости от начала координат в обратном направлении

Console.WriteLine(" Список в обратном порядке:");

PntList.Reverse();

StaticPoint.PrintList(PntList);

//Отсортируем списко по одному из членов класса

Console.WriteLine(" Список по удаленности от начала координат:");

StaticPoint.PrintList(PntList.OrderBy(h => h.Vector).ToList());

//Добавим новый элемент в список

PntList.Add(new Point() { X = random.Next(-1000, 1000), Y = random.Next(-1000, 1000) });

Console.WriteLine(" Список с добавленным в конец элементом");

StaticPoint.PrintList(PntList);

//Вставим в список элемент в третью позицию

PntList.Insert(2, new Point() { X = random.Next(-1000, 1000), Y = random.Next(-1000, 1000) });

Console.WriteLine(" Список со вставленным элементом");

StaticPoint.PrintList(PntList);

//Удалим элемент списка, вставленный ранее

PntList.RemoveAt(2);

Console.WriteLine(" Список с удаленным вставленным элементом");

StaticPoint.PrintList(PntList);

//Найдем элемент списка с удалением от начала координат мене 500

int index = PntList.FindIndex(h => h.Vector <= 500);

Console.WriteLine(" Найденный элемент списка");

if (index > -1) PntList[index].Print();

else Console.WriteLine("Точки с удалением от начала координат менее 500 в списке не найдено");

//Очистим список

PntList.Clear();

Console.WriteLine(" Пустой список");

//StaticPoint.PrintList(PntList);

Console.ReadKey();

}

}

}

}

Контрольный пример:

На рисунке 8 представлен результат, получившийся в программе, вывод списка.



Рисунок 8 – Вывод списка

ЗАКЛЮЧЕНИЕ

В данном курсовом проекте была изучена среда программирование Visio Studio Express C# 2010 и решены практические задачи в данной среде, а так же составлены отчеты по каждой из решенных задач.

В результате проделанной работе были решены и подробно описаны этапы решения задач. Наглядно представлены блок-схема решения задачи, листинг программы, листинг класса, графическое представление задачи №6, и приведены контрольные примеры для каждой из задач.

Для решения задач использовались данные предоставленные в условиях задачи, и различные формулы.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

СТО ЮУрГУ 21–2008 Стандарт организации. Система управления качеством образовательных процессов. Курсовая и выпускная квалификационная работа. Требования к содержанию и оформлению / составители: Т.И. Парубочая, Н.В. Сырейщикова, А.Е. Шевелев, Е.В. Шевелева. – Челябинск: Изд-во ЮУрГУ, 2008. – 55 с.

Шилдт, Г. С# 3.0: Полное руководство / Г. Шилдт. - М.: ООО «И.Д. Вильяме», 2010. - 992с.

Троелсен, Э. С# и платформа .NET 3.0. / Э. Троелсен. - СПб.: Питер, 2008. – 1456 с.

Биллинг, В.А. Основы программирования на С# / В. Биллинг. - М.: Бином, 2006. - 486 с.