Хранение связанной информации в структурах

Слайд 2

Основные концепции

Структуры позволяют вашим программам группировать в одной переменной связанные данные, типы

Основные концепции Структуры позволяют вашим программам группировать в одной переменной связанные данные,
которых могут различаться.
Структура состоит из одной или нескольких частей данных, называемых элементами.
Для определения структуры внутри программы следует указать имя структуры и ее элементы.
Каждый элемент структуры имеет тип, например char, int и float, и имя каждого элемента должно быть уникальным.
После того как ваша программа определит структуру, она может объявить переменные типа этой структуры.
Для изменения элементов структуры внутри функции ваши программы должны передать структуру в функцию с помощью адреса.
Структура определяет шаблон, с помощью которого ваша программа может позднее объявить одну или несколько переменных.

Слайд 3

Структура объявляется следующим образом:
struct имя структуры
{
поля структуры
}
В данном случае определение не

Структура объявляется следующим образом: struct имя структуры { поля структуры } В
объявляет какие-либо переменные типа этой структуры. После того как вы определите структуру, ваша программа может объявить переменные типа этой структуры, используя имя структуры (иногда называемое структурным тэгом).
Структура позволяет вашим программам группировать информацию, называемую элементами, в одной переменной. Чтобы присвоить значение элементу или обратиться к значению элемента, используйте оператор C++ точку (.).

Слайд 4

СТРУКТУРЫ И ФУНКЦИИ

Если функция не изменяет структуру, вы можете передать структуру в

СТРУКТУРЫ И ФУНКЦИИ Если функция не изменяет структуру, вы можете передать структуру
функцию по имени.
Как вы знаете, если функция изменяет параметр, вам следует передавать этот параметр в функцию с помощью адреса. Если функция изменяет элемент структуры, вы должны передавать эту структуру в функцию с помощью адреса, Для передачи переменной типа структуры с помощью адреса вы просто предваряете имя переменной оператором адреса C++ (&), как показано ниже:
some_function(&worker);
Внутри функции, которая изменяет один или несколько элементов, вам следует работать с указателем. Если вы используете указатель на структуру, легче всего обращаться к элементам структуры, используя следующий синтаксис:
pointer_variable->member = some_value;

Слайд 5

Пример.
Задание. Разработать программу со следующими функциями:
ввод данных структуры;
сохранения данных в файл;
чтение данных

Пример. Задание. Разработать программу со следующими функциями: ввод данных структуры; сохранения данных
из файла;
вывод на экран таблицы с данными;
Справочник пропусков студентов.
ФИО студента.
Группа.
Количество пропусков.
Количество неаттестаций.

Слайд 10

// prim1_lek8.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include "stdafx.h"
#include
#include
#include
#include
#include
using namespace

// prim1_lek8.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include
std;
struct stud
{
char fio[25];
char gruppa[25];
int kol_p;
int kol_na;
};
stud a[100];
int n=0;
void vivod()
{
for (int i=0;i cout<}
void add (int i)
{
cout<<"FIO=";
cin>>a[i].fio;
cout<<"Gruppa=";
cin>>a[i].gruppa;
cout<<"Kol-vo prop.=";
cin>>a[i].kol_p;
cout<<"kol-vo ne at.=";
cin>>a[i].kol_na;
}

Слайд 11

void vvod()
{int i=0;
int ex=1;
while (ex==1)
{
cout<<"Vvedite zapis"<add(i);
i++;
cout<<"Continue? YES-1 No-0";
cin>>ex;
}
n=i;
}
void zap()
{
const char *FName="c:\\1.txt";

void vvod() {int i=0; int ex=1; while (ex==1) { cout add(i); i++;
//Путь к файлу. Вписывайте свой.
// открываем файл для записи
ofstream f(FName,ios::binary|ios::out);
for (int i=0;i f.write((char*)&a[i],sizeof a[i]); //Записали всю структуру целиком
f.close();
}

Слайд 12

void ct()
{
const char *FName="c:\\1.txt"; //Путь к файлу. Вписывайте свой.
//открываем файл для

void ct() { const char *FName="c:\\1.txt"; //Путь к файлу. Вписывайте свой. //открываем
чтения
ifstream in(FName,ios::binary|ios::in);
for (int i=0;i in.read((char*)&a[i],sizeof a[i]); //Читаем структуру целиком сразу
in.close();
}
int _tmain(int argc, _TCHAR* argv[])
{
vvod();
vivod();
zap();
ct();
vivod();
_getch();
return 0;
}
Имя файла: Хранение-связанной-информации-в-структурах.pptx
Количество просмотров: 25
Количество скачиваний: 0