Введение
1 Структуры в языке С
1.1 Понятие о структурах, структурный тип данных
1.2 Структурные переменные. Массивы структур
1.3 Битовые поля
2 Файлы в языке С
2.1 Понятие файла. Основные характеристики файла
2.2 Понятие потока и буфера. Виды потоков
2.3 Работа с файлами. Этапы работы с файлами
2.4 Позиционирование в файле
2.5 Осуществление ввода-вывода в поток
2.6 Обработка ошибок при работе с файлами
2.7 Функции для очистки буфера
3 Разработка приложения и описание его работы
3.1 Постановка задачи
3.2 Используемый структурный тип
3.3 Описание работы приложения
Заключение
Список использованных источников
Приложение
Введение
Си является самым популярным языком для создания системного программного обеспечения. Его также часто используют для создания прикладных программ. В дальнейшем синтаксис Си стал основой для многих других языков. Язык Си был создан уже после внедрения стандарта ASCII, поэтому использует почти все его графические символы. В 1978 году Ритчи и Керниган опубликовали первую редакцию книги «Язык программирования Си». В конце 1970-х Си начал вытеснять Бейсик с позиции ведущего языка для программирования микрокомпьютеров. В 1980-х годах он был адаптирован для использования в IBM PC, что привело к резкому росту его популярности. В то же время сотрудники в лабораториях Bell Labs начали работу по добавлению в Си возможностей объектно-ориентированного программирования. Язык, который они в итоге сделали, С++, в настоящее время является самым распространенным языком программирования. Си остается более популярным в UNIX-подобных системах. В настоящее время почти все используемые операционные системы написаны на Си. Тем не менее, область применения языка Си не ограничилась разработкой операционных систем. Язык Си оказался очень удобен в программах обработки текстов и изображений, в научных и инженерных расчетах. Системы программирования – системы для разработки новых программ. Системы программирования обычно включают компилятор, осуществляющий преобразование программ на языке программирования в программу в машинных кодах, или интерпретатор, осуществляющий непосредственное выполнение программы на языке программирования, редактор текстовых программ, библиотеки полезных подпрограмм, отладчики и др. Для языка Си имеется множество систем программирования, позволяющих создавать программы, работающие в среде DOS, Windows и др. Целью курсового проекта является разработка визуального приложения в среде Builder C++, реализующего работу со структурами и файлами языка С в заданной предметной области (Расписание трансляций рекламного ролика).
1 Структуры в языке С
1.1 Понятие о структурах, структурный тип данных
Термин «структура» в языке программирования С соответствует двум разным по смыслу понятиям:
– обозначение места в памяти, где располагается информация; далее это место называется структурной переменной;
– правила форматирования структурной переменной, используемые компилятором для выделения ей места в памяти и организации доступа к ее полям; далее такие правила называются шаблоном структуры или шаблоном структурной переменной.
Как и любую переменную, структурную переменную необходимо описать. Это описание состоит из двух шагов:
– задание шаблона структуры;
– собственно описание структурной переменной.
Каждый шаблон имеет собственное имя для того, чтобы компилятор мог различать различные шаблоны. В том случае, если в функции используется единственный шаблон, он может иметь имя «нет имени», что задается пропуском имени при описании шаблона. Имена шаблонов должны быть уникальными в пределах их области определения, и в частности в пределах одной функции может быть только один шаблон с именем «нет имени». Синтаксис задания шаблона таков:
struct тип_структуры
{
тип ИмяЭлемента1;
тип ИмяЭлемента2;
. . .
тип ИмяЭлементаn;
};
Имена полей в одном шаблоне должны быть уникальными. Однако в разных шаблонах можно иметь совпадающие имена полей. Кроме того, имена шаблонов проверяются на «уникальность» друг с другом, а не с метками или именами переменных. Раз так, то имя шаблона может и совпадать с именами полей, переменных или метками. Задание шаблона никоим образом не связано с резервированием какой-либо памяти компилятором. Шаблон дает компилятору всю необходимую информацию о полях структурной переменной для резервирования места в памяти и организации доступа к этой памяти при описании структурной переменной и ссылках на отдельные поля структурной переменной. Фактически шаблон – это задание нового типа struct.
2 Файлы в языке С
2.1 Понятие файла. Основные характеристики файла
Файл – это упорядоченная последовательность однотипных компонентов, расположенных на внешнем носителе. Файлы предназначены только для хранения информации, а обработка этой информации осуществляется программами. Использование файлов целесообразно в случае:
– долговременного хранения данных; q доступа различных программ к одним и тем же данным;
– обработки больших массивов данных, которые невозможно целиком разместить в оперативной памяти компьютера.
Файл, не содержащий ни одного элемента, называется пустым. Создается файл путем добавления новых записей в конец первоначально пустого файла. Длина файла, т. е. количество элементов, не задается при определении файла. В языке Си отсутствуют операторы для работы с файлами. Все необходимые действия выполняются с помощью функций, включенных в стандартную библиотеку ввода-вывода языка Си. Библиотека stdio.h поддерживает текстовые и бинарные (двоичные) потоки. Текстовый поток – это последовательность строк, каждая из которых заканчивается символом ‘n’. Операционная среда может потребовать коррекции текстового потока. Например, при вводе текстового потока система преобразует символы возврат каретки 0 x 13 и перевод строки 0 x 10 в одиночный символ ‘n’. При обнаружении в текстовом файле символа с кодом 26 (0 x 26), т. е. признака конца файла, чтение файла в текстовом режиме заканчивается, хотя файл может иметь продолжение. При выводе текстового потока в среду операционной системы происходит обратное преобразование. Бинарный поток – это последовательность не преобразуемых байтов, представляющих собой некоторые промежуточные данные, которые обладают тем свойством, что если их записать, а затем прочесть той же системой ввода-вывода, то будет полу Прежде чем читать или записывать информацию в файл, он должен быть открыт и тем самым связан с потоком. Это можно сделать с помощью библиотечной функции fopen( ). Она берет внешнее представление файла (например, c:\my_prog.txt) и связывает его с внутренним логическим именем, которое используется далее в программе.
3 Разработка приложения и описание его работы
3.1 Постановка задачи
Согласно заданию курсового проекта необходимо было разработать приложение, реализующее работу в предметной области «Расписание трансляции и рекламного ролика», которое включает:
1. Создание файла.
2. Добавление записей в конец файла.
3. Добавление записи по номеру.
4. Вывод на экран всех записей в виде таблицы.
5. Удаление записи по номеру.
6. Удалить все записи с датой трансляции ранее заданной.
7. Изменить стоимость заказа для заданного заказчика.
8. Вывести все сведения о рекламных роликах заданного заказчика.
9. Копирование данных из файла в резервный файл.
10. Восстановление файла из резервного.
11. Удаление файла.
3.2 Используемый структурный тип
Для чтения/записи информации в файл была создана структура video и переменная mas типа данной структуры:
struct video
{
char zakaz[100];
int number;
char name[100];
char creator[100];
char showing[100];
int cost;
}mas;
Данная структура использовалась для ввода/вывода следующей информации по предметной области:
1. Заказчик
2. Номер заказа
3. Название рекламного ролика
4. Изготовитель ролика
5. Дата трансляции
6. Стоимость заказа
Заключение
В процессе выполнения курсового проекта было создано в среде Builder С++ визуальное приложение для работы в предметной области «Расписание трансляции рекламного ролика». Для этого были изучены теоретические аспекты работы со структурами и файлами в языке С. Разработанное приложение позволяет осуществлять добавление, удаление, вставку, отображение записей, отбор записей из файла по условию.
1. Васильев, А. Программирование на C в примерах и задачах / А. Васильев, – М.: Эксмо, 2018. – 368 с.
2. Гриффитс, Д. Изучаем программирование на C /Д. Гриффитс, – М.: Эксмо, 2015. – 624 с.
3. Липпман, Б. Язык программирования C++. Базовый курс / Б. Липпман, Ж. Лажойе, Б. Му, – М. : Вильямс, 2014. – 1120 с.
4. Павловская, Т. C/C++. Программирование на языке высокого уровня / Т. Павловская, –СПБ: Питер, 2017. – 464 с.
5. Подбельский, В. Курс программирования на языке Си / В. Подбельский, С. Фомин, – М.: ДМК, 2012. – 384 с.