Форум программистов, компьютерный форум CyberForum.ru

Программа игнорирует gets() - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дан массив А. Образовать реверс массива А в массиве В. Вывести оба массива и индексы элементов на экран в виде трех столбцов. http://www.cyberforum.ru/cpp-beginners/thread415366.html
Дан массив А. Образовать реверс массива А в массиве В. Вывести оба массива и индексы элементов на экран в виде трех столбцов.
C++ Дерево в виде двусвязного списка. 17. 5, 9, 13, 14, 2, 7, 1, 15, 18, 8, 4, 3, 50 1) Реализуйте дерево в виде двусвязного списка 2) Обход слева, обход справа, симметрический обход. 3) Реализуйте программу сортировки массива на дереве методом симметрического обхода. На каждый вопрос создавайте по одной теме - это помогает избежать путаницы в ответах и облегчает поиск. Запрещено создавать темы с множеством вопросов во... http://www.cyberforum.ru/cpp-beginners/thread415363.html
Создать хеш-функцию для сохранения записей в файл в сортированном виде. C++
12. Создать хеш-функцию для хранения записей в файл в сортированном виде. Хеш- функцию связать с кодами первых 2 символов Фамилии. Запись состоит из полей :Фамилия, Имя, Отчество. 13. Оцените качество хеш-функций 1) 2) , где Fio – строка длиной 20, все символы заглавные, алфавит – кириллица. 3) , Постройте графики эффективности хеш-функций. 14. Для хранения записей в файле используете...
Создать стек для хранения строк. C++
Создать стек для хранения Фамилий студентов. Реализовать операторы : добавить элемент, удалить элемент, вершина стека, просмотр элементов стека. На каждый вопрос создавайте по одной теме - это помогает избежать путаницы в ответах и облегчает поиск. Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
C++ Cохранить в файле несколько целых чисел больших нуля таким образом, чтобы числа записались в сортированном виде. http://www.cyberforum.ru/cpp-beginners/thread415355.html
Cохранить в файле Num.dat несколько целых чисел больших нуля таким образом, чтобы числа записались в сортированном виде. Для этого считать само число номером записи в файле. Удалить элементы равные 0. Использовать вспомогательный файл. На каждый вопрос создавайте по одной теме - это помогает избежать путаницы в ответах и облегчает поиск. Запрещено создавать темы с множеством вопросов во...
C++ Создать динамический массив вещественных чисел. Создать динамический массив вещественных чисел. (С++) На каждый вопрос создавайте по одной теме - это помогает избежать путаницы в ответах и облегчает поиск. Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема. подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
24.12.2011, 12:14
Glam_Man, всё же думаю встряхнуть этот топик как мне кажется с мёртвой точки
итак построение структуры
Цитата Сообщение от Glam_Man Посмотреть сообщение
struct NOTE
{
* * * * char **family;
* * * * char **name;
* * * * int *phone;
* * * * int **birthday;
};
- не обижайся - плохая структура, у неё поля не ровные(т.к. указатели в любом случае имеют разную длинну), для файловой БД вообще негодный вариант
Думается задание звучит так - организовать в программе структуру NOTE с полями Имя и фамилия, дата рождения абонента и номер телефона. алее организовать массив данных структур аля BOOK и уже сортировать его. Делал я такое причём здесь на форуме человека 4 просило им помочь(м.б даже твои одногрупники) Я всё держу в буфере но записать и считать из файла - с помощью PHONE Очень просто
fread((void *)&pPHONE,1,sizeof(PHONE),f); - причём можно читать в цикле по одной записи как только что написал или же вычислить число записей в файле N = fSize/sizeof(PHONE); - и в один миг считать телефонную книгу...
Делается всё приблизительно так и без мучений, при жеании припаять что то ещё очень просто
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define N 4
 
struct PHONE
{
    char NAME[64];  //фамилия, имя;
    long lNUMBER;    //телефон;
    long BDAY[3];   //день рождения
};
 
PHONE setPHONE()
{
    PHONE pPHONE = {0};//Обнулили поля
    printf("Enter NAME(less than 64 symbols) : ");
    gets(pPHONE.NAME);
    printf("Enter NUMBER: ");
    scanf("%u",&pPHONE.lNUMBER);
    printf("Enter BDAY : \n");
    printf("YEAR : ");scanf("%u",&pPHONE.BDAY[0]);
    printf("MONTH: ");scanf("%u",&pPHONE.BDAY[1]);
    printf("DAY  : ");scanf("%u",&pPHONE.BDAY[2]);
    getchar();
    return pPHONE;
}
 
void seePHONE(PHONE pPHONE)
{
    printf("NAME  : %s\n",pPHONE.NAME);
    printf("NUMBER: %u\n",pPHONE.lNUMBER);
    printf("BDAY  : \n");
    printf("YEAR : %u\n",pPHONE.BDAY[0]);
    printf("MONTH: %u\n",pPHONE.BDAY[1]);
    printf("DAY  : %u\n",pPHONE.BDAY[2]);
}
 
void swpPHONE(PHONE &left, PHONE &right)
{
    PHONE BUF;
    BUF = left;
    left = right;
    right = BUF;
}
 
int main()
{
    int i,j;
    PHONE BUF, BOOK[N];
    for(i = 0; i < N; i++)
    {
        printf("Enter ABONENT %d :\n", i + 1);
        BOOK[i] = setPHONE();
    }
    //Сортировка по датам рождения
    for(i = 0; i < N; i++)
    for(j = i + 1; j < N; j++)
    {
        if(BOOK[i].BDAY[0] < BOOK[j].BDAY[0])
            swpPHONE(BOOK[i], BOOK[j]);
        else
        if(BOOK[i].BDAY[0] == BOOK[j].BDAY[0])
        {
            if(BOOK[i].BDAY[1] < BOOK[j].BDAY[1])
                swpPHONE(BOOK[i], BOOK[j]);
            else
            if(BOOK[i].BDAY[2] < BOOK[j].BDAY[2])
                swpPHONE(BOOK[i], BOOK[j]);
        }
    }
    printf("\tSORTED BOOK : \n");
    for(i = 0; i < N; i++)
        seePHONE(BOOK[i]);
    int Count = 0;
    int iMENU = 1;
    while(iMENU == 1)
    {
        printf("\tSearch in book\n");
        printf("Enter NAME(less than 64 symbols) : ");
        gets(BUF.NAME);
        printf("Search results :\n");
        for(i = 0; i < N; i++)
        {
            if(strcmp(BUF.NAME,BOOK[i].NAME) == 0)
            {
                seePHONE(BOOK[i]);
                Count++;
            }
        }
        if(Count < 1)
            printf("Input name is not in BOOK\n");
        printf("Press NUM1 for new SEARCH or other key for EXIT\n");
        if(getch() != '1')
            iMENU = 0;
        Count = 0;
    }
    return 0;
}
Программа сортирует абонентов по датам их рождения + ищет абонента в БД
Миниатюры
Программа игнорирует gets()  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru