Автор работы: Пользователь скрыл имя, 23 Марта 2014 в 15:20, курсовая работа
Кроме набора операций и их последовательности, технология также определяет способ описания проектируемой системы, точнее модели, используемой на конкретном этапе разработки. Различают технологии, используемые на конкретных этапах разработки или для решения отдельных задач этих этапов, и технологии, охватывающие несколько этапов или весь процесс разработки. В основе первых, как правило, лежит ограниченно применимый метод, позволяющий решить конкретную задачу. В основе вторых обычно лежит базовый метод или подход, определяющий совокупность методов, используемых на разных этапах разработки, или методологию.
ВВЕДЕНИЕ..............................................................................………………….3
1. ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ
1.1. Алфавит языка С#...............................................……………..........……….5
1.2. Операторы языка С#...........................……………….................................. 6
1.3. Понятие классов и объектов...........………………………........................ 7
1.4. Структура программного модуля на С# ……............................................10
2. ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1. Выполнение задания № 1 курсовой работы..............................................12
2.2. Выполнение задания № 2 курсовой работы....................................……..14
2.3. Выполнение задания № 3 курсовой работы …………………...………..15
ЗАКЛЮЧЕНИЕ..........................................................................……………….17
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ.............................………..18
ПРИЛОЖЕНИЯ...........................................................................………………19
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Филиал федерального государственного бюджетного образовательного
учреждения высшего профессионального образования «Московский
государственный университет технологий и управления
имени К. Г. Разумовского» в г. Вязьме Смоленской области
Курсовая работа
Дисциплина: «Программирование»
Направление: 230100 «Информатика и вычислительная техника»
Курс: 2 (СФО)
Форма обучения: заочная
Вариант: №6
Преподаватель: Коростелёв Михаил
Киррилович
Студент: Димаков Юрий Васильевич
Вязьма – 2013
Содержание
ВВЕДЕНИЕ......................
1. ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ
1.1. Алфавит языка С#..............
1.2. Операторы языка С#............
1.3. Понятие классов и объектов....
1.4. Структура программного модуля на С# ……............................
2. ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1. Выполнение задания № 1 курсовой
работы........................
2.2. Выполнение задания № 2 курсовой
работы........................
2.3. Выполнение задания № 3 курсовой работы …………………...………..15
ЗАКЛЮЧЕНИЕ....................
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ....................
ПРИЛОЖЕНИЯ....................
Введение
Язык программирования можно уподобить очень примитивному иностранному языку с жесткими правилами без исключений. Изучение иностранного языка обычно начинают с алфавита, затем переходят к словам и законам построения фраз, и только в результате длительной практики и накопления словарного запаса появляется возможность свободно выражать на этом языке свои мысли. Примерно так же поступим и мы при изучении языка C#.
Все тексты на языке пишутся с помощью его алфавита. В C# используется кодировка символов Unicode. Кодировкой, или кодовой таблицей (character set), называется соответствие между символами и кодирующими их числами. Кодировка Unicode позволяет представить символы всех существующих алфавитов одновременно. Каждому символу соответствует свой уникальный код.
Кроме набора операций и их последовательности, технология также определяет способ описания проектируемой системы, точнее модели, используемой на конкретном этапе разработки. Различают технологии, используемые на конкретных этапах разработки или для решения отдельных задач этих этапов, и технологии, охватывающие несколько этапов или весь процесс разработки. В основе первых, как правило, лежит ограниченно применимый метод, позволяющий решить конкретную задачу. В основе вторых обычно лежит базовый метод или подход, определяющий совокупность методов, используемых на разных этапах разработки, или методологию.
Имена, или идентификаторы, служат для того чтобы обращаться к программным объектам и различать их, то есть идентифицировать. В идентификаторе могут использоваться буквы, цифры и символ подчеркивания. Прописные и строчные буквы различаются, например, sysop, SySoP и SYSOP — три разных имени.
Первым символом идентификатора может быть буква или знак подчеркивания, но не цифра. Длина идентификатора не ограничена. Пробелы внутри имен не допускаются.
В идентификаторах C# разрешается использовать, помимо латинских букв, буквы национальных алфавитов. Например, Пёсик или çç являются правильными идентификаторами. Более того, в идентификаторах можно применять даже так называемые escape-последовательности Unicode, то есть представлять символ с помощью его кода в шестнадцатеричном виде с префиксом \u, например, \u00F2.
C# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем. (Однако эта закономерность была нарушена с выходом C# 3.0, представляющего собой расширения языка, не опирающиеся на расширения платформы .NET.) CLR предоставляет C#, как и всем другим .NET-ориентированным языкам, многие возможности, которых лишены «классические» языки программирования. Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C# точно так же, как это делается для программ на VB.NET, J# и др.
1.1. Алфавит языка С#
Алфавит – совокупность допустимых в языке символов. Алфавит языка С# включает:
прописные и строчные латинские буквы и буквы национальных алфавитов (включая кириллицу);
арабские цифры от 0 до 9, шестнадцатеричные цифры от A до F ;
специальные знаки: " { } , | ; [ ] ( ) + - / % * . \ ' : ? < = > ! & ~ ^ @ _
пробельные символы: пробел, символ табуляции, символ перехода на новую строку.
Из символов алфавита формируются лексемы языка: идентификаторы, ключевые (зарезервированные) слова, знаки операций, константы, разделители (скобки, точка, запятая, пробельные символы).
Границы лексем определяются другими лексемами, такими, как разделители или знаки операций. В свою очередь лексемы входят в состав выражений (выражение задает правило вычисления некоторого значения) и операторов (оператор задает законченное описание некоторого действия).
Идентификатор – это имя программного элемента: константы, переменной, метки, типа, класса, объекта, метода и т.д. Идентификатор может включать латинские буквы и буквы национальных алфавитов, цифры и символ подчеркивания. Прописные и строчные буквы различаются, например, myname, myName и MyName — три различных имени. Первым символом идентификатора может быть буква или знак подчеркивания, но не цифра.
Пробелы внутри имен не допускаются. Язык С# не налагает никаких ограничений на длину имен, однако для удобства чтения и записи кода не стоит делать их слишком длинными.
Для улучшения читабельности кода программным элементам следует давать осмысленные имена, составленные в соответствии с определенными правилами. Существует несколько видов нотаций – соглашений о правилах создания имен.
В нотации Pascal каждое слово, входящее в идентификатор, начинается с заглавной буквы. Например: Age, LastName, TimeOfDeath.
Венгерская нотация отличается от предыдущей наличием префикса, соответствующего типу величины. Например: fAge, sName, iTime.
В нотации Camel с заглавной буквы начинается каждое слово идентификатора, кроме первого. Например: age, lastName, timeOfDeath.
Наиболее часто используются нотации Pascal или Camel. Мы будем придерживаться нотации Pascal. Однако в простых программах будут использоваться однобуквенные переменные.
Ключевые слова – это зарезервированные идентификаторы, которые имеют специальное значение для компилятора, например, include, main, int и т.д. Ключевые слова можно использовать только по прямому назначению. С ключевыми словами и их назначением можно ознакомиться в справочной системе С#.
Операторы языка С#
Операторы сравнения и присвоение, арифметические действия:
«=» Присвоение значения, «==» Проверка на равенство, «*, /, %»Умножение, деление, остаток от деления, «+, -»сложение, вычитание, «&» Побитовое AND, «^» Побитовое XOR, «|» Побитовое OR.
Операторы увеличения и уменьшения
Есть постфиксные и префиксные операторы.
«v++»Увеличение переменной v на 1. «v+=n» Увеличение переменной v на n. «v*=n» Увеличение переменной v в n раз. «v-=n» Отнимание n из переменной v.
Логические операторы.
Логические операторы используются для создания более гибких условных инструкций путем объединения нескольких выражений.
«&&» Условное И. «||»Условное ИЛИ. «!» Условное НЕТ.
1.3. Понятие классов и объектов.
Все приведенные ранее программы состояли из одного класса с одним-единственным методом Main. Настало время подробнее изучить состав, правила создания и использования классов.
Класс является типом данных, определяемым пользователем. Он должен представлять собой одну логическую сущность, например, являться моделью реального объекта или процесса. Элементами класса являются данные и функции, предназначенные для их обработки.
Описание класса содержит ключевое слово class, за которым следует его имя, а далее в фигурных скобках — тело класса, то есть список его элементов. Кроме того, для класса можно задать его базовые классы (предки) и ряд необязательных атрибутов и спецификаторов, определяющих различные характеристики класса:
[ атрибуты ] [ спецификаторы ] class имя_класса [ : предки ]
тело_класса
Как видите, обязательными являются только ключевое слово class, а также имя и тело класса. Тело класса — это список описаний его элементов, заключенный в фигурные скобки. Список может быть пустым, если класс не содержит ни одного элемента. Таким образом, простейшее описание класса может выглядеть так:
class Demo {}
Спецификаторы определяют свойства класса, а также доступность класса для других элементов программы. Возможные значения спецификаторов перечислены в таблице 8.1. Класс можно описывать непосредственно внутри пространства имен или внутри другого класса. В последнем случае класс называется вложенным.
Таблица 8.1. Спецификаторы класса
№ |
Спецификатор |
Описание |
1 |
new |
Используется для вложенных классов. Задает новое описание класса взамен унаследованного от предка. Применяется в иерархиях объектов |
2 |
public |
Доступ не ограничен |
3 |
protected |
Используется для вложенных классов. Доступ только из элементов данного и производных классов |
4 |
internal |
Доступ только из данной программы (сборки) |
5 |
protected internal |
Доступ только из данного и производных классов или из данной программы (сборки) |
6 |
private |
Используется для вложенных классов. Доступ только из элементов класса, внутри которого описан данный класс |
7 |
abstract |
Абстрактный класс. Применяется в иерархиях объектов, рассматривается в главе 8 |
8 |
sealed |
Бесплодный класс. Применяется в иерархиях объектов, рассматривается в главе 8 |
9 |
static |
Статический класс. Введен в версию языка 2.0. Рассматривается в разделе «Конструкторы» |
Спецификаторы 2–6 называются спецификаторами доступа. Они определяют, откуда можно непосредственно обращаться к данному классу. Спецификаторы доступа могут присутствовать в описании только в вариантах, приведенных в таблице, а также могут комбинироваться с остальными спецификаторами.
Сейчас мы будем изучать только классы, которые описываются в пространстве имен непосредственно (то есть не вложенные классы). Для таких классов допускаются два спецификатора: public и internal. По умолчанию подразумевается internal.
Класс является обобщенным понятием, определяющим характеристики и поведение некоторого множества конкретных объектов этого класса, называемых экземплярами, или объектами, класса. Объекты создаются явным или неявным образом, то есть либо программистом, либо системой. Программист создает экземпляр класса с помощью операции new, например:
Demo a = new Demo(); // создание экземпляра класса Demo
Demo b = new Demo(); // создание другого экземпляра класса Demo
Для каждого объекта при его создании в памяти выделяется отдельная область, в которой хранятся его данные. Кроме того, в классе могут присутствовать статические элементы, которые существуют в единственном экземпляре для всех объектов класса. Часто статические данные называют данными класса, а остальные — данными экземпляра.
Функциональные элементы класса не тиражируются, то есть всегда хранятся в единственном экземпляре. Для работы с данными класса используются методы класса (статические методы), для работы с данными экземпляра — методы экземпляра, или просто методы.
Поля и методы являются основными элементами класса. Кроме того, в классе можно задавать целую гамму других элементов: свойства, события, индексаторы, операции, конструкторы, деструкторы, а также типы.
В С# предусмотрен специальный класс object, который неявно считается базовым классом для всех остальных классов и типов, включая и типы значений. Иными словами, все остальные типы являются производными от object. Это, в частности, означает, что переменная ссылочного типа object может ссылаться на объект любого другого типа. Кроме того, переменная типа object может ссылаться на любой массив, поскольку в С# массивы реализуются как объекты. Формально имя object считается в С# еще одним обозначением класса System.Object, входящего в библиотеку классов для среды .NET Framework.
Практическое значение этого в том, что помимо методов и свойств, которые вы определяете, также появляется доступ к множеству общедоступных и защищенных методов-членов, которые определены в классе Object. Эти методы присутствуют во всех определяемых классах.