рефераты рефераты
Главная страница > Курсовая работа: Обработка динамических структур  
Курсовая работа: Обработка динамических структур
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Курсовая работа: Обработка динамических структур

Подпрограмма предназначена для записи данных первого и второго списков в файлы. Входные параметры – указатели на текущий элемент первого и второго списков.

1. Открыть файлы для чтения.

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

3. Перейти к следующему элементу списка.

Таблица 3.3.8-Локальные идентификаторы функции saveIT

Идентификатор

Тип

Назначение
zap, zap2 book вспомогательная переменная
f1, f2 FILE переменная связанная с файлами

3.3.10 Описание работы основной программы

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


4. Инструкция по пользованию программой

При запуске программы на экране появляется графический интерфейс (главное меню программы). У пользователя появляется выбор в формировании списка: либо загрузить список авторов книг из файла (для чего выбирается пункт меню "2" – "Загрузить списки из файлов"), либо самостоятельно ввести его с клавиатуры (для чего выбирается пункт "1" главного меню). В первом случае должен иметься предварительный надел (заранее составленная база данных, записанная в файл). Во втором случае пользователю будет предложено ввести фамилию и инициалы автора книги, её название, год издания и количество в прокате. При завершении составления одной записи появляется строка, в которой пользователю предлагается заполнить ещё один элемент списка или выйти в главное меню. Для этого пользователь должен ввести соответственно слова "yes" или "no".

После выполнения операций создания списка пользователь может приступить к действиям над составленным списком.

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

Также пользователь может выдать книгу определённого автора на руки, вследствие чего количество книг в общей базе данных уменьшается на единицу. Это происходит при выборе пункта "8" главного меню. При выборе данной опции пользователю предлагается ввести фамилию и инициалы автора, а также название его книги. Если данная книга по картотеке не числится, то соответствующая строка упоминает об этом. При выборе пункта "5" на печать выводится список книг, которые были выписаны из картотеки. Книгу можно возвратить в библиотеку посредством пункта "9" главного меню. При выполнении данной операции пользователю предлагается ввести фамилию и инициалы автора, а также название книги. В случае неверного ввода программа извещает пользователя об этом.

Кроме того, пользователь может добавить новый элемент в список и записать полученные изменения в основную (файловую) базу данных. Достигается это посредством пунктов меню "6" и "10" соответственно. В первом случае будет предложено ввести фамилию и инициалы автора, наименование его книги, дату издания и количество доступных экземпляров, после чего выводится главное меню. Во втором случае появляется строка, уведомляющая о том, что запись в файл проведена успешно или нет в противном случае.

Помимо этого, пользователь может удалить все книги автора. Достигается это путём выбора пункта "7" главного меню. Предлагается ввести фамилию автора, а после ввода сообщается об удалении всех книг данного автора и приводится число таковых.

В заключение стоит отметить, что если ввести новые данные, а затем вызвать пункт 2 главного меню, то последние введённые данные будут безвозмездно потеряны.

При выборе пункта "11" графический интерфейс исчезает, процесс компиляции завершается.

5. Анализ результатов

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

Были добавлены новые элементы в основной список, при этом не был нарушен алфавитный порядок. Помимо основного списка был сформирован список с книгами, выданными на руки. При выдаче книги на руки количество книг в библиотеки сокращалось на 1. Оба эти списка были занесены в файлы. Кроме того, было реализовано решение задачи по возвращению взятой на руки книги.

Также была реализована возможность удаления всех книг автора из картотеки по его фамилии.

Блок-схемы алгоритмов программы и основных подпрограмм представлены в приложениях А, Б, В, Г. Листинг программы представлен в приложении Д, а результаты работы программы в приложении Е.


Заключение

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

Анализируя полученное задание, я выбрал метод решения поставленной задачи, на основе которого получил алгоритмы в виде блок-схем (приложения А, Б, В, Г, Д). Преимущество блок-схем состоит в их наглядности. Кодирование алгоритмов осуществлено на языке программирования С. Листинг программы представлен в приложении Д.

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

Недостатки программы:

- на разных ЭВМ работа с файлами осуществляется по-разному. То есть при работе на одном ЭВМ задача может идеально реализовываться, а на другом выполняться, но с ошибками. Скорее всего, это вызвано разницей в версиях ТС или недоработкой разработчиков.

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


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

1. Н. Б. Культин, С/С++ в задачах и примерах, СПб: БХВ-Петербург, 2001.

2. А. Б. Крупник, Изучаем С++, Спб: Питер, 2003.

3. С. Р. Дэвис, С++ для "чайников", М.: "Вильямс", 2004.

4. Т.А. Павловская, С/С++. Программирование на языке высокого уровня, Спб: Питер, 2005.


Приложение А

Листинг программы

#include <stdio.h>

#include <alloc.h>

#include <conio.h>

#include <string.h>

typedef struct AsFalonour //создание нового типа запись для хранения информационных полей элемента списка

{

int kol; //количество книг в картотеке

char nazv[20]; //название книги

int god; //год издания

char avt[20]; //фамилия автора книги

} book; //имя созданного типа

typedef struct spisok //создание нового типа запись для хранения информации элемента списка

{

book inf; //информационные поля

struct spisok* next; //указатель на следующий элемент списка

struct spisok* pred; //указатель на предыдущий элемент списка

} el; //имя созданного нового типа

//-------------------------------------------------------------\\

el* vvodSp(el **top2) //создание списка

{

char s[3]={'y','e','s'}; //переменная для хранения ответа на вопрос о продолжении ввода списка

el *cur,*pr,*top,*tail,*tail2,*cur2; //указатель

clrscr();

*top2=top=tail=tail2=NULL; //обнуление указателей на начало и хвост списков

printf("Введите первую запись\n");

while(strcmp(strlwr(s),"no")!=0) //пока ответ не равен no

{

cur=(el*)malloc(sizeof(el)); //выделяем память под новый элемент (далее текущий)

cur->next=NULL; //обнуление указателя на следующий элемент текущего элемента

cur->pred=tail; //указатель на предыдущий элемент текущего элемента присваивается хвосту списка

if(top==NULL) top=cur; //если указатель на начало списка пуст то указателем на начало списка становится текущий элемент

else tail->next=cur; //если нет, то указателем на хвост списка становится текущий элемент

Страницы: 1, 2, 3, 4, 5, 6

рефераты
Новости