Курсовая работа: Структура иерархии классов "Экран курсового проектирования"
Рассмотрим процедуру добавления записи в 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<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.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11