Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Структура


Автор: nightlife 30.4.2009, 10:50
Описать структуру с именем STUDENT, содержащую следующие поля:
-    фамилия и инициалы;
-    номер группы;
-    □    успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия:
-    ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; 
-    записи должны быть упорядочены по алфавиту;
-     вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2;
-    если таких студентов нет, вывести соответствующее сообщение.


Структуры я не очень понимаю, если кто может помочь, буду благодарен)

P.S.: Писать надо в Borland C++ DOS

Автор: zim22 30.4.2009, 10:59
nightlife, в http://forum.vingrad.ru/forum/Vingrad-help-center.html идите, в http://forum.vingrad.ru/forum/Vingrad-help-center.html ищите. 
аналогичные задачи там решались много раз.

Автор: Dmi3ev 30.4.2009, 11:26
Код

#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;

struct student
{
    char fio[30];
    int ng;
    double us[5];
};

int _tmain(int argc, _TCHAR* argv[])
{
    vector<student> st1;
    int n;
    const int r=5;
    cout<<"How many sudents?"<<endl;
    cin>>n;
    for (int i=0; i<n; i++)
    {
        student s;
        cout<<"Enter fio: ";
        cin>>s.fio;
        cout<<"Enter group: ";
        cin>>s.ng;
        for (int j=0; j<r; j++)
        {
            cout<<"Enter mark "<<j+1<<": ";
            cin>>s.us[j];
        }
        st1.push_back(s);
    }
    int counter=0;
    for (int i=0; i<st1.size(); i++)
    {
        for(int j=0; j<r; j++)
        {
            if (st1[i].us[j]==2)
            {
                cout<<st1[i].fio<<endl;
                counter++;
                break;
            }
        }
    }
    if (counter==0) cout<<"Nobody has 2"<<endl;
    system("pause");
    return 0;
}

а сортировка вот тут подробно расписана, выбирай сам, что тебе надо и как 
http://forum.vingrad.ru/forum/topic-251290.html
vector<student> st1; можно поменять на student *st1;

Автор: math64 30.4.2009, 12:39
Ну опять - в BorlandC++ для DOS stl нет.
Сортировка:
Код

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

...

student students[10];

int cmp(const void* v1, const void* v2) {
return strcmp(((student*)v1).fio, ((student*)v2).fio);
}

...

qsort(students, 10, sizeof(students[0]), cmp);

...


Автор: Dmi3ev 30.4.2009, 12:42
Цитата

Ну опять - в BorlandC++ для DOS stl нет.

да, помню, помню! я поэтому дописал в конце, что надо поменять! этот код я как-то выкладывал здесь где-то, переделывать не стал, пусть сам старается, если надо smile 

Автор: bsa 30.4.2009, 17:32
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)