Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Struct B

Читайте также:
  1. Components of intonation and the structure of English tone-group
  2. Construction and Maintenance of Infrastructure
  3. De-Icing of Infrastructure and Runoffs
  4. DISCUSSING CONSTRUCTION PERIOD
  5. PHYSICS-MATHEMATICAL MODEL STRUCTURE NO NUCLEUS ELECTRICAL ATOM and PERIODICAL SYSTEM
  6. POUCZENIE / NOTES / INSTRUCTION / ИНСТРУКЦИЯ
  7. Skeletal Muscle Structure

{ int a:3; // В данном примере 3 описанных подряд битовых

int b:3; // поля будут помещены в один байт

int d:2; };

Пример работы со структурой:

#include <iostream.h>

#include <string.h>

//Описание структуры «человек»

struct man { char fam[15];//фамилия

char name[10];//имя

int vozr;//возраст

int wes;//вес

int rost;//рост

};

//Функция ввода компонентов структуры «человек»

// x- указатель на структуру «человек», n- кол-во человек

void vvod(man* x, int n)

{int i;

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

{cout<<" Номер студента "<<i+1;

cout<<" Фамилия "; cin>>(x+i)->fam;

cout<<" Имя "; cin>>(x+i)->name;

cout<<" Возраст "; cin>>(x+i)->vozr;

cout<<" Рост "; cin>>(x+i)->rost;

cout<<" Вес "; cin>>(x+i)->wes;

} return;

}

//Функция вывода компонентов структуры «человек»

// x- указатель на структуру «человек», n- кол-во человек

void vivod(man* x, int n)

{int i;

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

{cout<<" Номер студента "<<i+1;

cout<<" Фамилия "<<(x+i)->fam;

cout<<" Имя "<<(x+i)->name;

cout<<" Возраст "<<(x+i)->vozr;

cout<<" Рост "<<(x+i)->rost;

cout<<" Вес "<<(x+i)->wes<<'\n';

} return;

}

//Функция вывода компонентов структуры «человек»

// x- указатель на структуру «» человек, i- номер человека

void vivod1(man* x, int i)

{cout<<" Номер студента "<<i+1;

cout<<" Фамилия "<<(x+i)->fam;

cout<<" Имя "<<(x+i)->name;

cout<<" Возраст "<<(x+i)->vozr;

cout<<" Рост "<<(x+i)->rost;

cout<<" Вес "<<(x+i)->wes<<'\n';

return;

}

//Функция поиска человека по заданной фамилии

// x- указатель на структуру «человек», n- кол-во человек

// st- искомая фамилия

int Findfam(man* x, int n, char* st)

{int i, flag=0;

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

if(strcmp((x+i)->fam,st)==0)// если человек с такой фамилией есть

{ flag=1; return i;} // возвращаем его номер

if (flag==0)

{cout<<"Человека с такой фамилией нет!"<<’\n’; return -1;}

}

//Функция поиска людей ростом выше заданного

// x- указатель на структуру «человек», n- кол-во человек

// trost- сравниваемый рост

void Findlong(man* x, int n, int trost)

{int i, flag=0;

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

if((x+i)->rost>trost) // если есть человек ростом выше заданного

{flag=1; vivod1(x,i); }// производим вывод этого человека

if (flag==0)

cout<<" Людей ростом выше, чем "<<trost<<" нет!"<<’\n’;

return;

}

 

 

void main()

{int i, k, tr;

char tempfam[20];// некоторая фамилия

man* a;// указатель на массив структур

cout<<"Кол-во студентов: "<<’\n’;

cin>>i;

a=new man[i]; // выделение памяти под массив из i структур

if (a!=0)// если есть память

{vvod(a,i); vivod(a,i);//вызов функций ввода и вывода

cout<<"Введите фамилию студента, которого будем искать: "<<’\n’;

cin>>tempfam;

k=Findfam(a,i,tempfam);//номер студента с искомой фамилией

if(k!=-1) vivod1(a,k);

cout<<"Введите рост, c которым будем сравнивать студентов:"<<’\n’;

cin>>tr;

Findlong(a,i,tr);//вызов функции поиска людей по росту

delete a;//освобождение выделенной памяти

} else cout<<”Памяти нет!”

Файлы

Поддерживается два типа файлов текстовые и бинарные. Текстовые файлы можно просмотреть и изменить любым редактором. Информация в бинарных файлах записана в том же виде, что и в оперативной памяти компьютера, т.е. программа чтения такого файла, “знает” последовательность и типы записанных данных. Работа с этим видом файлов происходит немного быстрее, т.к. не надо форматировать данные, однако они хуже переносимы.


Дата добавления: 2015-07-08; просмотров: 163 | Нарушение авторских прав


Читайте в этой же книге: Идентификаторы | Математические функции | Операторы управления |
<== предыдущая страница | следующая страница ==>
Шаблоны функций| Функции форматного ввода и вывода данных

mybiblioteka.su - 2015-2024 год. (0.006 сек.)