Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


Ответ
 
Опции темы
Старый 20.05.2008, 23:18   #1
Mailz
Новичок
Джуниор
 
Регистрация: 20.05.2008
Сообщений: 2
По умолчанию Проблемы с динамической структурой данных

Не удаётся адекватно составить добавление элементов - совокупности полей в массив структур

Код:
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>

void main()
{
 int i;     //index elementa v structure
 int ac;    // flag vibora rezima raboti
 int bc;    // flag vibora rezima raboti+peremennaja, kotoroj prisvaivaetsja 4islo udaljaemich polej
 int *mas;  // peremennaja pod dinami4eskyu pamjat'
const int n=8;
 int v;     // peremennije, opredeljaushije razmer dinami4eski videljaemogo massiva
 FILE*fl;   // ykazatel' na fail

 clrscr();
 printf("\n\n\t Programma sozdaet fail ''Byer.txt'', zapisivaet v nego sly4ainyu\n\t posledovatel'nost' sumbol'ov i vivodit na ekran.\n\t Tak ze programma pozvoljaet ydaljat' i dobavljat' elementi\n\t koli4estvom k s nomerami n, n+1,... v tot ze fail.\n\n");

 ac=1;  // po defaul'ty - prodolzenije raboti
 bc=3;  // po defaul'ty - vivod soderzimogo faila "Byer.txt" na ekran

 struct byer
  {
   char son[40];   
   char nam[40];  
   char otc[40];   
   int  adr;       
   double tel;     
   double kred;   
  };
  byer sp[n];
  fl=fopen("byer.txt", "w+");
  if(fl!=NULL)
    printf(" File created! \n");

  else
   {
    printf("\n Error pri sozdanii faila !\n Nazmite lubyu klavishy dlja vixoda iz programmi!");
    getch();
   }

   printf("\n\n Vvedite dannie o pokupatele v sledyushej posledovatel'nosti:\n");
   printf(" ''Familija Inja Otc4estvo Adres Telefon # Kredit.karti". Posle vvoda nazmite  Enter\n");
   printf(" dlja vvedenija informatsii o sled. 4eloveke. Dlja zavershenija programmi nazmite CtrL+Z.\n\n");
   printf("\n Dlja prodolzenija raboti nazmite 1\n");
   scanf("%d",&ac);
   if(ac==feof(stdin))
    {
      printf("\n Rabota programmi prervana pol'zovatelem.\n Nazmite lubyu klavishu dlja vixoda iz programmi.\n");
      getch();
    }

   if(ac!=feof(stdin))
     {
	for(i=0;i<=n-1;i++)
   {

  printf("\n Vvedite familiju pokupatelja ь %d:\n",i+1);
   scanf(" %s",&sp[i].son);
    fprintf(fl," %s",sp[i].son);
   printf("\n ‚ўҐ¤ЁвҐ Ё¬п:\n");
   scanf(" %s",&sp[i].nam);
    fprintf(fl," %s",sp[i].nam);
   printf("\n Vvedite ot4estvo:\n");
   scanf(" %s",&sp[i].otc);
     fprintf(fl," %s",sp[i].otc);
   printf("\n Vvedite adres prozivanija:\n");
   scanf(" %s",&sp[i].adr);
     fprintf(fl," %s",sp[i].adr);
   printf("\n VvediteҐ ь telefona:\n");
   scanf(" %d",&sp[i].tel);
     fprintf(fl," %d",sp[i].tel);
   printf("\n Vvedite ь kreditnoj karti:\n");
   scanf(" %d",&sp[i].kred);
     fprintf(fl," %d\n",sp[i].kred);


  }
  printf("\n Dlja udalenija elementov nazmite  1 \n");
  printf("\n Dlja dobavlenija elementov nazmite 2 \n");
  printf("\n Dlja vivoda na ekran soderzimogo faila nazmite 3 \n");
  printf("\n Dlja vihoda iz programmi nazmite CtrL+Z \n");
  scanf("%d", &bc);

  if(bc==1)
   {
   printf("\n Vvedite 4islo udaljaemich polej: \n");
   scanf("%d",&bc);
   if(bc>n)
    {
     printf("\n Error! Ydaljaemih polej bolshe dejstvitel'nogo 4isla polej!\n");
     getch();
    }

   else

    for(i=0;i<=n-bc;i++ )
     {

     sp[i]=sp[i+bc];
     fprintf(fl," %s",sp[i].son);
     fprintf(fl," %s",sp[i].nam);
     fprintf(fl," %s",sp[i].otc);
     fprintf(fl," %s",sp[i].adr);
     fprintf(fl," %d",sp[i].tel);
     fprintf(fl," %d\n",sp[i].kred);  
     goto m1;                         // metka ispol'zyetsja za meinemien drygogo vixoda iz sozdavshejsja sitystsii
     }
   }

Последний раз редактировалось merax; 21.05.2008 в 05:36.
Mailz вне форума Ответить с цитированием
Старый 20.05.2008, 23:18   #2
Mailz
Новичок
Джуниор
 
Регистрация: 20.05.2008
Сообщений: 2
По умолчанию

Код:
 if(bc==2)                           // vot zdes' i na4alis' problemi
  {
   printf("\n Vvedite 4islo polej, kotorije zelaete dobavit': \n");
   scanf("%d",v);

   //byer = new char[v];

   v=n+v;

  for(i=n;i<v-n-1;i++)
   {
   printf("\n Vvedite familiju pokupatelja ь %d:\n",i+1);
   scanf(" %s",&sp[i].son);
    fprintf(fl," %s",sp[i].son);
   printf("\n ‚ўҐ¤ЁвҐ Ё¬п:\n");
   scanf(" %s",&sp[i].nam);
    fprintf(fl," %s",sp[i].nam);
   printf("\n Vvedite ot4estvo:\n");
   scanf(" %s",&sp[i].otc);
     fprintf(fl," %s",sp[i].otc);
   printf("\n Vvedite adres prozivanija:\n");
   scanf(" %s",&sp[i].adr);
     fprintf(fl," %s",sp[i].adr);
   printf("\n VvediteҐ ь telefona:\n");
   scanf(" %d",&sp[i].tel);
     fprintf(fl," %d",sp[i].tel);
   printf("\n Vvedite ь kreditnoj karti:\n");
   scanf(" %d",&sp[i].kred);
     fprintf(fl," %d\n",sp[i].kred);
   }

    goto m1;
  }
  if(bc==3)                               // vivod rezultat'a iz faila 
   {
m1:
    printf("\n Rezultat: \n");

    for(i=0;i<=n-1;i++)
    {

   fscanf(fl,"\n %s",&sp[i].son);
    printf("\n %s", sp[i].son);
   fscanf(fl," %s",&sp[i].nam);
      printf(" %s", sp[i].nam);
   fscanf(fl," %s",&sp[i].otc);
      printf(" %s", sp[i].otc);
   fscanf(fl," %s",&sp[i].adr);
      printf(" %s", sp[i].adr);
   fscanf(fl," %d",&sp[i].tel);
      printf(" %d", sp[i].tel);
   fscanf(fl," %d",&sp[i].kred);
      printf(" %d", sp[i].kred);
   }

   fclose(fl);

  getch();
      }
  else
   {
    printf("\n Vvedena nevernaja posledovatel'nist' sumbol'ov!\n Nazmite lubyu klavishu dlja zavershenija raboti.\n");
    getch();
   }
 }
}
moderator: Используйте тег <CODE>

Последний раз редактировалось merax; 21.05.2008 в 05:37.
Mailz вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме от 7000 рублей в месяц



Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка по динамической памяти в Delphi Schakhmaev Помощь студентам 1 24.06.2008 00:27
ошибка при работе со структурой msvc vvviperrr Общие вопросы C/C++ 0 07.05.2008 19:34
Ошибка при работе с структурой Nullator Общие вопросы C/C++ 11 07.03.2008 23:52
сохранение результата выборки из DBF файла в DBF файл с такой же структурой таблицы GazimagomedovM БД в Delphi 5 06.11.2007 17:58
Динамический Label для динамической формы... Arkuz Общие вопросы Delphi 8 24.09.2007 23:03


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Скидки на курсы GeekBrains 40%, выбирайте программу для себя