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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2012, 17:52   #1
DzirT34669
 
Регистрация: 09.04.2012
Сообщений: 3
По умолчанию Описать Структуру с именем STUDENT

Описать Структуру с именем STUDENT с полями NAME-фамилия и инициалы;GROUP-номер группы;SES-успеваемость(массив из 5 элементов).Написать программу, выполняющую следующие действия:
-ввод с клавиатуры данных в массив STUD1, состоящий из 10 структур типаа STUDENT;записи упорядочиваются по алфавиту.
- вывод фамилий и номер группы студентов,имеющих хотя бы одну оценку 2;
-вывод соответствующегося сообщения, если таковых студентов нет.Еще чтобы текстовой файл можно было дополнять. Помогите плз
DzirT34669 вне форума Ответить с цитированием
Старый 09.04.2012, 22:42   #2
fly0f
 
Регистрация: 04.04.2012
Сообщений: 5
По умолчанию

Код:
#include "iostream"

using namespace std;

struct STUDENT
{
	char name[30];
	int group;
	int ses[5];
};


int main()
{
	STUDENT stud1[10];
	
	for (int st=0; st<10; st++)
	{
		cout << "Введите фамилию: ";			cin.getline(stud1[st].name, 30);
		cout << "Введите номер группы: ";	cin >> stud1[st].group;
		
		for (int i=0; i<5; i++)
		{
			cout << "Введите успеваемость #" << i << ": ";
			cin >> stud1[st].ses[i];
		}
		
		cout << endl;
		cin.get();
	}



	cin.get();
	return 0;
}
А дальше что-то не знаю как доделать
fly0f вне форума Ответить с цитированием
Старый 10.04.2012, 00:11   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

fly0f, доделал вашу.
Код:
#include "iostream"
#include <string.h>
#include <stdlib.h>

using namespace std;

#define N 10

struct STUDENT
{
    char name[30];
    int group;
    int ses[5];
};

int cmp(const void* p1, const void* p2)
{
    return strcmp(((STUDENT*)p1)->name, ((STUDENT*)p2)->name);
}

int main()
{
    STUDENT stud1[N];

    for (int st=0; st<N; st++)
    {
        cout << "Input first name: ";
        cin.getline(stud1[st].name, 30);
        cout << "Input number of group: ";
        cin >> stud1[st].group;

        for (int i=0; i<5; i++)
         {
             cout << "Input mark " << i+1 << ": ";
             cin >> stud1[st].ses[i];
         }

        cout << endl;
        cin.get();
    }

    qsort(stud1, N, sizeof(STUDENT), cmp);

    int fl=1;
    for (int i=0; i<N; i++)
    {
        int j=0;
        while((j<5)&&(stud1[i].ses[j]!=2))
            j++;
        if (j<5)
        {
            fl=0;
            cout<<"Student "<<stud1[i].name<<" (group "<<stud1[i].group<<") have mark 2"<<endl;
        }
    }
    if (fl)
        cout<<"No students, which have mark 2"<<endl;

    cin.get();
    return 0;
}
Насчет текстового файла не понял.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 11.04.2012, 07:31   #4
DzirT34669
 
Регистрация: 09.04.2012
Сообщений: 3
По умолчанию

это же не паскаль). чето я тупанул. На паскале надо
DzirT34669 вне форума Ответить с цитированием
Старый 11.04.2012, 10:37   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
uses
  CRT;

const
  n = 10;

type
  student = record
    name: string[30];
    group: integer;
    ses: array[1..5] of byte;
  end;

var
  stud1: array[1..N] of student;
  tmp: student;
  st, i: integer;
  fl: boolean;

begin
  for st := 1 to N do
  begin
    write('Input first name: ');
    readln(stud1[st].name);
    write('Input number of group: ');
    readln(stud1[st].group);
    for i := 1 to 5 do
    begin
      write('Input ', i, ' mark: ');
      readln(stud1[st].ses[i]);
    end;
  end;
  for st := 1 to n - 1 do
    for i := st + 1 to n do
      if stud1[st].name > stud1[i].name then
      begin
        tmp := stud1[st];
        stud1[st] := stud1[i];
        stud1[i] := tmp;
      end;
  fl := true;
  for st := 1 to n do
  begin
    i := 1;
    while (i <= 5) and (stud1[st].ses[i] <> 2) do
      inc(i);
    if (i <= 5) then
    begin
      fl := false;
      writeln('Student ', stud1[st].name, ' (group ', stud1[st].group, ') have mark 2');
    end;
  end;
  if fl then
    writeln('No students, which have mark 2');
  readln;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 08.01.2015, 02:09   #6
deadlock993
Новичок
Джуниор
 
Регистрация: 08.01.2015
Сообщений: 1
По умолчанию

А эта же программка не завалялась ли у вас случайно на C# ?
А то я что-то с расположением в алфавитном порядке, туплю)
deadlock993 вне форума Ответить с цитированием
Старый 08.01.2015, 14:21   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от deadlock993 Посмотреть сообщение
А то я что-то с расположением в алфавитном порядке, туплю)
А остальное получилось на C# сделать?
Так выкладывайте свой код, рассказывайте, что не получается, вместе подумаем, чем Вам помочь.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описать структуру. С. Margo93 Помощь студентам 3 29.05.2012 16:22
Описать структуру ВадикСтрах Помощь студентам 2 21.11.2010 17:57
Описать структуру NOTE stellavin Общие вопросы .NET 1 13.12.2009 21:01
Описать структуру с именем NOTE,содержащую следующие поля Wast Общие вопросы C/C++ 1 06.05.2009 22:41