Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Doctor Nano
Cандальная шляпа
42 / 42 / 36
Регистрация: 12.01.2012
Сообщений: 185
1

Структуры, нумерация полей структуры

07.07.2014, 14:35. Просмотров 562. Ответов 4
Метки нет (Все метки)

Добрый день, у меня есть задачка, она решена. Но меня попросили "предусмотреть нумерацию полей структуры, например 1)Имя:Петр и тд.". Напечатал, как просили сделать, в итоге сказали не правильно - доделай.
Пожалуйста подскажите, помогите, не до конца понимаю, что требуется от меня.
Условие задачи, если что.
Написать программу составления карточки на студента с динамиским распределением памяти для имени и фамилии на основе структурного типа данных. Для динамического распределения памяти применить ф-ю malloc().

Вот код.
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <locale.h>
#include <stdlib.h>
const int MAX=80; //число символов
int main(void)
{
    char *NAME, *SURNAME;
    struct stud // шаблон структуры
    {
        char *name;//указатель на массива символов имени студента
        char *surname;//указатель вместо массива символов фамилии
        int age;//возраст-число полных лет
        double av_mark;//средняя успеваемость
        int letters;//число символов в имени и в фамилии
        unsigned short int chet;//счетчик на нумерацию полей
    }TABLE,*PTR;
    setlocale(LC_ALL,"russian");
    PTR=&TABLE;//иницилизация указателя на структуру
    
    NAME=(char *)malloc(MAX);
    printf("\nВведите имя студента:\n");
    gets_s(NAME,MAX-1);
    
    SURNAME=(char *)malloc(MAX);
    printf("\nВведите фамилию студента:\n");
    gets_s(SURNAME,MAX-1);
    
    //распределение памяти для хранения "структурного" имени
    PTR->name=(char *)malloc(strlen(NAME)+1);
    //копирование имени в распределенную память
    strcpy_s(PTR->name,strlen(NAME)+1,NAME);
    
    //распределение памяти для хранения "структурной" фамилии
    PTR->surname=(char *)malloc(strlen(SURNAME)+1);
    //копирование фамилии в распределенную память
    strcpy_s(PTR->surname,strlen(SURNAME)+1,SURNAME);
    
    printf("\nВведите возраста студента: ");
    scanf_s("%d",&TABLE.age);
    
    printf("\nВведите средний балл студента: ");
    scanf_s("%lf",&TABLE.av_mark);
    
    TABLE.letters=strlen(PTR->name)+strlen(PTR->surname);
    PTR->chet=0;
    
    //для вывода чисел с десятичной запятой
    setlocale(LC_NUMERIC,".1251");
    puts("\n======== Вариант поля структуры ================");
    printf("\n %d)Имя: %s",++PTR->chet,PTR->name);
    printf("\n %d)Фамилия: %s",++PTR->chet,PTR->surname);
    printf("\n %d)Возраст: %d",++PTR->chet,PTR->age);
    printf("\n %d)Средний балл: %1.2f\n",++PTR->chet,PTR->av_mark);
    printf("\nИмя и фамилия ученика: %d букв",PTR->letters);
    puts("\n\n==============================================");
    
    //освобождение памяти
    free(NAME);
    free(SURNAME);
    free(PTR->name);
    free(PTR->surname);
    
    printf("\n\n Нажмите любую клавишу: ");
    _getch();return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2014, 14:35
Ответы с готовыми решениями:

Помещение структуры в вектор, удаление структуры, изменение элементов структуры
Здравствуйте. Помогите разобраться с тем, как: 1 - находить элементы в...

Смещение полей структуры
Как можно узнать смещение поля структуры относительно адреса структуры? Если...

Заполнение полей структуры
Подскажите, в чем ошибка. #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; struct...

Заполнение полей структуры
Нужна ваша помощь! Нужно считать файл и записать в массив. Потом из этого...

Сортировка полей структуры
Здравствуйте! У меня следующий вопрос: Допустим, у меня есть структура: ...

4
orange_fox
34 / 34 / 8
Регистрация: 06.04.2014
Сообщений: 189
07.07.2014, 15:36 2
Так ты переспроси у тех людей, которым не понравился твой код, что именно им не понравилось и что они от тебя требуют. Мы ж не телепаты
0
Doctor Nano
Cандальная шляпа
42 / 42 / 36
Регистрация: 12.01.2012
Сообщений: 185
07.07.2014, 15:39  [ТС] 3
orange_fox, Спросил и не раз, сказали чтоб на подобие журнала выглядела.
0
Doctor Nano
Cандальная шляпа
42 / 42 / 36
Регистрация: 12.01.2012
Сообщений: 185
08.07.2014, 18:22  [ТС] 4
Нашлось то что просили сделать.
Вот такой шаблон нужен был.
C++
1
2
3
4
5
6
7
8
struct stud // шаблон структуры
    {
        char *name;//указатель на массива символов имени студента
        char *surname;//указатель вместо массива символов фамилии
        int age;//возраст-число полных лет
        double av_mark;//средняя успеваемость
        int letters;//число символов в имени и в фамилии
    }TABLE,*PTR;
А счетчик отдельно надо было объявить, как обычную переменную.
C++
1
       unsigned short int chet;//счетчик нумерации полей
0
IrineK
Заблокирован
08.07.2014, 19:56 5
Doctor Nano,
Вообще-то код С-шный.
вы не ошиблись разделом?
0
08.07.2014, 19:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2014, 19:56

Расположение полей структуры в памяти
Есть структура MyStruct содержащая в себе два поля int. Есть массив объектов...

Заполнение полей структуры из cin
Можно ли с помощью макросов или чего-либо еще превратить по смыслу конструкцию...

Вывод на экран полей структуры
есть структура и функция которая считывает данные из файла и заносит в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru