Материал: Создание диалоговых программ с использованием структур и файлов в среде C++Builder

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Создание диалоговых программ с использованием структур и файлов в среде C++Builder

Резюме

Тема курсовой работы «Создание диалоговых программ с использованием структур и файлов в среде C++Builder»

Ключевые слова: алгоритм, программа, структура данных, файл, обработка данных, среда программирования C++Builder.

Цель курсовой работы - обобщить знания по управляющим операторам языка C++; овладеть практическими навыками в организации ввода/вывода значений комбинированных типов данных; получить практические навыки программирования задач с использованием структур и файлов в среде C++Builder.

Объектом исследования выступают структурированные данные, которые можно представить в виде таблицы.

Предметом исследования настоящей работы является разработка компьютерной программы в среде C++Builder, которая позволяет создать и обработать структуру данных, определенную вариантом задания.

В работе были использованы методы сортировки и фильтрации данных.

Оглавление

Введение

. Теоретическая часть

.1 Постановка задачи

.1.1 Название и назначение разрабатываемого приложения

.1.2 Спецификация входных и выходных данных

.1.3 Обоснование выбора средства программирования

.1.4 Требования к аппаратной части и ПО

.2 Основные аспекты обработки структур и файлов в среде C++Builder

.3 Алгоритм и сценарий работы программы

. Практическая часть

.1 Проектирование интерфейса пользователя

.2 Написание программных модулей

.3 Результаты тестирования программы

Заключение

Введение


Информация - специфический атрибут реального мира, представляющий собой его объективное отражение в виде совокупности сигналов и проявляющийся при взаимодействии с "приемником" информации, позволяющим выделять, регистрировать эти сигналы из окружающего мира и по тому или иному критерию их идентифицировать.

Из этого определения следует, что:

Ø  информация объективна, так как это свойство материи - отражение;

Ø  информация проявляется в виде сигналов и лишь при взаимодействии объектов;

Ø  одна и та же информация различными получателями может быть интерпретирована по-разному в зависимости от "настройки" "приемника".

Последовательность действий, выполняемых с информацией, называют информационным процессом. Основными информационными процессами являются:

Ø  сбор (восприятие) информации;

Ø  подготовка (преобразование) информации;

Ø  передача информации;

Ø  обработка (преобразование) информации;

Ø  хранение информации;

Ø  отображение (воспроизведение) информации.

Так как материальным носителем информации является сигнал, то реально это будут этапы обращения и преобразования сигналов (рис.1).

На этапе восприятия информации осуществляется целенаправленное извлечение и анализ информации о каком-либо объекте (процессе), в результате чего формируется образ объекта, проводятся его опознание и оценка.

Рис. 1. Основные информационные процессы

программирование диалоговый приложение

На этапе подготовки информации осуществляется ее первичное преобразование. На этом этапе проводятся такие операции, как нормализация, аналого-цифровое преобразование, шифрование. Иногда этап подготовки рассматривается как вспомогательный на этапе восприятия. В результате восприятия и подготовки получается сигнал в форме, удобной для передачи, хранения или обработки.

На этапе передачи информация пересылается из одного места в другое (от отправителя получателю - адресату). Передача осуществляется по каналам различной физической природы, самыми распространенными из которых являются электрические, электромагнитные и оптические.

На этапах обработки информации выявляются ее общие и существенные взаимозависимости, представляющие интерес для системы. Преобразование информации на этапе обработки (как и на других этапах) осуществляется либо средствами информационной техники, либо человеком.

Под обработкой информации понимается любое ее преобразование, проводимое по законам логики, математики, а также неформальным правилам, основанным на "здравом смысле", интуиции, обобщенном опыте, сложившихся взглядах и нормах поведения.

На этапе хранения информацию записывают в запоминающее устройство для последующего использования. Для хранения информации используются в основном полупроводниковые и магнитные носители.

Этап отображения информации должен предшествовать этапам, связанным с участием человека. Цель этого этапа - предоставить человеку нужную ему информацию с помощью устройств, способных воздействовать на его органы чувств.

В данной курсовой работе предусматривается выполнение следующих действий:

1)       постановка задачи в формализованном виде;

2)      построение алгоритма решения задачи;

)        реализация алгоритма на ПК путем создания программы в среде C++Builder;

)        тестирование и отладка программы;

)        анализ полученных данных и формулировка выводов;

)        создание и оформление резюме.

В данной курсовой работе разработана программа, позволяющая вводить данные о наименовании, норме времени, расценке и количестве производимых изделий, открывать и сохранять данные о них. Программа также помогает рассчитать сумму и общее время изготовления деталей, сортировать данные и отображать изделия с суммой меньше заданной.

В соответствии с заданием на разработку создание программы производилась в среде C++ Builder 6. C++ Builder - программный продукт, инструмент быстрой разработки приложений (RAD), интегрированная среда программирования (IDE), система, используемая программистами для разработки программного обеспечения на языке программирования C++.++ Builder объединяет в себе комплекс объектных библиотек (STL, VCL, CLX, MFC и др.), компилятор, отладчик, редактор кода и многие другие компоненты. Цикл разработки аналогичен Delphi. Большинство компонентов, разработанных в Delphi, можно использовать и в C++ Builder без модификации, но обратное утверждение не верно.++ Builder содержит инструменты, которые делают разработку визуальной, упрощает программирование благодаря встроенному WYS/WYG - редактору интерфейса.

Условно программированием можно назвать научную и практическую деятельность по созданию программ. Основной частью программирования является процесс решения задачи на ЭВМ, который можно разбить на следующие этапы:

1) математическая или информационная формулировка задачи;

) выбор численного или иного метода решения поставленной задачи;

) построение алгоритма решения поставленной задачи;

) выбор языка программирования и запись построенного алгоритма по его правилам, т.е. написание текста программы;

) отладка программы - это процесс обнаружения, локализации и устранения возможных ошибок;

) выполнение программы, т.е. получение требуемого результата [2].

Формулировка задачи является темой данной курсовой работы и заключается в написании программы, которая позволяет создать анимацию неподвижного объекта в среде разработки C++ Builder 6.

Среда C++Builder представляет собой средство быстрой разработки приложений (Rapid Application Development - RAD).

Концепция RAD стала ответом на неуклюжие методы разработки программ 1970-х <#"871091.files/image002.gif">

Рисунок 1.1. - Алгоритм работы программы

2. Практическая часть

2.1 Проектирование интерфейса пользователя


При проектировании интерфейса были использованы следующие компоненты:

)        Для отображения различных надписей на форме используются в основном компоненты Label;

)        MainMenu, расположеный на странице Standard, это невизуальный компонент, т.е. место его размещения на форме в процессе проектирования не имеет никакого значения для пользователя - он все равно увидит не сам компонент, а только меню, сгенерированное им. Обычно на форму помещается один компонент MainMenu. В этом случае его имя автоматически заносится в свойство формы Menu. Но можно поместить на форму и несколько компонентов MainMenu с разными наборами разделов, соответствующими различным режимам работы приложения. В этом случае во время проектирования свойству Menu формы присваивается ссылка на один из этих компонентов. А в процессе выполнения в нужные моменты это свойство можно изменять, меняя соответственно состав главного меню приложения.

Основное свойство компонента - Items. Его заполнение производится с помощью Конструктора Меню, вызываемого двойным щелчком на компоненте MainMenu или нажатием кнопки с многоточием рядом со свойством Items в окне Инспектора Объектов.

)        Компонент StringGrid представляет собой таблицу, содержащую строки. Данные таблицы могут быть только для чтения или редактирования. Таблица может иметь полосы прокрутки, причем заданное число первых строк и столбцов может быть фиксированным и не прокручиваться. Таким образом, можно задать заголовки столбцов и строк, постоянно присутствующие в окне компонента. Каждой ячейке таблицы может быть поставлен в соответствие некоторый объект. Компонент StringGrid предназначен в первую очередь для отображения таблиц текстовой информации. Однако компонент может отображать и графическую информацию.

Рисунок 2.1. - Скрин формы «Ведомость выработки изделий»

Для второй формы использовались следующие компоненты:

)        компонент Image - отображение картинки на форме.

)        Компонент Memo - многострочный текстовый редактор. Memo формат определяется текущим состоянием свойства Font компонента Memo.


2.2 Написание программных модулей


) Обработчик события - закрытие формы:

void __fastcall TForm1::N7Click(TObject *Sender)

Программный код каждого обработчика событий в полном размере приведен в приложении.

) Обработчик события - удаление текущей строки:

void __fastcall TForm1::N9Click(TObject *Sender).

3)      Обработчик события - Добавление строки в конец таблицы

void __fastcall TForm1::N8Click(TObject *Sender).

4)      Обработчик события - Создать (очистка таблиц):

void __fastcall TForm1::N12Click(TObject *Sender).

5)      Обработчик события - Открытие второй формы (справка):

void __fastcall TForm1::N4Click(TObject *Sender).

6)      Обработчик события - Запись таблицы в файл:

void __fastcall TForm1::N6Click(TObject *Sender).

7)      Обработчик события - Открытие файла и чтение его в таблицу:

void __fastcall TForm1::N5Click(TObject *Sender).

8)      Обработчик события - Вычислить для каждой общее время и сумму:

void __fastcall TForm1::N13Click(TObject *Sender).

9)      Обработчик события - Сортировка данных по возрастанию общего времени на изготовление изделий:

void __fastcall TForm1::N10Click(TObject *Sender).

10)    Обработчик события - Сортировка данных по № п/п (вернуться к исходной последовательности строк):

void __fastcall TForm1::N11Click(TObject *Sender).

11)    Обработчик события - Вычисление среднего времени выработки одного изделия по данным всей таблицы:

void __fastcall TForm1::Button1Click(TObject *Sender).

12) Обработчик события -Отображение данных, у которых сумма меньше указанной:

void __fastcall TForm1::Button2Click(TObject *Sender).

.3 Результаты тестирования программы


Для тестирования программы подготовили тестовые данные. Они вводятся в верхнюю таблицу и по команде меню Сохранить записываются в двоичный файл. Перед записью данных из таблицы в файл выполняется команда Вычислить, для вычисления средних баллов. Имя файла с тестовыми данными table.txt.

По команде меню Создать таблица с данными очищается.

По команде меню Открыть данные читаются из файла и отображаются в верхней таблице (см. рис. 5).

Были введены следующие данные:

Наименование изделия - Гайка;Гвоздь.

Норма времени на 1 изд., час - 10;15.

Расценка на 1изд., час. - 100;300.

Кол-во изделий - 2000;8000.

Результат указан на рис.2.1.

Рисунок 2.1. - Результат выполнения программы при вводе данных с клавиатуры и отображение в окне «Ведомость выработки изделий».

Следующий режим тестирования - «ввод данных из файла».

Результат указан на рис. 2.2.

Рисунок 2.1. - Результат выполнения программы при вводе данных из файла и отображение в окне «Ведомость выработки изделий»

Рисунок 2.3. Результат поиска по Сумме меньшей чем «10000000» и результат сортировка по общему времени

Заключение

Программа, описанная в курсовой работе, разработана в соответствии с постановкой задачи на выполнение курсовой работы.

Разработка программы производилась в среде C++ Builder 6. Интерфейс созданной программы удобен, прост, наглядно отображает её возможности.

Тестирование программы осуществлялось в трёх режимах: ввод данных для построения с клавиатуры, ввод данных из файла.

Работоспособность программы позволяет сделать вывод о её пригодности для автоматизации подсчета суммы и общего времени.

Список использованных источников

1.          Основы алгоритмизации и программирования. Язык Си: учеб. пособие / М. П. Батура, В. Л. Бусько, А. Г. Корбит, Т. М. Кривоносова. - Минск: БГУИР, 2007. - 240 с. : ил.

2.      Керниган Б., Ритчи Д. Язык программирования Си = The C programming language. - 2-е изд. - М.: Вильямс, 2007.

3.          Программирование в C++ Builder 6: А.Я. Архангельский. -М.: изд. "Бином", 2003.

4.      Побельский В.В. Язык Си++: Учеб. Пособие. - М.; Финансы и статистика, 1995. - 560с.: ил.

5.      Самоучитель C++ Builder: Н.Б. Культин. -СПб.: БХВ-Петербург, 2004.

.        Вычислительная геометрия и компьютерная графика на C++: М. Ласло пер. с англ.В. Львова. -М.: изд. "Бином", 1997.

.        Романов Е.Л., Практикум по программированию на С++. СПБ, 2004 - 432с.

Приложение

Текст программы

Unit1.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include <iostream.h>

#include <io.h>

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"*Form1;

//Ñòðóêòóðà çàïèñè:sved {namber; //Ïîðÿäêîâûé íîìåð.Naimenovanie[20]; //Íàèìåíîâàíèå Èçäåëèÿ.nachas; //Íîðìà íà 1 èçä., ÷àñ.rascenka; //Ðàñöåíêà íà 1 èçä., ÷àñ.colvo; //Êîëëè÷åñòâî èçäåëèé.obshee; //Îáùååå âðåìÿ.sum; //Ñóììà ðóá.

};

int size=sizeof(sved); //ðàçìåð â áàéòàõ îäíîé ñòðóêòóðû (çàïèñè).

//Ïåðåìåííàÿ - ñòðóêòóðû:sved sprav;

//Óêàçàòåëü íà ôàéë:*f;

//Èìÿ ôàéëà:File_Zap;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------__fastcall TForm1::FormCreate(TObject *Sender)

{

//Íà÷àëüíûå äåéñòâèÿ ïðè ñîñäàíèè ôîðìû:->Options = StringGrid1->Options << goEditing;

//Ôîðìèðîâàíèå çàãîëîâêîâ ñòîëáöîâ:->Cells[0][0]=" ¹ ï/ï";->Cells[0][1]="1";

StringGrid1->Cells[1][0]="Íàèìåíîâàíèå èçäåëèÿ";

StringGrid1->Cells[2][0]="Íîðìà âðåìåíè íà 1 èçä., ÷àñ";

StringGrid1->Cells[3][0]="Ðàñöåíêà íà 1 èçä.,ðóá.";id1->Cells[4][0]="Êîë-âî èçäåëèé";

StringGrid1->Cells[5][0]="Îáùåå âðåìÿ,÷àñ";

StringGrid1->Cells[6][0]="Ñóììà, ðóá.";->Cells[0][1]="1";

StringGrid2->Cells[1][0]="Íàèìåíîâàíèå èçäåëèÿ";

StringGrid2->Cells[2][0]="Íîðìà âðåìåíè íà 1 èçä., ÷àñ";

StringGrid2->Cells[3][0]="Ðàñöåíêà íà 1 èçä.,ðóá.";

StringGrid2->Cells[4][0]="Êîë-âî èçäåëèé";

StringGrid2->Cells[5][0]="Îáùåå âðåìÿ,÷àñ";

StringGrid2->Cells[6][0]="Ñóììà, ðóá.";

}

//---------------------------------------------------------------------------__fastcall TForm1::Save1Click(TObject *Sender)