p align="left">Сформулировав требования, нужно перейти к анализу существующих языков программирования. Сотни имеющихся языков могут быть подразделены на три общих типа: машинные, ассемблерные и языки высокого уровня. Машинные языки неудобны для восприятия человеком. Машинные языки являются машинно-зависимыми, т.е. конкретный машинный язык может быть использован только с определённым типом компьютера. Для преобразования программ были разработаны программы-трансляторы, называемые ассемблерами. С появлением языков ассемблера использование компьютеров значительно расширилось, однако всё ещё требовалось написание большого количества инструкций даже для реализации решений простейших задач. Для ускорения процесса программирования были разработаны языки высокого уровня, в которых для выполнения сложных действий достаточно написать один оператор. На практике программисту-одиночке или небольшой рабочей группе придется использовать какие-то мощные средства, вроде визуальных систем программирования (Visual Basic, C++Builder, С#, Delphi) или же универсальную среду разработки типа Borland C++ в сочетании с библиотекой классов, такой, как OWL или MFC. [3] Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi , Microsoft Visual Basic. С появлением Visual Basic программирование в Windows не становится более эффективным, но оно становится более простым (в большинстве случаев). Если говорить о создании программ с интерфейсом Windows, то нельзя, конечно, не обойти вниманием визуальные средства программирования C++Builder. Несколько лет назад рядовому программисту оставалось только мечтать о создании собственных программ, работающих в среде Windows, т. к. единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессионалов, обладающих серьезными знаниями и опытом. C++ Builder буквально навязывает программисту свой собственный стиль программирования, при котором, даже при особом желании, перейти с C++ Builder на что-то другое уже не предоставляется возможным. С++ не поддерживает других языков программирования. Delphi -- это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi -- строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal. Borland Delphi 7 Studio позволяет создавать самые различные программы: от простейших однооконных приложений до программ управления распределенными базами. Delphi- не поддерживает других языков программирования, но способен поддерживать различные платформы. Однако, при всем этом выбор падает на язык С#, входящий в Visual Studio .Net , так как он имеет ряд преимуществ, которые упрощают процесс создания приложений. C# создавался Microsoft, как основной язык для .NET Framework. Microsoft спроектировала C# таким образом, что бы С, С++ и Java-программисты смогли легко перейти на него. C# имеет корни в языках С, С++ и Java, поэтому такой переход не должен вызвать затруднений. Синтаксис у C# не такой сложный как у С++, поэтому его изучение намного легче. Большинство операций, которые вы можете делать на С++, можно сделать и на C#, за исключением операций доступа к низкоуровневым функциям (это все-таки можно сделать с помощью неуправляемого кода). С# - первый язык, поддерживаемый версиями .NET Framework для других платформ. C# имеет схожий с C стиль синтаксиса (для управляющих конструкций, блоков кода, описания сигнатуры методов и др.), много общего с Java (отсутствие множественного наследования и шаблонов, наличие сборщика мусора) и Delphi (ориентированность на создание компонент), в то же время имеет и свой колорит. C# объектно-ориентированный язык, как и вся платформа .NET[7]. В C# представлена концепция пространств имен, аналогичная пакетам в Java. Это позволяет иерархически структурировать систему типов, делая код намного более понятным и позволяя избежать проблем с именованием. Реализация структур как типов, работа с которыми идет по значению, вместе с возможностью использовать не только вложенные массивы (как в Java), но и многомерные позволяет оптимизировать производительность приложений. Ввиду очень удобного объектно-ориентированного дизайна, C# является хорошим выбором для быстрого конструирования различных компонентов. Платформа .Net содержит множество важных служб: 1. .Net предоставляет средства для исполнения инструкций, содержащихся в программе, написанной на C#. Эта часть .Net называется средой исполнения. 2. .Net помогает реализовать так называемую среду, безопасную к несоответствию типов данных. 3. .Net освобождает программиста от утомительного и нередко приводящего к ошибкам процесса управления компьютерной памятью, которая используется программой. 4. .Net предоставляет безопасную среду исполнения. 5. В состав .Net входят библиотека, содержащая массу готовых программных компонентов, которые можно использовать в собственных программах. Она экономит немало времени, так как программист может воспользоваться готовыми фрагментами кода. Фактически, он повторно использует код, созданный и тщательно проверенный профессиональными программистами Microsoft. 6. В .Net упрощена подготовка программы к исполнению. 7. .Net обеспечивает прекрасное взаимодействие программ, написанных на разных языках. Любой язык поддерживаемый .Net , может взаимодействовать с другими языками этой платформы. Проанализировав преимущества С# по сравнению с другими языками, можно сделать вывод, что он удовлетворяет всем ранее озвученным требованиям. 2.Конструкторская часть2.1.Структура проекта.Данный проект состоит из файловНиже представлено описание основных файлов:ѕ Form1.cs - файл, в котором содержится код, отвечающий за работу главной формы программы;ѕ Form1.resx - файл, в котором содержится информация о графическом представлении главной формы «Сапер»;ѕ Form2.cs - файл, в котором содержится код, отвечающий за работу формы настроек игрового поля;ѕ Form2.resx - файл, в котором содержится информация о графическом представлении формы настроек игрового поля;ѕ AboutBox1.cs - файл, в котором содержится код, отвечающий за работу формы «О программе»;ѕ AboutBox1.resx - файл, в котором содержится информация о графическом представлении формы «О программе»;ѕ Справка.htm - HTML-страница, в которой содержится справка по игре;ѕ Мина.jpg - изображение мины на форме «О программе»ѕ Сапер.exe - закомпилированный файл программы, находящийся в папке debug, которая находится в папке bin2.2. Программная реализация основных элементов C#.Для его запуска необходимо кликнуть кнопку Пуск, выбрать в пункте Все программы \Microsoft Visual Studio .NET 2005\Microsoft Visual Studio .NET 2005. Далее в запустившемся приложении кликнуть кнопку Open Project и используя проводник, выбрать файл Сапер.sln. Программа откроет приложение. Для изменения внешнего вида программы необходимо воспользоваться ярлыком Design. Можно добавить новые элементы формы, перетащив их из окна Toolbox. В моей работе это HelpProvider и MenuStrip при конструировании главной формы, Label, TextBox и Button при создании формы настроек игрового поля. Свойства компонентов можно изменить, зайдя в меню View - Properties Windows или в коде программы://задается текст компонентов формы О программеthis.Text = String.Format("О программе");this.labelProductName.Text = "Cапер";this.labelVersion.Text = String.Format("Версия {0}", AssemblyVersion);this.labelCopyright.Text = "Автор Темерев Кирилл";this.labelCompanyName.Text = "КФ МГТУ им.Н.Э.Баумана, группа САПР-31";this.textBoxDescription.Text ="Программа создана в Microsoft Visual StudioЩелкнув значок Молния в меню Properties можно найти все события и дважды щелкнув на одно из них, написать обработчик.2.2.1.КлассыСледует отметить, что любая форма, являющаяся основным элементом пользовательского интерфейса и основой для построения приложения, одновременно и класс, поэтому удается создавать экземпляры форм и порождать одни формы от других. В рассматриваемой программе присутствуют следующие классы, соответствующие формам Windows приложения.public partial class Form1 : Form //главная форма программы {………public Form1() //конструктор главной формы { InitializeComponent(); //присваиваем начальные значения полям MR = 10; MC = 10; NM = 10; W = 40; H = 40; this.newGame(1);//вызов метода newGame(int r) }……… }public partial class Form2 : Form //форма настроек игрового поля {………public Form2()//конструктор формы Настройки { InitializeComponent(); }……… }partial class AboutBox1 : Form //форма «О программе» {………public AboutBox1()//конструктор формы О программе { InitializeComponent(); //задается текст компонентов формы О программе this.Text = String.Format("О программе"); this.labelProductName.Text = "Cапер"; this.labelVersion.Text = String.Format ("Версия {0}", AssemblyVersion); this.labelCopyright.Text = "Автор Темерев Кирилл"; this.labelCompanyName.Text = "КФ МГТУ им.Н.Э.Баумана, группа САПР-31"; this.textBoxDescription.Text ="Программа создана в Microsoft Visual Studio 2005 для среды .NET Framework"; }……… }2.2.2.Члены классаПоля Полем называется член-переменная, содержащий некоторое значение. В ООП поля иногда называют данными объекта. Для классов public partial class Form1 : Form public partial class Form2 : Form полями являются следующие переменные: private int MR,//кол-во клеток по вертикали MC,//кол-во клеток по горизонтали NM,//кол-во мин W,//ширина клетки поля H;//высота клетки поля private int nMin,//кол-во найденных мин nFlag;//кол-во поставленных флагов private int status;/*отражает различные этапы работы программы: 0-начало игры, 1-игра, 2-конец игры*/ private int[,] Pole;/*элемент массива задает клетку поля и принимает значения 0-8 -кол-во мин в соседних клетках, 9 -в клетке мина, 100-109 -клетка открыта, 200-209 -в клетку поставлен флаг*/ Следует отметить, что переменная Pole хранит в себе ссылку на двумерный массив. Массивы в C# разделяются на два типа: одномерные и многомерные. Элементы многомерных массивов идентифицируются набором индексов - "координат" в многомерном пространстве. Каждое измерение имеет свою размерность, не зависящую от других. Инициализация Pole = new int[MR + 2, MC + 2]; происходит в методе private void newGame(int r) { } который будет рассмотрен далее. Доступ к элементам производится с помощью оператора [ ], в котором индексы указываются через запятую. Присвоение значений элементам присваивается в методе: private void newGame(int r) { ………… /*неотражаемым элементам массива минного поля присваиваем значение -3 для завершения процесса открытия клеток*/ for (row = 0; row <= MR + 1; row++) { Pole[row, 0] = -3; Pole[row, MC + 1] = -3; } for (col = 0; col <= MC + 1; col++) { Pole[0, col] = -3; Pole[MR + 1, col] = -3; } //обнуление элементов массива минного поля for (row = 1; row <= MR; row++) { for (col = 1; col <= MC; col++) { Pole[row, col] = 0; } } ……… } а также в других методах. Методы Методом называется реальный код, воздействующий на данные объекта (или поля). При объявлении методов используется конструкция вида:
Страницы: 1, 2, 3, 4, 5
|