Новые сообщения · Правила  
Страница 1 из 11
Модератор форума: Berestovskiy 
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » С, C++ » Создать структуру - телефонная книжка (Внести в начало списка информацию о четырех новых знакомых.)
Создать структуру - телефонная книжка
Структура имеет вид: фамилия, номер телефона, дата рождения. Внести в начало списка информацию о четырех новых знакомых.

Код
#include <stdio.h>
#include <conio.h>
#include <string.h>
   
struct spisok
  {
   char familiya[10];
   char nomer[10];
   char data[10];
   } a;
   
void input (FILE*);
void print (FILE*);
void app (FILE*);
   
int main ()
{
char b;
FILE*c;
while (1)
  {
   puts ("1-new file");
   puts ("2-view file");
   puts ("3-add from file");
   puts ("0-exit");
   b=getch ();
   switch (b)
   {
    case '1': input (c); break;
    case '2': print (c); break;
    case '3': app (c); break;
    case '0': return 0;
    default: puts ("bad rejim");
   }
  }
  return 0;
}
   
void input (FILE*c)
{
  char ch;
  c=fopen ("telbaza.dat","wb");
  printf ("\nEnter the information on the acquaintance\n");
  do
   {
    printf ("\nfamiliya:"); scanf ("%s",&a.familiya);
    printf ("nomer telefona:"); scanf ("%s",&a.nomer);
    printf ("date of birth:"); scanf ("%s",&a.data);
    fwrite (&a,sizeof (a),1,c);
    printf ("\nfinish? y/n");
    ch=getch ();
    } while (ch!='y');
  fclose (c);
}
//-------------------
void print (FILE*c)
{
  int i;
  c=fopen ("telbaza.dat","rb");
  i=1;
  fread (&a,sizeof (a),1,c);
  while (!feof (c))
  {
   printf ("\n%s\nnomer telefona: %s\ndate of birth: %s",a.familiya,a.nomer,a.data);
   fread (&a,sizeof (a),1,c);
   i++;
  }
getch ();
}
   
//------------
void app (FILE*c)
{
char ch;
int i,k;
spisok mas[10],tmp;
c=fopen ("telbaza.dat","rb+");
k = 0;
while(!feof(c))
   fread(&mas[k++],sizeof(a),1,c);
   
rewind (c);
printf ("\nTo add the information\n");
do
  {
   printf ("\nfamiliya:"); scanf ("%s", &tmp.familiya);
   printf ("nomer telefona:"); scanf ("%s",&tmp.nomer);
   printf ("date of birth:"); scanf ("%s", &tmp.data);
   fwrite (&tmp,sizeof (tmp),1,c);
   
   printf ("\nfinish? y/n");
   ch=getch ();
  } while (ch!='y');
   
for(i=0;i<k;i++)
  fwrite(&mas[i],sizeof(a),1,c);
   
fclose(c);
}


как с помощью функции void app добавить данные не в конец списка, а в начало списка?
1 | Автор: Avanbars | 2013-01-03, 13:16   |  Репутация: [ + 0 ]
1 | Автор: Avanbars | 2013-01-03, 13:16   |  Репутация: [ + 0 ]
А чем тебе добавление в конец не нравится?)

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
2 | Автор: Berestovskiy | 2013-01-04, 20:02   |  Репутация: [ + 211 ]
по заданию нужно чтобы новые контакты добавлялись в начало списка.
3 | Автор: Avanbars | 2013-01-05, 11:59   |  Репутация: [ + 0 ]
3 | Автор: Avanbars | 2013-01-05, 11:59   |  Репутация: [ + 0 ]
ну тогда смещай список на 1 вперёд, а списку[0] присваивай новый контакт)

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
4 | Автор: Berestovskiy | 2013-01-06, 16:30   |  Репутация: [ + 211 ]
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » С, C++ » Создать структуру - телефонная книжка (Внести в начало списка информацию о четырех новых знакомых.)
Страница 1 из 11
Поиск: