Здравствуйте. Помогите новичку понять, где в коде ошибка?
От: sar_ultima  
Дата: 12.04.08 15:35
Оценка:
#include<iostream.h>
#include<string.h>
#include<windows.h>

struct Kniga{               //описываем структуру BOOK
    char nazvanie[30];      //строковая НАЗВАНИЕ книги
    struct {                //вложенная структура АВТОР
        char imya[20];      //ИМЯ автора
        char familiya[20];  //ФАМИЛИЯ автора
    }avtor;
    double cena;            //Цена книги
    short stranic;          //Количество СТРАНИЦ в книге
};



Kniga **NovKat(Kniga **p, int &n);      //прототип функции НОВЫЙ КАТАЛОГ
Kniga *InfoOKnige(Kniga *p);            //прототип функции ИНФОРМАЦИЯ О КНИГЕ
Kniga **VivodNaEkran(Kniga **p, int n); //прототип функции ВЫВОД НА ЭКРАН



void main()
{
    Kniga **p=NULL;
    int n=0;
    int vibor;                                                             
    while(1){                                                              
        system("cls");                              //очищаем экран от мусора
        
        cout << "\t\tMenu: " << "\n";               //заголовок МЕНЮ
        cout << "1 - Sozdat novuyu biblioteky. \n"; //МЕНЮ. Создать новый каталог
        cout << "6 - Vivod na ekran. \n";           //МЕНЮ. Вывод на экран

        cin >> vibor;
        switch(vibor){
        case 1: p=NovKat(p, n); break;
        case 6: p=VivodNaEkran(p, n);break;
        default: 
                cout << "Vnimatel'nee. Imeetsa tol'ko 6 punktov menu.";                
        }
    }
}
///////////////////////////////////////////////Создание нового каталога
Kniga **NovKat(Kniga **p, int &n)
{
    system ("cls");
    if (p!=NULL) delete []p;
    cout << "Vvedite kolichesstvo knig: ";
    cin >> n;
    p=new Kniga*[n];
    if(p==NULL)
    {
        cout <<"Oshibka pamyati!!!";
        return NULL;
    }
    for (int i=0; i<n; i++)
    {
        p[i]=new Kniga;
        cout << "Kniga nomer "<< i+1<< "\n\n";
        InfoOKnige(p[i]);
    }
    return p;
}
///////////////////////////////////////////////Заполняем информацию о книге
Kniga *InfoOKnige(Kniga *p)
{
    cout << "Vvedite nazvanie: ";
    cin >>p->nazvanie;
    cout << "Vvedite imya avtora: ";
    cin >> p->avtor.imya;
    cout << "Vvedite familiy avtora: ";
    cin >> p->avtor.familiya;
    cout << "Vvedite kolichestvo stranic: ";
    cin >> p->stranic;
    cout <<"Vvedite ceny: ";
    cin >> p->cena;
    return p;
}
//////////////////////////////////////////////Выводим на экран содержимое каталога
Kniga **VivodNaEkran(Kniga *p, int n)
{
    cout << "Na danniy moment v kataloge " << n << " knig\n";
    for(int i=0; i<n; i++)
    {
        cout << "Kniga " << n+1 << ": " << "Nazvanie \t" << p->nazvanie << endl;
        cout << "\t Avtor: " << p->avtor.imya << " "<< p->avtor.familiya << endl;
        cout << "\t Cena: " << p->cena << "griven" << endl;
        cout << "\t Kolichestvo stranic: " << p->stranic << endl;
    };
    return p*;
}

Добавлена разметка и поправлена табуляция — Кодт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.