Реферат по предмету "Информатика, программирование"


Структура иерархии классов "Экран курсового проектирования"

Содержание
Введение
1. Анализтехнического задания
2. Проектированиеструктуры классов
3. Программнаяреализация
4. Тестирование
5. Руководствопо программному продукт
Заключение
Списоклитературы
Приложения

Введение
Современный уровень развития различных программных иаппаратно-программных систем, и в первую очередь систем управления, связан созначительным повышением их сложности из-за присущих им требований к гибкости,открытости, эргономичности и перенастраиваемости.
Проектирование таких сложных систем с трудом укладывается в рамкитрадиционного подхода разработки, когда процесс создания системырассматривается как последовательность отдельных завершенных этапов исчитается, что работа имеет однонаправленный характер.
Все это требует новых подходов к проектированию. На данный моментнаиболее перспективным можно считать объектно-ориентированный подходпроектирования.  К существенным отличиям объектно-ориентированногоподхода от традиционного проектирования относят возможность использованияитеративно-поступательного цикла создания программного обеспечения и переносакцента проектирования с разработки алгоритмов функционирования системы напостроения системы абстракций и их взаимодействия.
Объектно-ориентированный подход включает в себя такие понятия:
- Абстракция — этопридание объекту характеристик, которые отличают его от всех других объектов, четкоопределяя его концептуальные границы. Основная идея состоит в том, чтобыотделить способ использования составных объектов данных от деталей ихреализации в виде более простых объектов, подобно тому, как функциональная абстракция разделяет способ использования функции и деталейеё реализации в терминах более примитивных функций, таким образом, данныеобрабатываются функцией высокого уровня с помощью вызова функций низкогоуровня. Такой подход является основой объектно-ориентированного программирования.Это позволяет работать с объектами, невдаваясь в особенности их реализации. В каждом конкретном случае применяетсятот или иной подход: инкапсуляция, полиморфизм или наследование.
- Инкапсуляция —это принцип, согласно которому любой класс должен рассматриваться как чёрный ящик — пользователь класса долженвидеть и использовать только интерфейсную часть класса (т. е. списокдекларируемых свойств и методов класса)и не вникать в его внутреннюю реализацию. Поэтому данные принятоинкапсулировать в классе таким образом, чтобы доступ к ним по чтению или записиосуществлялся не напрямую, а с помощью методов. Принцип инкапсуляции(теоретически) позволяет минимизировать число связей между классами и,соответственно, упростить независимую реализацию и модификацию классов.Сокрытиеданных — неотделимая часть ООП, управляющая областями видимости. Является логическимпродолжением инкапсуляции. Целью сокрытия является невозможность дляпользователя узнать или испортить внутреннее состояние объекта.
- Наследованиемназывается возможность порождать один класс от другого с сохранением всех свойств иметодов класса-предка (прародителя, иногда его называют суперклассом) идобавляя, при необходимости, новые свойства и методы. Набор классов, связанныхотношением наследования, называют иерархией.Наследование призвано отобразить такое свойство реального мира, какиерархичность.
- Полиморфизмомназывают явление, при котором функции (методу) с одним и тем же именемсоответствует разный программный код (полиморфный код) в зависимости от того,объект какого класса используется при вызове данного метода. Полиморфизмобеспечивается тем, что в классе-потомке изменяют реализацию методакласса-предка с обязательным сохранением сигнатуры метода. Это обеспечивает сохранениенеизменным интерфейса класса-предка и позволяет осуществитьсвязывание имени метода в коде с разными классами — из объекта какого классаосуществляется вызов, из того класса и берётся метод с данным именем. Такоймеханизм называется динамическим (или поздним) связыванием — в отличие отстатического (раннего) связывания, осуществляемого на этапе компиляции.
Актуальность выбранногометода разработки иерархии классов – упрощение структурирования данных,гибкость применения созданного алгоритма, открытость, а также эргономичность иперенастраиваемость, позволяющие подстраивать созданные алгоритмы подтребования пользователя.
Данный курсовой проектнацелен на создание приложения, позволяющего следить за выполнением курсовых заданийгрупп студентов. Это позволит легко отслеживать и корректировать выполнениекурсовых работ студентами.
Целью проекта являетсяразработка структуры класса «Экран курсового проектирования», которая будетосновой для хранения информации о студентах, выполняющих курсовые работы. Такжецелью проекта является развитие навыков самостоятельной и творческой работы изакрепление навыков работы на языке С++.
В мире есть множествопрограммных продуктов, позволяющих выполнять задачи по структурированию данныхподобного типа, а также выполняющих различные действия над ними. Главнойотличительной особенностью данного приложения является нацеленностьиспользования в высших учебных заведениях, где требуется необходимость контролявыполнения курсовых работ. Также данное приложение имеет простойпользовательский интерфейс, интуитивно понятные действия, возможностькорректировки, поиска и удаления данных.
Основными задачамикурсового проекта являются – разработка приложения с использованием структурыиерархии классов по заданной тематике, провести тестирование приложения,разработать справочную систему для созданного приложения.1. Анализ технического задания
В настоящем курсовомпроекте необходимо разработать структуру иерархии классов «Экран курсовогопроектирования». На основе этой структуры необходимо создать приложение длятестирования иерархии.
Для реализациипоставленных задач необходимо:
- Разработатьиерархию классов, определить базовый и наследуемые классы;
- Разработать иописать структуру каждого класса в отдельности, объявить поля и методы класса;
- Реализоватьвизуальные компоненты для работы иерархией классов.
В программе необходимообрабатывать данные о студентах, количество которых может быть произвольным.Для удобства отображения данных необходимо использовать таблицу. Таблицамаксимально приближена к стандартам высших учебных заведений.
При реализации приложениянеобходимо использование объектно-ориентированного программирования. Онопредусматривает наличие базового и производных классов, что делает приложениеболее универсальным. По возможности можно добавлять, изменять или удалять вприложении различные методы и поля, т.е. подстраивать приложение под конкретнуюситуацию.
Данное приложение былореализовано на мощном и гибком объектно-ориентированном языке программированияС++(Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.:Лидер, 2010. – 461с., ИвановаГ.С, Ничушкина Т.Н., Пугачев Е.К. И21 Объектно-ориентированное программирование: Учеб. длявузов/ Под ред. Г.С. Ивановой. — М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. – 320с.). Язык С++предоставляет все средства для реализации базового и производных классов, атакже оптимально использует системные ресурсы, что позволяет сделать приложениене только универсальным, но и не очень требовательным к ресурсам компьютера.Также язык С++ поддерживает платформу .NETFramework, что позволяет использоватьприложение на различных персональных и переносных компьютерах, на которыхустановлена эта платформа.
Посравнению с другими объектно-ориентированными языками С++ обладает несколькимиособенностями:
- Полная поддержкапринципов инкапсуляции, наследования и полиморфизма;
- Полная поддержкаклассов и объектно-ориентированного программирования, включая наследованиереализации и интерфейсов, виртуальные функции и перегрузку операций;
- Согласованный ичетко определенный набор базовых типов;
- Возможностьпереопределения пользователем стандартных типов языка и операторов;
- Автоматическаяочистка динамически распределяемой памяти;
- Полная поддержкабиблиотеки базовых классов .NET Framework наряду с легким доступом к Windows API;
- Указатели ипрямой доступ в память при необходимости доступны, но язык спроектирован так,что в большинстве случаев без них можно обойтись.
Данноеприложение создается для пользователя, следовательно в тестирующем приложениидолжен быть реализован понятный и удобный интерфейс. Интерфейс должен обладатьвсеми функциями для контроля и управления приложением. Также необходимореализовать справочную систему, которую пользователь сможет вызвать призатруднении использования приложения.
Впрограмме предусмотрено добавление, изменение, поиск и удаление данных.Добавление используется для создания новой строки в таблице. Изменение иудаление данных должно быть безопасным, т.е. приложение должно получатьподтверждение от пользователя о совершаемых действиях. В случае ошибочныхдействий пользователь не сможет потерять данные. Поиск необходимо реализоватьпо всем полям таблицы. В случае большого количества данных или малой информациидля поиска, пользователь сможет найти максимально совпадающее с его запросомполе таблицы.
Метрики качества,выводимые из требований чрезвычайно важны для анализа качества приложения,однако они создаются на начальных этапах разработки, когда степеньнеопределенности и риск, связанный с разработкой и внедрением новых программныхпродуктов велики. Для эволюционного процесса разработки должны быть приняты крассмотрению метрики качества программ, используемые в процессе реализациициклов разработки.
К числу подобных метрикотносится:
1. Гибкость, котораяаккумулирует ряд свойств:
- Модульность;
- Изменяемость;
- Сопровождаемость;
2. Адаптивность,которая подразумевает:
- Настраиваемость;
- Переносимость;
- Способность квзаимодействию;
В ходе приемосдаточныхиспытаний проходит проверка качества программного обеспечения, связанного сфункциональностью, надежностью, производительностью в соответствии сдокументами, которые были приняты на начальных этапах. Оценка качества поприведенным выше метрикам, как правило, не проводится. Однако уже черезкороткое время обычно происходит снижение уровня качества программногообеспечения, связанное с расхождением текущих требований заказчика к системе.Обычно причиной этого является высокая стоимость исправлений или изменений впрограммной системе.
Исправления программногообеспечения может быть инициировано по следующим причинам:
1. исправлениепрограммы с недостаточным уровнем качества;
2. изменениепрограммы для повышения уровня качества;
3. изменение программыдля удовлетворения изменения в требованиях.
Измерениекачества проектирования является очень важной составляющей частью в процессеобеспечения качества программного продукта. Особую важность это приобретает приобъектно–ориентированная разработка приложений вводит новые факторы качества,связанные с повторным использованием ранее выполненных наработок и выполнениеммодификаций.
Исходя из всего этого,ставятся основные требования к приложению:
1. Удобныйпользовательский интерфейс;
2. Обеспечение гибкостипрограммы для добавления новых функций;
3. Надежностьпрограммы.
Данноеприложение было реализовано в среде MicrosoftVisualStudio 2010(http://www.microsoft.com/visualstudio/ru-ru/,Пахомов Б. И. С/С++ и MSVisualC++ 2008 для начинающих. – СПб.: БХВ-Петербург. 2009. – 624с.). Выборобусловлен тем, что данная среда максимально совместима с операционной системойMicrosoftWindows7(http://windows.microsoft.com/ru-RU/windows7/products/home).Также данная среда поддерживает все версии .NETFramework(http://msdn.microsoft.com/ru-ru/netframework/default),что позволяет создавать приложения для различных платформ. MicrosoftVisualStudio 2010 включает в себя новые функции,позволяющие полностью контролировать и упрощать все этапы разработкиприложения, выполнять его отладку и тестирование. Также данная среда разработкипозволяет использовать визуальный конструктор, что очень важно для написанияприложения. Это позволяет более быстро и качественно создать удобныйпользовательский интерфейс.
Исходяиз вышеперечисленного, программный продукт будет обладать следующими аппаратнымитребованиями:
- 32-разрядный(x86) или 64-разрядный (x64) процессор с тактовой частотой 1 гигагерц(ГГц) или выше;
- 1 гигабайт (ГБ)(для 32-разрядной системы) или 2 ГБ (для 64-разрядной системы) оперативнойпамяти (ОЗУ);
- 16 гигабайт (ГБ)(для 32-разрядной системы) или 20 ГБ (для 64-разрядной системы) пространства нажестком диске;
- графическоеустройство DirectX 9 с драйвером WDDM версии 1.0 или выше./>
2. Проектированиеструктуры классов
При рассмотрении исходных данныхсоздается структура иерархии классов «Экран курсового проектирования». Длямаксимального соответствия заданию, создается три класса:
- TObject (абстрактный базовый класс);
- TScreen (класс, содержащий информацию обэкране курсового проектирования);
- TStudent (класс, содержащий информацию остуденте и ходе его выполнения курсовой работы).
Иерархия классов показана на рисунке1.
Абстрактныйбазовый класс TObject содержит поле TName(имя), которое наследуется в классы TStudent и TScreen. Это поле служит для задания имени курсовому проектуи имени студента. В конструкторе класса TObject этому полю присваивается значение «Default». Это поле наследуется с атрибутом Public. Также класс TObject содержит виртуальную функцию SetName(), которая переопределяется вклассах TStudent и TScreen. Она служит для присвоения значения полю TName заданного имени. В качестве атрибутаей передается устанавливаемое имя.
КлассTScreenсодержит поля и методы, относящиеся кзаголовку экрана курсового проекитрования. Информация о группе студентов,выполняющих курсовые работы хранится в поле TName, которое наследуется от базового класса TObject; информация о дате утвержденияэкрана курсового проектирования хранится в поле Date; информация о составе приемной комиссии – в поле Composition. В этом классе переопределяетсяфункция присвоения имени полю TNameSetName(). Данный класс содержит две собственные функции:
- SetDate(присваивает полю Date дату утверждения экрана курсовогопроектирования);
- SetComposition(присваивает полю Composition информацию о составе приемнойкомиссии).
Вкачестве атрибутов этим функциям передается необходимая информация.
Вклассе TStudent содержится информация о студенте,выполняющем курсовую работу, точнее о ходе ее выполнения. Также как класс TScreen класс TStudent имеет наследуемое поле TName от класса TObject. Этому полю присваивается значение функцией SetName, которая переопределяется в этом жеклассе. Помимо этого наследуемого поля, класс содержит собственные поля:
- ControlScore(контрольная оценка за курсовойпроект);
- NumberWeek(номер контрольной недели);
- *Plan(указатель на массив с плановымипроцентами выполнения курсовых работ);
- *Fact(указатель на массив с фактическимипроцентами выполнения курсовых работ);
- *Control(указатель на массив с оценками законтрольные недели);
- Test(плановая дата сдачи завершенногокурсового проекта на проверку);
- TestF(фактическая дата сдачи завершенногокурсового проекта на проверку);
- Revision(плановая дата выдачи завершенногокурсового проекта на доработку);
- RevisionF(фактическая дата выдачи завершенногокурсового проекта на доработку);
- Protection(плановая дата защиты курсовогопроекта);
- ProtectionF(фактическая дата защиты курсовогопроекта);
Каждомуполю соответствует определенный метод, который устанавливает его значение. Нижеприведен список собственных методов, содержащихся в классе TStudent:
- SetNumberWeek();
- SetPlan();
- SetFact();
- SetControl();
- SetTest();
- SetTestF();
- SetRevision();
- SetRevisionF();
- SetProtection();
- SetProtectionF();
- SetControlScore();
Реализацияиерархии классов «Экран курсового проектирования» предложен в Приложении А.
/>

Рисунок 1 — Иерархияклассов «Экран курсового проектирования»
Алгоритм работы программына основе иерархии классов следующий:
1) Пользовательвводит название дисциплины, по которой проводятся курсовые работы и номергруппы, состав приемной комиссии и дату утверждения экрана курсовогопроектирования;
2) Создаетсяэкземпляр класса TScreen, в которыйс помощью методов заносится введенная пользователем информация;
3) Производитсякопирование полей в визуальные компоненты для отображения введенной информации;
4) Далее программаожидает действия пользователя:
1) При добавлениизаписи происходит создание экземпляра класса TStudent. Пользователь вводит информацию остуденте, с помощью методов экземпляра класса происходит присвоение значенийполям класса. Затем происходит копирование полей в визуальный компонент дляотображения введенной информации;
2) При удалениивыбирается нужная запись, программа запрашивает разрешение на удаление и вслучае успешного подтверждения удаляет запись, информируя об этом пользователя;
3) Приредактировании записи выбирается нужная запись, программа запрашиваетразрешение на редактирование и в случае успешного подтверждения открываетсяокно для редактирования. Пользователь редактирует запись и подтверждает своидействия, либо отменяет их;
4) При поискепрограмма запрашивает у пользователя информацию на поиск и в случае успешногопоиска информирует его об этом. В случае, если пользователь не удовлетворенрезультатом, можно продолжить поиск;
5) Изменение листаподразумевает в себе редактирование полей экземпляра класса TScreen. Пользователь задает новые поля спомощью методов, происходит обновление экземпляра класса TScreen;
5) В визуальныхкомпонентах отображается введенная пользователем информация, котораявпоследствии обрабатывается им;
6) Выход изпрограммы с вызовом деструкторов в экземплярах классов TScreen и TStudent, и удаление самих экземпляров.3. Программная реализация
Для реализации визуальных компонентовбыло создано 4 формы:
- Главное окно, вкотором отображается вводимая информация, а также осуществляется вызов окон длядобавления, редактирования и поиска;
- Стартовое окно,которое запрашивает у пользователя информацию о названии экрана курсовогопроектирования, дате утверждения экрана и состава приемной комиссии;
- Окнодобавления/редактирования позволяет добавлять/редактировать записи.
- Окно поискаслужит для приема искомой информации.
Большую часть главного окна занимаетвизуальный компонент dataGridView, который служит таблицей для отображения введенных записей. В данномслучае он очень удобен, т.к. отвечает всем требованиям для хранения иотображения записей о студентах. Заполнение таблицы происходит с помощью кнопки«Добавить», которая расположена внизу окна. При нажатии на нее происходит вызовокна добавления, которое содержит текстовые поля(textbox) для ввода информации. Пользователь вводитнеобходимую информацию, затем необходимо нажать на кнопку «Проверка». Так какполя класса TStudent имеют различные типы данных, тонеобходимо провести соответствие введенных полей этим типам. В случае успешнойпроверки появляется кнопка добавить, с помощью которой введенные записиприсваиваются полям класса. В случае ошибки ввода пользователь будет выведенаошибка о несоответствии типов, либо пользователь пропустил ввод некоторогополя.
Рассмотрим процедуру добавлениязаписи в dataGridView:
private: System::Void button4_Click(System::Object^ sender,System::EventArgs^ e) {

Form2 ^newdlg=gcnewForm2();//вызов форма добавления записи

if(dialres==System::Windows::Forms::DialogResult::OK){//проверкаусловиянанажатиеклавиши «ОК» вформедобавления
Student->SetName(newdlg->textBox1->Text);//присвоение значений полям классазначений из формы добавления

dataGridView1->Rows->Add(Student->TName,…);//добавлениеполейзаписивтаблицуdataGridView1
return;//возвратв главную программу
 }
 }
Полная реализация данной процедурыпредставлена в приложении В.
Процедура удаления доступна привыполнении двух условий:
- В таблице естьхотя бы одна запись;
- Если значениевизуального компонента checkBox->Checked равно True (стоит галочка);
Привыполнении этих условий необходимо выделить удаляемую строку. Программаопределяет выделенную строку и при нажатии кнопки удалить, а такжеподтверждения действия происходит удаление записи. Происходит обновлениетаблицы.
Процедураудаленияприведенаниже:
private: System::Voidbutton6_Click(System::Object^ sender, System::EventArgs^ e) {

dialres=MessageBox::Show(«Выточнохотитеудалитьзапись?»,«Удалить?»,MessageBoxButtons::OKCancel,MessageBoxIcon::Warning);//вывод предупреждения
if(dialres==System::Windows::Forms::DialogResult::OK){//проверкаусловиянаудаление
 if(this->dataGridView1->SelectedRows->Count > 0 &&
 this->dataGridView1->SelectedRows[0]->Index !=
this->dataGridView1->Rows->Count){// проверкананаличиестрокивыделенияудаляемойстроки
this->dataGridView1->Rows->RemoveAt(this->dataGridView1->SelectedRows[0]->Index);//удалениевыделеннойстроки
CountDataGrid--;//уменьшениеколичества записей в таблице

}
 }
 }
Полнаяреализация данной процедуры представлена в приложении В.
Функцияредактирования использует то же окно, что и функция добавления, с той лишь разницей,что ее поля заполняются информацией редактируемой записи. Для выполненияредактирования необходимо наличие тех же двух условий, что и для удаления.После редактирования записи в выделенную строку в dataGridView возвращаются обновленные поля.
Рассмотримфункциюредактирования:
private: System::Void button2_Click(System::Object^ sender,System::EventArgs^ e) {

 dl=MessageBox::Show(«Редактироватьзапись?»,«Изменить?»,MessageBoxButtons::OKCancel,MessageBoxIcon::Question);//выводпредупрежденияобизменениизаписи
 if(dl==System::Windows::Forms::DialogResult::OK){//проверкаподтверждения
 if(this->dataGridView1->SelectedRows->Count > 0 &&
 this->dataGridView1->SelectedRows[0]->Index !=
this->dataGridView1->Rows->Count){// проверкананаличиестрокивыделенияудаляемойстроки

Form2 ^newdlg=gcnewForm2();//инициализация формыредактирования
newdlg->textBox1->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[0]->Value);//передачавформуредактированияполейтаблицы

dialres=newdlg->ShowDialog();//вызовформыредактирования иредактирование полей записи
if(dialres==System::Windows::Forms::DialogResult::OK){//подтверждениедобавления измененныхполей
this->dataGridView1->SelectedRows[0]->Cells[0]->Value=newdlg->textBox1->Text;//возврат отредактированных полей обратно в таблицу

 }
 }
 }
Полнаяреализация данной процедуры представлена в приложении В.
Вприложении также реализован поиск. Для его выполнения достаточно одного условия– в таблице должна быть хотя бы одна запись. Поиск производится по всем полямтаблицы, независимо от типов данных, которые там хранятся. При нажатии накнопку поиска появляется окно, в котором есть единственный компонент textBox. В него вводится искомая информация.Введенная информация сравнивается с той, что хранится в полях таблицы. Если онасоответствует запросу, то происходит выделение поля таблицы. Если запрос несоответствует результату, то можно продолжить поиск, нажав на «ОК» винформационном сообщении.
Запросискомойинформации:
private: System::Void button1_Click(System::Object^ sender,System::EventArgs^ e) {
 if(textBox1->Text!=""){//проверка наличия информации дляпоиска
this->DialogResult=System::Windows::Forms::DialogResult::OK;//подтверждениепоска
this->Close();//закрытие окна поиска и переход вглавную программу
}

 }
Полнаяреализация данной процедуры представлена в приложении В.
Поискинформациивтаблице:
private: System::Void button1_Click(System::Object^ sender,System::EventArgs^ e) {


 dialres=newdlg->ShowDialog();//вызовформыпоиска

System::String ^srh;//объявление строки поиска
srh=newdlg->textBox1->Text;//присвоениезначения строке поиска

 for(int i=0; i
 for(int j=0; jColumnCount; j++){//циклповсемстолбцамтаблицы
 if(System::Convert::ToString(dataGridView1->Rows[i]->Cells[j]->Value)==srh){//проверканасоответствиезапросаполямтаблицы
 dataGridView1->CurrentCell=dataGridView1->Rows[i]->Cells[j];//выделениенайденногополя

 }
 }

}
 }
 }
Полнаяреализация данной процедуры представлена в приложении В.
Функцияизменения названия экрана курсового проектирования:
private: System::Void button7_Click(System::Object^ sender,System::EventArgs^ e) {

Start ^newdlg=gcnewStart();//инициализацияформыстартового окна
dialres=newdlg->ShowDialog();//вызов стартового окна

Screen.SetName(newdlg->textBox1->Text);//присвоениеполямклассаTScreenзначенийполейформы

listBox2->Items->Add(Screen.Composition);//передачаполейклассаTScreenвlistBox1 главнойформы

}
 }
Полнаяреализация данной процедуры представлена в приложении В.

4Тестирование
Конечнымэтапом создания программного продукта является его тестирование и отладка. Входе тестирования программы выявляются все ее недостатки и особенности работы.Обнаруженные недостатки устраняются в ходе отладки.
Врезультате было создано тестирующее приложение(рисунок 2), в которомреализована структура иерархии классов, а также различные функции. А именно:
- Созданиеэкземпляров классов;
- Добавление,удаление, редактирование и поиск данных;
- Работа сэкземплярами классов через визуальные компоненты.
/>
Рисунок2 – Тестирующее приложение. Главное окно.
/>
Рисунок3 – Тестирующее приложение. Добавление/редактирование.
иерархия класспрограммирование

/>
Рисунок4 – Тестирующее приложение. Окно поиска.
Результат тестирования: входе тестирования программы недостатков, влияющих на правильную работуприложения, не выявлено.
Листингтестирующего приложения предложен в Приложении В.
Данная программатестировалась на компьютере следующей конфигурации:
1. ТипЦП DualCore AMD Athlon 64X2, 2700 MHz (13.5 x 200) 5200+;
2. Системная память4096 МБ (DDR2-800 DDR2 SDRAM);
3. ОС Windows 7 x64 с поддержкой 32-х приложений.
5.Руководство по программному продукту
Руководство программиста:
Созданное приложение«Экран курсового проектирования», основанное на иерархии классов, имеетоткрытый исходный код, что позволяет изменять его в зависимости от потребностейпользователя. Объявление экземпляров класса TScreenи TStudentпроисходит в заголовочном файле главного окна Form1.h:
public:
TStudent ^Student;//объявление указателя на экземпляркласса TStudent
TScreenScreen;//объявлениеэкземпляра класса TScreen
Причем экземпляр класса TStudentинициализируется в конструктореглавной формы:
Form1(void)
{

Student=gcnew TStudent;//инициализацияэкземпляраклассаTStudent

}
Оба этих экземпляраобъявляются глобально и с атрибутом доступа Public, что позволяет получить к ним доступ из любой частиглавной формы и других форм. Поля и методы этих классов также имеют атрибутдоступа Public и имеют стандартные типы данныхплатформы .NETFramework. Все входные данные в программуимеют текстовый формат, а именно System::String^. В зависимости от полей и методовкласса они конвертируются с помощью стандартного конвертора в нужный типданных:
Student->SetControlScore(System::Convert::ToInt16(newdlg->textBox17->Text));//пример использования конверторатипа данных
Руководство системногоадминистратора:
Данноеприложение использует структуру иерархии классов «Экран курсовогопроектирования». Объявление полей и методов абстрактного базового класса TObject находится в файле TObject.h, а их описание в файле TObject.cpp.Объявление полей и методов класса TScreen находится в файле TScreen.h, а их описание вфайле TScreen.cpp. Объявление полей и методов класса TStudent находится в файле TStudent.h, а их описание в файле TStudent.cpp. Описание главного окна приложения находится в файле Form1.h; описание окна добавления/изменения информации об экранекурсового проектирования находится в файле Start.h;описания окна добавления/изменения записи о студенте находится в файле Form2.h; описание окна поиска находится в файле Search.h.
Приложение«Экран курсового проектирования» было разработано в интегрированной средепрограммирования MicrosoftVisualStudio 2010. Приложение использует платформу .NETFramework 4, которая присутствует воперационной системе MicrosoftWindows 7.
Руководство пользователя:
Длявыполнения приложения «Экран курсового проектирования» необходимы следующиеминимальные системные требования:
- Pentium III 1.5ГГц;
- GeForceFX 5200или ATI Radeon 9550-9600 с 128 MB, поддержка шейдеров 2.0;
- 512 МбОЗУ;
- Windows®XP/Vista/7, Windows2000, DirectX 9.0c;
- .NETFramework версии 4.0;
- Место на жесткомдиске: 4 GB;
- Монитор споддержкой разрешения 800x600;
- Клавиатура, мышь.
Данное приложение запускается изфайла WindowsFormApplication C++.exe.При выполнении системных требований появится окно добавления информации отекущем экране курсового проектирования. После ввода доступно главное окно, вкотором отражается полная информация об экране курсового проектирования и остудентах, выполняющих курсовые работы. В этом режиме программа ожидаетдействия от пользователя. При первом запуске доступны только команды «Добавить»и «Выход», а также справка о программе.
Для добавления записи необходимонажать кнопку «Добавить», после чего появится форма добавления. Затем нужнозаполнить все поля и нажать кнопку «Ок». Если не заполнены все поля, топрограмма выдаст сообщение об ошибке и предложит заполнить все поля. Также принеправильном соответствии форматов полей программа проинформирует пользователя.При желании возможно отказаться от добавления и нажать кнопку «Отмена». Последобавления запись автоматически отображается в таблице.
Чтобыудалить запись необходимо поставить галочку на «Разрешить редактированиетаблицы». Удаление доступно при наличии записей в таблице. Далее программапереходит в режим редактирования таблицы. Для удаления необходимо выделитьудаляемую строку, нажав на треугольник рядом с именем записи. При подтверждениивыбранного действия программа удаляет запись, о чем информирует пользователя.
Для редактирования записи необходимопоставить галочку на «Разрешить редактирование таблицы». Редактирование записи, как и удаление, доступно лишь при наличии записей в таблице. Дляредактирования записи необходимо выделить строку, нажав на треугольник рядом сименем записи. При подтверждении выбранного действия открывается окноредактирования записи. Необходимо отредактировать нужные поля и подтвердитьсвои действия.
Поиск осуществляется по всем полямтаблицы. Для поиска необходимо наличие записей в таблице. Чтобы выполнить поискнеобходимо нажать на кнопку «Поиск», после этого откроется окно поиска, вкотором необходимо ввести информацию для запроса, а затем нажать кнопку«Поиск». При первом же совпадении запрошенной информации с информацией втаблице программа выделяет совпадающее поле и запрашивает у пользователяразрешение на продолжение поиска, если найденная информация не удовлетворилазапросу пользователя.
Для вызова справочной системынеобходимо выбрать на панели команд меню «Help», а затем «Helpfile».
Заключение
В ходе выполнениякурсового проекта была создана иерархия классов «Экран курсовогопроектирования», на основе которой было создано визуальное тестирующееприложение. Данное приложение наделено возможностью добавлять, редактировать, удалятьзаписи, а также выполнять поиск информации по введенным данным. Проект отвечаеттем требованиям, которые были предъявлены к нему в ходе проектирования, аименно использовании структуры классов, наглядности и удобству в использовании.
Список литературы
1. Павловская Т.А.С/С++. Программирование на языке высокого уровня. – СПб.: Лидер, 2010. – 461с.
2. Пахомов Б. И.С/С++ и MSVisualC++ 2008 для начинающих. – СПб.:БХВ-Петербург. 2009. – 624с.
3. Иванова Г.С, НичушкинаТ.Н., Пугачев Е.К. И21Объектно-ориентированное программирование: Учеб. для вузов/ Под ред. Г.С.Ивановой. — М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. – 320 с.
4. Пауэрс Л. MicrosoftVisualStudio 2008 / Л. Пауэрс, М. Снелл: Пер. сангл. – СПб.: БХВ-Петербург, 2009. – 1200 с.
Приложения  

Приложение А
Реализация иерархии классов
ФайлTObject.h
#pragma once
public ref class TObject abstract
{
public:
System::String ^TName;
virtual void SetName(System::String ^) abstract;
TObject(void);
};
Файл TObject.cpp
#include «StdAfx.h»
#include «TObject.h»
TObject::TObject(void)
{
TName=«Default»;
}
Файл TStudent.h
#pragma once
#include «TObject.h»
using namespace System;
ref class TStudent :
public TObject
{
public:
System::Int16 ControlScore;
System::Int16 NumberWeek;
System::Int16 *Plan;
System::Int16 *Fact;
System::Int16 *Control
System::String ^Test;
System::String ^TestF;
System::String ^Revision;
System::String ^RevisionF;
System::String ^Protection;
System::String ^ProtectionF;
virtual void SetName(System::String ^) override;
void SetNumberWeek(System::Int16 );
void SetPlan(System::Int16, System::Int16);
void SetFact(System::Int16, System::Int16);
void SetControl(System::Int16, System::Int16);
void SetTest(System::String ^ );
void SetTestF(System::String ^ );
void SetRevision(System::String ^ );
void SetRevisionF(System::String ^ );
void SetProtection(System::String ^ );
void SetProtectionF(System::String ^ );
void SetControlScore(System::Int16 );
TStudent(void);
};
Файл TStudent.cpp
#include «StdAfx.h»
#include «TStudent.h»
void TStudent::SetName(String ^name){
TName=name;
}
void TStudent::SetNumberWeek(System::Int16 num){
NumberWeek=num;
}
void TStudent::SetPlan(System::Int16 num1, System::Int16 num2){
Plan[num2]=num1;
}
void TStudent::SetFact(System::Int16 num1, System::Int16 num2){
Fact[num2]=num1;
}
void TStudent::SetControl(System::Int16 num1, System::Int16 num2){
Control[num2]=num1;
}
void TStudent::SetTest(String ^ num){
Test=num;
}
void TStudent::SetTestF(String ^ num){
TestF=num;
}
void TStudent::SetRevision(String ^ num){
Revision=num;
}
void TStudent::SetRevisionF(String ^ num){
RevisionF=num;
}
void TStudent::SetProtection(String ^ num){
Protection=num;
}
void TStudent::SetProtectionF(String ^ num){
ProtectionF=num;
}
void TStudent::SetControlScore(System::Int16 score){
ControlScore=score;
}
TStudent::TStudent(void)
{
Plan=new System::Int16[3];
Fact=new System::Int16[3];
Control=new System::Int16[3];
}
Файл TScreen.h
#pragma once
#include «TObject.h»
#include «TStudent.h»
using namespace System;
using namespace System::Collections::Generic;
ref class TScreen :
public TObject
{
public:
System::String ^ Date;
System::String ^ Composition;
virtual void SetName(System::String ^) override;
void SetDate(System::String ^);
void SetComposition(System::String ^);
public:
TScreen(void);
};
Файл TScreen.cpp
#include «StdAfx.h»
#include «TScreen.h»
void TScreen::SetName(System::String ^s){
TName=s;
}
void TScreen::SetComposition(System::String ^s){
Composition=s;
}
void TScreen::SetDate(System::String ^s){
Date=s;
}
TScreen::TScreen(void)
{
}

Приложение В
Листинг тестирующего приложения
Файл Form1.h. Главное окно.
#pragma once
#include «Form2.h»
#include «TScreen.h»
#include «Start.h»
#include «Search.h»
namespace WindowsFormApplicationC {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Collections::Generic;
public ref class Form1: public System::Windows::Forms::Form
{
public:
private: System::Windows::Forms::MenuStrip^ menuStrip1;
private: System::Windows::Forms::ToolStripMenuItem^fileToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^exitToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^helpToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^aboutToolStripMenuItem;
private: System::Windows::Forms::Button^ button4;
private: System::Windows::Forms::Button^ button5;
public:
TStudent ^Student;
TScreen Screen;
System::Int16 CountDataGrid;
private: System::Windows::Forms::Button^ button6;
private: System::Windows::Forms::Button^ button7;
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column1;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column2;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column3;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column4;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column5;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column6;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column7;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column8;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column9;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column10;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column11;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column12;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column13;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column14;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column15;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column16;
private: System::Windows::Forms::DataGridViewTextBoxColumn^ Column17;
private: System::Windows::Forms::ToolStripMenuItem^aboutToolStripMenuItem1;
private: System::Windows::Forms::ListBox^ listBox1;
private: System::Windows::Forms::ListBox^ listBox2;
private: System::Windows::Forms::CheckBox^ checkBox1;
public:
Form1(void)
{
InitializeComponent();
Student=gcnew TStudent;
CountDataGrid=0;
}
protected:
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::DataGridView^ dataGridView1;
protected:
private:
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
///
/// Required method for Designer support — do not modify
/// the contents of this method with the code editor.
///
void InitializeComponent(void)
{
System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle2 =(gcnew System::Windows::Forms::DataGridViewCellStyle());
this->dataGridView1 = (gcnew System::Windows::Forms::DataGridView());
this->Column1 = (gcnewSystem::Windows::Forms::DataGridViewTextBoxColumn());
this->Column2 = (gcnewSystem::Windows::Forms::DataGridViewTextBoxColumn());
this->Column3 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());
this->Column4 = (gcnewSystem::Windows::Forms::DataGridViewTextBoxColumn());
this->Column5 = (gcnewSystem::Windows::Forms::DataGridViewTextBoxColumn());
this->Column6 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());
this->Column7 = (gcnewSystem::Windows::Forms::DataGridViewTextBoxColumn());
this->Column8 = (gcnewSystem::Windows::Forms::DataGridViewTextBoxColumn());
this->Column9 = (gcnewSystem::Windows::Forms::DataGridViewTextBoxColumn());
this->Column10 = (gcnewSystem::Windows::Forms::DataGridViewTextBoxColumn());
this->Column11 = (gcnewSystem::Windows::Forms::DataGridViewTextBoxColumn());
this->Column12 = (gcnewSystem::Windows::Forms::DataGridViewTextBoxColumn());
this->Column13 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());
this->Column14 = (gcnewSystem::Windows::Forms::DataGridViewTextBoxColumn());
this->Column15 = (gcnewSystem::Windows::Forms::DataGridViewTextBoxColumn());
this->Column16 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());
this->Column17 = (gcnewSystem::Windows::Forms::DataGridViewTextBoxColumn());
this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
this->fileToolStripMenuItem = (gcnewSystem::Windows::Forms::ToolStripMenuItem());
this->exitToolStripMenuItem = (gcnewSystem::Windows::Forms::ToolStripMenuItem());
this->helpToolStripMenuItem = (gcnewSystem::Windows::Forms::ToolStripMenuItem());
this->aboutToolStripMenuItem = (gcnewSystem::Windows::Forms::ToolStripMenuItem());
this->aboutToolStripMenuItem1 = (gcnewSystem::Windows::Forms::ToolStripMenuItem());
this->button4 = (gcnew System::Windows::Forms::Button());
this->button5 = (gcnew System::Windows::Forms::Button());
this->button6 = (gcnew System::Windows::Forms::Button());
this->button7 = (gcnew System::Windows::Forms::Button());
this->button1 = (gcnew System::Windows::Forms::Button());
this->button2 = (gcnew System::Windows::Forms::Button());
this->listBox1 = (gcnew System::Windows::Forms::ListBox());
this->listBox2 = (gcnew System::Windows::Forms::ListBox());
this->checkBox1 = (gcnew System::Windows::Forms::CheckBox());
(cli::safe_cast(this->dataGridView1))->BeginInit();
this->menuStrip1->SuspendLayout();
this->SuspendLayout();
//
// dataGridView1
//
this->dataGridView1->AccessibleRole =System::Windows::Forms::AccessibleRole::Graphic;
this->dataGridView1->AllowUserToAddRows = false;
this->dataGridView1->Anchor =static_cast((((System::Windows::Forms::AnchorStyles::Top| System::Windows::Forms::AnchorStyles::Bottom)
| System::Windows::Forms::AnchorStyles::Left)
| System::Windows::Forms::AnchorStyles::Right));
this->dataGridView1->BackgroundColor =System::Drawing::Color::White;
this->dataGridView1->BorderStyle =System::Windows::Forms::BorderStyle::Fixed3D;
this->dataGridView1->ColumnHeadersHeightSizeMode =System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;
this->dataGridView1->Columns->AddRange(gcnew cli::array(17) {this->Column1,
this->Column2, this->Column3, this->Column4, this->Column5,this->Column6, this->Column7, this->Column8, this->Column9,this->Column10,
this->Column11, this->Column12, this->Column13, this->Column14,this->Column15, this->Column16, this->Column17});
dataGridViewCellStyle2->Alignment =System::Windows::Forms::DataGridViewContentAlignment::MiddleLeft;
dataGridViewCellStyle2->BackColor =System::Drawing::SystemColors::Window;
dataGridViewCellStyle2->Font = (gcnewSystem::Drawing::Font(L«Microsoft Sans Serif», 8.25F,System::Drawing::FontStyle::Regular,
System::Drawing::GraphicsUnit::Point,static_cast(204)));
dataGridViewCellStyle2->ForeColor = System::Drawing::SystemColors::ControlText;
dataGridViewCellStyle2->SelectionBackColor =System::Drawing::Color::FromArgb(static_cast(static_cast(128)),
static_cast(static_cast(128)),static_cast(static_cast(255)));
dataGridViewCellStyle2->SelectionForeColor =System::Drawing::SystemColors::HighlightText;
dataGridViewCellStyle2->WrapMode =System::Windows::Forms::DataGridViewTriState::False;
this->dataGridView1->DefaultCellStyle = dataGridViewCellStyle2;
this->dataGridView1->GridColor =System::Drawing::Color::FromArgb(static_cast(static_cast(224)),static_cast(static_cast(224)),
static_cast(static_cast(224)));
this->dataGridView1->Location = System::Drawing::Point(0, 63);
this->dataGridView1->Name = L«dataGridView1»;
this->dataGridView1->RowHeadersVisible = false;
this->dataGridView1->Size = System::Drawing::Size(944, 537);
this->dataGridView1->TabIndex = 0;
//
// Column1
//
this->Column1->AutoSizeMode =System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column1->Frozen = true;
this->Column1->HeaderText = L«ФИОстудента»;
this->Column1->Name = L«Column1»;
this->Column1->ReadOnly = true;
this->Column1->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column1->Width = 200;
//
// Column2
//
this->Column2->AutoSizeMode =System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column2->HeaderText = L«1к.н. задан. % вып.»;
this->Column2->Name = L«Column2»;
this->Column2->ReadOnly = true;
this->Column2->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column2->Width = 70;
//
// Column3
//
this->Column3->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column3->HeaderText = L«1к.н. факт. % вып.»;
this->Column3->Name = L«Column3»;
this->Column3->ReadOnly = true;
this->Column3->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column3->Width = 70;
//
// Column4
//
this->Column4->AutoSizeMode =System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column4->HeaderText = L«1к.н. контр. оценка»;
this->Column4->Name = L«Column4»;
this->Column4->ReadOnly = true;
this->Column4->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column4->Width = 70;
//
// Column5
//
this->Column5->AutoSizeMode =System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column5->HeaderText = L«2к.н. задан. % вып.»;
this->Column5->Name = L«Column5»;
this->Column5->ReadOnly = true;
this->Column5->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column5->Width = 70;
//
// Column6
//
this->Column6->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column6->HeaderText = L«2к.н. факт. % вып.»;
this->Column6->Name = L«Column6»;
this->Column6->ReadOnly = true;
this->Column6->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column6->Width = 70;
//
// Column7
//
this->Column7->AutoSizeMode =System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column7->HeaderText = L«2к.н. контр. оценка»;
this->Column7->Name = L«Column7»;
this->Column7->ReadOnly = true;
this->Column7->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column7->Width = 70;
//
// Column8
//
this->Column8->AutoSizeMode =System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column8->HeaderText = L«3к.н. задан. % вып.»;
this->Column8->Name = L«Column8»;
this->Column8->ReadOnly = true;
this->Column8->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column8->Width = 70;
//
// Column9
//
this->Column9->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column9->HeaderText = L«3к.н. факт. % вып.»;
this->Column9->Name = L«Column9»;
this->Column9->ReadOnly = true;
this->Column9->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column9->Width = 70;
//
// Column10
//
this->Column10->AutoSizeMode =System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column10->HeaderText = L«3к.н. контр. оценка»;
this->Column10->Name = L«Column10»;
this->Column10->ReadOnly = true;
this->Column10->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column10->Width = 70;
//
// Column11
//
this->Column11->AutoSizeMode =System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column11->HeaderText= L«Дата сдачи заверш. проекта (работы) на проверку План»;
this->Column11->Name = L«Column11»;
this->Column11->ReadOnly = true;
this->Column11->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column11->Width = 120;
//
// Column12
//
this->Column12->AutoSizeMode =System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column12->HeaderText= L«Дата сдачи заверш. проекта (работы) на проверку Факт.»;
this->Column12->Name = L«Column12»;
this->Column12->ReadOnly = true;
this->Column12->Resizable = System::Windows::Forms::DataGridViewTriState::False;
this->Column12->Width = 120;
//
// Column13
//
this->Column13->AutoSizeMode =System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column13->HeaderText= L«Дата выдачи проекта (работы) препод. на доработку План»;
this->Column13->Name = L«Column13»;
this->Column13->ReadOnly = true;
this->Column13->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column13->Width = 120;
//
// Column14
//
this->Column14->AutoSizeMode =System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column14->HeaderText= L«Дата выдачи проекта (работы) препод. на доработку Факт.»;
this->Column14->Name = L«Column14»;
this->Column14->ReadOnly = true;
this->Column14->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column14->Width = 120;
//
// Column15
//
this->Column15->AutoSizeMode =System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column15->HeaderText = L«ДатазащитыПлан»;
this->Column15->Name = L«Column15»;
this->Column15->ReadOnly = true;
this->Column15->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column15->Width = 120;
//
// Column16
//
this->Column16->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column16->HeaderText = L«ДатазащитыФакт.»;
this->Column16->Name = L«Column16»;
this->Column16->ReadOnly = true;
this->Column16->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column16->Width = 120;
//
// Column17
//
this->Column17->AutoSizeMode =System::Windows::Forms::DataGridViewAutoSizeColumnMode::None;
this->Column17->FillWeight = 30;
this->Column17->HeaderText = L«Оценказаработу»;
this->Column17->Name = L«Column17»;
this->Column17->ReadOnly = true;
this->Column17->Resizable =System::Windows::Forms::DataGridViewTriState::False;
this->Column17->Width = 75;
//
// menuStrip1
//
this->menuStrip1->Items->AddRange(gcnew cli::array(2) {this->fileToolStripMenuItem,
this->helpToolStripMenuItem});
this->menuStrip1->Location = System::Drawing::Point(0, 0);
this->menuStrip1->Name = L«menuStrip1»;
this->menuStrip1->Size = System::Drawing::Size(944, 24);
this->menuStrip1->TabIndex = 8;
this->menuStrip1->Text = L«menuStrip1»;
//
// fileToolStripMenuItem
//
this->fileToolStripMenuItem->DropDownItems->AddRange(gcnewcli::array(1){this->exitToolStripMenuItem});
this->fileToolStripMenuItem->Name = L«fileToolStripMenuItem»;
this->fileToolStripMenuItem->Size = System::Drawing::Size(37, 20);
this->fileToolStripMenuItem->Text = L«File»;
//
// exitToolStripMenuItem
//
this->exitToolStripMenuItem->Name =L«exitToolStripMenuItem»;
this->exitToolStripMenuItem->Size = System::Drawing::Size(92, 22);
this->exitToolStripMenuItem->Text = L«Exit»;
this->exitToolStripMenuItem->Click += gcnewSystem::EventHandler(this, &Form1::button5_Click);
//
// helpToolStripMenuItem
//
this->helpToolStripMenuItem->DropDownItems->AddRange(gcnewcli::array(2){this->aboutToolStripMenuItem,
this->aboutToolStripMenuItem1});
this->helpToolStripMenuItem->Name =L«helpToolStripMenuItem»;
this->helpToolStripMenuItem->Size = System::Drawing::Size(44, 20);
this->helpToolStripMenuItem->Text = L«Help»;
//
// aboutToolStripMenuItem
//
this->aboutToolStripMenuItem->Name =L«aboutToolStripMenuItem»;
this->aboutToolStripMenuItem->Size = System::Drawing::Size(152,22);
this->aboutToolStripMenuItem->Text = L«Help file»;
this->aboutToolStripMenuItem->Click += gcnewSystem::EventHandler(this, &Form1::aboutToolStripMenuItem_Click);
//
// aboutToolStripMenuItem1
//
this->aboutToolStripMenuItem1->Name =L«aboutToolStripMenuItem1»;
this->aboutToolStripMenuItem1->Size = System::Drawing::Size(152,22);
this->aboutToolStripMenuItem1->Text = L«About»;
this->aboutToolStripMenuItem1->Click += gcnewSystem::EventHandler(this, &Form1::aboutToolStripMenuItem1_Click);
//
// button4
//
this->button4->Anchor =static_cast((System::Windows::Forms::AnchorStyles::Bottom| System::Windows::Forms::AnchorStyles::Left));
this->button4->Location = System::Drawing::Point(12, 727);
this->button4->Name = L«button4»;
this->button4->Size = System::Drawing::Size(106, 23);
this->button4->TabIndex = 9;
this->button4->Text = L«Добавитьзапись»;
this->button4->UseVisualStyleBackColor = true;
this->button4->Click += gcnew System::EventHandler(this,&Form1::button4_Click);
//
// button5
//
this->button5->Anchor =static_cast((System::Windows::Forms::AnchorStyles::Bottom| System::Windows::Forms::AnchorStyles::Right));
this->button5->Location = System::Drawing::Point(860, 706);
this->button5->Name = L«button5»;
this->button5->Size = System::Drawing::Size(72, 44);
this->button5->TabIndex = 10;
this->button5->Text = L«Выход»;
this->button5->UseVisualStyleBackColor = true;
this->button5->Click += gcnew System::EventHandler(this,&Form1::button5_Click);
//
// button6
//
this->button6->Anchor =static_cast((System::Windows::Forms::AnchorStyles::Bottom| System::Windows::Forms::AnchorStyles::Right));
this->button6->Enabled = false;
this->button6->Location = System::Drawing::Point(806, 664);
this->button6->Name = L«button6»;
this->button6->Size = System::Drawing::Size(126, 23);
this->button6->TabIndex = 12;
this->button6->Text = L«Удалитьзапись»;
this->button6->UseVisualStyleBackColor = true;
this->button6->Click += gcnew System::EventHandler(this,&Form1::button6_Click);
//
// button7
//
this->button7->Anchor =static_cast((System::Windows::Forms::AnchorStyles::Bottom| System::Windows::Forms::AnchorStyles::Right));
this->button7->Location = System::Drawing::Point(806, 606);
this->button7->Name = L«button7»;
this->button7->Size = System::Drawing::Size(126, 23);
this->button7->TabIndex = 13;
this->button7->Text = L«Изменитьназавние»;
this->button7->UseVisualStyleBackColor = true;
this->button7->Click += gcnew System::EventHandler(this,&Form1::button7_Click);
//
// button1
//
this->button1->Anchor =static_cast((System::Windows::Forms::AnchorStyles::Bottom| System::Windows::Forms::AnchorStyles::Left));
this->button1->Enabled = false;
this->button1->Location = System::Drawing::Point(137, 727);
this->button1->Name = L«button1»;
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 19;
this->button1->Text = L«Поиск»;
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this,&Form1::button1_Click);
//
// button2
//
this->button2->Anchor =static_cast((System::Windows::Forms::AnchorStyles::Bottom| System::Windows::Forms::AnchorStyles::Right));
this->button2->Enabled = false;
this->button2->Location = System::Drawing::Point(806, 635);
this->button2->Name = L«button2»;
this->button2->Size = System::Drawing::Size(126, 23);
this->button2->TabIndex = 20;
this->button2->Text = L«Редактировать»;
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this,&Form1::button2_Click);
//
// listBox1
//
this->listBox1->Anchor =static_cast(((System::Windows::Forms::AnchorStyles::Top| System::Windows::Forms::AnchorStyles::Left)
| System::Windows::Forms::AnchorStyles::Right));
this->listBox1->Font = (gcnew System::Drawing::Font(L«TimesNew Roman», 14.25F, System::Drawing::FontStyle::Regular,System::Drawing::GraphicsUnit::Point,
static_cast(0)));
this->listBox1->FormattingEnabled = true;
this->listBox1->ItemHeight = 21;
this->listBox1->Location = System::Drawing::Point(12, 27);
this->listBox1->Name = L«listBox1»;
this->listBox1->Size = System::Drawing::Size(920, 25);
this->listBox1->TabIndex = 21;
this->listBox1->Tag = L"";
//
// listBox2
//
this->listBox2->Anchor = static_cast(((System::Windows::Forms::AnchorStyles::Bottom| System::Windows::Forms::AnchorStyles::Left)
| System::Windows::Forms::AnchorStyles::Right));
this->listBox2->Font = (gcnew System::Drawing::Font(L«TimesNew Roman», 14.25F, System::Drawing::FontStyle::Regular,System::Drawing::GraphicsUnit::Point,
static_cast(204)));
this->listBox2->FormattingEnabled = true;
this->listBox2->HorizontalScrollbar = true;
this->listBox2->ItemHeight = 21;
this->listBox2->Location = System::Drawing::Point(12, 606);
this->listBox2->Name = L«listBox2»;
this->listBox2->ScrollAlwaysVisible = true;
this->listBox2->Size = System::Drawing::Size(788, 109);
this->listBox2->TabIndex = 22;
//
// checkBox1
//
this->checkBox1->Anchor = static_cast((System::Windows::Forms::AnchorStyles::Bottom| System::Windows::Forms::AnchorStyles::Left));
this->checkBox1->AutoSize = true;
this->checkBox1->Enabled = false;
this->checkBox1->Location = System::Drawing::Point(256, 727);
this->checkBox1->Name = L«checkBox1»;
this->checkBox1->Size = System::Drawing::Size(214, 17);
this->checkBox1->TabIndex = 23;
this->checkBox1->Text = L«Разрешитьредактированиетаблицы»;
this->checkBox1->UseVisualStyleBackColor = true;
this->checkBox1->CheckedChanged += gcnew System::EventHandler(this,&Form1::checkBox1_CheckedChanged);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->BackColor = System::Drawing::Color::White;
this->ClientSize = System::Drawing::Size(944, 762);
this->Controls->Add(this->checkBox1);
this->Controls->Add(this->listBox2);
this->Controls->Add(this->listBox1);
this->Controls->Add(this->button2);
this->Controls->Add(this->button1);
this->Controls->Add(this->button7);
this->Controls->Add(this->button6);
this->Controls->Add(this->button5);
this->Controls->Add(this->button4);
this->Controls->Add(this->dataGridView1);
this->Controls->Add(this->menuStrip1);
this->Location = System::Drawing::Point(388, 613);
this->MainMenuStrip = this->menuStrip1;
this->MinimumSize = System::Drawing::Size(960, 800);
this->Name = L«Form1»;
this->Text = L«Form1»;
this->Load += gcnew System::EventHandler(this,&Form1::Form1_Load);
this->Shown += gcnew System::EventHandler(this,&Form1::button7_Click);
(cli::safe_cast(this->dataGridView1))->EndInit();
this->menuStrip1->ResumeLayout(false);
this->menuStrip1->PerformLayout();
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void Form1_Load(System::Object^ sender,System::EventArgs^ e) {
}
private: System::Void button4_Click(System::Object^ sender,System::EventArgs^ e) {
 System::Windows::Forms::DialogResult dialres;
 Form2 ^newdlg=gcnew Form2();
 dialres=newdlg->ShowDialog();
 if(dialres==System::Windows::Forms::DialogResult::OK){
 Student->SetName(newdlg->textBox1->Text);
 Student->SetControl(System::Convert::ToInt16(newdlg->textBox4->Text),0);
 Student->SetControl(System::Convert::ToInt16(newdlg->textBox7->Text),1);
 Student->SetControl(System::Convert::ToInt16(newdlg->textBox10->Text),2);
 Student->SetControlScore(System::Convert::ToInt16(newdlg->textBox17->Text));
 Student->SetFact(System::Convert::ToInt16(newdlg->textBox3->Text),0);
 Student->SetFact(System::Convert::ToInt16(newdlg->textBox6->Text),1);
 Student->SetFact(System::Convert::ToInt16(newdlg->textBox9->Text),2);
 Student->SetPlan(System::Convert::ToInt16(newdlg->textBox2->Text),0);
 Student->SetPlan(System::Convert::ToInt16(newdlg->textBox5->Text),1);
 Student->SetPlan(System::Convert::ToInt16(newdlg->textBox8->Text),2);
 Student->SetTest(newdlg->textBox11->Text);
 Student->SetTestF(newdlg->textBox12->Text);
 Student->SetRevision(newdlg->textBox13->Text);
 Student->SetRevisionF(newdlg->textBox14->Text);
 Student->SetProtection(newdlg->textBox15->Text);
 Student->SetProtectionF(newdlg->textBox16->Text);
 dataGridView1->Rows->Add(Student->TName,Student->Plan[0],Student->Fact[0],Student->Control[0],
 Student->Plan[1],Student->Fact[1],Student->Control[1],Student->Plan[2],Student->Fact[2],
 Student->Control[2],Student->Test,Student->TestF,Student->Revision,Student->RevisionF,
 Student->Protection,Student->ProtectionF,Student->ControlScore);
 CountDataGrid++;
 button1->Enabled=true;
 checkBox1->Enabled=true;
 MessageBox::Show(«Записьдобавлена!»,«Information»,MessageBoxButtons::OK,MessageBoxIcon::Information);
return;
 }
 }
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^e) {
 this->Close();
 }
private: System::Void button6_Click(System::Object^ sender,System::EventArgs^ e) {
 System::Windows::Forms::DialogResult dialres;
 dialres=MessageBox::Show(«Выточнохотитеудалитьзапись?»,«Удалить?»,MessageBoxButtons::OKCancel,MessageBoxIcon::Warning);
 if(dialres==System::Windows::Forms::DialogResult::OK){
 if(this->dataGridView1->SelectedRows->Count > 0 &&
 this->dataGridView1->SelectedRows[0]->Index !=
 this->dataGridView1->Rows->Count){
 this->dataGridView1->Rows->RemoveAt(this->dataGridView1->SelectedRows[0]->Index);
CountDataGrid--;
 if(CountDataGrid==0){
 button1->Enabled=false;
button2->Enabled=false;
 button6->Enabled=false;
 checkBox1->Enabled=false;
}
 MessageBox::Show(«Записьудалена!»,«Information»,MessageBoxButtons::OK,MessageBoxIcon::Information);
}
 else{
 MessageBox::Show(«Невыделенаудаляемаястрока!»,«Ошибка»,MessageBoxButtons::OK,MessageBoxIcon::Error);
}
 }
 }
private: System::Void button7_Click(System::Object^ sender, System::EventArgs^e) {
 System::Windows::Forms::DialogResult dialres;
 Start ^newdlg=gcnew Start();
 dialres=newdlg->ShowDialog();
 if(dialres==System::Windows::Forms::DialogResult::OK){
 this->Text=newdlg->textBox1->Text;
 Screen.SetName(newdlg->textBox1->Text);
 Screen.SetComposition(newdlg->textBox2->Text);
 Screen.SetDate(newdlg->textBox3->Text);
 listBox1->Items->Add(Screen.TName);
listBox2->Items->Add(«Составприемной комиссии: „);
listBox2->Items->Add(Screen.Composition);
listBox2->Items->Add(“Датаутверждения: „);
listBox2->Items->Add(Screen.Date);
 }
 }
private: System::Void aboutToolStripMenuItem_Click(System::Object^sender, System::EventArgs^ e) {
System::Diagnostics::Process::Start(“Help.chm»);
}
private: System::Void button1_Click(System::Object^ sender,System::EventArgs^ e) {
 System::Windows::Forms::DialogResult dialres;
 Search ^newdlg=gcnew Search();
 dialres=newdlg->ShowDialog();
 if(dialres==System::Windows::Forms::DialogResult::OK){
 System::String ^srh;
 srh=newdlg->textBox1->Text;
if(CountDataGrid!=0){
 for(int i=0; i
 for(int j=0; jColumnCount; j++){
 if(System::Convert::ToString(dataGridView1->Rows[i]->Cells[j]->Value)==srh){
 dataGridView1->CurrentCell=dataGridView1->Rows[i]->Cells[j];
 System::Windows::Forms::DialogResult dl;
 dl=MessageBox::Show(«Искатьдалее?»,«Continue?»,MessageBoxButtons::OKCancel,MessageBoxIcon::Question);
 if(dl==System::Windows::Forms::DialogResult::Cancel){
 break;
4 }
 }
 }
 }
 MessageBox::Show(«Поискзавершен!»,«Information»,MessageBoxButtons::OK,MessageBoxIcon::Information);
 }
 }
 }
private: System::Void button2_Click(System::Object^ sender,System::EventArgs^ e) {
 System::Windows::Forms::DialogResult dl;
 dl=MessageBox::Show(«Редактироватьзапись?»,«Изменить?»,MessageBoxButtons::OKCancel,MessageBoxIcon::Question);
 if(dl==System::Windows::Forms::DialogResult::OK){
 if(this->dataGridView1->SelectedRows->Count > 0 &&
 this->dataGridView1->SelectedRows[0]->Index !=
 this->dataGridView1->Rows->Count){
 System::Windows::Forms::DialogResult dialres;
 Form2 ^newdlg=gcnew Form2();
 newdlg->textBox1->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[0]->Value);
 newdlg->textBox2->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[1]->Value);
 newdlg->textBox3->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[2]->Value);
 newdlg->textBox4->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[3]->Value);
 newdlg->textBox5->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[4]->Value);
 newdlg->textBox6->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[5]->Value);
 newdlg->textBox7->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[6]->Value);
 newdlg->textBox8->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[7]->Value);
 newdlg->textBox9->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[8]->Value);
 newdlg->textBox10->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[9]->Value);
 newdlg->textBox11->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[10]->Value);
 newdlg->textBox12->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[11]->Value);
 newdlg->textBox13->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[12]->Value);
 newdlg->textBox14->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[13]->Value);
 newdlg->textBox15->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[14]->Value);
 newdlg->textBox16->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[15]->Value);
 newdlg->textBox17->Text=System::Convert::ToString(this->dataGridView1->SelectedRows[0]->Cells[16]->Value);
 dialres=newdlg->ShowDialog();
 if(dialres==System::Windows::Forms::DialogResult::OK){
 this->dataGridView1->SelectedRows[0]->Cells[0]->Value=newdlg->textBox1->Text;
 this->dataGridView1->SelectedRows[0]->Cells[1]->Value=newdlg->textBox2->Text;
 this->dataGridView1->SelectedRows[0]->Cells[2]->Value=newdlg->textBox3->Text;
 this->dataGridView1->SelectedRows[0]->Cells[3]->Value=newdlg->textBox4->Text;
 this->dataGridView1->SelectedRows[0]->Cells[4]->Value=newdlg->textBox5->Text;
 this->dataGridView1->SelectedRows[0]->Cells[5]->Value=newdlg->textBox6->Text;
 this->dataGridView1->SelectedRows[0]->Cells[6]->Value=newdlg->textBox7->Text;
 this->dataGridView1->SelectedRows[0]->Cells[7]->Value=newdlg->textBox8->Text;
 this->dataGridView1->SelectedRows[0]->Cells[8]->Value=newdlg->textBox9->Text;
 this->dataGridView1->SelectedRows[0]->Cells[9]->Value=newdlg->textBox10->Text;
 this->dataGridView1->SelectedRows[0]->Cells[10]->Value=newdlg->textBox11->Text;
 this->dataGridView1->SelectedRows[0]->Cells[11]->Value=newdlg->textBox12->Text;
 this->dataGridView1->SelectedRows[0]->Cells[12]->Value=newdlg->textBox13->Text;
 this->dataGridView1->SelectedRows[0]->Cells[13]->Value=newdlg->textBox14->Text;
 this->dataGridView1->SelectedRows[0]->Cells[14]->Value=newdlg->textBox15->Text;
 this->dataGridView1->SelectedRows[0]->Cells[15]->Value=newdlg->textBox16->Text;
 this->dataGridView1->SelectedRows[0]->Cells[16]->Value=newdlg->textBox17->Text;
 }
 MessageBox::Show(«Записьотредактирована!»,«Information»,MessageBoxButtons::OK,MessageBoxIcon::Information);
 }
 else{
 MessageBox::Show(«Невыделенаредактируемаястрока!»,«Ошибка»,MessageBoxButtons::OK,MessageBoxIcon::Error);
 }
 }
 }
private: System::Void aboutToolStripMenuItem1_Click(System::Object^sender, System::EventArgs^ e) {
 MessageBox::Show("\"\Экранкурсовогопроектирования\"\ Версия 1.0",«Опрограмме»,MessageBoxButtons::OK,MessageBoxIcon::Information);
 }
private: System::Void checkBox1_CheckedChanged(System::Object^ sender,System::EventArgs^ e) {
 if(checkBox1->Checked==true&&CountDataGrid!=0){
 button2->Enabled=true;
 button6->Enabled=true;
 dataGridView1->RowHeadersVisible=true;
 }
 if(checkBox1->Checked==false&&CountDataGrid!=0){
 dataGridView1->RowHeadersVisible=false;
 button2->Enabled=false;
 button6->Enabled=false;
 }
 }
};
}
ФайлForm2.h. Окнодобавления/редактированиязаписей.
#pragma once
#include «TStudent.h»
namespace WindowsFormApplicationC {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::IO;
public ref class Form2: public System::Windows::Forms::Form
{
public:
Form2(void)
{
InitializeComponent();
}
protected:
~Form2()
{
if (components)
{
delete components;
}
}
public: System::Windows::Forms::TextBox^ textBox1;
protected:
public: System::Windows::Forms::TextBox^ textBox2;
public: System::Windows::Forms::TextBox^ textBox3;
public: System::Windows::Forms::TextBox^ textBox4;
public: System::Windows::Forms::TextBox^ textBox5;
public: System::Windows::Forms::TextBox^ textBox6;
public: System::Windows::Forms::TextBox^ textBox7;
public: System::Windows::Forms::TextBox^ textBox8;
public: System::Windows::Forms::TextBox^ textBox9;
public: System::Windows::Forms::TextBox^ textBox10;
public: System::Windows::Forms::TextBox^ textBox11;
public: System::Windows::Forms::TextBox^ textBox12;
public: System::Windows::Forms::TextBox^ textBox13;
public: System::Windows::Forms::TextBox^ textBox14;
public: System::Windows::Forms::TextBox^ textBox15;
public: System::Windows::Forms::TextBox^ textBox16;
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::Button^ button3;
public: System::Windows::Forms::TextBox^ textBox17;
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::Label^ label4;
private: System::Windows::Forms::Label^ label5;
private: System::Windows::Forms::Label^ label6;
private: System::Windows::Forms::Label^ label7;
private: System::Windows::Forms::Label^ label8;
private: System::Windows::Forms::Label^ label9;
private: System::Windows::Forms::Label^ label10;
private: System::Windows::Forms::Label^ label11;
private: System::Windows::Forms::Label^ label12;
private: System::Windows::Forms::Label^ label13;
private: System::Windows::Forms::Label^ label14;
private: System::Windows::Forms::Label^ label15;
private: System::Windows::Forms::Label^ label16;
private: System::Windows::Forms::Label^ label17;
private: System::Windows::Forms::Label^ label18;
private: System::Windows::Forms::Label^ label19;
private: System::Windows::Forms::Label^ label20;
private: System::Windows::Forms::Button^ button4;
private:
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
void InitializeComponent(void)
{
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->textBox3 = (gcnew System::Windows::Forms::TextBox());
this->textBox4 = (gcnew System::Windows::Forms::TextBox());
this->textBox5 = (gcnew System::Windows::Forms::TextBox());
this->textBox6 = (gcnew System::Windows::Forms::TextBox());
this->textBox7 = (gcnew System::Windows::Forms::TextBox());
this->textBox8 = (gcnew System::Windows::Forms::TextBox());
this->textBox9 = (gcnew System::Windows::Forms::TextBox());
this->textBox10 = (gcnew System::Windows::Forms::TextBox());
this->textBox11 = (gcnew System::Windows::Forms::TextBox());
this->textBox12 = (gcnew System::Windows::Forms::TextBox());
this->textBox13 = (gcnew System::Windows::Forms::TextBox());
this->textBox14 = (gcnew System::Windows::Forms::TextBox());
this->textBox15 = (gcnew System::Windows::Forms::TextBox());
this->textBox16 = (gcnew System::Windows::Forms::TextBox());
this->button1 = (gcnew System::Windows::Forms::Button());
this->button2 = (gcnew System::Windows::Forms::Button());
this->button3 = (gcnew System::Windows::Forms::Button());
this->textBox17 = (gcnew System::Windows::Forms::TextBox());
this->label1 = (gcnew System::Windows::Forms::Label());
this->label2 = (gcnew System::Windows::Forms::Label());
this->label3 = (gcnew System::Windows::Forms::Label());
this->label4 = (gcnew System::Windows::Forms::Label());
this->label5 = (gcnew System::Windows::Forms::Label());
this->label6 = (gcnew System::Windows::Forms::Label());
this->label7 = (gcnew System::Windows::Forms::Label());
this->label8 = (gcnew System::Windows::Forms::Label());
this->label9 = (gcnew System::Windows::Forms::Label());
this->label10 = (gcnew System::Windows::Forms::Label());
this->label11 = (gcnew System::Windows::Forms::Label());
this->label12 = (gcnew System::Windows::Forms::Label());
this->label13 = (gcnew System::Windows::Forms::Label());
this->label14 = (gcnew System::Windows::Forms::Label());
this->label15 = (gcnew System::Windows::Forms::Label());
this->label16 = (gcnew System::Windows::Forms::Label());
this->label17 = (gcnew System::Windows::Forms::Label());
this->label18 = (gcnew System::Windows::Forms::Label());
this->label19 = (gcnew System::Windows::Forms::Label());
this->label20 = (gcnew System::Windows::Forms::Label());
this->button4 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
//
// textBox1
//
this->textBox1->AccessibleDescription = L"";
this->textBox1->Location = System::Drawing::Point(12, 38);
this->textBox1->Name = L«textBox1»;
this->textBox1->Size = System::Drawing::Size(290, 20);
this->textBox1->TabIndex = 0;
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(12, 90);
this->textBox2->MaxLength = 3;
this->textBox2->Name = L«textBox2»;
this->textBox2->Size = System::Drawing::Size(47, 20);
this->textBox2->TabIndex = 1;
//
// textBox3
//
this->textBox3->Location = System::Drawing::Point(12, 142);
this->textBox3->MaxLength = 3;
this->textBox3->Name = L«textBox3»;
this->textBox3->Size = System::Drawing::Size(47, 20);
this->textBox3->TabIndex = 2;
//
// textBox4
//
this->textBox4->Location = System::Drawing::Point(12, 194);
this->textBox4->MaxLength = 3;
this->textBox4->Name = L«textBox4»;
this->textBox4->Size = System::Drawing::Size(47, 20);
this->textBox4->TabIndex = 3;
//
// textBox5
//
this->textBox5->Location = System::Drawing::Point(142, 90);
this->textBox5->MaxLength = 3;
this->textBox5->Name = L«textBox5»;
this->textBox5->Size = System::Drawing::Size(47, 20);
this->textBox5->TabIndex = 4;
//
// textBox6
//
this->textBox6->Location = System::Drawing::Point(142, 139);
this->textBox6->MaxLength = 3;
this->textBox6->Name = L«textBox6»;
this->textBox6->Size = System::Drawing::Size(47, 20);
this->textBox6->TabIndex = 5;
//
// textBox7
//
this->textBox7->Location = System::Drawing::Point(142, 194);
this->textBox7->MaxLength = 3;
this->textBox7->Name = L«textBox7»;
this->textBox7->Size = System::Drawing::Size(47, 20);
this->textBox7->TabIndex = 6;
//
// textBox8
//
this->textBox8->Location = System::Drawing::Point(271, 90);
this->textBox8->MaxLength = 3;
this->textBox8->Name = L«textBox8»;
this->textBox8->Size = System::Drawing::Size(47, 20);
this->textBox8->TabIndex = 7;
//
// textBox9
//
this->textBox9->Location = System::Drawing::Point(271, 142);
this->textBox9->MaxLength = 3;
this->textBox9->Name = L«textBox9»;
this->textBox9->Size = System::Drawing::Size(47, 20);
this->textBox9->TabIndex = 8;
//
// textBox10
//
this->textBox10->Location = System::Drawing::Point(271, 194);
this->textBox10->MaxLength = 3;
this->textBox10->Name = L«textBox10»;
this->textBox10->Size = System::Drawing::Size(47, 20);
this->textBox10->TabIndex = 9;
//
// textBox11
//
this->textBox11->Location = System::Drawing::Point(418, 106);
this->textBox11->MaxLength = 10;
this->textBox11->Name = L«textBox11»;
this->textBox11->Size = System::Drawing::Size(129, 20);
this->textBox11->TabIndex = 10;
//
// textBox12
//
this->textBox12->Location = System::Drawing::Point(587, 106);
this->textBox12->MaxLength = 10;
this->textBox12->Name = L«textBox12»;
this->textBox12->Size = System::Drawing::Size(129, 20);
this->textBox12->TabIndex = 11;
//
// textBox13
//
this->textBox13->Location = System::Drawing::Point(418, 177);
this->textBox13->MaxLength = 10;
this->textBox13->Name = L«textBox13»;
this->textBox13->Size = System::Drawing::Size(129, 20);
this->textBox13->TabIndex = 12;
//
// textBox14
//
this->textBox14->Location = System::Drawing::Point(587, 177);
this->textBox14->MaxLength = 10;
this->textBox14->Name = L«textBox14»;
this->textBox14->Size = System::Drawing::Size(129, 20);
this->textBox14->TabIndex = 13;
//
// textBox15
//
this->textBox15->Location = System::Drawing::Point(12, 297);
this->textBox15->MaxLength = 10;
this->textBox15->Name = L«textBox15»;
this->textBox15->Size = System::Drawing::Size(129, 20);
this->textBox15->TabIndex = 14;
//
// textBox16
//
this->textBox16->Location = System::Drawing::Point(173, 297);
this->textBox16->MaxLength = 10;
this->textBox16->Name = L«textBox16»;
this->textBox16->Size = System::Drawing::Size(129, 20);
this->textBox16->TabIndex = 15;
//
// button1
//
this->button1->Location = System::Drawing::Point(744, 281);
this->button1->Name = L«button1»;
this->button1->Size = System::Drawing::Size(126, 60);
this->button1->TabIndex = 16;
this->button1->Text = L«Добавить»;
this->button1->UseVisualStyleBackColor = true;
this->button1->Visible = false;
this->button1->Click += gcnew System::EventHandler(this,&Form2::button1_Click);
//
// button2
//
this->button2->Location = System::Drawing::Point(795, 113);
this->button2->Name = L«button2»;
this->button2->Size = System::Drawing::Size(75, 23);
this->button2->TabIndex = 17;
this->button2->Text = L«Отмена»;
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this,&Form2::button2_Click);
//
// button3
//
this->button3->Location = System::Drawing::Point(795, 61);
this->button3->Name = L«button3»;
this->button3->Size = System::Drawing::Size(75, 23);
this->button3->TabIndex = 18;
this->button3->Text = L«Очистить»;
this->button3->UseVisualStyleBackColor = true;
this->button3->Click += gcnew System::EventHandler(this,&Form2::button3_Click);
//
// textBox17
//
this->textBox17->Location = System::Drawing::Point(547, 297);
this->textBox17->MaxLength = 3;
this->textBox17->Name = L«textBox17»;
this->textBox17->Size = System::Drawing::Size(52, 20);
this->textBox17->TabIndex = 19;
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(13, 12);
this->label1->Name = L«label1»;
this->label1->Size = System::Drawing::Size(82, 13);
this->label1->TabIndex = 20;
this->label1->Text = L«ФИОстудента»;
//
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(13, 71);
this->label2->Name = L«label2»;
this->label2->Size = System::Drawing::Size(107, 13);
this->label2->TabIndex = 21;
this->label2->Text = L«1 к.н. задан. % вып.»;
//
// label3
//
this->label3->AutoSize = true;
this->label3->Location = System::Drawing::Point(13, 123);
this->label3->Name = L«label3»;
this->label3->Size = System::Drawing::Size(102, 13);
this->label3->TabIndex = 22;
this->label3->Text = L«1 к.н. факт. % вып.»;
//
// label4
//
this->label4->AutoSize = true;
this->label4->Location = System::Drawing::Point(13, 175);
this->label4->Name = L«label4»;
this->label4->Size = System::Drawing::Size(111, 13);
this->label4->TabIndex = 23;
this->label4->Text = L«контрольнаяоценка»;
//
// label5
//
this->label5->AutoSize = true;
this->label5->Location = System::Drawing::Point(139, 71);
this->label5->Name = L«label5»;
this->label5->Size = System::Drawing::Size(107, 13);
this->label5->TabIndex = 24;
this->label5->Text = L«2 к.н. задан. % вып.»;
//
// label6
//
this->label6->AutoSize = true;
this->label6->Location = System::Drawing::Point(139, 123);
this->label6->Name = L«label6»;
this->label6->Size = System::Drawing::Size(102, 13);
this->label6->TabIndex = 25;
this->label6->Text = L«2 к.н. факт. % вып.»;
//
// label7
//
this->label7->AutoSize = true;
this->label7->Location = System::Drawing::Point(139, 175);
this->label7->Name = L«label7»;
this->label7->Size = System::Drawing::Size(111, 13);
this->label7->TabIndex = 26;
this->label7->Text = L«контрольнаяоценка»;
//
// label8
//
this->label8->AutoSize = true;
this->label8->Location = System::Drawing::Point(268, 71);
this->label8->Name = L«label8»;
this->label8->Size = System::Drawing::Size(107, 13);
this->label8->TabIndex = 27;
this->label8->Text = L«3 к.н. задан. % вып.»;
//
// label9
//
this->label9->AutoSize = true;
this->label9->Location = System::Drawing::Point(268, 123);
this->label9->Name = L«label9»;
this->label9->Size = System::Drawing::Size(102, 13);
this->label9->TabIndex = 28;
this->label9->Text = L«3 к.н. факт. % вып.»;
//
// label10
//
this->label10->AutoSize = true;
this->label10->Location = System::Drawing::Point(268, 175);
this->label10->Name = L«label10»;
this->label10->Size = System::Drawing::Size(111, 13);
this->label10->TabIndex = 29;
this->label10->Text = L«контрольнаяоценка»;
//
// label11
//
this->label11->AutoSize = true;
this->label11->Location = System::Drawing::Point(415, 71);
this->label11->Name = L«label11»;
this->label11->Size = System::Drawing::Size(264, 13);
this->label11->TabIndex= 30;
this->label11->Text= L«Дата сдачи заверш. проекта (работы) на проверку»;
//
// label12
//
this->label12->AutoSize = true;
this->label12->Location = System::Drawing::Point(461, 90);
this->label12->Name = L«label12»;
this->label12->Size = System::Drawing::Size(33, 13);
this->label12->TabIndex = 31;
this->label12->Text = L«План»;
//
// label13
//
this->label13->AutoSize = true;
this->label13->Location = System::Drawing::Point(632, 90);
this->label13->Name = L«label13»;
this->label13->Size = System::Drawing::Size(38, 13);
this->label13->TabIndex = 32;
this->label13->Text = L«Факт.»;
//
// label14
//
this->label14->AutoSize = true;
this->label14->Location = System::Drawing::Point(415, 139);
this->label14->Name = L«label14»;
this->label14->Size = System::Drawing::Size(275, 13);
this->label14->TabIndex= 33;
this->label14->Text= L«Дата выдачи проекта (работы) препод. на доработку»;
//
// label15
//
this->label15->AutoSize = true;
this->label15->Location = System::Drawing::Point(461, 161);
this->label15->Name = L«label15»;
this->label15->Size = System::Drawing::Size(33, 13);
this->label15->TabIndex = 34;
this->label15->Text = L«План»;
//
// label16
//
this->label16->AutoSize = true;
this->label16->Location = System::Drawing::Point(632, 161);
this->label16->Name = L«label16»;
this->label16->Size = System::Drawing::Size(38, 13);
this->label16->TabIndex = 35;
this->label16->Text = L«Факт.»;
//
// label17
//
this->label17->AutoSize = true;
this->label17->Location = System::Drawing::Point(114, 261);
this->label17->Name = L«label17»;
this->label17->Size = System::Drawing::Size(76, 13);
this->label17->TabIndex = 36;
this->label17->Text = L«Датазащиты»;
//
// label18
//
this->label18->AutoSize = true;
this->label18->Location = System::Drawing::Point(50, 281);
this->label18->Name = L«label18»;
this->label18->Size = System::Drawing::Size(33, 13);
this->label18->TabIndex = 37;
this->label18->Text = L«План»;
//
// label19
//
this->label19->AutoSize = true;
this->label19->Location = System::Drawing::Point(212, 281);
this->label19->Name = L«label19»;
this->label19->Size = System::Drawing::Size(38, 13);
this->label19->TabIndex = 38;
this->label19->Text = L«Факт.»;
//
// label20
//
this->label20->AutoSize = true;
this->label20->BackColor = System::Drawing::SystemColors::Control;
this->label20->CausesValidation = false;
this->label20->Location = System::Drawing::Point(527, 261);
this->label20->Name = L«label20»;
this->label20->Size = System::Drawing::Size(97, 13);
this->label20->TabIndex = 39;
this->label20->Text = L«Оценказаработу»;
//
// button4
//
this->button4->Location = System::Drawing::Point(744, 194);
this->button4->Name = L«button4»;
this->button4->Size = System::Drawing::Size(126, 60);
this->button4->TabIndex = 40;
this->button4->Text = L«Проверка»;
this->button4->UseVisualStyleBackColor = true;
this->button4->Click += gcnew System::EventHandler(this,&Form2::button4_Click);
//
// Form2
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(882, 353);
this->Controls->Add(this->button4);
this->Controls->Add(this->label20);
this->Controls->Add(this->label19);
this->Controls->Add(this->label18);
this->Controls->Add(this->label17);
this->Controls->Add(this->label16);
this->Controls->Add(this->label15);
this->Controls->Add(this->label14);
this->Controls->Add(this->label13);
this->Controls->Add(this->label12);
this->Controls->Add(this->label11);
this->Controls->Add(this->label10);
this->Controls->Add(this->label9);
this->Controls->Add(this->label8);
this->Controls->Add(this->label7);
this->Controls->Add(this->label6);
this->Controls->Add(this->label5);
this->Controls->Add(this->label4);
this->Controls->Add(this->label3);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->Controls->Add(this->textBox17);
this->Controls->Add(this->button3);
this->Controls->Add(this->button2);
this->Controls->Add(this->button1);
this->Controls->Add(this->textBox16);
this->Controls->Add(this->textBox15);
this->Controls->Add(this->textBox14);
this->Controls->Add(this->textBox13);
this->Controls->Add(this->textBox12);
this->Controls->Add(this->textBox11);
this->Controls->Add(this->textBox10);
this->Controls->Add(this->textBox9);
this->Controls->Add(this->textBox8);
this->Controls->Add(this->textBox7);
this->Controls->Add(this->textBox6);
this->Controls->Add(this->textBox5);
this->Controls->Add(this->textBox4);
this->Controls->Add(this->textBox3);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->textBox1);
this->HelpButton = true;
this->MaximizeBox = false;
this->MinimizeBox = false;
this->Name = L«Form2»;
this->Text= L«Добавление студента»;
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void button1_Click(System::Object^ sender,System::EventArgs^ e) {
 this->DialogResult=System::Windows::Forms::DialogResult::OK;
this->Close();
 }
private: System::Void button3_Click(System::Object^ sender,System::EventArgs^ e) {
textBox1->Clear();
 textBox2->Clear();
 textBox3->Clear();
 textBox4->Clear();
 textBox5->Clear();
 textBox6->Clear();
 textBox7->Clear();
 textBox8->Clear();
 textBox9->Clear();
 textBox10->Clear();
 textBox11->Clear();
 textBox12->Clear();
 textBox13->Clear();
textBox14->Clear();
 textBox15->Clear();
 textBox16->Clear();
 textBox17->Clear();
 }
private: System::Void button2_Click(System::Object^ sender,System::EventArgs^ e) {
 this->Close();
 }
private: System::Void button4_Click(System::Object^ sender,System::EventArgs^ e) {
 if(textBox1->Text!=""&&textBox2->Text!=""&&textBox3->Text!=""&&textBox4->Text!=""&&textBox5->Text!=""
&&textBox6->Text!=""&&textBox7->Text!=""&&textBox8->Text!=""
&&textBox9->Text!=""&&textBox10->Text!=""&&textBox11->Text!=""
&&textBox12->Text!=""&&textBox13->Text!=""&&textBox14->Text!=""
&&textBox15->Text!=""&&textBox16->Text!=""&&textBox17->Text!=""){
 if(System::Char::IsDigit(textBox2->Text,0)&&System::Char::IsDigit(textBox3->Text,0)&&
 System::Char::IsDigit(textBox4->Text,0)&&System::Char::IsDigit(textBox5->Text,0)&&
 System::Char::IsDigit(textBox6->Text,0)&&System::Char::IsDigit(textBox7->Text,0)&&
 System::Char::IsDigit(textBox8->Text,0)&&System::Char::IsDigit(textBox9->Text,0)&&
 System::Char::IsDigit(textBox10->Text,0)&&System::Char::IsDigit(textBox17->Text,0)){
button1->Visible=true;
 }
 else{
 MessageBox::Show(«Некоторыеполяимеютневерныйформат!»,«Ошибка»,MessageBoxButtons::OK,MessageBoxIcon::Error);
 }
 }
 else{
 MessageBox::Show(«Незаполненынекоторыеполя!»,«Ошибка»,MessageBoxButtons::OK,MessageBoxIcon::Error);
}
 }
};
}
Файл Strart.h. Окно ввода информации об экранекурсового проектирования.
#pragma once
namespace WindowsFormApplicationC {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
///
/// Summary for Start
///
public ref class Start: public System::Windows::Forms::Form
{
public:
Start(void)
{
InitializeComponent();
}
protected:
~Start()
{
if (components)
{
delete components;
}
}
public: System::Windows::Forms::TextBox^ textBox1;
protected:
private: System::Windows::Forms::Button^ button1;
public: System::Windows::Forms::TextBox^ textBox2;
private:
public: System::Windows::Forms::TextBox^ textBox3;
private: System::Windows::Forms::Label^ label1;
public:
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::Label^ label3;
private:
///
/// Required designer variable.
///
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
void InitializeComponent(void)
{
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->button1 = (gcnew System::Windows::Forms::Button());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->textBox3 = (gcnew System::Windows::Forms::TextBox());
this->label1 = (gcnew System::Windows::Forms::Label());
this->label2 = (gcnew System::Windows::Forms::Label());
this->label3 = (gcnew System::Windows::Forms::Label());
this->SuspendLayout();
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(12, 34);
this->textBox1->Name = L«textBox1»;
this->textBox1->Size = System::Drawing::Size(508, 20);
this->textBox1->TabIndex = 0;
//
// button1
//
this->button1->AutoEllipsis = true;
this->button1->Location = System::Drawing::Point(445, 172);
this->button1->Name = L«button1»;
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 1;
this->button1->Text = L«OK»;
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this,&Start::button1_Click);
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(12, 82);
this->textBox2->Name = L«textBox2»;
this->textBox2->Size = System::Drawing::Size(508, 20);
this->textBox2->TabIndex = 2;
//
// textBox3
//
this->textBox3->Location = System::Drawing::Point(12, 130);
this->textBox3->Name = L«textBox3»;
this->textBox3->Size = System::Drawing::Size(173, 20);
this->textBox3->TabIndex = 3;
//
// label1
//
this->label1->AutoSize = true;
this->label1->Font = (gcnew System::Drawing::Font(L«Times NewRoman», 14.25F, System::Drawing::FontStyle::Regular,System::Drawing::GraphicsUnit::Point,
static_cast(204)));
this->label1->Location = System::Drawing::Point(8, 105);
this->label1->Name = L«label1»;
this->label1->Size = System::Drawing::Size(156, 21);
this->label1->TabIndex = 4;
this->label1->Text = L«Датаутверждения»;
//
// label2
//
this->label2->AutoSize = true;
this->label2->Font = (gcnew System::Drawing::Font(L«Times NewRoman», 14.25F, System::Drawing::FontStyle::Regular,System::Drawing::GraphicsUnit::Point,
static_cast(204)));
this->label2->Location = System::Drawing::Point(8, 57);
this->label2->Name = L«label2»;
this->label2->Size = System::Drawing::Size(235, 21);
this->label2->TabIndex = 5;
this->label2->Text = L«Составприемнойкомиссии»;
//
// label3
//
this->label3->AutoSize = true;
this->label3->Font = (gcnew System::Drawing::Font(L«Times NewRoman», 14.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast(204)));
this->label3->Location = System::Drawing::Point(8, 9);
this->label3->Name = L«label3»;
this->label3->Size = System::Drawing::Size(222, 21);
this->label3->TabIndex = 6;
this->label3->Text = L«Названиекурсовоголиста»;
//
// Start
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(532, 207);
this->ControlBox = false;
this->Controls->Add(this->label3);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->Controls->Add(this->textBox3);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->button1);
this->Controls->Add(this->textBox1);
this->MaximizeBox = false;
this->MaximumSize = System::Drawing::Size(548, 245);
this->MinimizeBox = false;
this->MinimumSize = System::Drawing::Size(548, 245);
this->Name= L«Start»;
this->Text= L«Введите название курсового листа»;
this->Load += gcnew System::EventHandler(this,&Start::Start_Load);
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void button1_Click(System::Object^ sender,System::EventArgs^ e) {
 Int32 flag=0;
 if(textBox1->Text!=""){
 flag++;
 }
 else{
 MessageBox::Show(«Введитеназваниекурсовоголиста!»,«Ошибка!»,MessageBoxButtons::OK,MessageBoxIcon::Error);
 }
 if(textBox2->Text!=""){
 flag++;
 }
 else{
 MessageBox::Show(«Введитесоставприемнойкомиссии!»,«Ошибка!»,MessageBoxButtons::OK,MessageBoxIcon::Error);
 }
 if(textBox3->Text!=""){
 flag++;
 }
 else{
 MessageBox::Show(«Введитедатуутверждениякурсовоголиста!»,«Ошибка!»,MessageBoxButtons::OK,MessageBoxIcon::Error);
 }
 if(flag==3){
 this->DialogResult=System::Windows::Forms::DialogResult::OK;
 this->Close();
 }
 }
private: System::Void Start_Load(System::Object^ sender,System::EventArgs^ e) {
 }
};
}
Файл Search.h. Окнопоиска.
#pragma once
namespace WindowsFormApplicationC {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
public ref class Search: public System::Windows::Forms::Form
{
public:
Search(void)
{
InitializeComponent();
}
protected:
~Search()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
protected:
private: System::Windows::Forms::Button^ button2;
public: System::Windows::Forms::TextBox^ textBox1;
public:
private:
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->button2 = (gcnew System::Windows::Forms::Button());
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->SuspendLayout();
//
// button1
//
this->button1->Location = System::Drawing::Point(12, 147);
this->button1->Name = L«button1»;
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 0;
this->button1->Text = L«Поиск»;
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this,&Search::button1_Click);
//
// button2
//
this->button2->Location = System::Drawing::Point(297, 147);
this->button2->Name = L«button2»;
this->button2->Size = System::Drawing::Size(75, 23);
this->button2->TabIndex = 1;
this->button2->Text = L«Отмена»;
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this,&Search::button2_Click);
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(12, 61);
this->textBox1->Name = L«textBox1»;
this->textBox1->Size = System::Drawing::Size(360, 20);
this->textBox1->TabIndex = 2;
//
// Search
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(384, 182);
this->ControlBox = false;
this->Controls->Add(this->textBox1);
this->Controls->Add(this->button2);
this->Controls->Add(this->button1);
this->MaximumSize = System::Drawing::Size(400, 220);
this->MinimumSize = System::Drawing::Size(400, 220);
this->Name = L«Search»;
this->Text = L«Поиск»;
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void button2_Click(System::Object^ sender,System::EventArgs^ e) {
 this->Close();
 }
private: System::Void button1_Click(System::Object^ sender,System::EventArgs^ e) {
 if(textBox1->Text!=""){
 this->DialogResult=System::Windows::Forms::DialogResult::OK;
 this->Close();
 }
 else{
 MessageBox::Show(«Введитеинформациюдляпоиска!»,«Ошибка!»,MessageBoxButtons::OK,MessageBoxIcon::Error);
 }
 }
};
}
Файл WindowsFormApplicationC++.cpp
#include «stdafx.h»
#include «Form1.h»
using namespace WindowsFormApplicationC;
[STAThreadAttribute]
int main(array ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Application::Run(gcnew Form1());
return 0;
}


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.