Разработка приложения "Обработка результатов баскетбольных игроков"

 

Министерство образования и науки Российской Федерации

НОУ ВПО Сибирская академия права, экономики и управления








КУРСОВАЯ РАБОТА

по дисциплине: Основы алгоритмизации и программирования

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






Выполнил:

студент группы ПИ-09

Прошутинский М.В.

Проверил:

ст.преподаватель

Засухина О.А.





Ангарск 2011


СОДЕРЖАНИЕ


ВВЕДЕНИЕ4

ПОСТАНОВКА ЗАДАЧИ5

.1 Цели и задачи5

.2 Нормативно-справочная информация5

.3 Описание входной информации6

.4 Описание выходной информации6

.5 Выбор инструментальных и технических средств7

.ОПИСАНИЕ ПРОЕКТА8

.1 Состав файлов проекта8

.2 Описание переменных8

.3 Структурная схема проекта9

.4 Описание структуры проекта9

.5 Описание процедуры Cls10

.5.1 Алгоритм10

.6 Описание функции CATO10

.6.1 Входные данные10

.6.2 Выходные данные11

.6.3 Алгоритм11

.7 Описание процедуры AddMan11

.7.1 Входные данные11

.7.2Выходные данные11

.7.3 Алгоритм12

.8 Описание процедуры BestMan12

.8.1 Входные данные12

.8.2Выходные данные12

.8.3 Алгоритм13

.9 Описание процедуры Fols13

.9.1 Входные данные13

.9.2 Выходные данные13

.9.3 Алгоритм14

.10 Описание процедуры InfoMan14

.10.1 Входные данные14

.10.2 Выходные данные14

.10.3 Алгоритм15

.11 Описание процедуры Loozer15

.11.1 Входные данные15

.11.2Выходные данные15

.11.3 Алгоритм16

.12 Описание процедуры ResetFile16

.12.1 Алгоритм16

.13 Описание процедуры SortMan17

.13.1 Входные данные17

.13.2Выходные данные17

.13.3 Алгоритм17

.14 Описание процедуры mnuActions18

.14.1 Алгоритм18

.15 Описание процедуры mnuShow18

.15.1 Алгоритм18

ИНСТРУКЦИЯ ДЛЯ ПОЛЬЗОВАТЕЛЯ19

.1 Руководство пользователя19

.2 Контрольный пример.19

ЗАКЛЮЧЕНИЕ25

СПИСОК ЛИТЕРАТУРЫ26

Программный код27



ВВЕДЕНИЕ


Целью курсовой работы является разработка приложения на тему «Обработка результатов баскетбольных игроков». Необходимо разработать приложение на языке программирования Pascal в визуальной среде программирования Borland Developer Studio 2006 в консольном приложении. Входные данные в приложении должны храниться в типизированном файле, который является «плоским» файлом базы данных. Предусмотреть создание типизированного файла, запись данных в типизированный файл, вывод данных из типизированного файла на экран, добавление данных в конец файла, поиск необходимой информации и обработка данных согласно заданию.


1 ПОСТАНОВКА ЗАДАЧИ


.1 Цели и задачи

программный файл запись данное

Целью данного проекта является разработка приложения «Обработка результатов баскетбольных игроков», которое позволяет удобно хранить данные, осуществлять быстрый поиск и удобную обработку. Раньше, все данные записывались в учетных книгах, но это занимало много времени и не гарантировало отсутствие ошибок. Именно для простого удобного поиска и записи нужной информации и экономии при этом времени, я разработал специальную программу, которая поможет судьям в этом.

В задачи проекта входит:

oСоздание типизированного файла для хранения входных данных;

oДобавление новых данных в конец файла;

oВывод на экран:

·сведений о лучшем игроке, то есть с наибольшим количеством очков;

·общего количества фолов;

·отсортированного списка игроков по количеству очков в порядке убывания;

·сведений об игроке по заданному номеру;

·сведений об игроке с наибольшим количеством фолов.


.2 Нормативно-справочная информация


Представляет собой редко изменяющуюся информацию, необходимую для решения задачи. В данном приложении нормативно справочной-информацией является типизированный файл типа Ved, содержащий следующие поля:

oФамилия игрока

oНомер игрока

oКоличество очков

oКоличество фолов


1.3 Описание входной информации


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

Входной информацией являются следующие поля:

oФамилия игрока

oНомер игрока

oКоличество очков

oКоличество фолов


.4 Описание выходной информации


В данном приложении необходимо вывести следующую выходную информацию на экран:

oсведения о лучшем игроке, то есть с наибольшим количеством очков;

oобщее количество фолов;

oотсортированный список игроков по количеству очков в порядке убывания;

oсведения об игроке по заданному номеру;

oсведения об игроке с наибольшим количеством фолов.



1.5 Выбор инструментальных и технических средств


Визуальная среда разработки Borland ® Developer Studio является важным обновлением для разработчиков, использующих язык Delphi®, с улучшенной продуктивностью и производительностью, позволяющее группам разработчиков исключить утомительные задачи и быстро и эффективно поставлять приложения Windows уровня предприятия.

Прежде всего, выясним минимальные системные требования для работы продукта:

oPentium III 850MHz или более производительный процессор;

o512 MB RAM;

oCD-ROM привод;

oМонитор VGA с более высокой разрешающей способностью;

oМышь или другое координатно-указательное устройство;

oКроме того, потребуется 1.2 GB дискового пространства.

Для работы также должны быть предварительно установлены следующие продукты:

oMicrosoft Internet Explorer v6.0 SP1

oMicrosoft dot NET Framework v1.1

oMicrosoft dot NET Framework v1.1 SP1

oMicrosoft dot NET Framework SDK v1.1

oMicrosoft XML Core Services (MSXML) v4.0 SP2

oMicrosoft Visual J# .NET v1.1 Redistributable



2.ОПИСАНИЕ ПРОЕКТА


.1 Состав файлов проекта


Данный проект состоит из файлов, приведенных в таблице 2.1


Таблица 2.1

Состав файлов проекта

№Имя файлаНазначениеОбъем (Кб)1Log.BaskТипизированный файл, хранящий в себе входные данные12CuRsoBiK.exeИсполняемый файл, обрабатывающий входные данные503CuRsoBiK.bdsprojПроект данной программы в среде Borland Developer Studio84CuRsoBiK.dprФайл проекта программы с исходным кодом10

2.2 Описание переменных

Переменные представляют собой зарезервированное место в оперативной памяти для временного хранения данных. Каждая переменная имеет собственное имя, переменные описываются в области описания переменных «Var». Переменные бывают локальные и глобальные, глобальные переменные описываются в области описания переменных основной программы, локальные переменные описываются в области описания переменных «Var» внутри процедуры. В данном приложении использовались следующие переменные, приведенные в табл. 2.2


Таблица 2.2

Переменные, используемые в приложении

ИмяТипНазначениеVedRecordТип для файла базы данныхArrArrayМассив служебных командFailFileПеременная типизированного файлаpVedПеременная записей типизированного файлаi, t, fIntegerПромежуточные переменныеOtvStringИспользуется в диалогахConHandleTHandleИспользуется в процедуре очистки экранаCoordTCoordКоординаты позиции курсораCCITConsoleScreenBufferInfoИнформация о размере буфера консольного окна

2.3 Структурная схема проекта


Рисунок 2.1 - Структурная схема проекта


2.4 Описание структуры проекта


Имя процедурыНазначениеClsОчистка экранаCATOФункция вывода русских слов в консолиAddManДобавление нового игрокаBestManВывод на экран информации о лучшем игрокеFolsВывод на экран количество фоловInfoManВывод на экран информации об игроке по его номеруLoozerВывод на экран информации об игроке с наибольшим количеством фоловResetFileСоздание / Очистка типизированного файлаSortManВывод на экран отсортированного списка игроковmnuActionМеню «Действия с базой»mnuShowМеню «Задания»

2.5 Описание процедуры Cls


Данная процедура служит для очистки экрана консоли.


2.5.1 Алгоритм



.6 Описание функции CATO


Данная функция служит для перевода русскоязычного текста из кодировки Ansi в OEM и предназначена для удобства работы с программой.


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

Входными данными функции CATO является переменная строкового типа, содержащая русскоязычный текст в кодировке Ansi.


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

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


2.6.3 Алгоритм



.7 Описание процедуры AddMan


Данная процедура служит для добавления записей о новых игроках.


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


Входными данными является информация об игроках вводимая с экрана.


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


Выходными данными является типизированная переменная с данными о новом пользователе, данные которой дописываются в типизированный файл, для хранения и последующего использования.



2.7.3 Алгоритм



.8 Описание процедуры BestMan


Данная процедура находит запись об игроке с наибольшим количеством очков из всех записей типизированного файла.


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

Входными данными является список данных из типизированного файла.


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

Выходными данными являются данные о лучшем игроке, выводимые на экран в удобном для восприятия виде.


2.8.3 Алгоритм



.9 Описание процедуры Fols


Данная процедура пересчитывает общее количество фолов из всех записей типизированного файла.


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

Входными данными является список данных из типизированного файла.


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

Выходными данными являются данные об общем количестве фолов, выводимые на экран.



2.9.3 Алгоритм



.10 Описание процедуры InfoMan


Данная процедура находит запись об игроке с наибольшим количеством очков из всех записей типизированного файла.


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

Входными данными является список данных из типизированного файла.


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

Выходными данными являются данные об игроке с определенным номером, выводимые на экран в удобном для восприятия виде.



2.10.3 Алгоритм



2.11 Описание процедуры Loozer


Данная процедура находит запись об игроке с наибольшим количеством очков из всех записей типизированного файла.


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

Входными данными является список данных из типизированного файла.


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

Выходными данными являются данные о лучшем игроке, выводимые на экран в удобном для восприятия виде.


2.11.3 Алгоритм



.12 Описание процедуры ResetFile


Данная процедура служит для очистки (создания) типизированного файла.


2.12.1 Алгоритм



2.13 Описание процедуры SortMan


Данная процедура выводит на экран отсортированный список всех игроков в базе данных.


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

Входными данными является список данных из типизированного файла.


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

Выходными данными являются данные о лучшем игроке, выводимые на экран в удобном для восприятия виде.


2.13.3 Алгоритм


2.14 Описание процедуры mnuActions


Данная процедура представляет собой меню, созданное для удобства пользователя.


2.14.1 Алгоритм



.15 Описание процедуры mnuShow


Данная процедура представляет собой меню, созданное для удобства пользователя.


2.15.1 Алгоритм


3 ИНСТРУКЦИЯ ДЛЯ ПОЛЬЗОВАТЕЛЯ


.1 Руководство пользователя


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

Особой установки программа не требует, важно лишь, чтобы рядом с исполняемым файлом (CuRsoBiK.exe) находился типизированный файл базы данных (Log.Bask). Работу данной программы рассмотрим в следующем параграфе.


3.2 Контрольный пример


После запуска исполняемого файла мы увидим главное меню программы (Рисунок 3.1).

. Действия с базой - переход на следующий уровень меню, содержащий функции для работы с типизированным файлом;

. Задания - переход на следующий уровень меню, содержащий функции для вывода информации в удобном для восприятия виде; «3. Выход» - выход из программы.


Рисунок 3.1 - Главное меню


Меню «Действия с базой» (Рисунок 3.2). Рассмотрим подробнее:

. Создать файл - функция для создания типизированного файла;

.Добавить игрока - функция для добавления информации о новом игроке в типизированный файл;

.Назад - вернуться в основное меню.


Рисунок 3.2 - Действия с базой


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

Рисунок 3.3 - Готово


После выбора пункта 2, выдается запрос пользователю о вводе информации о новом игроке (фамилия, номер, количество очков и фолов). После чего вся введенная информация будет записана в типизированный файл и на экран выведется сообщение о завершении ввода (Рисунок 3.4).


Рисунок 3.4 - Добавление новых записей


Теперь я предлагаю рассмотреть подробнее меню «Задания» (Рисунок 3.5):

.Лучший игрок - вывод на экран сведений о лучшем игроке;

2.Количество фолов - вывод на экран общее количество фолов;

3.Отсортировать игроков - вывод на экран отсортированный список всех игроков;

.Информация по номеру - вывод информации об игроке с заданным номером;

.Игрок с наибольшим количеством фолов - вывод на экран сведений об игроке с наибольшим количеством фолов;

.Назад - перейти в главное меню.


Рисунок 3.5 - Задания


Пункт меню 1: лучший игрок - вывод на экран сведений о лучшем игроке (Рисунок 3.6).


Рисунок 3.6 - Лучший игрок


Пункт меню 2: количество фолов - вывод на экран общего количества фолов (Рисунок 3.7).


Рисунок 3.7 - Количество фолов


Пункт меню 3: отсортировать игроков - вывод на экран отсортированных сведений обо всех игроках (Рисунок 3.8).


Рисунок 3.8 - Отсортировать игроков


Пункт меню 4: информация по номеру - вывод на экран сведений об игроке с заданным номером (Рисунок 3.9).


Рисунок 3.9 - Информация по номеру


Пункт меню 5: игрок с наибольшим количеством фолов - вывод на экран сведений об игроке с наибольшем количеством фолов (Рисунок 3.8).


Рисунок 3.8 - «Игрок с наибольшим количеством фолов»



ЗАКЛЮЧЕНИЕ


С развитием компьютерных технологий появилась возможность автоматизировать некоторые виды деятельности человека. Но компьютер не сможет выполнить бухгалтерский учет или рассчитать зарплату без специальных программ. Для этих целей и была создана Система Управления Базами Данных (СУБД), позволяющая быстро оперировать с данными: хранить их и выдавать пользователю в нужном ему виде. Использование компьютера для выполнения различных задач сейчас применяется повсеместно, и это полностью оправдывает затраты на них, так как экономит рабочие силы, время и деньги. Мир СУБД велик и практически безграничен, поскольку базы данных применяются сегодня везде - от крупной корпорации и сети Интернет до небольшого «домашнего» офиса.



СПИСОК ЛИТЕРАТУРЫ


1.Дмитрий Осипов, «Delphi. Профессиональное программирование», Издательство «Символ-плюс», 2006, 1056 стр.

2.Фаронов В.В., «Delphi. Программирование на языке высокого уровня», Издательство «Питер», 2011, 640стр.

.Осипов Д.Л., «Базы данных и Delphi. Теория и практика», Издательство «BHV», 2011, 752стр.

.Флёнов М.В., «Программирование в Delphi глазами хакера», Издательство «BHV», 2003, 368стр.

.#"justify">Приложение 1


Программный код

Program CuRsoBiK;

{$APPTYPE CONSOLE},;

Ved = Record: String [30];: Integer;: Integer;: Integer;;

: Array [1..30] of String;: File of Ved;: Ved;, t, f: Integer;: String;: THandle;: TCoord;: TConsoleScreenBufferInfo;

//---------------------------------------------------CATO------------------------------CATO(Const s: String): String;

Begin

SetLength(Result, Length(s));

AnsiToOEM(PChar(s), Pointer(Result));

End;

//--------------------------------------------------------Cls------------------------------- Cls;

Begin

For i := 0 to CCI.dwSize.Y do

Writeln;

Coord.X := 0;

Coord.Y := 0;

SetConsoleCursorPosition (ConHandle, Coord);

End;

//----------------------------------------------------AddMan----------------------------AddMan;

Begin

Cls;

Reset (Fail);

Seek (Fail, FileSize (Fail));

Repeat

Writeln (Arr[1]);

Readln (p.Famil);

Writeln (Arr[2]);

Readln (p.Nomer);

Writeln (Arr[3]);

Readln (p.Score);

Writeln (Arr[4]);

Readln (p.Fols);

Write (Fail, p);

Writeln (Arr[5], CATO('? [Да]'));

Readln (Otv);

Until (Otv = CATO('Да')) or (Otv = CATO('да'));

Close (Fail);

End;

//----------------------------------------------------BestMan---------------------------BestMan;max, maxN: Integer;

Begin

Cls;

max := -1; maxN := 0;

Reset (Fail);

While Not EOF (Fail) Do Begin

Read (Fail, p);

If p.Score > max Then

Begin

max := p.Score;

maxN := p.Nomer;

End;

End; Seek (Fail, 0);

Writeln ('========================================================');

Writeln (Arr[1]:20,Arr[2]:10,Arr[3]:20,Arr[4]:20);

Writeln ('========================================================');

While Not EOF (Fail) Do Begin

Read (Fail, p);

If p.Nomer = maxN Then

Writeln (p.Famil:20, p.Nomer:10, p.Score:20, p.Fols:20);

End;

Writeln ('========================================================');

Close (Fail);

Readln

End;

//------------------------------------------------------Fols------------------------------ Fols;total: Integer;

Begin

Cls;

Total := 0;

Reset (Fail);

While Not EOF (Fail) Do Begin

Read (Fail, p);

total := total + p.Fols

End;

Writeln (Arr[7],': ', total);

Close (Fail);

Readln

End;

//-----------------------------------------------------InfoMan---------------------------InfoMan;number: Integer;

Begin

Cls;

Writeln (Arr[8]);

Readln (number);

Reset (Fail);

Writeln ('========================================================');

Writeln (Arr[1]:20,Arr[2]:10,Arr[3]:20,Arr[4]:20);

Writeln ('========================================================');

While Not EOF (Fail) Do Begin

Read (Fail, p);

If p.Nomer = number Then

Writeln (p.Famil:20, p.Nomer:10, p.Score:20, p.Fols:20);

End;

Writeln ('=======================================================');

Close (Fail);

Readln

End;

//------------------------------------------------------Looser---------------------------- Looser; max, maxN: Integer;

Begin

Cls;

max := -1; maxN := 0;

Reset (Fail);

While Not EOF (Fail) Do Begin

Read (Fail, p);

If p.Fols > max Then

Begin

max := p.Fols;

maxN := p.Nomer;

End;

End; Seek (Fail, 0);

Writeln ('=======================================================');

Writeln (Arr[1]:20,Arr[2]:10,Arr[3]:20,Arr[4]:20);

Writeln ('========================================================');

While Not EOF (Fail) Do Begin

Read (Fail, p);

If p.Nomer = maxN Then

Writeln (p.Famil:20, p.Nomer:10, p.Score:20, p.Fols:20);

End;

Writeln ('======================================================');

Close (Fail);

Readln

End;

//------------------------------------------------------ResetFile-------------------------ResetFile;

Begin

Cls;

ReWrite (Fail);

Close (Fail);

Write(CATO('Готово.'));

Readln;

End;

//-----------------------------------------------------SortMan---------------------------SortMan();

Var

buffer : Ved;

l, k, m : Integer;

mas : Array [1..50] of Ved;

Begin

Cls;

Reset (Fail); l := 1;

While Not EOF (Fail) Do

Begin

Read (Fail, p);

mas [l] := p;

l := l + 1;

End;

Close (Fail);

For k := 1 To l - 2 Do

For m := 1 To l - 2 Do

If mas [m].Score < mas [m+1].Score Then

Begin

buffer := mas [m];

mas [m] := mas [m+1];

mas [m+1] := buffer;

End;

Writeln ('========================================================');

Writeln (Arr[1]:20,Arr[2]:10,Arr[3]:20,Arr[4]:20);

Writeln ('========================================================');

For k := 1 To l - 1 Do

Begin

Writeln (mas [k].Famil:20, mas [k].Nomer:10, mas [k].Score:20, mas [k].Fols:20);

End;

Writeln ('========================================================');

Readln

End;

//----------------------------------------------------mnuActions------------------------ mnuActions;

Begin

Repeat

f := 0;

Cls;

Writeln ('Действия с базой:');

Writeln ('1. ',Arr[9]);

Writeln ('2. ',Arr[10]);

Writeln ('3. ',Arr[16]);

Readln (f);

Case f of

1: ResetFile;

2: AddMan;

End;

Until f = 3;

End;

//---------------------------------------------------mnuShow--------------------------- mnuShow;

Begin

Repeat

f := 0;

Cls;

Writeln (CATO('Задания:'));

Writeln ('1. ',Arr[11]);

Writeln ('2. ',Arr[12]);

Writeln ('3. ',Arr[13]);

Writeln ('4. ',Arr[14]);

Writeln ('5. ',Arr[15]);

Writeln ('6. ',Arr[16]);

Readln (f);

Case f of

1: BestMan;

2: Fols;

3: SortMan;

4: InfoMan;

5: Looser;

End;

Until f = 6;

End;

//------------------------------------------------BeginTheProgramm------------------

Assign(Fail, 'Log.Bask');


ConHandle := GetStdHandle (STD_OUTPUT_HANDLE);

Coord := GetLargestConsoleWindowSize (ConHandle);

GetConsoleScreenBufferInfo (GetStdHandle (STD_OUTPUT_HANDLE), CCI);

Arr[1]:=CATO('Фамилия');

Arr[2]:=CATO('Номер');

Arr[3]:=CATO('Количество очков');

Arr[4]:=CATO('Количество фолов');

Arr[5]:=CATO('Выйти');

Arr[6]:=CATO('Общее кол. очков');

Arr[7]:=CATO('Общее количество фолов');

Arr[8]:=CATO('Введите номер игрока');

Arr[9]:=CATO('Создать файл');

Arr[10]:=CATO('Добавить игрока');

Arr[11]:=CATO('Лучший игрок');

Arr[12]:=CATO('Количество фолов');

Arr[13]:=CATO('Отсортировать игроков');

Arr[14]:=CATO('Информация по номеру');

Arr[15]:=CATO('Игрок с наибольшим количеством фолов');

Arr[16]:=CATO('Назад');

Arr[17]:=CATO('Действия с базой');

Arr[18]:=CATO('Задания');

Cls; t := 0;

Writeln ('Menu:');

Writeln ('1. ',Arr[17]);

Writeln ('2. ',Arr[18]);

Writeln ('3. ',Arr[5]);

Readln (t);

Case t of

1:mnuActions;

2:mnuShow;

End;t = 3;.


Министерство образования и науки Российской Федерации НОУ ВПО Сибирская академия права, экономики и управления КУРСОВАЯ РАБОТА

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ