Разработка программы при помощи языка программирования
Особенность структуры записи файла. Главный анализ входных и выходных данных программы. Перечень возможных сообщений проекта. Характеристика функционального строения схемы. Разработка информации вывода сведений о результатах участников данной школы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 10.03.2015 |
Размер файла | 39,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ и НАУКИ РФ
ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
КАЗАНСКОГО НАЦИОНАЛЬНОГО ИССЛЕДОВАТЕЛЬСКОГО ТЕХНИЧЕСКГО УНИВЕРСИТЕТА им. А.Н. ТУПОЛЕВА-КАИ
КОНТРОЛЬНАЯ РАБОТА
по дисциплине «Программирование на языке высокого уровня»
2013 год
СОДЕРЖАНИЕ
1. ЗАДАНИЕ
2. ОПИСАНИЕ ПРИМЕНЕНИЯ
2.1 Запуск программы
2.2 Входные данные
2.3 Выходные данные
2.4 Сообщения программы
3. ОПИСАНИЕ ПРОГРАММЫ
3.1 Метод решения задачи
3.2 Структура программы
3.3 Описание функций
3.3.1 Мain - главная функция
3.3.2 School - вывод сведений о результатах участников данной школы
3.3.3 Pobedit - вывод списка победителей, занявшие первые 3 места
ЛИТЕРАТУРА
ПРИЛОЖЕНИЯ
1. ЗАДАНИЕ
Дан файл, содержащий информацию о результатах городской олимпиады по математике среди школьников. Структура записи файла:
- номер участника,
- фамилия,
- номер школы,
- количество баллов по каждой из пяти задач.
Написать программу, выдающую
- фамилии победителей, занявших первые три призовых места, с указанием суммарного количества баллов и номеров школ;
- сведения о результатах участников заданной школы.
2. ОПИСАНИЕ ПРИМЕНЕНИЯ
2.1 Запуск программы
Запуск программы (файл patient.cpp) можно выполнить из среды Turbo C++ 3.0 (или Borland C++ 3.1), либо из командной строки MS DOS, введя olimpiada.exe .
2.2 Входные данные
Входные данные программы находятся в файле “olimpia.txt”. Число строк в файле - произвольное. Каждая строка содержит порядковый номер участника(3 символа), фамилию с инициалами (25 символов), номер школы (5 символов), список баллов (7 символов).
Пример строки файла:
1 Ivanov A.I. 9 34545
| 3| 25 | 5 | 7 |
Пример входного файла приведен в приложении 2.
По запросу программы с клавиатуры необходимо ввести номер пункта меню (см. раздел 2.3), номер школы.
2.3 Выходные данные
Программа выводит на экран меню:
Vyberite nomer punkta menyu:
1 - vyvod FIO pobediteley, zanjavschie pervie 3 mesta;
2 - vyvod svedenij o resultatach uchastnikov dannoy schkoli;
3 - vihod;
При выборе пункта 2 на экран выводится сообщение:
Vvedite nomer school:
После ввода номера школы, например 3, выводится результат в виде:
| N Familiya I.O. N school. Bally |
5 Huzin N.N. 3 56182
8 Grushin A.A. 3 33333
9 Melnikova E.D. 3 67912
Если ввести номер школы, которой нет в файле, выводится сообщение:
Net zadannoy school
Примеры выходных данных для остальных пунктов меню см. в приложении 3.
2.4 Сообщения программы
Ниже приводится перечень возможных сообщений программы:
1. File olimpia.txt ne naiden
2. Vyberite nomer punkta menyu:
3. Nuzhno vvodit nomer punkta ot 1 do 3
4. Vvedite nomer school:
5. N Familiya I.O. N school Bally
6. Net zadannoy school
7. N Familiya I.O. N school Summa Mesto
8. Dlya prodolzheniya nazhmite lyubuyu klavishu
3. ОПИСАНИЕ ПРОГРАММЫ
3.1 Метод решения задачи
Задачу можно разбить на две отдельные подзадачи:
1. Поиск в файле записей, в которых номер школы совпадает с заданной школой, и вывод списка таких учащихся.
2. Последовательный просмотр записей файла, суммирование баллов всех учащихся и определение максимальной суммы баллов, чтобы определить победителей, занявшие первые три места.
Каждая подзадача решается методом линейного поиска (последовательного просмотра элементов таблицы).
Чтобы пользователь мог выбирать, какие подзадачи решать и в каком порядке, программа выводит на экран меню (см. раздел 2.3).
3.2 Структура программы
Размещено на http://www.allbest.ru/
Рис. 1. Функциональная структура программы
Программа состоит из трех функций: главной функции main и двух подпрограмм.
School - вывод сведений о результатах участников данной школы.
Pobedit - вывод ФИО победителей, занявшие первые 3 места.
3.3 Описание функций
3.3.1 Main - главная функция
Заголовок функции:
int main ()
Значение функции:
0 - в случае успешного завершения;
1 - если входной файл не найден.
Рабочие данные: запись файл данные программа
f - указатель на структуру с информацией о входном файле;
n - номер пункта меню.
Размещено на http://www.allbest.ru/
Рис. 2. Блок-схема функции main()
3.3.2 School - вывод сведений о результатах участников данной школы
Заголовок функции: Структура записи файла:
void SCHOOL(FILE *f) num - порядковый номер учащегося
fio - фамилия и инициалы учащегося school - номер школы
Входные данные: ball - список баллов
f - ссылка на входной файл
3.3.3 Pobedit - вывод списка победителей, занявшие первые 3 места
Заголовок функции: Структура записи файла:
void POBEDIT(FILE *f) num - порядковый номер учащегося
fio - фамилия и инициалы учащегося
Входные данные:
f - ссылка на входной файл
Размещено на http://www.allbest.ru/
ЛИТЕРАТУРА
1. Хохлов Д.Г. Основы технологии модульного программирования. Учебное пособие. - Казань. Изд-во Казан. гос. техн. ун-та , 2005. - 63 с.
2. Павловская Т.А. С/С++. Программирование на языке высокого уровня. - СПб: Питер, 2004г. - 461с.
3. Павловская Т.А., Щупак Ю.А. С/С++. Структурное программирование: Практикум. - СПб: Питер, 2002 г. - 240с.
4. Хохлов Д.Г. Структуры данных и комбинаторные алгоритмы. Учебное пособие. - Казань: Изд-во Казан. гос. техн. ун-та, 2005. - 102 с.
5. Хохлов Д.Г., Захарова З.Х. Практикум по структурам данных и комбинаторным алгоритмам: Учебное пособие.- Казань: Изд-во Казан. гос. техн. ун-та, 2005. - 48 с.
6. Бикмурзина А.Р. Лабораторный практикум по программированию. - Казань: Изд-во Казан. гос. техн. ун-та, 2000г.
ПРИЛОЖЕНИЯ
Приложение 1. Текст программы
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
#define DL_NUM 3 /* nomer uchastnica */
#define DL_FIO 25 /* dlina polya familii v fayle */
#define DL_SCHOOL 5 /* dlina polya nomera school */
#define DL_BALL 7 /* dlina polya 5 ocenok + '\n'+'\0' */
struct olimpiada /* struktura zapisi vkhodnogo fayla */
{ char num[DL_NUM]; /* nomer uchastnika */
char fio[DL_FIO]; /* familiya i initsialy patsi */
char school[DL_SCHOOL]; /* nomer school */
char ball[DL_BALL]; /* spisok ballov */
};
/* Prototipy funktsiy */
void SCHOOL(FILE *f);
void POBEDIT(FILE *f);
/*--------------------*/
/* Glavnaya funktsiya */
/*--------------------*/
int main()
{
FILE *f; /* ssylka na vkhodnoy fayl */
char n; /* nomer punkta menyu */
clrscr();
f = fopen("olimpia.txt","r");
if (f==NULL)
{ puts("File olimpia.txt ne najden");
getch();
return 1;
}
do
{
puts("\n================================================");
puts ("Vyberite nomer punkta menyu:");
puts ("1 - vyvod FIO pobediteley,zanjavschie pervie 3
mesta");
puts ("2 - vyvod svedenij o resultatach uchastnikov dannoy
schkoli");
puts ("3 - vihod");
puts ("-------------------------------------------------");
n = getche();
switch(n)
{
case '1': POBEDIT(f); break;
case '2': SCHOOL(f); break;
case '3': break;
default: puts("\nNuzhno vvodit nomer punkta ot 1 do 3");
}
if (n!='3')
{ puts ("\nDlya prodolzheniya nazhmite lyubuyu
klavishu");
getch();
}
}
while (n!= '3');
fclose(f);
return 0;
}
/*--------------------------------------*/
/* Funktsiya vyvoda spiska uchachichsya,*/
/* zadannoy school */
/*--------------------------------------*/
void SCHOOL(FILE *f)
{
char zschool[DL_SCHOOL]; /* zadannaya school */
int n=0; /* poryadkovyy nomer v vyvodimom spiske */
struct olimpiada tz; /* tekushchaya zapis file */
puts ("\nVvedite nomer school:");
gets (zschool);
rewind(f);
while(fgets((char*)&tz,sizeof(olimpiada),f)!= NULL)
if (strncmp(tz.school,zschool,strlen(zschool)) == 0 )
{ if (n==0)
{
puts(" -------------------------------------");
puts("| N Familiya I.O. N school. Bally |");
puts(" -------------------------------------");
n++;
}
tz.school[DL_SCHOOL-1] = '\0';
printf(" %s %s",tz.num,tz.ball);
}
if (n==0) puts ("\nNet zadannoy school");
}
getch();
/*--------------------------------------*/
/* Funktsiya vyvoda spiska pobediteley, */
/* zanjavschie pervie 3 mesta */
/*--------------------------------------*/
void POBEDIT(FILE *f)
{
struct olimpiada tz;
const int N=5;
int i,S[N];
char max1,max2,max3;
char fio[81];
char num1[81];
char num2[81];
char num3[81];
max1=S[0];
max2=S[0];
max3=S[0];
puts ("\n\n -------------------------------------------");
puts (" | N Familiya I.O. N school Summa Mesto |");
puts (" -----------------------------------------------");
while (fgets((char*)&tz,sizeof(olimpiada),f)!=NULL)
{ for (i=0,S[N]=0; i<N; i++)
S[N] += tz.ball[i]-'0';
tz.ball[NULL]='\0';
if (S[N] > max1)
{ max1=S[N];
strcpy(num1,tz.num);
}
else
if (S[N] > max2)
{ max2=S[N];
strcpy(num2,tz.num);
}
else
if (S[N] > max3)
{ max3=S[N];
strcpy(num3,tz.num);
}
}
printf(" %s %d 1 ",num1,max1);
printf("\n %s %d 2 ",num2,max2);
printf("\n %s %d 3 ",num3,max3);
fclose(f);
getch();
}
Приложение 2. Пример входного файла olimpia.txt
1 |
Ivanov A.I. |
9 |
34545 |
|
2 |
Sidorov I.I. |
5 |
54545 |
|
3 |
Petrov N.S. |
2 |
78345 |
|
4 |
Gatin I.G. |
2 |
99999 |
|
5 |
Huzin N.N. |
3 |
56182 |
|
6 |
Marhanova A.N. |
6 |
88888 |
|
7 |
Salihov V.V. |
7 |
48315 |
|
8 |
Grushin A.A. |
3 |
33333 |
|
9 |
Melnikova E.D. |
3 |
67912 |
|
10 |
Elistratova O.M. |
6 |
77777 |
Приложение 3. Результаты тестирования программы
Тест 1. Входного файла нет в текущем каталоге.
Результат:
File olimpia.txt ne naiden
В следующих тестах используется файл из приложения 2.
Тест 2.
============================================================
Vyberite nomer punkta menyu:
1 - vyvod FIO pobediteley, zanjavschie pervie 3 mesta
2 - vyvod svedenij o resultatach uchastnikov dannoy schkoli
3 - vihod
------------------------------------------------------------------------------------
| N Familiya I.O. N school Summa Mesto |
4 Gatin I.G. 2 45 1
6 Marhanova A.N. 6 40 2
10 Elistratova O.M. 6 35 3
Dlya prodolzheniya nazhmite lyubuyu klavishu
Тест 3 .
============================================================
Vyberite nomer punkta menyu:
1 - vyvod FIO pobediteley, zanjavschie pervie 3 mesta
2 - vyvod svedenij o resultatach uchastnikov dannoy schkoli
3 - vihod
------------------------------------------------------------------------------------
Vvedite nomer school:
Net zadannoy school
Dlya prodolzheniya nazhmite lyubuyu klavishu
Тест 4 . Неверно выбран номер пункта меню
============================================================
Vyberite nomer punkta menyu:
1 - vyvod FIO pobediteley, zanjavschie pervie 3 mesta
2 - vyvod svedenij o resultatach uchastnikov dannoy schkoli
3 - vihod
------------------------------------------------------------------------------------
Nuzhno vvodit nomer punkta ot 1 do 3
Dlya prodolzheniya nazhmite lyubuyu klavishu
============================================================
Vyberite nomer punkta menyu:
1 - vyvod FIO pobediteley, zanjavschie pervie 3 mesta
2 - vyvod svedenij o resultatach uchastnikov dannoy schkoli
3 - vihod
------------------------------------------------------------------------------------
Размещено на Allbest.ru
...Подобные документы
Основы проверки и расчета входных данных и вывода выходных данных программы, их блок-схемы. Реализация функции считывания числовых данных из файла, управление (создание, уничтожение и редактирование) визуальными компонентами во время выполнения программы.
контрольная работа [1,3 M], добавлен 12.06.2009Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору.
курсовая работа [1,5 M], добавлен 08.02.2011Разработка эскизного и технического проектов программы, ее назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка рабочего проекта, спецификация программы.
курсовая работа [159,8 K], добавлен 26.01.2010Область применения – учебные учреждения, где ведется учет пропусков занятий студентами. Технические характеристики разрабатываемого проекта: описание основных типов входных и выходных данных, алгоритм программы. Технико-экономические показатели проекта.
курсовая работа [906,3 K], добавлен 28.12.2010Считывание информации из файла, анализ заголовка. Установка видеорежима и анализ его параметров. Разработка процедуры вывода изображения на экран. Методы вывода сообщений. Разработка алгоритма, удовлетворяющего требованиям задания и интерфейса программы.
курсовая работа [23,6 K], добавлен 17.05.2013Разработка эскизного и технического проектов программы, ее назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка рабочего проекта, спецификация программы.
курсовая работа [700,6 K], добавлен 26.01.2010Комбинированный тип данных для хранения входных данных о студентах и информация, содержащаяся в полях. Пример структуры входных и выходных данных. Алгоритм работы и программный код программы по успеваемости студентов, описание используемых функций.
курсовая работа [135,9 K], добавлен 28.12.2012Написание программы для работы с клиентами средствами языка Delphi, которая предусматривает ввод, редактирование и удаление информации. Разработка алгоритма решения задачи, описание переменных, вспомогательных процедур, входных и выходных данных.
курсовая работа [355,7 K], добавлен 21.09.2010Разработка программы для автоматизации расчетов на телефонной станции. Описание входной и выходной информации, комплекс технических средств. Интерфейс конечного пользователя. Проектирование программных модулей представления входных и выходных данных.
курсовая работа [460,1 K], добавлен 26.06.2015Обоснование выбора языка программирования. Анализ входных и выходных документов. Логическая структура базы данных. Разработка алгоритма работы программы. Написание программного кода. Тестирование программного продукта. Стоимость программного продукта.
дипломная работа [1008,9 K], добавлен 13.10.2013Создание программы для вычисления значения функции на основе определённой формулы. Уточнение структуры входных и выходных данных и определение ассемблерного формата их представления. Разработка алгоритмов для реализации работы программного обеспечения.
курсовая работа [240,6 K], добавлен 17.06.2013Организация входных и выходных данных. Выбор состава технических и программных средств. Функционал для заполнения заявки для постоянно клиента. Форма вывода справки по программе. Таблица файлов, входящих в проект. Тестирование программы, ее листинг.
курсовая работа [2,5 M], добавлен 25.05.2014Общее описание и структура программы, ее компоненты и функции, сферы практического применения. Требования к функциональным возможностям. Характеристика логической структуры, используемые технические средства. Исследование входных и выходных данных.
курсовая работа [94,7 K], добавлен 30.01.2016Разработка принципов организации информационного обеспечения, структуры входных и выходных сообщений, классификаторов и кодов. Уточнение состава аппаратной платформы. Функциональное назначение проекта, руководство пользователя и описание программы.
курсовая работа [623,3 K], добавлен 18.09.2015Разработка структуры базы данных для хранения дипломных проектов в среде объектно-ориентированного программирования Python. Создание внешнего вида окон ввода-вывода информации, технологии переходов. Листинг программы с пояснениями; направления улучшения.
курсовая работа [3,1 M], добавлен 27.02.2015Создание программы для обработки и хранения информации о пациентах, сделанных им назначениях и их выписке из больницы. Описание структуры и определение формы представления входных и выходных данных. Разработка системы средствами C++ и Builder 6.0.
курсовая работа [552,0 K], добавлен 19.02.2013Технические характеристики: постановка задачи, описание основных типов входных и выходных данных. Описание алгоритмов основной программы и процедур удаления и исправления данных в таблицах. Выбор языка программирования. Технико-экономические показатели.
курсовая работа [478,1 K], добавлен 28.12.2012Создание программы калькулятор, вычисляющий простейшие математические примеры на сложение, вычитание, умножение, деление и возведение в степень. Определение входных и выходных данных, требований к программе. Рекомендации по использованию программы.
курсовая работа [717,6 K], добавлен 17.01.2013Разработка эскизного и технического проектов программы, ее назначение и область применения, технические характеристики. Организация входных и выходных данных, выбор состава технических и программных средств. Текст программы, ее описание и тестирование.
курсовая работа [1,3 M], добавлен 15.11.2009Технологии и языки программирования, используемые при разработке программы. Проектирование и реализация социальной сети. Описание и обоснование выбора организации входных и выходных данных. Алгоритм функционирования программы, таблицы базы данных.
курсовая работа [3,5 M], добавлен 10.06.2014