50178

Программирование задач с использованием структур

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

Информатика, кибернетика и программирование

Создать и ввести массив из структур типа student размер массива произвольный и выполнить задание согласно варианту: Распечатать анкетные данные студентов отличников. Распечатать анкетные данные студентов успевающих на 4 и 5. Распечатать анкетные данные студентов имеющих одну 3. Распечатать анкетные данные студентов имеющих двойки.

Русский

2014-01-17

38 KB

16 чел.

Лабораторная Работа № 15

Тема: Программирование задач с использованием  структур.

Цель: Овладение навыками алгоритмизации и программирования задач с использованием структур.

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

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

struct student{

char name[30];

int kurs;

char grup[3];

int stip;

}; // пока никакая структурная переменная не объявлена

  •  Для того, чтобы объявить конкретные переменные типа struct student, можно записать  struct student st1,st2; При такой записи компилятор автоматически выделит место в памяти компьютера. Причем, задание шаблона структуры и объявление переменных может производиться и в одном операторе.
  •  Доступ к конкретному элементу структуры осуществляется с помощью оператора «точка». Например, strcpy(st1.name, “Иванов М.С.”);
  •  Структуры, как и переменные другого типа, могут объединяться в массивы структур. Чтобы объявить массив структур, надо сначала задать шаблон структуры, а затем объявить массив: struct student studkurs[200];
  •  Для доступа к полю i-го элемента массива используем studkyrs[i].kurs;
  •  Если объявлены две переменные с одним шаблоном, то возможно присваивание st1=st2; при этом произойдет побитовое копирование каждого поля одной переменной в соответствующее поле другой структуры.
  •  Переменная типа структуры может быть глобальной, локальной переменной и формальным параметром.

Пример: Оформить данные о семье в виде массива структур. Выдать на экран данные о самом старшем члене семьи.

#includ<stdio.h>

#includ<conio.h>

struct chlens{

char fio[30];

float god;

}sem[5]; // массив структур из пяти элементов объявлен как глобальное данное

void main()

{

 int g[5],i,k,max;

 puts(”Вводите сведения о члене семьи”);

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

{  

puts(“Введите Ф.И.О.”);

gets(sem[i].fio);

puts(“Введите год рождения”);

scanf(“%f”,&sem[i].god);

g[i]=2008-sem[i].god;

}// for для ввода данных

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

{

if(g[i]>-1000)

             {  max=g[i];

                 k=i;

               }

}// нахождение максимального возраста и его номера

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

{

If(i==k)

printf(“Ф.И.О. самого старшего члена семьи:%30s”,sem[i].fio);

}

}//main

Варианты заданий: имеется структура типа student с полями: ФИО, год рождения, год поступления, оценки за 1, 2, и 3 экзамен (предметы любые). Создать и ввести массив из структур типа student (размер массива произвольный) и выполнить задание согласно варианту:

  1.   Распечатать анкетные данные студентов отличников.
  2.   Распечатать анкетные данные студентов, успевающих на 4 и 5.
  3.   Распечатать анкетные данные студентов, имеющих одну 3.
  4.   Распечатать анкетные данные студентов, имеющих двойки.
  5.   Распечатать анкетные данные студентов получивших одну 5.
  6.   Распечатать анкетные данные студентов получивших две 4.
  7.   Распечатать студентов , фамилия которых начинается с буквы А и их оценки.
  8.   Распечатать студентов , фамилия которых начинается с буквы Б и родившихся после определенного месяца.
  9.   Распечатать оценки студентов, фамилии которых начинаются с буквы В и Г.
  10.  Распечатать фамилии и даты рождения студентов, не получивших ни одной тройки и поступивших после 2003 года.
  11.  Вывести список студентов, упорядочив его по возрастанию среднего балла.
  12.  Вычислить средний балл всех студентов и распечатать список студентов, имеющих средний балл выше  общего среднего балла.
  13.  Вычислить средний балл всех студентов и распечатать список студентов, имеющих средний балл ниже  общего среднего балла.
  14.  Вычислить средний балл всех студентов и распечатать список студентов, имеющих средний балл равный  общему среднему баллу.
  15.  Распечатать фамилии и даты поступления студентов, не получивших ни одной 5 и родившихся после 1987 года.

Контрольные вопросы:

  1.  Как описываются переменные типа структура?
  2.  В каких случаях целесообразно использовать переменные типа структура?
  3.  Из каких компонентов состоит переменная типа структура?
  4.  Какие операции допустимы над полями структур?
  5.  Зачем используются массивы из структур?

Содержание отчета:

  1.  Краткие теоретические сведения.
  2.  Схемы алгоритмов.
  3.  Тексты составленных программ.
  4.  Протоколы к составленным программам.
  5.  Вывод о проделанной работе.


 

А также другие работы, которые могут Вас заинтересовать

80727. Теория классификации частей речи. Проблема частей речи в зарубежной и отечественной лингвистике 38.55 KB
  Теория классификации частей речи. Проблема частей речи в зарубежной и отечественной лингвистике Весь словарный состав английского языка как и всех индоевропейских языков подразделяется на определенные лексико-грамматические классы называемые частями речи. Самые первые перечни частей речи приводившиеся в ранних трудах по философии и логике и являвшиеся первыми классификациями частей речи едва ли основывались на каких либо четких критериях. Многие другие разряды слов приобретшие впоследствии статус частей речи были выделены из сферы имени...
80728. Проблема частей речи в отечественной лингвистике. Классификации отечественных лингвистов 31.25 KB
  Проблема частей речи в отечественной лингвистике. Классификации отечественных лингвистов Отечественные лингвисты в отличие от зарубежных авторов считают триединый принцип классификации частей речи ведущим но допускают возможность привлечения двух признаков: семантического и синтаксического так как английский язык аналитический и в ряде случаев отсутствует признак формы. Впервые эта мысль была высказана Щербой в статье О частях речи в английском языке. Наиболее четкое определение частей речи которого придерживаются и исследователи...
80729. Имя существительное. Проблемы падежа, числа, рода. Лексико-грамматические разряды существительных 35.14 KB
  Существительное это знаменательная часть речи обладающая семантическим значением предметности характеризующаяся наличием определенных грамматических категорий и зависимых грамматических значений. Грамматическое значение это обобщенное абстрагированное значение объединяющее крупные разряды слов и выраженное через свойственные ему формальные показатели. Зависимое грамматическое значение лексико-грамматическое значение это значение соединяющее лексический состав и грамматическую форму. Итак существительное обладает значением...
80730. Проблема артикля 33.85 KB
  Проблема места артикля представлена двумя теориями: Одна из них рассматривает сочетание Артикль Существительное как аналитическую форму. Вторая теория относит артикль к служебным частям речи а сочетание Артикль Существительное трактуется как сочетание особого типа. В соответствии с первой теорией если данное сочетание рассматривать как аналитическое то артикль приравнивается к вспомогательной части аналитической формы. В пользу этого можно привести следующие доводы: Артикль является морфологическим показателем существительного.
80731. Прилагательное. Категории прилагательного 36.35 KB
  Прилагательное это часть речи называющая признак предмета обладающий условной устойчивостью без указания на развитие признака вор времени. Прилагательное выделяется на основе трех критериев: значения формы и функции. Прилагательное обладает обобщающим грамматическим значением и это значение признака свойства или состояния.
80732. The Old English Noun 27.92 KB
  The inflection of the Old English noun indicates distinctions of number (singular and plural) and case. The case system is somewhat simpler than that of Latin and some of the other Indo-European languages. There is no ablative, and generally no locative or instrumental case, these having been merged with the dative...
80733. Actual division of the sentence 26.83 KB
  The purpose of the actual division of the sentence is to reveal the correlative significance of the sentence parts from the point of view of their actual informative role in an utterance. The main components of the actual division of the sentence are the theme and the rheme.
80734. Sentence in traditional syntax 27.07 KB
  From the traditional point of view the nuclear of syntax is formed by the gram. Subject and gram. Predicate. Periphery is formed by other parts of a sentence: complements, objects, two types of adjuncts (attributes and adverbial modifiers). These parts of a syntax are called secondary and are normally optional.
80735. Parts of speech classification, gram-l classes of words 27.62 KB
  There are three main criteria according to which we classify the words into a different gram. classes. They are meaning, form function. not the individual lexical meaning of each word but the meaning common to all the words of a given class which constitutes its essence; form, it’s the morphological characteristics of a type of word...