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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Записать имена созданных файлов в другой файл http://www.cyberforum.ru/cpp-beginners/thread1223821.html
{ system("cls"); cout<< "Enter file name: "; char filename = { 0 }; cin >>filename; FILE* file = fopen(filename, "w"); cout <<(file != NULL ? "File created\n" : "Cannot create file\n"); char rus; for (int i = 0; i < count; i++) //для каждой строки {
C++ Нужна библиотека Winmm.lib Помогите не могу никак найти библиотеку winmm.lib, можете дать мне силку http://www.cyberforum.ru/cpp-beginners/thread1223820.html
C++ Изменение радиус вектора, программа не хочет откликаться на виджет слайдер
доброго времени суток , проблема в том что программа не хочет откликаться на виджет слайдер #include cpp "mainwindow.h" #include "ui_mainwindow.h" #include <QtGui> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
C++ Fflush(stdin) по-разному работают в unix и windows
Собственно, код: #include <iostream> #include <cstdio> using namespace std; int main() { char word1, word2; cout << "Input word1: " << endl;
C++ Сортировка массива: сначала положительные элементы, потом - отрицательные http://www.cyberforum.ru/cpp-beginners/thread1223800.html
Сделать динамическаий массив ,указатели си++ Балансовый отчет содержит N позиций.Распечатать вначале значения всех положительных балансов, а затем значение всех отрицательных.
C++ Написать программу, которая убирает с массива все элементы, которые повторяются больше трех раз Задано массив целых чисел A(n), n <= 500 . Написать программу, которая убирает с А все элементы , которые повторяются больше трех раз, а массив ущемляет. подробнее

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

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

07.07.2014, 14:35. Просмотров 424. Ответов 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru