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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2014, 18:41   #1
Vladislavv
Пользователь
 
Регистрация: 30.07.2014
Сообщений: 35
По умолчанию Создание дин массива для структуры

программа для создания студентов и записывания их данных (фамилия оценка группа).
структура:

Код:
struct stud{
    int qty;
    char surname[30];
    int group;
    int mark;
};
возможно ли создать дин массив каждый массив - отдельный студент, для последующей передачи в функции


Код:
void main (){
    int qy=0;
quantity (qy);

stud **folio= new stud* [qy];
for (int i=0; i<qy; i++)
    stud folio[i]= new stud [4];
surn (qy, folio);

group(qy, folio);
mark (qy, folio);
out (qy, folio);
}
Vladislavv вне форума Ответить с цитированием
Старый 22.10.2014, 18:57   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
каждый массив - отдельный студент
Ты хотел сказать каждый элемент?
Передавай указателем. Например:
Код:
void Функция(stud *Массив ){
 бла бла
 Массив[i].qty бла бла
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.10.2014, 23:20   #3
marenko.lilia
Пользователь
 
Аватар для marenko.lilia
 
Регистрация: 25.12.2013
Сообщений: 91
По умолчанию

да - скорей всего создатель темы имел ввиду каждые элемент - отдельный студент.

Цитата:
возможно ли создать динамический массив структур?
Можно.
Тебе надо почитать конкретно о динамических массивах структур.
marenko.lilia вне форума Ответить с цитированием
Старый 23.10.2014, 00:30   #4
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
программа для создания студентов и записывания их данных (фамилия оценка группа)
Output:
Цитата:
Enter a first name (q=quite): Ivan
Enter a last name (q=quite): Ivanov
Enter a group (q=quite): 343
Enter a grade (q=quite): 5

Enter a first name (q=quite): Petr
Enter a last name (q=quite): Petrov
Enter a group (q=quite): 387
Enter a grade (q=quite): 5

Enter a first name (q=quite): q
Ivan
Ivanov
343
5

Petr
Petrov
387
5

Press <RETURN> to close this window...
main.cpp
Код:
#include <iostream>
#include <string>
#include <vector>
#include <stdexcept>

struct Student
{
    std::string firstName;
    std::string lastName;
    int group;
    int grade;
};

std::vector<Student> getStudents();
void showStudents( const std::vector<Student> &students );

int main()
{
    // Students
    std::vector<Student> students;

    // Get students
    students = getStudents();

    // Show students
    showStudents( students );

    return 0;
}

std::vector<Student> getStudents()
{
    std::vector<Student> students;
    Student student;
    std::string str;
    while( true ) {
        // Get first name
        std::cout << "\nEnter a first name (q=quite): ";
        if ( !std::getline( std::cin, str ) || str == "q" ) {
            break;
        }
        student.firstName = str;

        // Get last name
        std::cout << "Enter a last name (q=quite): ";
        if ( !std::getline( std::cin, str ) || str == "q" ) {
            break;
        }
        student.lastName = str;

        // Get group
        std::cout << "Enter a group (q=quite): ";
        if ( !std::getline( std::cin, str ) || str == "q" ) {
            break;
        }
        try {
            int group = std::stoi( str );
            student.group = group;
        } catch( const std::logic_error &e ) {
            std::cerr << "Error: incorrect data. Try again.\n";
            continue;
        }

        // Get grade
        std::cout << "Enter a grade (q=quite): ";
        if ( !std::getline( std::cin, str ) || str == "q" ) {
            break;
        }
        try {
            int grade = std::stoi( str );
            student.grade = grade;
        } catch( const std::logic_error &e ) {
            std::cerr << "Error: incorrect data. Try again.\n";
            continue;
        }

        students.push_back( student );
    }

    return students;
}

void showStudents( const std::vector<Student> &students )
{
    for ( auto &student : students ) {
        std::cout << student.firstName << std::endl;
        std::cout << student.lastName << std::endl;
        std::cout << student.group << std::endl;
        std::cout << student.grade << std::endl;
        std::cout << std::endl;
    }
}
8Observer8 вне форума Ответить с цитированием
Старый 23.10.2014, 00:43   #5
igoreshka3333
Форумчанин
 
Аватар для igoreshka3333
 
Регистрация: 26.09.2014
Сообщений: 176
По умолчанию

Цитата:
каждый массив - отдельный студент
Зачем
Не делай из мухи слона! Отдельная структурная переменная - отдельный студент!
igoreshka3333 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы и дин. переменные. Изменить с использованием дин. переменных. Маленыч Паскаль, Turbo Pascal, PascalABC.NET 4 07.06.2012 11:17
Осв. памяти дин. двумерного массива kineziz Общие вопросы C/C++ 3 06.06.2012 23:43
С++ Visual: создание динамического массива для индексов Blondy Помощь студентам 3 29.04.2012 10:21
из дин. дека в дин. стек (Borland С++) mego4el Помощь студентам 1 07.07.2011 14:41
Дин. создание Shape Sanakan Помощь студентам 1 13.02.2010 00:10