close

Вход

Забыли?

вход по аккаунту

?

курсовая (2)

код для вставкиСкачать
 Оглавление
1. Оглавление.
2. Разработка эскизного и технического проектов программы (ГОСТ 19.404-79).
2.1. Введение.
2.2. Назначение и область применения.
2.3. Технические характеристики.
2.4. Источники, использованные при разработке.
3. Разработка рабочего проекта.
3.1. Разработка программы.
3.2. Спецификация программы.
3.3. Текст программы.
3.4. Описание программы.
3.5. Тестирование программы.
4. Литература
Введение
Задание на курсовую работу по дисциплине "программирование".
Студент группы ИВТбзс12 -2 Бураков А.А.
Специальность "Информатика и вычислительная техника"
Тема: Составить программу, которая содержит текущую информацию о книгах в библиотеке.
Условие задачи:
Сведения о книгах включают:
* номер УДК;
* фамилию и инициалы автора;
* название;
* год издания;
* количество экземпляров данной книге в библиотеке.
Программа должна обеспечивать:
* начальное формирование данных обо всех книгах в библиотеке в виде двоичного дерева;
* добавление данных о книгах, вновь поступивших в библиотеку;
* удаление данных о списываемых книгах;
* по запросу выдаются сведения о наличии книг в библиотеке, упорядоченные по годам издания.
Задание выдано: _______________________/Число и подпись/
Назначение и область применения
Программа предназначена для обработки информации о книгах в библиотеке.
Технические характеристики
1. Создание программы, которая содержит текущую информацию о книгах в библиотеке. С номером УДК, фамилией и инициалами автора, название, год издания, количество экземпляров данной книги в библиотеке.
2. Для составления алгоритма была использована Структура (struct)
В отличие от массива, все элементы которого однотипны, структура может содержать элементы разных типов. В языке C++ структура является видом класса и обладает всеми его свойствами, но во многих случаях достаточно использовать структуры так, как они определены в языке С:
struct [ имя_типа ] {
тип_1 элемент_1; тип_2 элемент_2;
тип_n элемент_n;
} [ список_описателей ];
3. Организация входных и выходных данных:
Входные данные поступают с клавиатуры.
Выходные данные отображаются в виде списка
4. Для написания программы был выбран программный продукт Microsoft Visual C++ 2010.
Поддерживаемые операционные системы Microsoft Visual C++ 2010: Windows 7; Windows Server 2003 R2 (32-Bit x86); Windows Server 2003 Service Pack 2; Windows Server 2008 R2; Windows Server 2008 Service Pack 2; Windows Vista Service Pack 2; Windows XP Service Pack 3.
Источники, использованные при разработке
* Курсовая работа. Название дисциплины: Алгоритмические языки и программирование. Тема: Написание программы "Угадайка"
* http://www.cyberforum.ru/visual-cpp/ * Курсовая работа. Название дисциплины: Технология разработки программных продуктов. Тема: "Международная телефонная станция". Автор: Гардт Евгений Евгеньевич ВТ-091 * http://msdn.microsoft.com/ru-ru/library/ Текст программы
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <alloc.h>
struct node{
int num; // номер
char author[25];// автор
char book[25];// книга
int year;// год
int qty;// кол-во
node *l,*r;
};
node *first(int num,char author[25],char book[25],int year,int qty);
void printT(node *root,int l);
void incer(node **root, int num,char author[25],char book[25],int year,int qty);
void printT(node *root);
node *delet(node *root,int num,char author[25],char book[25],int year,int qty);
void delall(node **root);
int main(){
//a) Начальное формирование данных обо всех книгах в виде двоичного дерева
node *root=first(111,"King S.","The Long Walk",1979,2);
char c;
int num;
char author[25];
char book[25];
int year;
int qty;
incer(&root,111,"King S.","The Long Walk",1979,2);
incer(&root,107,"King S.","The Green Mile",1996,1);
incer(&root,156,"Bulgakov M.","Heart of a Dog",1925,5);
incer(&root,105,"Dumas A.","Les Trois Mousquetaires",1844,3);
incer(&root,128,"Bronte E.","Wuthering Heights",1847,4);
incer(&root,141,"King S.","Gerald's Game",1992,6);
llp:cout<<"Books: "<<endl;
cout<<endl;
printT(root,0);
cout<<endl;
cout<<"A list of books, sorted by year: "<<endl;
cout<<endl;
cout<<"No"<<"\t"<<"Author\t"<<"\t"<<"Book"<<"\t" <<"Date"<<"\t"<<"Quantity"<<endl;
printT(root);
cout<<endl;
lop:cout<<"Enter the number of the menu item and press <ENTER>: "<<endl<< // Введите номер пункта и нажмите
"\t1 - Add information about a new book"<<endl<< // Добавить данные о новой книге
"\t2 - Clear the book"<<endl<< // Удалить данные о списываемой книге
"\t3 - A list of books, sorted by year"<<endl<< // Список книг упорядоченный по годам издания
"\t4 - Delete tree"<<endl<< // Удаление дерева "\t5 - Exit"<<endl; // Выход из программы
cin>>c;
switch (c){
case '1':
//б) Добавление даны о книгах, вновь поступивших в библиотеку
cout<<"No :";cin>>num;cin.get();
cout<<"Author :";cin.getline(author,255);
cout<<"Book :";cin.getline(book,255);
cout<<"Date :";cin>>year;
cout<<"Quantity :";cin>>qty;
incer(&root,num,author,book,year,qty);
goto lop;
case '2': //в) Удаление данных о списанных книгах
cout<<"No :";cin>>num; cin.get();
cout<<"Author :";cin.getline(author,255);
cout<<"Book :";cin.getline(book,255);
cout<<"Date :";cin>>year;
cout<<"Quantity :";cin>>qty;
delet(root,num,author,book,year,qty);
goto lop;
case '3': //г) По запросу выдаются сведения о наличии книг в библиотеке, упорядоченные по годам
goto llp;
case '4':
delall(&root);
goto lop;
case '5':
break;
}
return 0;
}
node *first(int num,char author[25],char book[25],int year,int qty){
node *pv=new node;
pv->num=num;
strcpy(pv->author,author);
strcpy(pv->book,book);
pv->year=year;
pv->qty=qty;
pv->l=pv->r=0;
return pv;
}
void printT(node *p,int level){
if(p){
printT(p->l,level+1);
for(int i=0;i<level;i++)
cout<<"\t";
cout<<p->num<<" - "<<p->author<<" - "<<p->book<<" - "<<p->year<<" - "<<p->qty<<endl;
printT(p->r,level+1);
}
}
void printT(node *p){
if(p){
printT(p->l);
printf("%3i\t", p->num);
printf("%8s\t", p->author);
printf("%8s\t", p->book);
printf("%4i\t", p->year);
printf("%4i\t", p->qty);
printf("\n");
printT(p->r);
}
}
void incer(node **pv, int num,char author[25],char book[25],int year,int qty){
if(!(*pv)){
node *pnew=new node;
pnew->num=num;
strcpy(pnew->author,author);
strcpy(pnew->book,book);
pnew->year=year;
pnew->qty=qty;
pnew->l=pnew->r=0;
(*pv)=pnew;
}
else if(num==(*pv)->num&&!strcmp(author,(*pv)->author)&&!strcmp((*pv)->book,book)&&year==(*pv)->year)
(*pv)->qty+=qty;
else if((*pv)->year > year)
incer(&((*pv)->l),num,author,book,year,qty);
else
incer(&((*pv)->r),num,author,book,year,qty);
}
node *delet(node *root,int num,char author[25],char book[25],int year,int qty){
node *P=new node, *v=new node;
if (!root)
cout << "This book is not found" << endl;
else if(num==root->num&&!strcmp(author,root->author)&&!strcmp(root->book,book)&&year==root->year){
if(qty>=root->qty){
if (!root->r)
root = root->l;
else
if (!root->l) root = root->r;
else{
v = root->l;
while (v->r->r)
v=v->r;
root->num=v->r->num;
strcpy(root->author,v->r->author);
strcpy(root->book,v->r->book);
root->year=v->r->year;
root->qty=v->r->qty;
P = v->r; v->r = v->r->l;
}
free(P);
}
else
root->qty-=qty;
}
else if (year < root->year) root->l = delet(root->l,num,author,book,year,qty);
else if (year >= root->year) root->r = delet(root->r,num,author,book,year,qty);
return root;
}
void delall(node **p){
if (!(*p)) return;
delall(&((*p)->l));
(*p)->l = NULL;
delall(&((*p)->r));
(*p)->r = NULL;
(*p)=0;
} Описание программы
Программное средство "Библиотека", предназначена для текущей информации о книгах в библиотеке. Для начала работы необходимо запустить программный продукт Microsoft Visual C++ 2010, и открыть на носителе проект "Авиабилеты.sln" (программный продукт не будет работать без Microsoft Visual C++ 2010). Главная форма приложения представлена в виде консольной программы.
Каждая заявка включает: * номер УДК;
* фамилию и инициалы автора;
* название;
* год издания;
* количество экземпляров данной книге в библиотеке.
Программа обеспечивает:
* начальное формирование данных обо всех книгах в библиотеке в виде двоичного дерева;
* добавление данных о книгах, вновь поступивших в библиотеку;
* удаление данных о списываемых книгах;
* по запросу выдаются сведения о наличии книг в библиотеке, упорядоченные по годам издания.
Тестирование программы
Программный продукт разработан в Microsoft Visual C++ 2010 с использованием программных модулей стандартных модулей библиотек C++. Для отладки программного продукта используются встроенные средства система программирования.
Проверки подлежат следующие требования к программному продукту:
Каждая заявка включает: * номер УДК;
* фамилию и инициалы автора;
* название;
* год издания;
* количество экземпляров данной книге в библиотеке.
Программа должна обеспечивать:
* начальное формирование данных обо всех книгах в библиотеке в виде двоичного дерева;
* добавление данных о книгах, вновь поступивших в библиотеку;
* удаление данных о списываемых книгах;
* по запросу выдаются сведения о наличии книг в библиотеке, упорядоченные по годам издания.
Для тестирования программного продукта применялись исходные данные
студента выполнившего данную работу.
Литература
1. Аляев Ю.А. Алгоритмизация и языки программирования Pascal, C++, Visual Basic: учебно-справочное пособие. - М.: Финансы и статистика, 2007. 2. Шень А. Программирование: теоремы и задачи. Учебное пособие. - М:МЦ НМО, 1995
3. Фалина И.Н., Богомолова Т.С., Большакова Е.А., Гущин И.С., Шухардина В.А. Алгоритмизация и программирование. - М.: КУДИЦ-ПРЕСС, 2007.
4. Павловская Т.А. С++. Программирование на языке высокого уровня. Учебник. - СПб: Питер, 2006-461с.
5. Павловская Т.А. Щупак Ю.А. С++. Программирование на языке высокого уровня. Практикум. - СПб: Питер, 2007-238с.
6. http://wm-help.net/books/category/cpp.html Книги Visual c++/c
7. http://habrahabr.ru/post/148657/ Управление памятью C++
1
Документ
Категория
Рефераты
Просмотров
199
Размер файла
30 Кб
Теги
курсовая
1/--страниц
Пожаловаться на содержимое документа