Программирование алгоритмов с 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Программирование алгоритмов с



Использованием переменной структура

Цель работы – овладение навыками алгоритмизации и программирования алгоритмов с использованием переменной структура (запись), проектирование элементов структуры, выбор типов элементов структуры, доступ к элементам структуры, ввод и вывод значений элементов структуры.

 

Задания для самостоятельной подготовки:

1. Изучить:

-основную терминологию, связанную с переменной структура: определение, элемент структуры;

- организацию доступа к элементам структуры;

- организацию ввода и вывода значений элементов структуры.

2. Разработать алгоритм решения в соответствии с заданием.

3. Составить программу решения задачи.

4. Подготовить тестовый вариант исходных данных. Выполнить на ЭВМ программу с тестовым вариантом.

 

Задание к работе:

Задание.

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

- фамилия сборщика,

-наименование цеха,

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

Вывести на экран информацию в виде таблицы и согласно варианту из таблицы 12.

Таблица 9

Вариант задания Условия задачи
  Распечатать данные о сборщике, собравшем наибольшее количество изделий за первую неделю.
  Распечатать данные о сборщике, собравшем наибольшее количество изделий категории А за весь период.
  Распечатать информацию об общем количестве изделий по категориям А, В, С для цеха Х.
  Распечатать информацию об общем количестве изделий, собранных каждым рабочим цеха Х.
  Считая заданными значения расценок Sa, Sb, Sa за выполненную работу по сборке единицы изделия категории А, В, С соответственно вычислить для каждого рабочего цеха Х заработную плату за весь период.
  Считая заданными значения расценок Sa, Sb, Sa за выполненную работу по сборке единицы изделия категории А, В, С соответственно вычислить для Х рабочего заработную плату за каждую неделю.
  Распечатать данные о сборщике, собравшем наибольшее количество изделий категории В за первую неделю.
  Распечатать информацию об общем количестве изделий по категориям А, В, С, собранных каждым рабочим.
  Считая заданными значения расценок Sa, Sb, Sa за выполненную работу по сборке единицы изделия категории А, В, С соответственно вывести на экран информацию о рабочем, имеющего наибольшую плату за весь период.
  Распечатать данные о сборщике, собравшем наименьшее количество изделий категории С за вторую неделю.

Продолжение таблицы 9

 

Вариант задания Условия задачи
  Распечатать данные о сборщике, собравшем наименьшее количество изделий за последнюю неделю.
  Считая заданными значения расценок Sa, Sb, Sa за выполненную работу по сборке единицы изделия категории А, В, С соответственно вывести на экран информацию о рабочем, имеющего наименьшую плату за последнюю неделю.
  Распечатать информацию об общем количестве изделий по категориям А, В, С, собранных каждым рабочим.
  Распечатать данные о сборщике, собравшем наибольшее количество изделий категории А за весь период.
  Распечатать данные о сборщике, собравшем наибольшее количество изделий категории В за первую неделю.

 

Пример выполнения работы

Задание.

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

- фамилия студента;

- группа;

- оценки.

Вывести на экран введенную информацию в виде таблицы и информацию о студентах, имеющих средний балл выше 3.

 

Программа решения задачи имеет вид:

 

#include<stdio.h>

#include<conio.h>

 

void main()

{

struct student

{

char fio[25],gr[7]; // Ф.И.О. студента

int mark[9][6],kurs,kol[9]; // оценки по семестрам, курс, сессии

}st[250];

int m,kolst,i,j,l,k,n,p,o,q,s;

float sr;

 

printf("\n Введите количество студентов:");

scanf("%d",&kolst);

 

for (i=0; i<kolst;i++) // ввод информации о студентах

{

printf("Введите фамилию:");

scanf("%s",&st[i].fio);

printf("Введите группу:");

scanf("%s",&st[i].gr);

printf("Введите курс:");

scanf("%d",&st[i].kurs);

if (st[i].kurs==5) // это чтобы не было 10 сессии

l=1;

else l=0;

 

for (j=0;j<st[i].kurs*2-l;j++)

{

printf("Введите количество оценок в %d семестре:",j+1);

scanf("%d",&st[i].kol[j]);

printf("Введите оценки за %d семестр:",j+1);

 

for (k=0;k<st[i].kol[j];k++)

scanf("%d",&st[i].mark[j][k]);

}

}

printf("Информация о студентах \n");

printf("┌─────────┬────────┬───────┬────────┬───────────┐\n");

printf("│ФИО студента│ Группа │ Курс │ Семестр │ Оценки │\n");

printf("│ │ │ │ ├─┬─┬─┬─┬─┬─│\n");

printf("├─────────┼────────┼───────┼────────┼─┼─┼─┼─┼─┼─┤\n");

m=0; // кол-во студентов с баллом выше 3

 

for (i=0; i<kolst;i++) // цикл по студентам

{

sr=0; // средний балл

n=0; // количество оценок

if(st[i].kurs==5)

l=1;

else l=0;

 

for (j=0;j<st[i].kurs*2-l;j++) // цикл по семестру (сколько проучился)

{

 

for (k=0;k<st[i].kol[j];k++) // цикл по оценкам в j-той сессии

sr+=st[i].mark[j][k]; // k-тая оценка в j-той сессии

n+=st[i].kol[j];

}

sr/=n; \\средний балл

 

if (sr>=4)

{

printf("│ %-16s│ %-7s", st[i].fio,st[i].gr);

 

for (p=1;p<st[i].kurs+1;p++) // вывод курса

{

printf("│%-7d",p);

 

for (o=2*p-l-1;o<2*p-l+1;o++) // вывод o-того семестра

{

printf("│%-8d",o);

 

for (q=0;q<st[i].kol[o-1];q++) // вывод оценок в o-том семестре

printf("│%-d",st[i].mark[o-1][q]);

 

if (q<6) // чтобы были пустые ячейки, если оценок меньше 6

for (s=0;s<6-q;s++)

printf("│ ");

printf("│\n"); // переход на следующую строку в таблице

printf("│ │ │ ");

}

printf("│ │ │ │ │ │ │ │\n");

printf("│ │ ");

}

printf("│ │ │ │ │ │ │ │ │\n");

m++;

}

}

printf("└─────────┴────────┴───────┴────────┴─┴─┴─┴─┴─┴─┘\n");

 

if (m= =0)

printf("Студенты, имеющие средний балл, больший 3,отсутствуют\n");

getch();

return;

}

 

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

  1. Что такое структура? Как объявить структуру в программе?
  2. Что такое тег? Какова область значение тега?
  3. Какие типы допускается объявлять для элементов структуры?
  4. Какие операции допустимы со структурой как с единым целым?
  5. Каким образам осуществляется доступ к элементу структуры?
  6. Особенности ввода и вывода значений структур?

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



Поделиться:


Последнее изменение этой страницы: 2017-02-19; просмотров: 181; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.104.238 (0.011 с.)