Помогите с этой проблемой не могу никак разобраться
Код:
#include "StdAfx.h"
#include <iostream>
#include <math.h>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
#include <fstream>
#include <string>
#include <locale.h>
using namespace std;
int num = 0;
struct bibl
{
int id;//номер записи
string type;//Вид товара
string firm;//Фирма
string mfr;//Производитель
string model;//Модель
int price;//Цена
struct bibl *next;
};
struct item { bibl inf;
struct item* next;} * top=0;
fstream f;
void add(int ID,string TYPE,string FIRM,string MFR,string MODEL,int PRICE);
void del(item * q);
void view(item * q);
void addMenu();
void viewMenu();
void edit(item * r);
void editMenu();
void searchMenu();
void viewAll();
void zapic();
void chtenie();
void udal(int *x, int m, int *n) ;
item * first = NULL; // Первый элемент списка
item * last = NULL; // Последний элемент списка
void add(int ID,string TYPE,string FIRM,string MFR,string MODEL,int PRICE)
{
item * c = new item;
c->inf.id = ID;
c->inf.type = TYPE;
c->inf.firm = FIRM;
c->inf.mfr = MFR;
c->inf.model = MODEL;
c->inf.price = PRICE;
c->next = NULL;
//if(first == NULL)first = c;
c->next = last;
last = c;
}
void view(item * q)
{
cout<<""<<q->inf.id<<". Вид товара: "<<q->inf.type<<". Фирма: "<<q->inf.firm<<". Производитель: "<<q->inf.mfr<<". Модель: "<<q->inf.model<<". Цена: "<<q->inf.price<<endl;
}
void addMenu()
{
system("cls");
ofstream fout("base.txt",ios::app);
int ID;//номер записи
string TYPE;//вид товара
string FIRM;//фирма
string MFR;//производитель
string MODEL;//модель
int PRICE;//цена
cout<<"Введите номер записи: ";
cin>>ID;
cout<<"Введите тип товара: ";
cin>>TYPE;
cout<<"Введите фирму: ";
cin>>FIRM;
cout<<"Введите производителя: ";
cin>>MFR;
cout<<"Введите модель: ";
cin>>MODEL;
cout<<"Введите цену: ";
cin>>PRICE;
add(ID,TYPE,FIRM,MFR,MODEL,PRICE);
system("cls");
cout<<"Запись "<<ID<<" добавлена\n";
fout <<endl<<ID<<" "<<TYPE<<" "<<FIRM<<" "<<MFR<<" "<<MODEL<<" "<<PRICE;
fout.close();
_getch();
system("cls");
}
void viewMenu()
{
system("cls");
int ID;
cout<<"Введите номер записи: ";
cin>>ID;
item * r = last;
if(r != NULL)
{
while(r->inf.id != ID && r->next != NULL)
{
r=r->next;
}
if(r->inf.id == ID)view(r);else cout<<"Запись не найдена в базе\n";
}
else
{
cout<<"Записей нет";
}
_getch();
}
void viewAll()
{
system("cls");
item * r = last;
if(r != NULL)
{
while(r != NULL)
{
view(r);
r=r->next;
}
}
else
{
cout<<"Записей нет\n";
}
_getch();
}
void del(item * q)
{
if(q == first){first = first->next;}
else
{
item * d = first;
while(d->next != q){d = d->next;}
d->next = q->next;
if(q == last)last = d;
delete q;
}
}
void delMenu()
{
system("cls");
int ID;
cout<<"Введите номер записи: ";
cin>>ID;
item * r = last;
if(r != NULL)
{
while(r->inf.id == ID && r->next != NULL)
{
r=r->next;
}
if(r->inf.id == ID)del(r);else cout<<"Запись не найдена в базе\n";
}
else
{
cout<<"Записей нет";
}
_getch();
}
void searchMenu()
{
system("cls");
string FIRM;
cout<<"Введите название фирмы: ";
cin>>FIRM;
item * r = last;
if(r != NULL)
{
while(r->inf.firm != FIRM && r->next != NULL)
{
r=r->next;
}
if(r->inf.firm == FIRM)view(r);else cout<<"Запись не найдена в базе\n";
}
else
{
cout<<"Записей нет";
}
_getch();
}
void edit(item * r)
{
system("cls");
int ID;//номер записи
string TYPE;//вид обуви
string FIRM ;//фирма
string MFR;//производитель
string MODEL;//модель
int PRICE;//цена
cout<<"Введите номер записи: ";
cin>>ID;
cout<<"Введите тип товара: ";
cin>>TYPE;
cout<<"Введите фирму: ";
cin>>FIRM;
cout<<"Введите производителя: ";
cin>>MFR;
cout<<"Введите модель: ";
cin>>MODEL;
cout<<"Введите цену: ";
cin>>PRICE;
r->inf.id = ID;
r->inf.type = TYPE;
r->inf.firm = FIRM;
r->inf.mfr = MFR;
r->inf.model = MODEL;
r->inf.price = PRICE;
system("cls");
cout<<"Запись изменена";
}
void editMenu()
{
system("cls");
int ID;
cout<<"Введите номер записи: ";
cin>>ID;
item * r = last;
if(r != NULL)
{
while(r->inf.id != ID && r->next != NULL)
{
r=r->next;
}
if(r->inf.id == ID) edit(r);else cout<<"Запись не найдена в базе\n";
}
else
{
cout<<"Записей нет\n";
}
_getch();
}