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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2008, 20:39   #1
Жека:)
Пользователь
 
Регистрация: 25.10.2008
Сообщений: 30
По умолчанию БД, обнуление данных после перезапуска

Вот создал БД, но почему-то после каждого перезапуска программы приходится набивать заново базу, ъхотя раньше так не было. В чём ошибка?

Код:
#include <iostream.h>
#include <conio.h>
#include <fstream.h>
#include <string.h>
struct man {
	char familija[64];
	char inicialy[64];
	char ERM[64];
	char matematika[64];
	char russkij[64];
	char elektro[64];
	char elektron[64];
	} student;
char menu_char[6] [25] = {"1. Sozdat' fajl",
			  "2. Prosmotret' fajl",
			  "3. Dobavit' v fajl zapis",
			  "4. Poisk v fajle",
			  "5. Spravka",
			  "6. Vyhod"};
char in_name[64];
int active;
void load_menu(void)
  {
    for (int i = 0; i < 6; i++)
    {
      textbackground(16);
      textcolor(15);
      if (i==active)
      textcolor(4);
      gotoxy(32,i+10);
      cprintf ("%s", menu_char[i] );
    }
  }
inline void input(void)
  {
    textbackground(16);
    textcolor(15);
    gotoxy(0,0);
    clrscr();
  }

void main(void)
{
  char key;
  int k;
  label:
  clrscr();
  do
  {
    _setcursortype(0);
    load_menu();
    key = getch();
    switch(key)
    {
      case 80: active++;
      break;
      case 72: active--;
    }
    if (active > 5)
    active = 5;
    if (active < 0)
    active = 0;
  }
  while(key!=13);
  if (active == 0)
  {
    input();
    _setcursortype(1);
    cout << "Vvedite kolichestvo studentov: ";
    cin >> k;
    ofstream emp_file("STUDENTS.DAT");
    for (int i = 0; i < k; i++)
{
    cout << "Vvedite familiju studenta: ";
    cin >> student.familija;
    cout << "Vvedite inicialy: ";
    cin >> student.inicialy;
    cout << "Vvedite otsenku po ERM: ";
    cin >> student.ERM;
    cout << "Vvedite otsenku po matematike: ";
    cin >> student.matematika;
    cout << "Vvedite otsenku po russkomu jazyku: ";
    cin >> student.russkij;
    cout << "Vvedite otsenku po elektrotehnike: ";
    cin >> student.elektro;
    cout << "Vvedite otsenku po elektronnoj tehnike: ";
    cin >> student.elektron;
    emp_file.write((char *) &student, sizeof(man));
    ifstream emp_file("students.dat", ios::app);
}
    goto label;
  }
  if (active == 1)
  {
    input();
    _setcursortype(0);
    ifstream emp_file("STUDENTS.DAT");
    for (int i=0; i<k; i++)
	{
      emp_file.read((char *) &student, sizeof(man));

      cout << "Familija studenta: " <<student.familija << endl;
      cout << "Inicialy: " << student.inicialy << endl;
      cout << "Otsenka po ERM: " << student.ERM << endl;
      cout << "Otsenka po matematike: " << student.matematika << endl;
      cout << "Otsenka po russkomu jazyku: " << student.russkij << endl;
      cout << "Otsenka po elektrotehnike: " << student.elektro << endl;
      cout << "Otsenka po elektronnoj tehnike: " << student.elektron << endl;
    }
    gotoxy(55,25);
    cout << "Nazhmite probel";
    while(!kbhit());
    goto label;
  }
  if (active == 2)
  {
    input();
    ofstream emp_file("students.dat", ios::app);
    cout << "Vvedite familiju studenta: ";
    cin >> student.familija;
    cout << "Vvedite inicialy: ";
    cin >> student.inicialy;
    cout << "Vvedite otsenku po ERM: ";
    cin >> student.ERM;
    cout << "Vvedite otsenku po matematike: ";
    cin >> student.matematika;
    cout << "Vvedite otsenku po russkomu jazyku: ";
    cin >> student.russkij;
    cout << "Vvedite otsenku po elektrotehnike: ";
    cin >> student.elektro;
    cout << "Vvedite otsenku po elektronnoj tehnike: ";
    cin >> student.elektron;
    emp_file.write((char *) &student, sizeof(man));
    k++;
    goto label;
      }

Последний раз редактировалось rpy3uH; 28.11.2008 в 15:22.
Жека:) вне форума Ответить с цитированием
Старый 27.11.2008, 20:44   #2
Жека:)
Пользователь
 
Регистрация: 25.10.2008
Сообщений: 30
По умолчанию

продолжение кода:
Код:
if (active == 3)
  {
    input();
    _setcursortype(1);
    cout << "Vvedite familiju studenta: ";
    cin >> in_name;
    _setcursortype(0);
    ifstream emp_file("STUDENTS.DAT");
    for (int i=0; i<k; i++)
	{
      emp_file.read((char *) &student, sizeof(man));
      if (strcmp(in_name, student.familija)==0)
      {
	cout << student.familija << " " << student.inicialy << endl;
	cout << "Otsenka po ERM: " << student.ERM << endl;
	cout << "Otsenka po matematike: " << student.matematika << endl;
	cout << "Otsenka po russkomu jazyku: " << student.russkij << endl;
	cout << "Otsenka po elektrotehnike: " << student.elektro << endl;
	cout << "Otsenka po elektronnoj tehnike: " << student.elektron << endl;
      }
    }
    gotoxy(55,25);
    cout << "Nazhmite probel";
    while (!kbhit());
    goto label;
  }

  if (active == 4)
  {
    input();
    _setcursortype(0);
    cout << "                                Spravka"
	 << endl
	 << endl
	 << endl
	 << endl;
    cout << "            1) a. programma sozdaet na diske fajl - STUDENTS.DAT "
	 << endl
	 << "               b. zapisyvaet informaciju o studente (imja i otsenki) "
	 << endl
	 << endl
	 << endl
	 << "            2) programma schityvaet iz fajla informaciju o studente "
	 << endl
	 << endl
	 << endl
	 << "            3) opisanie programmy "
	 << endl
	 << endl
	 << endl
	 << "            4) vyhod iz programmy ";
    gotoxy(55,25);
    cout << "Nazhmite probel";
    while(!kbhit());
    goto label;
  }
  input();
  textcolor(7);
  clrscr();
}
Жека:) вне форума Ответить с цитированием
Старый 28.11.2008, 19:54   #3
Жека:)
Пользователь
 
Регистрация: 25.10.2008
Сообщений: 30
По умолчанию

Что, никто не может помочь?
Жека:) вне форума Ответить с цитированием
Старый 28.11.2008, 20:09   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А что, потоки и файлы нынче закрывать не модно?
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обнуление катриджа. Xeon332 Компьютерное железо 2 11.05.2009 07:37
Обнуление переменной [MI_nor] Общие вопросы C/C++ 3 05.11.2008 18:01
Данные сохранить в файл и без перезапуска программы отобразить в grid-e xdevi Помощь студентам 2 29.01.2008 09:17
Обнуление автоинкрементного поля azat БД в Delphi 4 29.11.2007 11:44
Обнуление значений $_SESSION[*] при переходе на некоторые страници kkkggg PHP 3 11.09.2007 23:09