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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2013, 22:51   #1
marina12
Пользователь
 
Регистрация: 13.02.2013
Сообщений: 28
По умолчанию С++ разобраться с кодом

Здравствуйте!Помогите пожалуйста разобраться в частичном коде записной книжки, запуталась в структурах и указателях...
код на добавление записи:
Код:
int K;
struct Telo 
{
    char name[50];
    char lastname [60];
    char phone[35]; 
    char birthday [15];
    char adress [150];
    char comments [100];
};
struct Value
{
    Telo telo;
    Value *next;
};
 
Value *first = NULL;// Указатель на первый элемент списка
 
void Menu()
{
    printf("'1' - Add\n");
    printf("'2' - Delete\n");
    printf("'3' - Save\n");
    printf("'4' - Load\n");
    printf("'5' - Search\n");
    printf("'6' - View\n");
    printf("'7' - Sort\n");
    printf("Number of elements=%d\n",K);
    printf("Esc - Exit\n");
}
void Add()
{
    Value *v;
    int q;
    system("cls");
    printf("How many elements do you want to add?\n");
    scanf("%d",&q);
    cin.ignore();
    system("cls");
    for(int i=0;i<q;i++)
    {
        v = new(Value); 
        printf("Enter the name: ");
        gets(v->telo.name);
        printf("Enter the lastname: ");
        gets(v->telo.lastname);
        printf("Enter the phone: ");
        gets(v->telo.phone);
        printf("Enter the birthday: ");
        gets(v->telo.birthday);
        printf("Enter the adress: ");
        gets(v->telo.adress);
        printf("Enter the comments: ");
        gets(v->telo.comments);
        cin.ignore(60, '\n'); 
        v->next = NULL;
        printf("Enter the position where you wish add record ");
        printf("(0 - first position; number normal position;\n");
        printf("number - numbers of file - last record in file): ");
        int k;
        scanf("%d", &k);
        cin.ignore(60, '\n');
        if (first==NULL)
            first=v;
        else
            if (k <= 1) 
            {
                v->next = first; 
                first = v;
            }
            else 
            { 
                k--;
                Value *nv = first;
                Value *prev;
                while (nv != NULL && k > 0)
                {
                    prev = nv;
                    nv = nv->next;
                    k--;
                }
                v->next = prev->next;
                prev->next = v;
            }
            system("cls");
            K++;
    }
    system("cls");
    Menu();
}
marina12 вне форума Ответить с цитированием
Старый 21.05.2013, 23:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что именно не понятно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2013, 23:22   #3
marina12
Пользователь
 
Регистрация: 13.02.2013
Сообщений: 28
По умолчанию

Если точнее,не понимаю как происходит вставка нового элемента:
Код:
if (first==NULL)
            first=v;
        else
            if (k <= 1) 
            {
                v->next = first; 
                first = v;
            }
            else 
            { 
                k--;
                Value *nv = first;
                Value *prev;
                while (nv != NULL && k > 0)
                {
                    prev = nv;
                    nv = nv->next;
                    k--;
                }
                v->next = prev->next;
                prev->next = v;
            }
            system("cls");
            K++;
marina12 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разобраться с кодом iris_ka Помощь студентам 0 16.05.2012 17:19
Разобраться с кодом. Vlero PHP 2 20.01.2011 12:46
Не могу разобраться с кодом jey7 JavaScript, Ajax 1 17.06.2010 09:38
Помогите разобраться с кодом Superlotles Общие вопросы Delphi 6 19.08.2009 22:24