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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2010, 10:50   #1
kate311893
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 18
По умолчанию Работа с файлами ООП

Задание: Обеспечить возможность изменения любого из полей любой из записи(функция red)... Имеются поля название,изготовитель,тип вставки, масса вставки,масса оправы и массив
Код:
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<stdio.h>
#include<string.h>
#include<fstream.h>
#include<io.h>
const M=4;
class TMyClass//uvilirnoe izdelie
{ friend class TFile;
private:
char n[20];//nasvanie
char i[20];//izgptpvitel
char v[10];//tip vctavki
float t;//macca vctavki
float m;//macca opravi
float o[M];//coderg v metale opravi
public:
TMyClass(float mm=0,float oo=0,char* nn="?",char* ii="?",char* vv="?",float t=0);
TMyClass(const TMyClass &obj);
~TMyClass();
//void vvod();
//void vivod();
friend ostream& operator<<(ostream& os,TMyClass &d);
friend istream& operator>>(istream& ist,TMyClass &d);
TMyClass& operator=(TMyClass &obj);
void shapka();
void vivod_();
void vivod2();
};
//---------------------------------------------------------------
//Konctructor po umolch.
TMyClass::TMyClass(float mm,float oo,char* nn,char* ii,char* vv,float tt)
...................
//----------------------------------------------------------------------
//Konctructor copii
TMyClass::TMyClass(const TMyClass &obj)
......
//-------------------------------------------------------------------------
//Dectructor
TMyClass::~TMyClass()
{}
//-------------------------------------------------------------------
void TMyClass::shapka()
{cout<<endl;
cout<<"nazv"<<setw(7)<<"izgot"<<setw(7)<<"tip_vc"<<setw(9)<<"m_vct"<<setw(9)<<"m_opr"<<setw(9)<<"cod.zolot"<<setw(8)<<"cereb"<<setw(8)<<"med"<<setw(8)<<"nikel";
}
//------------------------------------------------------------------
void TMyClass::vivod_()
{cout<<endl;
cout<<n<<setw(7)<<i<<setw(7)<<v<<setw(8)<<t<<setw(9)<<m<<setw(9);
for(int i=0;i<M;i++)
cout<<o[i]<<setw(10);
}
//--------------------------------------------------------------------
void TMyClass::vivod2()
{cout<<endl;
cout<<n<<setw(8)<<i<<setw(8);
for(int i=0;i<M;i++)
cout<<o[i]<<setw(10);
}
//-----------------------------------------------------------------
TMyClass& TMyClass::operator=(TMyClass &obj)
{
strcpy(n,obj.n);
strcpy(i,obj.i);
strcpy(v,obj.v);
t=obj.t;
m=obj.m;
for(int i=0;i<M;i++)
o[i]=obj.o[i];
return *this;
}
//-------------------------------------------------------------------
ostream &operator<<(ostream& os,TMyClass &d)
{
os<<d.n<<" "<<d.i<<" "<<d.v<<" "<<d.t<<" "<<d.m<<" ";
for(int i=0;i<M;i++)
os<<d.o[i]<<" ";
return os;
}
//----------------------------------------------------------------------
istream &operator>>(istream& ist,TMyClass &d)
{
ist>>d.n>>d.i>>d.v>>d.t>>d.m;
for(int i=0;i<M;i++)
ist>>d.o[i];
return ist;
}
//------------------------------------------------------
class TFile
{friend TMyClass;
char file_name[50];
int count;
int fld,zap;
TMyClass d;
public:
TFile();
void sozd();
void read_tab();
void add_rec();
void poisk();
void poisk_d();
void poisk_m();
void red();
int sravnStr(char *a,char *b);
};
//------------------------------------------------------
TFile::TFile()
{
count=0;
strcpy(file_name,"my_club.xxx");
}
//---------------------------------------------------------
//Cozdanie faila dannih
void TFile::sozd()
{
cout<<"Cozdanie FD"<<endl;
ofstream ff(file_name);
count=1;
ff<<setw(5)<<count<<" ";
cout<<"vvedite nazv,izgot,tip_vc,massa_vc,massa_op,coderganie zolot,cereb,medi,nikel.";
cin>>d;
ff<<d;
ff.close();
}
//-----------------------------
//Kontrolnoe chtenie faila dannih
void TFile::read_tab()
.......
//----------------------------
//Dobavlenie sapicei v fail
void TFile::add_rec()
{
cout<<"Dobavlenie zapici."<<endl;
fstream ff(file_name,ios::in|ios::out);
ff>>count;
count++;
ff.seekg(0,ios::beg);
ff<<setw(5)<<count<<" ";
ff.seekg(0,ios::end);
cout<<endl;
cout<<"vvedite nazv,izgot,tip_vc,massa_vc,massa_op,coderganie zolot,cereb,nikel.";
cin>>d;
ff<<d;
ff.close();
}
//--------------------------------------------------------------
void TFile::red()
{
int zap
read_tab();
cout<<"Vvedite nomer zapici: ";
cin>>zap;
ifstream fff(file_name);
ofstream ttt("tmp.xxx");
fff>>count;
ttt<<setw(5)<<count<<" ";
 for(int i=1;i<=zap-1;i++)
  {
   fff>>d;
   fff<<d;
   }
Проблема собственно вот где... Тут необходимо менять запись, а я не знаю как... Использовать меню switch-case
ttt<<d;
for(i=1;i<=zap-1;i++)
  {
   ttt>>d;
   ttt<<d;
   }
fff.close();
ttt.close();
unlink(file_name);
rename("tmp.xxx","file_name");
}
//--------------------------------------------------------------
void main()
{
clrscr();
TFile my_base;
int i;
getch();
}
___
1. Не используйте ненужное выделение размером шрифта!
2. И не забывайте оформлять код, так, как определяется правилами форума!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 28.11.2010 в 09:42.
kate311893 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не пойму, в чем ошибка... ООП.Работа с файлами данных, С++ Purr Помощь студентам 2 24.10.2010 22:06
работа с файлами basav1k Помощь студентам 2 19.05.2010 19:17
Работа с файлами. Александе еть я Общие вопросы C/C++ 0 04.05.2010 10:06
Паскаль ООП. Примеры программ с использованием ООП SeЯgey Помощь студентам 5 13.05.2009 21:55