В колонках играет - Nightwish - Wish I Had An Angel
Настроение сейчас - Супер! +)
Седня писал контрошу по инфе... набрал 19 баллов... из 20 возможных... особенно если учесть, что я АБСОЛЮТНО не готовился... :D
Контроша 3-й парой... первые две - лекции... я за это время с челом одним посидел, подумал как сделать эту хрень... ну, на двоих сообразили (в смысле как делать...:))... на контроше попалось аналогичное задание... 10 минут и готово... =) остальное время сидел музыку слушал... =)
Если кому интересно (в чем я сомневаюсь...:)), то
Задание: составить программу, которая учитывает информацию о книгах в библиотеке. Необходимые сведения:
1. ФИО автора
2. Название книги
3. Год издания
4. Количество экземпляров
Реализовать через линейный односвязный список.
Программа должна содержать следующие функции:
1. Начальное формирование данных и их дальнейшее добавление
2. Удаление данных
3. Поиск по автору (названию)
4. Сортировка по алфавиту
Решение:
#include "stdafx.h"
#include "iostream.h"
#include "string.h"
#include "malloc.h"
struct book
{
char name[25];
char author[20];
int date;
int quantity;
book *next;
};
class library
{
private:
book *top, *bottom;
public:
int size;
void Push(book Data)
{
book *p = new book;
*p = Data;
p->next = NULL;
if(!size)
top=bottom=p;
else
{
top->next=p;
top=p;
}
size++;
}
book Get(int num)
{
if(size)
{
book *p=bottom;
for(int i=0;inext;
return *p;
}
}
void Del(int num)
{
if(size)
{
book *p=bottom;
book *tmp;
if(num==1)
delete p;
else
{
for(int i=0;inext;
tmp=p->next;
p->next=p->next->next;
delete tmp;
}
size--;
}
}
book Search(char name[25])
{
if(size)
{
book *p=bottom;
for(int i=0;iname, name)==0)
return *p;
p=p->next;
}
}
}
void Sort()
{
if(size==0 || size==1) return;
book *M;
//book *M=(book *)calloc(book, size);
book *min, *p;
int jmin;
for(int i=0; iname,min->name)>0)
{
jmin=j+1;
min=p;
}
p=p->next;
}
M[i]=*min;
Del(jmin);
}
for(int k=0;k>a;print(B.Get(a));break;
case 5: char name[25]; cin>>name; print(B.Search(name)); break;
case 6: int d;cin>>d;B.Del(d);break;
default: break;
}
}
}
int menu()
{
int key;
cout << "1 - Add" << endl;
cout << "2 - Print" << endl;
cout << "3 - Sort" << endl;
cout << "4 - Search by number" << endl;
cout << "5 - Search by name" << endl;
cout << "6 - Delete" << endl;
cout << "0 - Exit" << endl;
cin >> key;
return key;
}
void print(book Data)
{
cout << "Name" << Data.name << endl;
cout << "Author" << Data.author << endl;
cout << "Date" << Data.date << endl;
cout << "Quantity" << Data.quantity << endl;
}
book scan()
{
book A;
cout << "Enter name" << endl;
cin >> A.name;
cout << "Enter author" << endl;
cin >> A.author;
cout << "Enter date" << endl;
cin >> A.date;
cout << "Enter quantity" << endl;
return A;
}
задание и решение...
Мне вот просто интересно, а это ваще реально было придумать и написать за пару?? У меня 3 часа на это ушло... и то я не один думал... Оть... Но все пучком! =)
PS сорри за исходный код в таком виде... ли.ру не хочет делать табуляцию... а файл не выложился...
PPS я никого не заставляю читать и проверять код... просто я не знаю, что еще написать... и еще хочется похвастаться... +)
PPPS в проге могут быть какие-нить баги... все найти у меня не было времени...