Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Лабораторная работа: Работа со структурами в языке программирования Си

Название: Работа со структурами в языке программирования Си
Раздел: Рефераты по информатике
Тип: лабораторная работа Добавлен 14:24:06 15 декабря 2010 Похожие работы
Просмотров: 101 Комментариев: 22 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать

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

“Работа со структурами в языке программирования Си++”

Цель работы: познакомиться с понятием структуры и структурной переменной. Научиться создавать массивы структур и работать со вложенными структурами.

1. Теоретические сведения

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

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

Объявление структуры осуществляется с помощью ключевого слова struct, за которым следует ее тип, список элементов, заключенных в фигурные скобки. Ее можно представить в следующем общем виде:

struct тип {тип элемента 1 имя элемента 1;

тип элемента n имя элемента n; };

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

Например:

struct date { int day;

int month;

int year;} ;

Русские буквы использовать в идентификаторе в языке СИ нельзя.

Следом за фигурной скобкой, заканчивающей список элементов, могут записываться переменные данного типа, например:

struct date {…} a, b, c;

При этом выделяется соответствующая память.

Выведенное имя типа можно использовать для объявления записи, например: struct date day;. Теперь переменная day имеет тип date.

Разрешается вкладывать структуры одна на другую. Для лучшего восприятия структуры используем русские буквы в идентификаторах, в языке СИ этого делать нельзя.

Например:

struct УЧЕНИК { char Фамилия [15];

имя [15];

struct DATA ДАТА РОЖДЕНИЯ;

int класс, возраст;};

Определенный выше тип DATA включает три элемента: День, Месяц, Год, содержащие целые значения (int). Запись УЧЕНИК включает элементы: ФАМИЛИЯ [15]; ИМЯ[15]; ДАТА РОЖДЕНИЯ, КЛАСС, ВОЗРАСТ. ФАМИЛИЯ [15] и ИМЯ [15] – это символьные массивы из 15 компонент каждый. Переменная ДАТА РОЖДЕНИЯ представлена составным элементом (вложенной структурой) ДАТА. Каждой дате рождения соответствуют день месяца, месяц и год. Элементы КЛАСС и ВОЗРАСТ содержат значения целого типа (int). После введения типов ДАТА и УЧЕНИК можно объявить переменные, значения которых принадлежат этим типам.

Например:

struct УЧЕНИК УЧЕНИКИ [50];

массив УЧЕНИКИ состоит из 50 элементов типа УЧЕНИК.

В языке СИ разрешено использовать массивы структуры; записи могут состоять из массивов и других записей.

Чтобы обратиться к отдельному компоненту структуры, необходимо указать ее имя, поставить точку и сразу за ней написать имя нужного элемента.

Например:

Ученики [1]. КЛАСС = 3;

Ученики [1]. ДАТА РОЖДЕНИЯ. ДЕНЬ=5;

Ученики [1]. ДАТА РОЖДЕНИЯ. МЕСЯЦ=4;

Ученики [1]. ДАТА РОЖДЕНИЯ. ГОД=1979;

Первая строка указывает, что 1-й ученик учится в третьем классе, а последующие строки – его дату рождения: 5.04.79.

Каждый тип элемента структуры определяется соответствующей строкой объявления в фигурных скобках. Например, массив УЧЕНИКИ имеет тип УЧЕНИК, год является целым числом. Так как каждый элемент записи относится к определенному типу, его составное имя может появляться везде, где разрешено использовать значение этого типа. Рассмотрим пример программы:

/* Демонстрация записи */

#include < stdio.h >

struct computer { int mem;

int sp;

char model [20]; };

/* Объявление записи типа computer, состоящей из трех элементов: mem, sp, model */

struct computer pibm =

{512, 1, “ПЭВМЕС 1840.05”}

/* Объявление и инициализация переменной pibm типа computer */

main ( )

{ printf (“ персональная ЭВМ % s\n\n “, pibm.model);

printf ( “объем оперативной памяти - % d К байт \n”, pibm.mem);

printf (“производительность - % d млн. операций в секунду \n”, pibm.sp);

/* вывод на экран значений элементов структуры */

}

В данной программе объявляется запись computer, которая состоит из трех элементов: mem (память ЭВМ), sp (быстродействие), model [20] (модель ПЭВМ). Переменная pibm имеет тип computer и является глобальной. Строки pibm.model, pibm.mem, pibm. sp в операторе printf вызывают обращение к соответствующим элементам записи pibm типа computer, которым ранее были присвоены определенные значения.

Результат работы программы имеет вид:

персональная ЭВМ ПЭВМ ЕС 1840.05

объем оперативной памяти – 512 К байт

производительность – 1 млн. операций в секунду

Рассмотрим использование в программе вложенных структур:

/* Демонстрация вложенных структур*/

# include < stdio.h >

struct date { int day;

int month;

int year; };

/* Объявление записи типа date*/

struct person { char fam [20];

char im [20];

char ot [20];

struct date f1;};

/* Объявление структуры типа person; одним из элементов записи person является запись f1

типа date */

main ( )

{ struct person ind1;

/* обьявление переменной ind1 типа person */

printf ( “Укажите фамилию, имя, отчество, день, \n месяц”

“ и год рождения гражданина ind1\n”);

scanf (“ % S % S % S %d %d”, &ind1.fam, &ind1.im, &ind1.ot,

& ind1.f1.day, &ind1.f1.month, &ind1.f1.year );

/* Ввод сведений о гражданине ind1 */

printf (“ Фамилия, имя, отчество: % S % S % S \n”, ind1.fam, ind1.im, ind1.ot);

printf (“ Годрождения - % d \n”, ind1.f1.year);

printf (“ Месяцрождения - % d -й \n”, ind1.f1.month);

printf (“ День рождения - % d -й \n”, ind1.f1.day);

/* Вывод сведений о гражданине ind1 */

}

Структура типа date ( дата) содержит три элемента: day (день), month (месяц), year (год). Структура типа person (человек) содержит четыре элемента: fam[20] (фамилия), im[20] (имя) , ot[20] (отчество), f1 (дата рождения). Последний из них (f1) – это вложенная запись типа date.

Результаты работы программы:

Укажите фамилию, имя, отчество, день, месяц и год рождения гражданина ind1

Алексеев

Сергей

Петрович

3

5

1978

Подчеркнутая информация вводится пользователем.

Сведения о гражданине ind1

Фамилия, имя, отчество: Алексеев Сергей Петрович

Год рождения – 1978

Месяц рождения – 5-й

День рождения – 3-й

В следующей программе рассмотрим использование структуры в виде элементов массива pibm. Каждый элемент состоит из следующих компонентов: mem (память), sp (объем винчестера), model [20] (модель ПЭВМ):

/* Массивы записей */

#include < stdio.h >

struct computer { int mem, sp;

char model [20];

pibm [10];};

/* объявлениезаписитипа computer;

объявление массива pibm типа computer */

main ( )

{ int i, j, k, priz;

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

{ printf (“Введите сведения о ПЭВМ %d и признак (0-конец;

\n другая цифра- продолжение)\n”, i);

printf (“ модельПЭВМ - ”);

scanf (“%S”, &pibm [i].model );

printf ( “объемоперативнойпамяти -”);

scanf (“%d”, &pibm[i].mem);

printf (“ объемвинчестера - ”);

scanf ( “%d , &pibm[i].sp ”);

printf (“признак - ”);

scanf (“ %d ”, &priz );

k=i;

if (!priz) break; }

/* Здесь !priz – операцияотрицания priz; break – выходизцикла for, если priz=0 */

for (i=0; i<10, i++);

{

printf ( “\n О какой ПЭВМ Вы хотите получить сведения?\n (Введите номер от 0 до 9)\n” );

scanf ( “%d ”,&j );

if (j>k)

{ printf (“Нет сведений об этой ПЭВМ \n”);

continue; }

printf (“ персональнаяЭВМ %s\n ”, pibm[j].model);

printf (“объем оперативной памяти - % d Мб \n ”, pibm[j].mem);

printf (“объем винчестера - % d Мб \n ”, pibm[j].sp);

printf (“ признак – “ );

scanf ( “ %d ”, &priz);

if (!priz) break; }

/* Ввод сведений о ПЭВМ и занесение в массив pibm записей типа computer (первый цикл for); вывод на экран сведений о ПЭВМ (второй цикл for) */

}

Результаты работы программы:

Введите сведения о ПЭВМ и признак (0-конец; другая цифра – продолжение)

модель ПЭВМ – АТ 486 SX

объем оперативной памяти – 32

объем винчестера – 4 Гбайта

признак – 1

Введите сведения о ПЭВМ и признак (0-конец; другая цифра – продолжение)

модель ПЭВМ – АТ 386 DX

объем оперативной памяти – 64

объем винчестера – 14 Гбайт

признак – 0

О какой ПЭВМ Вы хотите получить сведения? (Введитн номер от 0 до 9)

1

модель ПЭВМ – АТ 386 DX

объем оперативной памяти – 16 Мб

объем винчестера – 2,5 Гбайт

признак – 0

2. Задание

Из таблицы взять задание по варианту и написать программу.

3. Содержание отчета

Отчет должен содержать:

1) задание к работе;

2) программу;

3) результаты расчетов.

№ вар. Задание
1 Опишите запись СТУДЕНТ и поместите в нее следующую информацию: Ф.И.О., оценки (математика, физика, черчение, химия, сопромат). Определите, сколько студентов имеют неудовлетворительную оценку по математике.
2 Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов имеют неудовлетворительную оценку хотя бы по одному предмету.
3 Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов сдали все экзамены на 5.
4 Воспользовавшись записью СТУДЕНТ из варианта №1, определите средний балл группы по физике.
5 Воспользовавшись записью СТУДЕНТ из варианта №1, определите количество отличных оценок, полученных группой по всем предметам.
6 Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов имеют средний балл от 4 до 5.
7 Воспользовавшись записью СТУДЕНТ из варианта №1, определите, какое количество неудовлетворительных оценок получено по всем предметам.
8 Воспользовавшись записью СТУДЕНТ из варианта №1, определите, какой из предметов был сдан группой лучше всего.
9 Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов не имеют задолженностей.
10 Опишите запись АНКЕТА и поместите в нее следующую информацию: Ф.И.О.(фамилия, имя, отчество), адрес (улица, номер дома, номер квартиры), пол, возраст. Определите, сколько лиц женского и сколько мужского пола проживают в одном доме.
11 Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько лиц мужского пола в возрасте старше 18 лет и младше 60 проживают на одной улице.
12 Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько лиц женского пола в возрасте старше 30 лет проживают в одном доме.
13 Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько детей до 7 лет проживают на одной улице.
14 Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько лиц мужского пола и женского в возрасте до 50 лет проживают на одной улице.
15 Воспользовавшись записью АНКЕТА из варианта №10, определите, сколько детей от 1 года до 5 проживают в одном доме.
16 Опишите запись ТРАНСПОРТ и поместите в нее следующую информацию: Ф.И.О. (фамилия, имя, отчество пассажира), багаж (количество вещей, вес в кг). Определить число пассажиров, вес багажа которых превышает 30 кг.
17 Воспользовавшись записью ТРАНСПОРТ из варианта №16, определите, имеется ли пассажир, багаж которого состоит из одной вещи весом в 20 кг.
18 Воспользовавшись записью ТРАНСПОРТ из варианта №16, определите средний вес багажа.
19 Воспользовавшись записью ТРАНСПОРТ из варианта №16, определите количество пассажиров, вес багажа которых превосходит средний.
20 Воспользовавшись записью ТРАНСПОРТ из варианта №16, определите количество пассажиров, имеющих более трех вещей.

Литература

1. Подбельский В.В. Язык Cu ++: Учебное пособие. - М.: Финансы и статистика,1995, - 560 с.

2. Страуструп Б. Язык программирования Сг ++. - М.: Радио и связь, 1991. - 352 стр.

3. Собоцинский В.В. Практический курс Turbo Cu ++. Основы объктно- ориентированного программирования. - М.: Свет, 1993. - 236 с.

4. Романов В.Ю. Программирование на языке Cu ++. Практический подход. - М.: Компьтер, 1993. - 160 с.

5. Уинер Р. Язык турбо Cu . - М.: Мир, 1991. - 384 с.

6. Юлин В.А., Булатова И.Р. Приглашение к Cu. - Мн.: Высш. Шк., 1990,- 224 с.

7. Котлинская Г.П., Галиновский О.И. Программирование на языке Cu. -Мн.: Высш. Шк., 1991. - 156 с.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Хватит париться. На сайте FAST-REFERAT.RU вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую!
Никита07:10:04 04 ноября 2021
.
.07:10:02 04 ноября 2021
.
.07:09:59 04 ноября 2021
.
.07:09:57 04 ноября 2021
.
.07:09:55 04 ноября 2021

Смотреть все комментарии (22)
Работы, похожие на Лабораторная работа: Работа со структурами в языке программирования Си

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(294402)
Комментарии (4230)
Copyright © 2005 - 2024 BestReferat.ru / реклама на сайте