Смекни!
smekni.com

Программа обработки данных в библиотеке (стр. 2 из 3)

Строка вызова: edit(cnum-1) edit(n) edit(500)
Назначение: Осуществляет редактирование элемента массива.
Функции: Ввод данных , вывод одного из полей структуры , опрос клавиатуры , выбор действия - редактирование поля или выход (клавиша Esc).
Логические переменные: ed (int) - номер элемента массива
Внутренние переменные: n (int) - счётчик en (int) - редактируемое поле c (char) - Введённый с клавиатуры символ
Вызывает функции: sinput , dinput
Вызывается из: scroll

6.9 Функция find

Строка вызова: find()
Назначение: Осуществляет поиск элемента в заданной строке по заданной маске.
Функции: Поиск элемента , Возврат результатов в файл или на экран.
Логические переменные: нет
Внутренние переменные: n (int) - счётчик *F(file - файл ввода name[50] (char) - Имя файла
Вызывает функции: cmp , sinput
Вызывается из: main

6.10 Функция scroll

Строка вызова: scroll ()
Назначение: Осуществляет обработку списка.
Функции: Вывод списка на экран , ввод символа с клавиатуры, обработка символа , в воодветствии с нажатой клавишей вызов меню , выбор пункта меню , выполнение действия , выход.
Логические переменные: нет
Внутренние переменные: st (int) - номер выбранного пункта меню n (int) - счётчик c (char) - Введённый с клавиатуры символ sv , sk (int) - первый элемент на экране и положение курсора
Вызывает функции: output , menu , edit , index.
Вызывается из: main

6.11 Функция load

Строка вызова: load()
Назначение: Осуществляет загрузку базы данных из файла.
Функции: Открытие файла с именем librarym.dat , чтение количества строк в массиве , чтение данных в массив , закрытие файла.
Логические переменные: нет
Внутренние переменные: *f (file) - указатель на файл
Вызывает функции: нет
Вызывается из: main

6.12 Функция save

Строка вызова: save()
Назначение: Осуществляет запись базы данных в файл.
Функции: Открытие файла librarym.dat , запись количества элементов , запись данных в файл , закрытие файла.
Логические переменные: нет
Внутренние переменные: *f (file) - указатель на файл
Вызывает функции: нет
Вызывается из: main

6.13 Основная программа - main

Назначение: Осуществляет установку начальных значений , чтение базы данных из файла , обработку , запись базы данных в файл.
Функции: Установка начальных значений переменных , вызов функции чтения данных из файла , вызов функции обработки , обработку меню, поиск по маске , построение диаграммы , вызов функции записи в файл ,установка параметров , выход из программы.
Вызывает функции: load , save , scroll , menu , find , graph.

7 Технические требования для использования

Для запуска данной программы необходимо наличие персонального компьютера IBM PC/XT c операционной системой MS-DOS.

Необходимый объем оперативной памяти -640 Кбайт.

Дла запуска программы необходимо сделать текущем каталог с программой kurs.exe и вызвать её на выполнение.

Программа работает в текстовом режиме 80х25 символов , построение диаграммы осуществляется в графическом режиме 640х480 точек 16 цветов.

Файл базы данных программы librarym.dat будет записываться и считываться из текущего каталога текущего диска.

Управление программой осуществляется с клавиатуры.

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

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

При нажатии клавиши Enter на одном из элементов списка , то на экран будет вызванно меню:

1) Список книг
2) Поиск по маске
3) Количество книг
4) Выход из программы

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

1) Расположение:
2) Читальный зал
3) Абонемент
4) Хранилище

При нажатии пользователем клавиши Enter на выведенном списке книг появляется меню:

1) Добавить в список
2) Удалить из списка
3) Редактировать
4) По Автору
5) По Названию
6) Выход в главное меню

При нажатии на клавиши управления курсором (вверх , вниз) можно управлять курсором , если нажать клавишу Enter или клавишу с номером пункта меню , то произойдёт то или иное действие в соответствии с выбранным пунктом.

Отсортированная последовательность выводится на экран в виде списка книг. При выборе пункта "Поиск по маске" программа запрашивает данные для поиска книги: Название , Автор , Стоимость , Порядковый номер , Количество , Тематика (Не влияет).

После поиска , если такая книга имеется в списке , данные о найденной книги выводятся на экран.

При выборе пункта "Выход из программы" программа завершает свою работу.

9 Тестирование программы

Для полной проверки работоспособности программы необходимо её протестировать.

План тестирования программы учёта и выборки информации о странах состоит в следующем:

1) Загрузка программы

2) Ввод данных о книгах

3) Удаление книги из списка

4) Редактирование данных о книге

5) Сортировка

6) Поиск по маске

7) Построение диаграммы

8) Выход из программы

Далее в пункте "Результаты работы программы" приводится распечатка тестирования программы по пунктам плана тестирования и результатов тестирования.

10 Результаты работы программы

2) Ввод данных о книгах

76 Автор2 Книга9 22 11.00р

11 Автор2 Книга8 28 21.00р

22 Автор65 Книга33 18 32.00р

55 Автор1 Книга3 12 22.00р

2 Автор2 Книга2 10 55.00р

1 Автор1 Книга 1 10 34.00р

3) Удаление книги из списка

76 Автор2 Книга9 22 11.00р

11 Автор2 Книга8 28 21.00р

22 Автор65 Книга33 18 32.00р

55 Автор1 Книга3 12 22.00р

2 Автор2 Книга2 10 55.00р

4) Редактирование данных о книге

Название: Книга3

Автор: Автор1

Стоимость: 20.00

Порядковый номер: 55

Количество: 20

Тематика: Научная

5) Сортировка

По автору:

22 Автор65 Книга33 18 32.00р

76 Автор2 Книга9 22 11.00р

2 Автор2 Книга2 10 55.00р

11 Автор2 Книга8 28 21.00р

55 Автор1 Книга3 20 20.00р

По названию:

76 Автор2 Книга9 22 11.00р

11 Автор2 Книга8 28 21.00р

22 Автор65 Книга33 18 32.00р

55 Автор1 Книга3 20 20.00р

2 Автор2 Книга2 10 55.00р

7) Построение диаграммы

Заключение

В данной курсовой работе решена задача разработки программы обработки данных в библиотеке.

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

Список литературы

1.Бьярн Страуструп. Язык программирования С++.в двух частях. Пер. с англ. Киев:"ДиаСофт",1993.-296 с.,ил.

2.Корриган Джон Компьютерная графика: Секреты и решения: Пер с англ. -М.:Энтроп, 1995. - 352 с., ил.

ПРИЛОЖЕНИЕ 1

Распечатка программы

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <graphics.h>

#include <conio.h>

// Структура - данные о одной книге

struct books {

char name[30]

// Название

char fio[30]

// Автор

int num

// Количество

float price

// Стоимость

long number

// Порядковый номер

// Расположение: 0-читальный зал, 1-абонемент, 2-хранилище

int loc

int tem

// Тематика

int nn,nf

// Номер по названию, автору

}

// Массив - 500 книг и маска для поиска

books cdt[501]

// Массив данных о книгах

int cnum

// Количество книг

// Сортировать по: 1-Названию, 2-автору

char sort

// Расположение

char ftm

const char location[3][15]={" Читальный зал&bsol;x0",

" Абонемент&bsol;x0",

" Хранилище&bsol;x0"}

const char tema[5][15]={ "Художественная&bsol;x0",

" Техническая&bsol;x0",

" Научная&bsol;x0",

" Справочник&bsol;x0",

" _Не влияет_ &bsol;x0"}

// ПРОТОТИПЫ ФУНКЦИЙ

// Сравнение строки с маской

int cmp(char * a,char * b)

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

void output(int sv,int sk)

// Обработка меню

int menu(int x,int y,char * capt)

// Ввод строки

void SInput(char * s,int lng,int x,int y)

// Ввод числа

double DInput(int x,int y)

// Индексирование массива

void index()

// Редактирование элемента

void edit(int ed)

// Вывод данных по маске

void find()

// Вывод графика

void graph()

// Обработка списка

void scroll()

// Чтение массива

void load()

// Запись массива

void save()

// ТЕЛА ФУНКЦИЙ

// Сравнение строки с маской

// a- строка, b- маска

int cmp(char * a,char * b) {

int k

int n

k=1

for (n=0

n<strlen(b)

n++)

if (a[n]!=b[n]) k=0

return k

}

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

void output(int sv,int sk) {

int n

int m

int nd

m=sv

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

textcolor(15)

textbackground(1)

clrscr()

// Вывод двадцати элементов

for (n=1

n<20

n++) {

// Если элемент выбран, изменение цветов

if (n==sk) {

textbackground(14)