Здесь располагается содержимое class "clearfloat" id "рамка"

Учебный комплекс "Основы программирования и БД"

У р о к и
  1. Этапы решения задач на компьютере. Разработка программы.
  2. Понятие алгоритма. Свойства алгоритма.
  3. Формы представления алгоритмов. Графический способ записи алгоритмов. Школьный алгоритмический язык.
  4. Базовые алгоритмические структуры: базовая структура следование.
  5. Базовые алгоритмические структуры: базовая структура ветвление.
  6. Базовые алгоритмические структуры: базовая структура ЦИКЛ.
  7. Эволюция языков программирования. Классификация языков программирования.
  8. Язык Си++. Эволюция языка и его преимущества.
  9. Синтаксис языка Си++.
  10. Константы и переменные в С++. Преобразование типов данных.
  11. Операторы используемые в С++.
  12. Некоторые визуальные компоненты С++Builder.
  13. Лабораторная работа № 1 Создание простого приложения в С++Builder.
  14. Основные константы и математические функции. Команда форматированного вывода строки.
  15. Лабораторная работа № 2 Создание программы вычисления значения функции.
  16. Условные операторы выбора if.
  17. Лабораторная работа № 3 Создание программы с разветвленной структурой.
  18. Условный оператор множественного выбора switch. Безусловный переход.
  19. Лабораторная работа № 4 Создание программы со структурой ВЫБОР.
  20. Оператор цикла for (цикл со счетчиком).
  21. Лабораторная работа № 5 Создание программы c циклом ДЛЯ.
  22. Операторы цикла с условием. Прерывание цикла.
  23. Лабораторная работа № 6 Создание программы c циклом ПОКА.
  24. Одномерные массивы. Обработка строк.
  25. Лабораторная работа № 7 Создание программы обработки строк.
  26. Многомерные массивы.
  27. Лабораторная работа № 8 Создание программы обработки двумерного массива.
  28. Указатели и ссылки.
  29. Функции: объявление, описание и использование.
  30. Лабораторная работа № 9 Создание и использование функций в C++.
  31. Файлы и потоки. Файловый ввод/вывод с помощью компонентов.
  32. Лабораторная работа № 10 Работа с файлами с помощью компонентов С++Builder.
  33. Файловый вывод/вывод в двоичном режиме.
  34. Лабораторная работа № 11 Запись и чтение блоков из двоичного файла (произвольный доступ).
  35. Лабораторная работа № 12 Запись, дописывание и чтение потоков из файла.
  36. База данных, основные понятия.
  37. Классификация баз данных.
  38. Организация данных в реляционной базе данных.
  39. Проектирование БД. Нормализация данных в реляционных БД.
  40. Системы управления базами данных.
  41. Лабораторная работа № 13 Создание таблицы БД средствами MS Access.
  42. Манипуляция данными. Язык запросов SQL.
  43. Лабораторная работа № 14 Построение простых запросов в MS Access.
  44. Создание приложений работы с базами данных.
  45. Визуальные компоненты доступа к БД в C++ Builder.
  46. Лабораторная работа № 15 Создание приложения доступа к БД в С++Builder.
Дополнения

Лабораторная работа № 11

Запись и чтение блоков из двоичного файла (произвольный доступ).

Цель: Научится работать с двоичными файлами в режиме произвольного доступа.
Задача: Создать приложение с формой, которая записывает массив в файл, затем считывает массив из файла с заданной позиции. Организовать функцию выхода из программы.
Порядок выполнения:

  1. Создать проект с формой.
  2. Задать имя формы Name=Form1
  3. Задать надпись в верхней части окна Form1->Caption= “Запись и чтение блоков из файла (произвольный доступ) ”
  4. На форму вынести элемент главного меню, задать пункт Файл-Выход и действие Form1->Close();
  5. На форму вынести элемент Memo: Name= Memo1. Очистить окно Memo1  (Memo->Lines).
  6. На форму вынести 3 кнопки Button:  1) Name= Button1, Caption=“Запись”, 2) Name= Button2, Caption=“Чтение”,  3) Name= Button3, Caption=“Очистить окно Вывода”
  7. На событие OnClick кнопки Button1 записать код:

int N[5]={1,2,3,4,5};
Memo1->Clear();
ofstream outfile("test3.dat", ios::out|ios::binary);
if (!outfile) {
ShowMessage("Файл не удается создать");
return ;
                                          }
 outfile.write((char *)&N, sizeof N);
 Memo1->Lines->Add("В файл записано:");
 Memo1->Lines->Add("1   2   3   4   5   ");
outfile.close();

  1. На событие OnClick кнопки Button2 записать код:

int K[5];
int Pos;
char str[30];
ifstream infile("Test3.dat", ios::in|ios::binary);
if(!infile)
{
ShowMessage("Файл не удается открыть");
return;
}
Memo1->Lines->Add("Начальная позиция");
Pos=infile.tellg();
Memo1->Lines->Add(IntToStr(Pos));
infile.seekg(12,ios::beg); //смещение на 12 байт (3 целых числа) отн. нач. файла
Memo1->Lines->Add("Позиция после сдвига");
Pos=infile.tellg();
Memo1->Lines->Add(IntToStr(Pos));
infile.read((char *)&K, sizeof K);
Memo1->Lines->Add("Прочитанные из файла данные");
sprintf(str," %i %i ", K[0], K[1]);
// закрытие файла
infile.close();
Memo1->Lines->Add(str);
Memo1->Lines->Add("Позиция после чтения");
Pos=infile.tellg();
Memo1->Lines->Add(IntToStr(Pos));

  1. На событие OnClick кнопки Button3 записать код: Memo1->Clear();
  2. Подключить модули <stdio.h>, <fstream.h>

Пояснения к коду программы:
Подключаемые модули:
#include <stdio.h>//подключаются функции форматированного вывода sprintf
#include <fstream.h>    //для использования функций  ofstream ifstream
На кнопку Запись:
int N[5]={1,2,3,4,5};  //объявляется целочисленный массив N на 5 элементов и задаются значения
Memo1->Clear();   //очистить многострочное окно редактирования
ofstream outfile("test3.dat", ios::out|ios::binary);  /* открывается выходной поток outfile для двоичного вывода в файл test3.dat  */
if (!outfile) {  //если не outfile на открывается  то
ShowMessage("Файл не удается создать");  //вывести сообщение
return ; //и выйти из функции
                                                  }
 outfile.write((char *)&N, sizeof N);    /*вывести в   outfile двоичный блок соответствующий размеру массива N, начиная непосредственно с адреса расположения N в памяти (указатель приводиться к типу char)*/
 Memo1->Lines->Add("В файл записано:"); /* символьная строка добавляется в многострочное окно редактирования как новая строка */
 Memo1->Lines->Add("1   2   3   4   5   ");  /* символьная строка добавляется в многострочное окно редактирования как новая строка */
outfile.close();  //закрыть поток outfile (закрыть файл)
На кнопку Чтение:
int K[5]; //объявляется целочисленный массив N на 5 элементов
int Pos;  //объявляется целочисленная переменная Pos
char str[30]; //объявляется симвльный массив str размером в 30 элементов
ifstream infile("Test3.dat", ios::in|ios::binary); /* открывается входной поток outfile для двоичного ввода из файла test3.dat  */
if(!infile)  //если поток не открывается то
{
ShowMessage("Файл не удается открыть"); //выдать сообщение
return; //и выйти из функции
}
Memo1->Lines->Add("Начальная позиция");  /* символьная строка добавляется в многострочное окно редактирования как новая строка */
Pos=infile.tellg();  //положение указателя входного потока записывается в Pos
Memo1->Lines->Add(IntToStr(Pos)); //значение указателя выводится в Memo1
infile.seekg(12,ios::beg); //смещение на 12 байт (3 целых числа) отн. нач. файла
Memo1->Lines->Add("Позиция после сдвига"); /* символьная строка добавляется в многострочное окно редактирования как новая строка */
Pos=infile.tellg();  //положение указателя входного потока записывается в Pos
Memo1->Lines->Add(IntToStr(Pos)); //значение указателя выводится в Memo1
infile.read((char *)&K, sizeof K); /*ввести из   intfile  в массив двоичный блок соответствующий размеру массива K, начиная непосредственно с адреса расположения K в памяти (указатель на массив приводится к типу char )*/
Memo1->Lines->Add("Прочитанные из файла данные"); /* символьная строка добавляется в многострочное окно редактирования как новая строка */
sprintf(str," %i %i ", K[0], K[1]); // в str вывести значения K[0], K[1]
infile.close();  // закрытие файла
Memo1->Lines->Add(str); /*значение str вывести как новую строку в многострочное окно редактирования Memo1*/
Memo1->Lines->Add("Позиция после чтения");  /* символьная строка добавляется в многострочное окно редактирования как новая строка */
Pos=infile.tellg();  //положение указателя входного потока записывается в Pos
Memo1->Lines->Add(IntToStr(Pos));  //значение указателя выводится в Memo1
 Кнопку Очистить окно Memo:
Memo1->Clear();  //очистить многострочное окно редактирования
Главное меню:
Form1->Close();  //закрыть форму Form1 (закрыть программу)

Анимация выполнения работы:

Pr11.exe (9 MБ) Скачать