рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Работа с программой

Работа с программой - раздел Программирование, Основы программирования в среде C++ Builder Форма Может Иметь Вид, Представленный На Рис. 8.2. Кнопку «...

Форма может иметь вид, представленный на рис. 8.2.

Кнопку «Создать» нажимаем только при первом запуске программы или, если захотим заменить прежнюю информацию на новую, в окне Memo1 отображается путь и имя созданного файла.

Заполнив оба поля информацией, нажимаем кнопку «Добавить», после чего введенная информация отображается в окне Memo1.

Для работы с уже созданным файлом нажимаем кнопку «Открыть» – в Memo1 выводится содержимое всего файла, после чего можно добавлять новые данные в конец этого файла, не уничтожая предыдущие.

При нажатии кнопки «Сортировать» в Memo1 выводятся записи, сортированные по возрастанию рейтинга.

При нажатии кнопки «Сохранить результаты» создается текстовый файл, в котором сохранится информация, выведенная в Memo1. Этот файл можно просмотреть в любом текстовым редакторе (блокноте, Word).

В текст программы включена пользовательская функция void Out(TZap, TMemo*); – для вывода в Memo1 одной записи.

Для создания результирующего текстового файла используется функция, SaveToFile(FileNameRez); позволяющая записать все содержимое Memo1 в файл с указанным именем.

Рис. 8.2

 

Текст программы может иметь следующий вид:

. . .

#include <stdio.h>

#include <io.h>

. . .

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

struct TZap{

char FIO[30];

double s_b;

} Zap;

int size = sizeof(TZap);

FILE *Fz;

AnsiString File_Zap;

void Out(TZap, TMemo*);

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

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Edit1->Text=""; Edit2->Text="";

Memo1->Clear();

}

//------------------ Создать-----------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

OpenDialog1->Title="Создать новый файл";

if (OpenDialog1->Execute()){

File_Zap = OpenDialog1->FileName;

if ((Fz=fopen(File_Zap.c_str(),"wb"))==NULL) {

ShowMessage("Ошибка создания ФАЙЛА!");

return;

}

}

Memo1->Lines->Add("Создали новый файл: "+AnsiString(File_Zap));

fclose(Fz);

}

//----------------- Добавить-----------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Fz = fopen(File_Zap.c_str(),"ab");

strcpy(Zap.FIO, Edit1 -> Text.c_str());

Zap.s_b = StrToFloat(Edit2->Text);

Out(Zap, Memo1);

fwrite(&Zap, size, 1, Fz);

Edit1->Text=""; Edit2->Text="";

fclose(Fz);

}

//--------------------- Сортировать --------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

TZap st, *mas_Z;

Fz = fopen(File_Zap.c_str(),"rb");

int D_f = fileno(Fz); // Находим дескриптор файла

int len = filelength(D_f); // Находим размер файла

int i, j, kol;

kol = len/size; //Количество записей в файле

mas_Z = new TZap[kol];

// Считываем записи из файла в динамический массив

for (i=0; i < kol; i++)

fread((mas_Z+i), size, 1, Fz);

fclose(Fz);

Memo1->Lines->Add("Сортированные сведения");

for (i=0; i < kol-1; i++)

for (j=i+1; j < kol; j++)

if (mas_Z[i].s_b > mas_Z[j].s_b) {

st = mas_Z[i];

mas_Z[i] = mas_Z[j];

mas_Z[j] = st;

}

for (i=0; i<kol; i++)

Out(mas_Z[i], Memo1);

delete []mas_Z;

}

//------------------- Сохранить --------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)

{

SaveDialog1->Title="Сохранить файл результатов";

if (SaveDialog1->Execute()) {

AnsiString FileNameRez = SaveDialog1->FileName;

Memo1->Lines->SaveToFile(FileNameRez);

}

}

//-------------------- Открыть ----------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

OpenDialog1->Title="Открыть файл";

if (OpenDialog1->Execute()) {

File_Zap = OpenDialog1->FileName;

if ((Fz=fopen(File_Zap.c_str(),"rb"))==NULL) {

ShowMessage("Ошибка открытия ФАЙЛА!");

return;

}

}

Memo1->Lines->Add("--------- Все сведения ---------");

while(1){

if(!fread(&Zap,size,1,Fz)) break;

Out(Zap, Memo1);

}

fclose(Fz);

}

//----------------- Очистка Memo -------------------------------------------

void __fastcall TForm1::Button6Click(TObject *Sender)

{

Memo1->Clear();

}

//----------------- Функция вывода одной записи -----------------------

void Out(TZap z, TMemo *Memo1)

{

Memo1->Lines->Add(AnsiString(z.FIO)+ " "+FloatToStrF(z.s_b, ffFixed,6,3));

}

– Конец работы –

Эта тема принадлежит разделу:

Основы программирования в среде C++ Builder

Учреждение образования.. белорусский государственный университет информатики и радиоэлектроники..

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Работа с программой

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Общие теоретические сведения
Алфавит языка С/С++ состоит из: прописных и строчных букв латинского алфавита, арабских цифр и специальных символов, смысл и правила использования которых будут рассматриваться далее. В яз

Запись самоопределенных констант
Тип данных Общий формат записи Примеры Десятичные целые ±n 22 –15 176 –1925 Вещ

Декларация объектов
Все объекты (переменные, массивы и т.д.), с которыми работает программа, необходимо декларировать. В декларации объектам присваиваются идентификаторы (ID), которые могут вкл

Директивы препроцессора
Перед компиляцией программы с помощью директив препро­цес­сора выполняется предва­ри­те­ль­ная обработка текста программы. Директивы начинаются с символа #; за которым следует наименование

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

Компоненты, предназначенные для ввода-вывода
Если необходимо ввести из формы в программу или вывести на форму информацию, которая вмещается в одну строку, используют окно однострочного редактора текста, представляемого компонентой

Основные функции преобразования строк
StrToFloat(St) – преобразует строку St в вещественное число; StrToInt(St) – преобразует строку St в целое число.

Компонента Label
Данная компонента используется для вывода надписей, для чего в меню компонент Standard выбирается пиктограмма ,

Компонента Memo
Для вывода результатов работы программы обычно используется окно многострочного редактора текста, представленое компонентой Memo, для чего выбирается пиктограмма

Функция-обработчик FormCreate
При запуске программы возникает событие «создание формы» (OnCreate). Оформим функцию-обработчик этого события, которая обычно используется для инициализации начальных установок, таких, как,

Запуск и работа с программой
Перед запуском программы на обработку следует сохранить программу, для чего нужно выбрать в меню File пункт Save All. Запустить программу можно, нажав Run в главном ме

Стандартные функции вывода информации
Для вывода информации в консольном приложении чаще всего используются следующие функции: puts(S) – вывод строки символов S с переходом на начало новой ст

Стандартные функции ввода информации
Функция gets (S) обеспечивает ввод строки символов S до нажатия клавиши Enter, т.е. позволяет ввести строку, содержащую пробелы. Для форматиров

Компонента RadioGroup
В меню Standard выберите пиктограмму , поместите ее в нужное место формы. На форме появится окаймленный линией

Общие теоретические сведения
Под циклом понимается многократное выполнение одних и тех же операторов при различных значениях промежуточных данных. Число повторений может быть задано в явной или неявной формах. Для организации

Краткие теоретические сведения
Подпрограмма – это именованная и определенным образом оформленная группа операторов, вызываемая по мере необходимости. В языке С++ в качестве подпрограмм используют фу

Область действия переменных
Область действия переменной – это правила, которые устанавливают, какие данные доступны из текущего места программы, и определяют переменные двух типов: глобальные и локальные.

Общие теоретические сведения
Массив – конечная последовательность данных одного типа. Массив – объект сложного типа, каждый элемент которого определяется именем (ID) и целочисленным значением индекса (номера), по которо

Компонента StringGrid
При работе с массивами ввод и вывод значений обычно организуется с использованием компоненты StringGrid, предназначенной для отображения информации в виде двухмерной таблицы, каждая ячейка к

Настройка компоненты StringGrid
На закладке Additional выберите пиктограмму , установите компоненты StringGrid1 и StringGrid2 и о

Особенности применения указателей
Обращение к объектам любого типа в языке C может проводиться по имени, как мы до сих пор делали, и по указателю (косвенная адресация). Указатель – это переменная, к

Связь указателей с массивами
Указатели и массивы тесно связаны между собой. Идентификатор массива является указателем на его первый элемент, т.е. для массива int a[10], выражения a

Указатели на указатели
Связь указателей и массивов с одним измерением справедливо и для массивов с бóльшим числом измерений. Если рассматривать предыдущий массив (int a[2][3];) как массив двух масс

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

Настройка компонент StringGrid
Для компоненты StringGrid1 значения ColCount и RowCount установите равными, например, 3 – три столбца и три строки, а FixedCols и FixedRows – 1. Так как

Строки как одномерные массивы символов
В языке С/С++ строка – это одномерный массив символов, заканчиваю­щийся нулевым байтом, каждый бит которого равен нулю, при этом для нулевого байта определена константа ´´ (признак око

Компонента ComboBox
Список ComboBox – комбинация списка ListBox и редактора текста Еdit, поэтому практически все свойства аналогичны. Для работы с окном редактирования используется свойство Tex

Компонента-кнопка BitBtn
Компонента BitBtn расположена на странице Additonal и представляет собой разновидность стандартной кнопки Button. Ее отличие – наличие изображения на поверхности, определяемое

Обработка событий
Обо всех происходящих в системе событиях, таких, как создание формы, нажатие кнопки мыши или клавиатуры и т.д., ядро Windows информирует окна путем посылки соответствующих сообщений. Среда

Теоретические сведения
Структура объединяет логически связанные данные разных типов. Структурный тип данных определяется описанием шаблона: struct Рerson { char Fio[30];

Работа с файлами
Файл – это набор данных, размещенный на внешнем носителе и рассматриваемый в процессе обработки и пересылке как единое целое. Прототипы большинства функций по обработке файлов описаны в библиотеках

Компоненты OpenDialog и SaveDialog
Компоненты OpenDialog и SaveDialog находятся на странице Dialogs. Все компоненты этой страницы невизуальны, т.е. не видны при работе программы, поэтому их размещают в любом мес

Настройка компонент OpenDialog и SaveDialog
На странице Dialogs выбрать пиктограммы ,

Построение графиков с помощью компоненты Chart
Обычно результаты расчетов представляются в виде графиков и диаграмм. Система Builder имеет мощный пакет стандартных программ вывода на экран и редактирования графической информации, который

Настройка формы
Панель диалога программы с получеными результатами представлена на рис. 9.2. Рис. 9.2 &nbs

Стандартные математические функции
Для использования математических функций необходимо подключить файл math.h. Параметры и возвращаемые результаты большинства математических функций имеют тип doubl

Учебное издание
  БуськоВиталий Леонидович, КарцевВиктор Тимофеевич, КривоносоваТатьяна Михайловна, Навроцкий

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги