Резюме
Тема курсовой работы «Создание диалоговых программ с использованием структур и файлов в среде 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. Практическая часть
При проектировании интерфейса были использованы следующие компоненты:
) Для отображения различных надписей на форме используются в основном компоненты Label;
) MainMenu, расположеный на странице Standard, это невизуальный компонент, т.е. место его размещения на форме в процессе проектирования не имеет никакого значения для пользователя - он все равно увидит не сам компонент, а только меню, сгенерированное им. Обычно на форму помещается один компонент MainMenu. В этом случае его имя автоматически заносится в свойство формы Menu. Но можно поместить на форму и несколько компонентов MainMenu с разными наборами разделов, соответствующими различным режимам работы приложения. В этом случае во время проектирования свойству Menu формы присваивается ссылка на один из этих компонентов. А в процессе выполнения в нужные моменты это свойство можно изменять, меняя соответственно состав главного меню приложения.
Основное свойство компонента - Items. Его заполнение производится с помощью Конструктора Меню, вызываемого двойным щелчком на компоненте MainMenu или нажатием кнопки с многоточием рядом со свойством Items в окне Инспектора Объектов.
) Компонент StringGrid представляет собой таблицу, содержащую
строки. Данные таблицы могут быть только для чтения или редактирования. Таблица
может иметь полосы прокрутки, причем заданное число первых строк и столбцов
может быть фиксированным и не прокручиваться. Таким образом, можно задать
заголовки столбцов и строк, постоянно присутствующие в окне компонента. Каждой
ячейке таблицы может быть поставлен в соответствие некоторый объект. Компонент
StringGrid предназначен в первую очередь для отображения таблиц текстовой
информации. Однако компонент может отображать и графическую информацию.
Рисунок 2.1. - Скрин формы «Ведомость выработки изделий»
Для второй формы использовались следующие компоненты:
) компонент Image - отображение картинки на форме.
) Компонент Memo - многострочный текстовый редактор. Memo формат
определяется текущим состоянием свойства Font компонента Memo.
) Обработчик события - закрытие формы:
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).
Для тестирования программы подготовили тестовые данные. Они вводятся в верхнюю таблицу и по команде меню Сохранить записываются в двоичный файл. Перед записью данных из таблицы в файл выполняется команда Вычислить, для вычисления средних баллов. Имя файла с тестовыми данными 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)