|
Курсовая работа: Структура иерархии классов "Экран курсового проектирования"Запросискомойинформации: 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<CountDataGrid; i++){//циклповсемстрокамтаблицы for(int j=0; j<dataGridView1->ColumnCount; 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 главнойформы … } } Полная реализация данной процедуры представлена в приложении В. Конечным этапом создания программного продукта является его тестирование и отладка. В ходе тестирования программы выявляются все ее недостатки и особенности работы. Обнаруженные недостатки устраняются в ходе отладки. В результате было создано тестирующее приложение(рисунок 2), в котором реализована структура иерархии классов, а также различные функции. А именно: - Создание экземпляров классов; - Добавление, удаление, редактирование и поиск данных; - Работа с экземплярами классов через визуальные компоненты. Рисунок 2 – Тестирующее приложение. Главное окно. Рисунок 3 – Тестирующее приложение. Добавление/редактирование. иерархия класс программирование Рисунок 4 – Тестирующее приложение. Окно поиска. Результат тестирования: в ходе тестирования программы недостатков, влияющих на правильную работу приложения, не выявлено. Листинг тестирующего приложения предложен в Приложении В. Данная программа тестировалась на компьютере следующей конфигурации: 1. ТипЦП DualCore AMD Athlon 64 X2, 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; - .NET Framework версии 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 /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> void InitializeComponent(void) { System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle2 = (gcnew System::Windows::Forms::DataGridViewCellStyle()); this->dataGridView1 = (gcnew System::Windows::Forms::DataGridView()); this->Column1 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column2 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column3 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column4 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column5 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column6 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column7 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column8 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column9 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column10 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column11 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column12 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column13 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column14 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column15 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column16 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->Column17 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip()); this->fileToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->exitToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->helpToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->aboutToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->aboutToolStripMenuItem1 = (gcnew System::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<System::ComponentModel::ISupportInitialize^ >(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>((((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< System::Windows::Forms::DataGridViewColumn^ >(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 = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, static_cast<System::Byte>(204))); dataGridViewCellStyle2->ForeColor = System::Drawing::SystemColors::ControlText; dataGridViewCellStyle2->SelectionBackColor = System::Drawing::Color::FromArgb(static_cast<System::Int32>(static_cast<System::Byte>(128)), static_cast<System::Int32>(static_cast<System::Byte>(128)), static_cast<System::Int32>(static_cast<System::Byte>(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<System::Int32>(static_cast<System::Byte>(224)), static_cast<System::Int32>(static_cast<System::Byte>(224)), static_cast<System::Int32>(static_cast<System::Byte>(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"; |
|
|||||||||||||||||||||||||||||||
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |