Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Помогите, плиз, решить зазачу...


Автор: Olechka111 28.5.2008, 22:28
Проблема такая... Надо создать мини базу данных. У меня написаны процедуры ввода и вывода данных. Теперь надо описать процедуру удаления элемента. Помогите плиз... Очень надо, скоро конец семестра, а у меня ничего не сдано... :(

Автор: Dmi3ev 29.5.2008, 00:03
я сейчас не могу откомпилировать, но у меня сомнения по поводу работоспособности программы.

Автор: s1lver 29.5.2008, 08:38
Кстати, она не компилируется.... smile 

Автор: Olechka111 29.5.2008, 22:14
Вроде все компилится. Надо прогу запускать в консольном приложении, тогда будет все нормально...

Автор: Dmi3ev 30.5.2008, 11:41
она на компилировалась))), чтобы компилировалась, надо написать #include <clases.cpp> в файле Program

Автор: Dmi3ev 30.5.2008, 13:27
вообще, базу данных лучше делать в файле, она там будет храниться и не исчезнет после выхода из программы.
я попробовал сделать, вот что получилось, файл вордовский, чтобы везде прочитать можно было.
Код

//---------------------------------------------------------------------------
#include <iostream.h>
#include <fstream.h>
#include <cstdio.h>
#pragma hdrstop

//---------------------------------------------------------------------------
void del()
{
char s[80];
int n=0, k=1;
cout<<"vvedite nomer zapisi dlia udalenia=";
cin>>n;
ifstream fi;
ofstream fo;
fi.open("D:\\myBD.doc");
fo.open("D:\\myBDtemp.doc");
while (! fi.eof())
 {
  fi.getline(s,80);
  if (k!=n)
    fo<<s<<endl;
  k++;
 }
fi.close();
fo.close();
remove ("D:\\myBD.doc");
rename ("D:\\myBDtemp.doc", "D:\\myBD.doc");
n=0;
k=1;
}
//---------------------------------------------------------------------------
void vivod ()
{
char s[80];
ifstream fi;
fi.open("D:\\myBD.doc");
while (! fi.eof())
 {
  fi.getline(s,80);
  cout<<s<<endl;
 }
fi.close();
}
//---------------------------------------------------------------------------
void vvod ()
{
char im[80], otc[80], fam[80];
int gr;
float sb;
cout<<"familia=";
cin>>fam;
cout<<"imia=";
cin>>im;
cout<<"otchestvo=";
cin>>otc;
cout<<"god rojdeniia=";
cin>>gr;
cout<<"sr ball=";
cin>>sb;
ofstream fo;
fo.open("D:\\myBD.doc", ios::app);
fo<<fam<<" "<<im<<" "<<otc<<" "<<gr<<" "<<sb<<"\n";
fo.close();
}
#pragma argsused
int main(int argc, char* argv[])
{
char q;
while (q!='e')
 {
  cout<<endl;
  cout<<"--menu--"<<endl;
  cout<<"1-Vvod"<<endl;
  cout<<"2-Vivod"<<endl;
  cout<<"3-Delete"<<endl;
  cout<<"--------"<<endl;
  cin>>q;
  switch (q)
  {
   case '1': vvod(); break;
   case '2': vivod(); break;
   case '3': del(); break;
  }
 }
return 0;
}
//---------------------------------------------------------------------------

попробуйте этот код, тут все вроде работает, удаление не самое правильное, но для института более чем.
выход из программы 'e'.
что непонятно, спрашивай smile

Добавлено через 3 минуты и 53 секунды
файлы создаются сами, так что запусти и посмотри, как это все работает. красота вывода оставляет желать лучшего, но это уже твоя работа smile 

Автор: Olechka111 30.5.2008, 14:30
Спасибо большое)  smile  Пойду разбираться в коде... Надеюсь пойму....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)