Автор: Пользователь скрыл имя, 10 Марта 2013 в 15:34, курсовая работа
Составить программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах содержат: • номер УДК; •фамилию и инициалы автора; •название; •год издания; •количество экземпляров данной книги в библиотеке. Программа должна обеспечивать: •начальное формирование данных обо всех книгах в библиотеке в виде списка; •при взятии каждой книги вводится номер УДК, и программа уменьшает значение количества книг на единицу или выдает сообщение о том, что требуемой книги в библиотеке нет, или требуемая книга находится на руках; •при возвращении каждой книги вводится номер УДК, и программа увеличивает значение количества книг на единицу; по запросу выдаются сведения о наличии книг в библиотеке.
1. Формулировка задания. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Анализ задания. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Блок-схема решения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. Код программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …
5. Пример выполнения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
6. Выводы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7. Список использованной литературы. . . . . . . . . . . . . . . . . . . . . . . . . . .
Министерство образования и науки РФ
Федеральное государственное
бюджетное образовательное
высшего профессионального образования
"Нижегородский коммерческий институт"
Кафедра информационных технологий
КУРСОВАЯ РАБОТА
По дисциплине
«Информационные технологии»
на тему «Динамические структуры данных»
Выполнила: Жукова И. В.
группа: 2-ИЭ
проверил: Штанюк А.А.
работа защищена _____
с оценкой ____________
подпись _____________
Н. Новгород
2012
Содержание:
1. Формулировка задания. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
3 |
2. Анализ задания. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
4 |
3. Блок-схема решения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
6 |
4. Код программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . … |
10 |
5. Пример выполнения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. |
13 |
6. Выводы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
16 |
7. Список использованной литературы. . . . . . . . . . . . . . . . . . . . . . . . . . . |
17 |
Составить программу, которая содержит текущую информацию о книгах в библиотеке.
Сведения о книгах содержат:
Программа должна обеспечивать:
Разработка алгоритма решения задачи , или алгоритмизация задачи представляет собой первый этап программирования. В процессе его выполнения устанавливается необходимая последовательность арифметических и логических действий, с помощью которых данная задача может быть реализована.
В данной работе используется графическая запись алгоритма, представленная в виде блок-схемы.
Поэтому в качестве первоочередной задачи ставится разработка алгоритма решения в виде блок-схем.
Алгоритм, предназначенный для исполнения на ЭВМ, должен быть записан на языке программирования. Язык программирования представляет собой совокупность символов и правил их использования для описания процессов решения задач на ЭВМ. Если разработка алгоритма выполнена хорошо, то программирование принципиальных трудностей не вызывает.
В качестве среды разработки данной программы используется Microsoft Visual C++ 9.0.
Значит второй задачей является запись алгоритма на языке программирования С++, то есть разработка программы.
Данная программа должна формировать, добавлять, выводить текущую информацию о книгах в библиотеке. Для этого мы используем технологию связанных списков. То есть структуру данных, хранящую указатель на заявку (структуру) и указатель на следующий элемент того же типа, как и она сама, а так же функций, для осуществления операций.
Однако в процессе разработки программы могли быть допущены ошибки, которые сохранились и в результирующей программе.
Отладка программы необходима для выявления и устранения ошибок в программе. Часть ошибок формального характера, допущенных при написании программы, обнаруживает транслятор, производя синтаксический анализ.
Следовательно, третьей задачей является выявление и устранение ошибок в программе.
Программа, прошедшая отладку, готова для практического использования, то есть для решения задачи на ЭВМ. Решение задачи является итогом выполнения всех предыдущих этапов и служит подтверждением (или опровержением) их правомерности.
Поэтому последней задачей работы является проверка выполнения программы как подтверждения правомерности предыдущих этапов разработки.
Блок-схема главной функции int main ()
Блок схема функции добавления addbook (BOOK)
Блок-схема функции показа элементов Showall ()
Блок-схема функции trytotake (int) для поиска сведений о данных книгах и учета выданных книг.
Блок-схема функции returnbook (int) для учета книг, которые вернули в библиотеку.
Блок-схема решения
#include <iostream>
using namespace std;
struct BOOK //Структура, содержащая элементы
{
int number;
char author[20];
char name[20];
int year;
int count;
BOOK *next;//указатель на последний элемент списка
}buf;//Буффер для "прецепления" элементов
BOOK *head;//Указатель на первый элемент
// Прототипы функций
void addbook(BOOK);//Функция добавления элемента в список
void showall(); // Функция, показывающая все элементы
void trytotake(int); //Функция, для поиска сведений о данных книгах и учета выданных книг
void returnbook(int); // Функция, для учета книг, которые вернули в библиотеку
void main()//Главная функция
{
int UserCommand,udc;//Команда от пользователя
head=new BOOK;//выделяем память под первый элемент списка
head->next = NULL;// следующий элемент зануляем
while(1)
{
cout<<"1: Add book; 2: Show all books; 3: Try to take book; 4: Return book;\n";
cin>>UserCommand;// Спрашиваем, что хочет пользователь
switch(UserCommand)// Проверяем, что он ввел
{
case 1://Добавляем элемент
cout<<"Book name?\n";//Спрашиваем
cin.ignore();//Разделяем getline-ы
cin.getline(buf.name,20);
cout<<"Author?\n";
cin.getline(buf.author,20);
cout<<"Year?\n";
cin>>buf.year;
cout<<"UDC number?\n";
cin>>buf.number;
cout<<"Count?\n";
cin>>buf.count;
addbook(buf);//вызываем функцию добавления элемента
break;
case 2://показываем все
showall();
break;
case 3:
cout<<"UDC:\n";//ищем книгу по введенному УДК
cin>>udc;
trytotake(udc);//вызываем функцию, для поиска сведений о данных книгах и учета выданных книг
break;
case 4:
cout<<"UDC:\n";//ищем книгу по введенному УДК
cin>>udc;
returnbook(udc); // вызываем функцию, для учета книг, которые вернули в библиотеку
break;
default://в противном случае выводим сообщение о неправильной команде
cout<<"Check the command list attentively, there's no such command\n";
break;
}
}
}
//Добавление элемента в список
void addbook(BOOK ToAdd)
{
BOOK *pointer = head;//начиная с первого элемента
//Движемся вперед, пока следующий элемент не будет нулевым
while(pointer->next)
pointer=pointer->next;
pointer->next = new BOOK;//Выделяем память для нового элемента
pointer->next->count=ToAdd.
strcpy(pointer->next->author,
strcpy(pointer->next->name,
pointer->next->number=ToAdd.
pointer->next->year=ToAdd.
//Делаем следующий после добавленного элемент нулевым
pointer->next->next = NULL;
}
//Вывод всех элементов на экран
void showall()
{
BOOK *pointer = head->next;//Объявляем указатель на первый элемент списка
while(pointer)
{
cout<<pointer->name<<", "<<pointer->author<<", "<<pointer->year<<endl<<"UDC: "<<pointer->number<<", "<<pointer->count<<" ex's\n\n";
pointer=pointer->next;//после вывода переходим к следующему
}
}
void trytotake(int udc)
{
BOOK *pointer = head;
bool fg=false;
while(pointer)
{
if (pointer->number==udc)
{
fg=true;
if (pointer->count>0)
{
cout<<"Book is taken.\n";
pointer->count--;
}
else
cout<<"This book is already taken.\n";
break;
}
pointer=pointer->next;
}
if(fg==false)
cout<<"Sorry, there's no record for this book\n";
}
void returnbook(int udc)
{
bool fg=false;
BOOK *pointer = head;//Указатель на первый элемент
while(pointer)
{
if (pointer->number==udc)//если введенный номер равен номеру УДК
{
cout<<"Book returned.\n";
pointer->count++;//книга возвращена, прибывляем количество книг на 1
fg=true;
break;
}
pointer=pointer->next;
}
if(fg==false)
cout<<"Sorry, there's no record for this book\n";
}
5. Пример выполнения
При запуске программы на экране появляется меню и строка приглашения, предлагающая ввести выбранный пользователем пункт меню:
При выборе пункта 1 программа предлагает ввести название книги, автора, номер УДК, год издания, количество экземпляров данной книги в библиотеке.
При выборе пункта 2 программа выводит данные обо всех книгах:
При выборе пункта 3 программа просит ввести УДК книги и, если такая книга есть, книга выдается на руки и программа уменьшает значение количества книг на единицу или выдает сообщение о том, что требуемой книги в библиотеке нет, или требуемая книга находится на руках.
При возвращении каждой книги пользователь выбирает пункт 4, программа просит ввести УДК книги и программа увеличивает значение количества книг на единицу, и выводим сообщение о том, что книга возвращена, в случае если УДК введен не правильно, программа выводит сообщение о том, что книга с таким УДК в библиотеке нет.
6. Выводы
В данной работе я подробно описала решение задачи по разработке небольшой информационной системы, осуществляющей начальное формирование данных о книгах в библиотеке в виде списка, добавление данных о книгах, выдача и возврат книг по номеру УДК.
Поставленные мною задачи реализованы.
Достоинства программы:
Недостатки программы:
Не исключена выработка дальнейших рекомендаций по усовершенствованию данной информационной системы.
Эволюция информационных технологий настолько тесно связана с развитием новых моделей корпоративного бизнеса, что эти процессы нередко воспринимаются как единое целое.
Стремление компаний
повысить эффективность ИС
7. Список использованной литературы