Разработка программного комплекса
Разработка системы управления базой данных на языке программирования VС++. Составление исходного кода программного обеспечения. Описание его функциональных возможностей и действий по оперированию. Определение основных алгоритмов и режимов работы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 21.05.2015 |
Размер файла | 167,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ
КУРСОВАЯ РАБОТА
По дисциплине "Языки программирования"
2014
СОДЕРЖАНИЕ
Введение
1. Разработка приложения
1.1 Получение требований
1.2 Разработка соответствующей формы исполнения
1.3 Описание функциональных возможностей
1.4 Руководство к действию для системного программиста
1.5 Руководство к действию для оператора
1.6 Возможные неполадки
1.7 Алгоритмы приложений
2. Листинг исходных кодов
3. Проверочные данные и скриншоты
Выводы
ВВЕДЕНИЕ
В ходе выполнения курсовой работы было получено техническое задание на исполнение программного продукта для ЭВМ, управляемых ОС Windows. В задании указывались требования к этому продукту, исполняющие требования одного задания на курсовую работу. Программные продукты должны были быть выполнены на языке программирования VС++.
Техническое задание было сформулировано чётко, что позволило начать работу в кратчайшие сроки. Заданием была определена форма исполнения приложения, удовлетворяющая требованиям, предъявляемым к курсовой работе (далее ПО).
ПО должно было быть исполнено в форме экранного приложения на элементах OS Windows. При этом ПО должно запускаться без проблем и нести в себе возможность вводить входные данные вручную, чтобы исследовать все режимы работы программы, включая нештатные ситуации.
Были определены основные алгоритмы и режимы работы, однако ввиду оконного режима этого приложения и объектной модели, применена текстовая запись для их описания.
Был составлен исходный код ПО. Соответствующим образом была настроена среда разработки программного обеспечения для ЭВМ («VS2013»), после чего были произведены пусконаладочные работы и определены основные режимы работы ПО.
Была реализована в ПО, где возникла необходимость, возможность вывести в текстовом виде исходящие данные для документирования результатов работы программ.
Была составлена пояснительная записка и оформлена курсовая работа.
Работа по исполнению требований к курсовому проекту завершена.
1. РАЗРАБОТКА ПРИЛОЖЕНИЯ
1.1 Получение требований
Были получены требования на программный продукт для ЭВМ под управлением ОС «Windows».
Продукт должен представлять собою систему управления базой данных (далее СУБД), основанной на файлах, учащихся некого ВУЗа, где была бы возможность управлять списком учеников, редактировать их оценки в сессиях и распечатывать список учеников по их успеваемости по выбранной сессии.
1.2 Разработка соответствующей формы исполнения
При разработке формы исполнения учитывался тот факт, что все приложения должны соответствовать требованиям, предъявляемым к ним методическим указаниям к курсовой работе и общим стандартам выполнения интерфейсов ОС Windows, а также функциональным ограничениям среды MVS2013.
Интерфейс изделия получил внешний вид в форме окна изменяемых размеров, в котором находятся:
Дерево данных учеников
Кнопка добавления ученика
Кнопка добавления сессии
Кнопка добавления предмета
Контекст-сенситивная кнопка удаления
Кнопка вывода отчёта
Текстовое поле для ввода номера сессии для отчёта
Текстовое поле для вывода отчёта
Диалог сохранения
Диалог открытия
На данном этапе разработка вида исполнения была закончена, началась разработка стандартных алгоритмов работы приложения.
Были определены основные функции, которые исполняются приложениями.
1.3 Описание функциональных возможностей ПО
Ниже будут перечислены по порядку основные функции ПО, которые имеют соответствующие программы.
Изделие №1:
Ввод информации в добавленные узлы дерева, их удаление.
Сохранение и открытие данных.
Просмотр всей базы данных или создание отчёта по успеваемости
Просмотр учащихся.
Удаление учащихся.
Добавление учащегося с атрибутами имени (не может быть пустым), даты рождения и поступления, номером зачётки и группой (не могут быть пусты), факультетом.
Изменение всех этих атрибутов.
Просмотр списка оценок.
Добавление предмета с указанием названия (не может быть пустым), семестра, типа и оценки.
Удаление предмета.
Просмотр списка отличников.
Печать списка отличников.
Изделие №6:
Функции, идентичные изделию №5, за исключением изменений: в атрибутах учащегося отсутствует курс, группа, результаты ЕГЭ и присутствует знак «Нуждается в общежитии», который можно поставить либо убрать. Отсутствует список отличников, присутствует список проваливших хотя бы один посещённый экзамен.
Добавленные функции:
Сохранение базы данных.
Редактирование базы данных.
Открытие базы данных.
Сохранение базы данных под другим именем и по другому пути.
1.4 Руководство системного программиста
Данная программа распространяется на компактном оптическом диске формата CD. На диске размещена электронная версия пояснительной записки, включая данное руководство, и папка с исходными кодами программы и с их рабочими файлами. Также есть копия примерной базы данных для программного продукта.
Действия по установке:
Скопировать каталоги в созданную для них папку в каталоге Program Files или таком, который необходим для работы.
Создать ярлыки на рабочем столе или в группах меню «Пуск», если в этом есть необходимость. Назначить клавиши быстрого вызова, если есть необходимость.
Действия по обслуживанию:
Дополнительных действий по техобслуживанию ПО не требуется. Для изделия требуется свободное место на диске, равное объёму базы данных.
Действия по удалению программных продуктов:
Удалить все ярлыки, ссылающиеся на эти файлы.
При необходимости, удалить файл базы данных задания.
Удалить файлы.
Удалить каталог от приложений.
1.5 Руководство оператора
Действия по оперированию с проектом:
Запустить программу.
Выбрать нужный файл посредством операций с диалогом открытия. При отсутствии файла нажать Отмена.
При нажатии Отмена выбрать место для сохранения, нажать ОК.
Убедиться, что в заголовке возникшего на экране в результате Ваших действий окна написано «Карточка студента».
Ознакомиться с элементами управления.
Нажать «Добавить студента».
Ознакомиться с элементами дерева, которые были добавлены.
Ввести нужные данные в узлы посредством их редактирования.
Нажать «Добавить сессию» необходимое количество раз.
Добавить предметы в нужном количестве, отредактировать их данные.
Ознакомиться с результатом своих действий. При необходимости повторить процедуру, начиная с п. 5.
При необходимости удаления щёлкнуть по ряду с нужной записью и нажать «Удалить».
При необходимости распечатать или просмотреть список отличников нажать на кнопку «Сформировать», введя номер сессии.
Ознакомиться со списком.
При отсутствии рекомендаций к дальнейшей работе произвести выход из окна программы двойным щелчком по системной иконке или одинарным щелчком по кнопке с диагональным крестом в верхнем правом углу окна.
1.6 Возможные неполадки и их исправление
Предусмотренные программой ограничения. Следовать инструкциям.
Ошибки доступа к файлам - ознакомиться с инструкцией к файловой системе, убедиться в правах доступа и наличии или отсутствии требуемого файла.
В общем про возможные неполадки:
Большинство неполадок связаны с ограничениями самой программы, системы, компьютера или пользователя. Все узкие места кода защищены. Убедитесь, что Вы прочитали руководство пользователя и используете ПО по назначению.
база программирование алгоритм функциональный
2. ЛИСТИНГ ИСХОДНЫХ КОДОВ
#pragma once
namespace filesystem {
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 std;
/// <summary>
/// Сводка для Form1
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: добавьте код конструктора
//
}
protected:
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
protected:
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::Button^ button5;
private: System::Windows::Forms::Button^ button6;
private: System::Windows::Forms::Button^ button9;
private: System::Windows::Forms::Button^ button1;
private: System::String^ filename;
private: System::Windows::Forms::TreeView^ treeView1;
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::TextBox^ textBox2;
private:
/// <summary>
/// Требуется переменная конструктора.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Обязательный метод для поддержки конструктора - не изменяйте
/// содержимое данного метода при помощи редактора кода.
/// </summary>
void InitializeComponent(void)
{
this->button2 = (gcnew System::Windows::Forms::Button());
this->button5 = (gcnew System::Windows::Forms::Button());
this->button6 = (gcnew System::Windows::Forms::Button());
this->button9 = (gcnew System::Windows::Forms::Button());
this->button1 = (gcnew System::Windows::Forms::Button());
this->treeView1 = (gcnew System::Windows::Forms::TreeView());
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->SuspendLayout();
//
// button2
//
this->button2->Enabled = false;
this->button2->Location = System::Drawing::Point(111, 12);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(86, 23);
this->button2->TabIndex = 7;
this->button2->Text = L"Новая сессия";
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this, &Form1::button2_Click);
//
// button5
//
this->button5->Enabled = false;
this->button5->Location = System::Drawing::Point(203, 12);
this->button5->Name = L"button5";
this->button5->Size = System::Drawing::Size(95, 23);
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->Location = System::Drawing::Point(12, 12);
this->button6->Name = L"button6";
this->button6->Size = System::Drawing::Size(93, 23);
this->button6->TabIndex = 12;
this->button6->Text = L"Новый студент";
this->button6->UseVisualStyleBackColor = true;
this->button6->Click += gcnew System::EventHandler(this, &Form1::button6_Click);
//
// button9
//
this->button9->Location = System::Drawing::Point(368, 12);
this->button9->Name = L"button9";
this->button9->Size = System::Drawing::Size(109, 23);
this->button9->TabIndex = 15;
this->button9->Text = L"Вывести список";
this->button9->UseVisualStyleBackColor = true;
this->button9->Click += gcnew System::EventHandler(this, &Form1::button9_Click);
//
// button1
//
this->button1->Enabled = false;
this->button1->Location = System::Drawing::Point(304, 12);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(58, 23);
this->button1->TabIndex = 18;
this->button1->Text = L"Удалить";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click_2);
//
// treeView1
//
this->treeView1->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->treeView1->HideSelection = false;
this->treeView1->LabelEdit = true;
this->treeView1->Location = System::Drawing::Point(12, 41);
this->treeView1->Name = L"treeView1";
this->treeView1->PathSeparator = L"::";
this->treeView1->Size = System::Drawing::Size(465, 125);
this->treeView1->TabIndex = 19;
this->treeView1->BeforeLabelEdit += gcnew System::Windows::Forms::NodeLabelEditEventHandler(this, &Form1::treeView1_BeforeLabelEdit);
this->treeView1->AfterLabelEdit += gcnew System::Windows::Forms::NodeLabelEditEventHandler(this, &Form1::treeView1_AfterLabelEdit);
this->treeView1->AfterSelect += gcnew System::Windows::Forms::TreeViewEventHandler(this, &Form1::treeView1_AfterSelect);
//
// textBox1
//
this->textBox1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left)
| System::Windows::Forms::AnchorStyles::Right));
this->textBox1->Location = System::Drawing::Point(12, 198);
this->textBox1->Multiline = true;
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(465, 87);
this->textBox1->TabIndex = 20;
//
// textBox2
//
this->textBox2->Anchor = static_cast<System::Windows::Forms::AnchorStyles>(((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left)
| System::Windows::Forms::AnchorStyles::Right));
this->textBox2->Location = System::Drawing::Point(12, 172);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(465, 20);
this->textBox2->TabIndex = 21;
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(489, 297);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->textBox1);
this->Controls->Add(this->treeView1);
this->Controls->Add(this->button1);
this->Controls->Add(this->button9);
this->Controls->Add(this->button6);
this->Controls->Add(this->button5);
this->Controls->Add(this->button2);
this->MinimumSize = System::Drawing::Size(505, 336);
this->Name = L"Form1";
this->Text = L"Карточка студента";
this->FormClosing += gcnew System::Windows::Forms::FormClosingEventHandler(this, &Form1::Form1_FormClosing);
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
OpenFileDialog^ ofd= gcnew OpenFileDialog;
ofd->Filter = "*.xml|*.xml|*.txt|*.txt|*.*|*.*";
if (ofd->ShowDialog()==System::Windows::Forms::DialogResult::OK){
filename = ofd->FileName;
String^ StrIn = System::IO::File::ReadAllText(filename, System::Text::Encoding::Default);
array<String^> ^ rty = StrIn->Split(gcnew array<Char>{ Convert::ToChar(";") }, StringSplitOptions::RemoveEmptyEntries);
for (int a = 0; a < rty->Length; a++){
array<String^>^Data = rty[a]->Split(gcnew array<Char>{ Convert::ToChar(",") }, StringSplitOptions::RemoveEmptyEntries);
treeView1->Nodes->Add("");
treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Add(Data[0]->Trim());
treeView1->Nodes[treeView1->Nodes->Count - 1]->Text = Data[0]->Trim();
treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Add(Data[1]->Trim());
treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Add(Data[2]->Trim());
treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Add(Data[3]->Trim());
treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Add(Data[4]->Trim());
treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Add(Data[5]->Trim());
if (Data->Length>6){
array<String^>^ Sessions = Data[6]->Split(gcnew array<Char>{Convert::ToChar(".")}, StringSplitOptions::RemoveEmptyEntries);
for (int b = 0; b < Sessions->Length; b++){
treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Add("Сессия " + Convert::ToString(treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Count - 5));
array<String^>^ Tasks = Sessions[b]->Split(gcnew array<Char>{Convert::ToChar("!")}, StringSplitOptions::RemoveEmptyEntries);
for (int c = 0; c < Tasks->Length; c++){
array<String^>^RTD = Tasks[c]->Split(gcnew array<Char>{Convert::ToChar(":")}, StringSplitOptions::RemoveEmptyEntries);
TreeNode ^tt = treeView1->Nodes[treeView1->Nodes->Count - 1];
TreeNode ^ts = tt->Nodes[tt->Nodes->Count - 1];
ts->Nodes->Add("");
TreeNode ^tk = ts->Nodes[ts->Nodes->Count - 1];
tk->Text = RTD[0] + ", " + RTD[1];
tk->Nodes->Add(RTD[0]);
tk->Nodes->Add(RTD[1]);
}
}
}
}
BringToFront();
if (treeView1->Nodes->Count > 0){ button1->Enabled = true; button2->Enabled = true; }
}
else{
SaveFileDialog^ sfd;
sfd = gcnew SaveFileDialog;
sfd->Filter = "*.xml|*.xml";
if (sfd->ShowDialog() == System::Windows::Forms::DialogResult::OK){
filename = sfd->FileName;
BringToFront();
}
else{
MessageBox::Show("Не предъявлен файл с базой данных! Подключение провалено!");
Close();
}
}
}
private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) {
button2->Enabled = true;
button1->Enabled = true;
treeView1->Nodes->Add( "Иванов Иван Иванович");
treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Add("Иванов Иван Иванович");
treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Add("КБ-3");
treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Add( "09.05.2015");
treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Add( "2015");
treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Add( "КБ-3з2014");
treeView1->Nodes[treeView1->Nodes->Count - 1]->Nodes->Add("ИТ6з142000");
treeView1->SelectedNode = treeView1->Nodes[treeView1->Nodes->Count - 1];
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
if (treeView1->SelectedNode->Level == 0){
if (treeView1->SelectedNode->Nodes->Count < 15){
treeView1->SelectedNode->Nodes->Add("Сессия " + Convert::ToString(treeView1->SelectedNode->Nodes->Count - 5));
}
}
else if (treeView1->SelectedNode->Level == 1){
if (treeView1->SelectedNode->Parent->Nodes->Count < 15){
treeView1->SelectedNode->Parent->Nodes->Add("Сессия " + Convert::ToString(treeView1->SelectedNode->Parent->Nodes->Count - 5));
}
}
}
private: System::Void Form1_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
String^ strout="";
for (int a = 0; a<treeView1->Nodes->Count; a++){
strout = strout + treeView1->Nodes[a]->Nodes[0]->Text+",";
strout = strout + treeView1->Nodes[a]->Nodes[1]->Text + ",";
strout = strout + treeView1->Nodes[a]->Nodes[2]->Text + ",";
strout = strout + treeView1->Nodes[a]->Nodes[3]->Text + ",";
strout = strout + treeView1->Nodes[a]->Nodes[4]->Text + ",";
strout = strout + treeView1->Nodes[a]->Nodes[5]->Text + ",";
for (int b = 6; b < treeView1->Nodes[a]->Nodes->Count; b++){
for (int c = 0; c < treeView1->Nodes[a]->Nodes[b]->Nodes->Count; c++){
strout = strout + treeView1->Nodes[a]->Nodes[b]->Nodes[c]->Nodes[0]->Text + ":" + treeView1->Nodes[a]->Nodes[b]->Nodes[c]->Nodes[1]->Text+"!";
}
strout = strout + ".";
}
strout = strout + ";";
}
System::IO::File::WriteAllText(filename, strout, System::Text::Encoding::Default);
}
private: System::Void treeView1_BeforeLabelEdit(System::Object^ sender, System::Windows::Forms::NodeLabelEditEventArgs^ e) {
if (e->Node->Level==0||e->Node->Level==2||(e->Node->Level==1&&e->Node->Index>5)){
e->CancelEdit = true;
}
}
private: System::Void button1_Click_2(System::Object^ sender, System::EventArgs^ e) {
if (treeView1->SelectedNode->Level == 3){
treeView1->SelectedNode->Parent->Remove();
treeView1->SelectedNode = treeView1->Nodes[0];
}
else if (treeView1->SelectedNode->Level == 2){
treeView1->SelectedNode->Remove();
treeView1->SelectedNode = treeView1->Nodes[0];
}
else if (treeView1->SelectedNode->Level == 1&&treeView1->SelectedNode->Index>5){
if (MessageBox::Show("Вы точно хотите удалить сессию со всеми предметами и оценками?", "Подтверждение удаления", MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes){
treeView1->SelectedNode->Remove();
treeView1->SelectedNode = treeView1->Nodes[0];
}
}
else if (treeView1->SelectedNode->Level == 1 && treeView1->SelectedNode->Index<6){
if (MessageBox::Show("Вы точно хотите удалить студента со всеми данными, сессиями, предметами и оценками?", "Подтверждение удаления", MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes){
treeView1->SelectedNode->Parent->Remove();
if (treeView1->Nodes->Count>0){
treeView1->SelectedNode = treeView1->Nodes[0];
}
else{ button1->Enabled = false; button2->Enabled = false; }
}
}
else if (treeView1->SelectedNode->Level == 0){
if (MessageBox::Show("Вы точно хотите удалить студента со всеми данными, сессиями, предметами и оценками?", "Подтверждение удаления", MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes){
treeView1->SelectedNode->Remove();
if (treeView1->Nodes->Count>0){
treeView1->SelectedNode = treeView1->Nodes[0];
}
else{ button1->Enabled = false; button2->Enabled = false; }
}
}
}
private: System::Void treeView1_AfterSelect(System::Object^ sender, System::Windows::Forms::TreeViewEventArgs^ e) {
try{
if ((treeView1->SelectedNode->Level == 1 && treeView1->SelectedNode->Index>5) || treeView1->SelectedNode->Level > 1){
button5->Enabled = true;
}
else{
button5->Enabled = false;
}
}
catch (Exception^ ex){
}
}
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {
if (treeView1->SelectedNode->Level == 1){
treeView1->SelectedNode->Nodes->Add( "Новый предмет, 5");
treeView1->SelectedNode->Nodes[treeView1->SelectedNode->Nodes->Count-1]->Nodes->Add("Новый предмет");
treeView1->SelectedNode->Nodes[treeView1->SelectedNode->Nodes->Count - 1]->Nodes->Add("5");
}
else if (treeView1->SelectedNode->Level == 2){
treeView1->SelectedNode->Parent->Nodes->Add("Новый предмет, 5");
treeView1->SelectedNode->Parent->Nodes[treeView1->SelectedNode->Parent->Nodes->Count - 1]->Nodes->Add("Новый предмет");
treeView1->SelectedNode->Parent->Nodes[treeView1->SelectedNode->Parent->Nodes->Count - 1]->Nodes->Add("5");
}
else if (treeView1->SelectedNode->Level == 3){
treeView1->SelectedNode->Parent->Parent->Nodes->Add("Новый предмет, 5");
treeView1->SelectedNode->Parent->Parent->Nodes[treeView1->SelectedNode->Parent->Parent->Nodes->Count - 1]->Nodes->Add("Новый предмет");
treeView1->SelectedNode->Parent->Parent->Nodes[treeView1->SelectedNode->Parent->Parent->Nodes->Count - 1]->Nodes->Add("5");
}
}
private: System::Void treeView1_AfterLabelEdit(System::Object^ sender, System::Windows::Forms::NodeLabelEditEventArgs^ e) {
if (e->Node->Level == 3 && e->Node->Index == 0){
e->Node->Parent->Text = e->Label + ", " + e->Node->Parent->Nodes[1]->Text;
}
else if (e->Node->Level == 3 && e->Node->Index == 1){
try{
e->Node->Parent->Text = e->Node->Parent->Nodes[0]->Text + ", " +Convert::ToString(Convert::ToInt32( e->Label));
}
catch (Exception^ exc){
MessageBox::Show(exc->Message);
e->CancelEdit = true;
}
}
else if (e->Node->Level == 1&&e->Node->Index==2){
try{
DateTime^ Dummy = Convert::ToDateTime(e->Label);
}
catch (Exception^ exc){
MessageBox::Show(exc->Message);
e->CancelEdit = true;
}
}
else if (e->Node->Level == 1 && e->Node->Index == 3){
try{
Int32^ Dummy = Convert::ToInt32(e->Label);
}
catch (Exception^ exc){
MessageBox::Show(exc->Message);
e->CancelEdit = true;
}
}
}
private: System::Void button9_Click(System::Object^ sender, System::EventArgs^ e) {
int sdd = 0;
try{
textBox1->Text = "";
sdd = Convert::ToInt32(textBox2->Text);
array<String^>^ mark_students = gcnew array<String^>(200);
int mark_students_L = 0;
for (int x = 0; x < treeView1->Nodes->Count; x++){
if (treeView1->Nodes[x]->Nodes->Count>=sdd+6){
int marks = 0;
int marks_L = 0;
for (int y = 0; y < treeView1->Nodes[x]->Nodes[sdd + 5]->Nodes->Count; y++){
array<String^>^ RTD = treeView1->Nodes[x]->Nodes[sdd + 5]->Nodes[y]->Text->Split(gcnew array<Char> {Convert::ToChar(",")}, StringSplitOptions::RemoveEmptyEntries);
marks += Convert::ToInt32(RTD[1]->Trim());
marks_L++;
}
marks = marks / marks_L;
mark_students[mark_students_L] = treeView1->Nodes[x]->Nodes[0]->Text+","+marks;
mark_students_L++;
}
}
int maximum = 0;
String^ Max = "";
int i, j, pos;
String^ tmp;
for (i = 0; i < mark_students_L; ++i)
{
pos = i;
tmp = mark_students[i];
for (j = i + 1; j < mark_students_L; ++j)
{
array<String^>^ RTD = mark_students[j]->Split(gcnew array<Char> {Convert::ToChar(",")});
array<String^>^ RTDr = tmp->Split(gcnew array<Char> {Convert::ToChar(",")});
if (Convert::ToInt32(RTD[1]) > Convert::ToInt32(RTDr[1]))
{
pos = j;
tmp = mark_students[j];
}
}
mark_students[pos] = mark_students[i];
mark_students[i] = tmp;
textBox1->Text += mark_students[i] + "\r\n";
}
}
catch (Exception^ ex){
MessageBox::Show(ex->Message);
}
}
};
}
3. ПРОВЕРОЧНЫЕ ДАННЫЕ И СКРИНШОТЫ
Рисунок 1. Скриншот окна программы.
Рисунок 2. База данных в текстовом виде
ВЫВОДЫ
Был разработан программный комплекс. Это приложение осуществляет самые разнообразные функции, и количество этих функций таково, что полностью удовлетворяет требованиям, представленным к курсовой работе.
Функциональные возможности ПО, описанные в разделе 2. 3., полностью соответствуют заявленным функциям и требованиям, предъявляемым к приложениям-составляющим курсовой работы.
Интерфейс такого ПО полностью соответствует ключевым понятиям Windows GUI Engineering, что позволяет пользователю максимально просто управляться с программой.
Руководство оператора полно и всеобъемлюще показывает основные действия, необходимые для работы с ПО и закрывает все неоднозначности, которые могут появиться при виде интерфейса программ.
Руководство системного администратора позволяет максимально быстро развернуть рабочее место.
Формат базы данных, используемый в задании, является, во-первых, уникальным, а во-вторых, интуитивно понятным, что позволяет делать другие opensource-альтернативы базы данных учеников.
Размещено на Allbest.ru
...Подобные документы
Порядок автоматизации расчетов себестоимости и длительности программного обеспечения производственного предприятия. Выбор языка программирования и системы управления базами данных. Разработка алгоритмов расчета себестоимости программного обеспечения.
дипломная работа [1,7 M], добавлен 13.06.2017Реализация линейных списков в языке программирования C++. Основные операции при работе с ними. Разработка интерфейса и алгоритмов. Описание работы программы на псевдокоде. Составление программного кода. Тестирование, отладка и результат работы программы.
курсовая работа [1,1 M], добавлен 07.01.2014Анализ характеристик объекта компьютеризации. Разработка структур данных, алгоритмов и программного обеспечения системы управления базой данных. Особенности синтеза структур данных. Разработка алгоритмов системы и оценка результатов тестирования.
курсовая работа [37,0 K], добавлен 07.12.2010Обоснование необходимости систем управления базами данных на предприятиях. Особенности разработки программного обеспечения по управлению базой данных, обеспечивающего просмотр, редактирование, вставку записей базы данных, формирование запросов и отчетов.
курсовая работа [1,5 M], добавлен 23.01.2010Исследование принципов объектно-ориентированного программирования на базе языка программирования С++. Разработка программного комплекса для ведения учёта памятников города. Описание процессов сортировки, поиска, формирования статистики по памятникам.
курсовая работа [782,4 K], добавлен 26.05.2014Разработка программного приложения WindowsForms для работы с базой данных на языке высокого уровня C# в автономном режиме с использованием ADO.NET. Проектирование реляционной модели базы данных, интерфейса приложения, основных функций и возможностей.
курсовая работа [4,3 M], добавлен 30.06.2015Обоснование выбора языка программирования. Анализ входных и выходных документов. Логическая структура базы данных. Разработка алгоритма работы программы. Написание программного кода. Тестирование программного продукта. Стоимость программного продукта.
дипломная работа [1008,9 K], добавлен 13.10.2013Разработка программного комплекса и описание алгоритма. Разработка пользовательского интерфейса. Анализ тестовых испытаний программного блока. Защита пользователей от воздействия на них опасных и вредных факторов. Режимы работы программного комплекса.
дипломная работа [1,7 M], добавлен 14.03.2013Разработка программного обеспечения для управления базой данных. Место задачи в системе автоматизации. Семантическое моделирование данных. Разработка программного обеспечения и базы данных. Расчет трудоемкости и себестоимости этапов проектирования.
дипломная работа [2,9 M], добавлен 04.02.2016Характеристика объектно-ориентированного, процедурного, функционального программирования. Выбор языка программирования для создания программного обеспечения для управления справочником "Спортсмены". Алгоритм работы приложения, пользовательский интерфейс.
курсовая работа [1,6 M], добавлен 23.02.2016Принципы автоматизации делопроизводства. Общие понятия документооборота. Проектирование программного обеспечения. Стадии и этапы создания информационных систем, средства их разработки. Анализ алгоритмов работы с базой данных, разработка интерфейса.
дипломная работа [3,4 M], добавлен 07.11.2015Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Отладка программных модулей с использованием специализированных программных средств. Тестирование программного обеспечения. Оптимизация программного кода.
курсовая работа [974,0 K], добавлен 21.12.2016Разработка программного обеспечения для работы с информацией и ее обработкой на языке программирования Delphi. Описание алгоритмов процедуры работы со стеком - добавление, удаление элементов, редактирование записи. Инструкция по использованию программы.
курсовая работа [2,9 M], добавлен 06.02.2013Изучение возможностей среды программирования delphi при разработке приложения с визуальным интерфейсом. Отладка программных модулей с использованием специализированных средств. Способы работы с динамическими массивами. Оптимизация программного кода.
курсовая работа [1,0 M], добавлен 23.12.2016Разработка устройства управления двухконфорочной электроплитой на базе микроконтроллера, описание функциональных действий. Структурная схема аппаратной части. Проектирование программного обеспечения. Описание алгоритма работы системы и программы.
курсовая работа [709,3 K], добавлен 22.12.2010Анализ затрат и прибыли. Создание программного проекта для решения задачи о прибыли и убытках на языке программирования C#. Использование функций и переменных, компиляция программы. Алгоритмы и структуры данных. Тестирование программного обеспечения.
курсовая работа [1,2 M], добавлен 03.01.2015Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Разработка спецификации программного обеспечения и на ее основе кода программного продукта. Отладка программы "трассировкой", ее тестирование и оптимизация.
курсовая работа [501,4 K], добавлен 07.12.2016Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Написание программного обеспечения на языке ассемблер для AVR-МК ATmega16, позволяющего осуществлять вычисление заданной функции. Введение входных данных с помощью определенного макроса с командой загрузки значений в регистры ldi. Исходный код программы.
контрольная работа [521,0 K], добавлен 23.11.2014Проектирование программного комплекса на языке С++ с использованием принципов объектно-ориентированного программирования. Разработка разных меню, помогающих пользователю работать с программой. Описание процесса формирования статистики по памятникам.
курсовая работа [799,9 K], добавлен 01.12.2016