Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2013, 11:55   #1
yaNatali
Новичок
Джуниор
 
Регистрация: 12.12.2013
Сообщений: 1
По умолчанию Помогите, пожалуйста, с решение задачи на Си++

Составить программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах включают:
•номер УДК;
•фамилию и инициалы автора;
•название;
•год издания;
•количество экземпляров данной книге в библиотеке.
Программа должна обеспечивать:
•начальное формирование данных обо всех книгах в библиотеке в виде двоичного дерева;
•добавление данных о книгах, вновь поступивших в библиотеку;
•удаление данных о списываемых книгах;
•по запросу выдаются сведения о наличии книг в библиотеке, упорядоченные по годам издания.

Цитата:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>

using namespace std;

struct LIBRARY
{
char nomer[30];
char FIO[30];
char nazvanie[40];
int Year;
int kolvo;
};

struct STR
{
LIBRARY *Library;
STR *next;
};

STR * create(LIBRARY * Library)
{
STR *root=new STR;
root->Library=Library;
root->next=NULL;
return root;
}

void add(LIBRARY *Library, STR* root)
{
while(root->next)
root=root->next;
root->next=new STR;
root->next->Library=Library;
root->next->next=NULL;
}

void printLIBRARY(LIBRARY *Library)
{
cout<<"Nomer => "<<Library->nomer<<endl;
cout<<"FIO => "<<Library->FIO<<endl;
cout<<"Nazvanie => "<<Library->nazvanie<<endl;
cout<<"Year => "<<Library->Year<<endl;
cout<<"Kolvo => "<<Library->kolvo<<endl;
cout<<endl;
}

LIBRARY * makeLIBRARY()
{
cout<<"Enter book data:"<<endl;
LIBRARY *Library=new LIBRARY;
fflush(stdin);
cout<<"Номер УДК книги: ";
cin.getline(Library->nomer,30);

cout<<"Фамилия и инициалы автора: ";
cin.getline(Library->FIO,30);

cout<<"Название книги: ";
cin.getline(Library->nazvanie,40);

cout<<"Год издания: ";
cin>>Library->Year;

cout<<"Количество книг: ";
cin>>Library->kolvo;
return Library;
}

int choice()
{
int answer;
getch();
system("cls");
cout<<"Main menu"<<endl;
cout<<"1. Add new books to the list"<<endl;
cout<<"2. Print LIBRARY at list"<<endl;
cout<<"3. Search and delete"<<endl;
cout<<"4. Clear all entries"<<endl;
cout<<"5. Load"<<endl;
cout<<"6. Save"<<endl;
cout<<"0. Exit"<<endl;
cout<<"Enter your choice: ";
cin>>answer;
fflush(stdin);
if(answer>=1 && answer<=5)
return answer;
else
return 0;
}

int main() {
system ("chcp 1251");
STR *root=NULL;
int ch;
while(1)
{
ch=choice();
if(ch==1)
{
cout<<endl;
if(root==NULL) root=create(makeLIBRARY());
else add(makeLIBRARY(),root);
}
else if(ch==2)
{
cout<<endl;
int i=0;
int N=0;
STR *proot=root;

while (root)
{
N++;
root=root->next;
}

LIBRARY *buf;
LIBRARY **pLibrary=new LIBRARY*[N];
root=proot;

while (root)
{
pLibrary[i]=root->Library;
root=root->next;
i++;
}

root=proot;

for (i=0;i<N;i++) printLIBRARY(pLibrary[i]);
}

else if(ch==3)
{
char qwe[30];
char qw[30], q[1];
cout<<"Enter nomer of book => "<<endl;
cin.getline(qwe,30);
while (root)
{
if (!strcmp(qwe,root->Library->nomer))
{
{
printLIBRARY(root->Library);
cout<<"Do you want clear this entries? (y/n) "<<endl;
cin.getline(q,1);
if (!strcmp(q,"y"))
{
delete root->Library;
}
root=root->next;
} }
else if (strcmp(qwe,root->Library->nomer)) root=root->next;
}
cout<<endl;
}
else if(ch==5)
{
break;
cout<<endl;
}
}
return 0;
}
После удаления одной книги все зависает, и помогите сделать сортировку по годам, пожалуйста
yaNatali вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверьте, пожалуйста, решение задачи!!! chatnoir Microsoft Office Excel 2 15.11.2013 17:50
Направьте на решение задачи,пожалуйста!=) solovey.kurskiy Паскаль, Turbo Pascal, PascalABC.NET 3 17.10.2013 15:44
Помогите с решение задачи! VeseloffS Помощь студентам 1 08.06.2009 00:30