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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Doctor Nano
Cандальная шляпа
42 / 42 / 10
Регистрация: 12.01.2012
Сообщений: 185
#1

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

07.07.2014, 14:35. Просмотров 444. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2014, 14:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Структуры, нумерация полей структуры (C++):

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

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

Смещение полей структуры - C++
Как можно узнать смещение поля структуры относительно адреса структуры? Если просто сложить размеры предыдущих элементов, то результат...

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

Чтение из файла полей структуры - C++
есть файл в котором есть таблица с данными, вывод в файл идет с помощью вот такой функции : void FileOutput(char* d) { dish* p=head; ...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
orange_fox
34 / 34 / 6
Регистрация: 06.04.2014
Сообщений: 189
07.07.2014, 15:36 #2
Так ты переспроси у тех людей, которым не понравился твой код, что именно им не понравилось и что они от тебя требуют. Мы ж не телепаты
Doctor Nano
Cандальная шляпа
42 / 42 / 10
Регистрация: 12.01.2012
Сообщений: 185
07.07.2014, 15:39  [ТС] #3
orange_fox, Спросил и не раз, сказали чтоб на подобие журнала выглядела.
Doctor Nano
Cандальная шляпа
42 / 42 / 10
Регистрация: 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;//счетчик нумерации полей
IrineK
Заблокирован
08.07.2014, 19:56 #5
Doctor Nano,
Вообще-то код С-шный.
вы не ошиблись разделом?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2014, 19:56
Привет! Вот еще темы с ответами:

Инициализация всех полей структуры - C++
Всем привет. struct sFoo { int a; char b; struct {

Передача полей из структуры А в структуру В - C++
Всем привет. Прошу помощи в работе над структурами. Есть 2 структуры: namespace { using std::array; #pragma pack(push, 1) ...

Заполнение полей структуры из cin - C++
Можно ли с помощью макросов или чего-либо еще превратить по смыслу конструкцию cin&gt;&gt;(экземпляр класса\структуры) в команду 'заполни все...

Изменить одно из полей структуры - C++
Пользователь вводит с клавиатуры день рождения(напр 15) Внутри структуры изменить 15 на 1.И далее вывести на экран.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.07.2014, 19:56
Ответ Создать тему
Опции темы

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