Form_tab - формирование таблицы данных из файла




Задание

Дан файл содержащий информацию о результатах городской олимпиады по математике.

Структура записи файла:

номер участника;

фамилия;

количество баллов по каждой из пяти задач;

Написать программу выдающую:

фамилии победителей, занявших первые три призовых места, с указанием суммарного количества баллов и номеров школ;

сведения о результатах участников заданной школы;


Описание применения

Запуск программы

 

Запуск программы (файл Olimpiad.c) можно выполнить из среды Turbo C 2.0 (или Borland C++ 3.1), либо из командной строки MS DOS, введя Olimpiad.exe.

Входные данные

Входные данные программы находятся в файле “School.txt”. Число строк в файле - 50. Каждая строка содержит номер участника (3 символа), фамилию (25 символов), номер школы (6 символов), баллы за каждую из пяти задач (3 символа - баллы за одну задачу). Пример строки файла:

 

1 Ivanov 3 4 5 4 5 4

|3 | 25 | 6 | 3 | 3 | 3 | 3 | 3 |

 

Пример входного файла приведен в приложении 2.

По запросу программы с клавиатуры необходимо ввести номер пункта меню (см. раздел 2.3), номер школы.

 

Выходные данные

Программа выводит на экран меню:


При выборе пункта 1 на экран выводиться результат в виде:

 

Примеры выходных данных для остальных пунктов меню см. в приложении 3.

 

Сообщения программы

Ниже приводится перечень возможных сообщений программы:

. Файл ‘School.txt’ не найден

. Введите номер пункта меню

. Введен неверный номер пункта меню

. Введите номер школы

. Участников из данной школы нет

. №п/п Фамилия 1з 2з 3з 4з 5з Сумма баллов Место

. №п/п Фамилия №школы Сумма баллов Место

 


Описание программы

Метод решения задачи

Задачу можно разбить на две отдельные подзадачи:

1. Последовательный просмотр таблицы. Если номер школы данного участника совпадает с заданным, то вывод сведений о данном участнике с указанием баллов за каждую из пяти задач, суммы баллов и места.

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

Каждая подзадача решается методом линейного поиска (последовательного просмотра элементов таблицы).

Чтобы пользователь мог выбирать, какую из подзадач решать и в каком порядке, программа выводит на экран меню (см. раздел 2.3).

 

Структура программы

 

 

Рис.1. Функциональная структура программы

 

Программа состоит из четырех функций: главной функции main и трех подпрограмм.

Form_tab - Чтение файла и формирование таблицы из данных, содержащихся в файле. Используя поля баллов за каждую из пяти задач полученной таблицы создание массива, который будет содержать суммы баллов всех участников. Затем сортировка таблицы и полученного массива по убыванию сумм баллов. Затем на основании массива, в котором содержатся суммы баллов всех участников создание другого массива, в котором будут храниться места всех участников.

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

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

 

Описание функций

Main - главная функция

Заголовок функции:

int main ()

Значение функции:

- в случае успешного завершения;

- если входной файл не найден.

Рабочие данные:

f - указатель на структуру с информацией о входном файле;

n - номер пункта меню.

d - количество участников

sum[dl_tab] - массив содержащий суммы баллов всех участников

mesto[dl_tab] - массив содержащий места всех участников

tablica[dl_tab] - таблица из данных, содержащихся в файле

Структура записи файла:

num - номер участника

fam - фамилия участника

school_num - номер участника

_zad - баллы за первую задачу

_zad - баллы за второю задачу

_zad - баллы за третью задачу

_zad - баллы за четвертую задачу

_zad - баллы за пятую задачу

Form_tab - формирование таблицы данных из файла

Заголовок функции:form_tab(FILE *f, struct el_tab tab[], float sum [], int mesto[], int d)

Значения функции:

d - количество участников

Входные данные:

*f - ссылка на входной файл

Выходные данные: [] - таблица данных из файла - количество участников [] - массив содержащий суммы баллов всех участников

mesto[] - массив содержащий места всех участников


 

 

Рис. 2. Блок-схема функции формирования таблицы данных из файла



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-12-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: