Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Структура, Структура 
:(
    Опции темы
nightlife
Дата 30.4.2009, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 12.4.2009

Репутация: нет
Всего: нет



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


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

P.S.: Писать надо в Borland C++ DOS
PM MAIL   Вверх
zim22
Дата 30.4.2009, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 16
Всего: 69



nightlife, в Центр Помощи идите, в Центре Помощи ищите. 
аналогичные задачи там решались много раз.


--------------------
PM MAIL   Вверх
Dmi3ev
Дата 30.4.2009, 11:26 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 5
Всего: 41



Код

#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;

Это сообщение отредактировал(а) Dmi3ev - 30.4.2009, 12:04


--------------------

PM MAIL   Вверх
math64
Дата 30.4.2009, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: нет
Всего: 72



Ну опять - в 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);

...


PM   Вверх
Dmi3ev
Дата 30.4.2009, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 5
Всего: 41



Цитата

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

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


--------------------

PM MAIL   Вверх
bsa
Дата 30.4.2009, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 1
Всего: 196



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

Тема перенесена! 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0543 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.