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

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

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

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

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

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

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

Выполнил:

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

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

Проверил:

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

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

Ангарск 2011

СОДЕРЖАНИЕ

  • ВВЕДЕНИЕ 4
  • 1 ПОСТАНОВКА ЗАДАЧИ 5
    • 1.1 Цели и задачи 5
    • 1.2 Нормативно-справочная информация 5
    • 1.3 Описание входной информации 6
    • 1.4 Описание выходной информации 6
    • 1.5 Выбор инструментальных и технических средств 7
  • 2. ОПИСАНИЕ ПРОЕКТА 8
    • 2.1 Состав файлов проекта 8
    • 2.2 Описание переменных 8
    • 2.3 Структурная схема проекта 9
    • 2.4 Описание структуры проекта 9
    • 2.5 Описание процедуры Cls 10
    • 2.5.1 Алгоритм 10
    • 2.6 Описание функции CATO 10
    • 2.6.1 Входные данные 10
    • 2.6.2 Выходные данные 11
    • 2.6.3 Алгоритм 11
    • 2.7 Описание процедуры AddMan 11
    • 2.7.1 Входные данные 11
    • 2.7. 2Выходные данные 11
    • 2.7.3 Алгоритм 12
    • 2.8 Описание процедуры BestMan 12
    • 2.8.1 Входные данные 12
    • 2.8. 2Выходные данные 12
    • 2.8.3 Алгоритм 13
    • 2.9 Описание процедуры Fols 13
    • 2.9.1 Входные данные 13
    • 2.9.2 Выходные данные 13
    • 2.9.3 Алгоритм 14
    • 2. 10 Описание процедуры InfoMan 14
    • 2. 10.1 Входные данные 14
    • 2. 10.2 Выходные данные 14
    • 2. 10.3 Алгоритм 15
    • 2. 11 Описание процедуры Loozer 15
    • 2. 11.1 Входные данные 15
    • 2. 11. 2Выходные данные 15
    • 2. 11.3 Алгоритм 16
    • 2. 12 Описание процедуры ResetFile 16
    • 2. 12.1 Алгоритм 16
    • 2. 13 Описание процедуры SortMan 17
    • 2. 13.1 Входные данные 17
    • 2. 13. 2Выходные данные 17
    • 2. 13.3 Алгоритм 17
    • 2. 14 Описание процедуры mnuActions 18
    • 2. 14.1 Алгоритм 18
    • 2. 15 Описание процедуры mnuShow 18
    • 2. 15.1 Алгоритм 18
  • 3 ИНСТРУКЦИЯ ДЛЯ ПОЛЬЗОВАТЕЛЯ 19
    • 3.1 Руководство пользователя 19
    • 3.2 Контрольный пример. 19
  • ЗАКЛЮЧЕНИЕ 25
  • СПИСОК ЛИТЕРАТУРЫ 26
  • Программный код 27

ВВЕДЕНИЕ

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

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

1.1 Цели и задачи

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

o 512 MB RAM;

o CD-ROM привод;

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

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

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

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

o Microsoft Internet Explorer v6.0 SP1

o Microsoft dot NET Framework v1. 1

o Microsoft dot NET Framework v1.1 SP1

o Microsoft dot NET Framework SDK v1. 1

o Microsoft XML Core Services (MSXML) v4.0 SP2

o Microsoft Visual J#. NET v1.1 Redistributable

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

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

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

Таблица 2. 1

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

Имя файла

Назначение

Объем (Кб)

1

Log. Bask

Типизированный файл, хранящий в себе входные данные

1

2

CuRsoBiK. exe

Исполняемый файл, обрабатывающий входные данные

50

3

CuRsoBiK. bdsproj

Проект данной программы в среде Borland Developer Studio

8

4

CuRsoBiK. dpr

Файл проекта программы с исходным кодом

10

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

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

Таблица 2. 2

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

Имя

Тип

Назначение

Ved

Record

Тип для файла базы данных

Arr

Array

Массив служебных команд

Fail

File

Переменная типизированного файла

p

Ved

Переменная записей типизированного файла

i, t, f

Integer

Промежуточные переменные

Otv

String

Используется в диалогах

ConHandle

THandle

Используется в процедуре очистки экрана

Coord

TCoord

Координаты позиции курсора

CCI

TConsoleScreenBufferInfo

Информация о размере буфера консольного окна

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

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

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

Имя процедуры

Назначение

Cls

Очистка экрана

CATO

Функция вывода русских слов в консоли

AddMan

Добавление нового игрока

BestMan

Вывод на экран информации о лучшем игроке

Fols

Вывод на экран количество фолов

InfoMan

Вывод на экран информации об игроке по его номеру

Loozer

Вывод на экран информации об игроке с наибольшим количеством фолов

ResetFile

Создание / Очистка типизированного файла

SortMan

Вывод на экран отсортированного списка игроков

mnuAction

Меню «Действия с базой»

mnuShow

Меню «Задания»

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

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

2.5.1 Алгоритм

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

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

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

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

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

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

2.6.3 Алгоритм

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

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

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

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

2.7. 2Выходные данные

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

2.7.3 Алгоритм

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

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

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

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

2.8. 2Выходные данные

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

2.8.3 Алгоритм

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

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

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

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

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

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

2.9.3 Алгоритм

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

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

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

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

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

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

2. 10.3 Алгоритм

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

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

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

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

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

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

2. 11.3 Алгоритм

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

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

2. 12.1 Алгоритм

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

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

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

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

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

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

2. 13.3 Алгоритм

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

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

2. 14.1 Алгоритм

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

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

2. 15.1 Алгоритм

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рисунок 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стр.

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

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

5. http: //codingrus. ru/infusions/

Приложение 1

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

Program CuRsoBiK;

{$APPTYPE CONSOLE}

Uses

Windows,

SysUtils;

Type Ved = Record

Famil: String [30];

Nomer: Integer;

Score: Integer;

Fols: Integer;

End;

Var

Arr: Array [1. 30] of String;

Fail: File of Ved;

P: Ved;

i, t, f: Integer;

Otv: String;

ConHandle: THandle;

Coord: TCoord;

CCI: TConsoleScreenBufferInfo;

//---------------------------------------------------CATO------------------------------

Function CATO (Const s: String): String;

Begin

SetLength (Result, Length (s));

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

End;

//--------------------------------------------------------Cls-------------------------------

Procedure Cls;

Begin

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

Writeln;

Coord.X := 0;

Coord.Y := 0;

SetConsoleCursorPosition (ConHandle, Coord);

End;

//----------------------------------------------------AddMan----------------------------

Procedure 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---------------------------

Procedure BestMan;

Var 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------------------------------

Procedure Fols;

Var 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---------------------------

Procedure InfoMan;

Var 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----------------------------

Procedure Looser;

Var 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-------------------------

Procedure ResetFile;

Begin

Cls;

ReWrite (Fail);

Close (Fail);

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

Readln;

End;

//-----------------------------------------------------SortMan---------------------------

Procedure 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------------------------

Procedure 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---------------------------

Procedure 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------------------

BEGIN

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 ('Задания');

Repeat

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;

Until t = 3;

END.

ПоказатьСвернуть
Заполнить форму текущей работой