Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dima_1996
0 / 0 / 0
Регистрация: 15.06.2013
Сообщений: 1
#1

Переделать программу по массивам структур - C++

18.06.2013, 23:45. Просмотров 211. Ответов 0
Метки нет (Все метки)

Задание: Дана последовательность 16 отчётов о сдаче экзаменов, каждый отчёт состоит с фамилии ученика и 5 оценок. Найти последовательность учеников которые являются:
1)отличниками;
2)Студентами которые не имеют плохие оценки;
3)Успевающими, у которых средний бал за сесию не меньше 4.0;
Упорядочить отчёты по фамилиям студентов.
Есть код:
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
#include <iostream>
#include <vector>
#include <locale.h>
#include <stdlib.h>
#include <sstream>
#include <algorithm>
#include <ctime>
 
using namespace std;
 
typedef vector< int > vcOtmet;
typedef pair< string,vcOtmet > pair_Otchet;
 
bool sort_to_5 (pair_Otchet & pi,pair_Otchet pj)
{ 
    return ((pi.second)[4] < (pj.second)[4]); 
}                                                             
 
void myprint(vector<pair_Otchet>& vc, int indx)
{
    if(indx > 5)
        indx = 5;
    if(indx <= 0)
        indx = 1;
    int x = vc.size();
    cout << endl << endl;
    for(int i = 0; i < x; i++)
    {
        cout << ((vc[i]).first).c_str()<< "   " << indx ;
        cout << " в количестве - "<< ((vc[i]).second)[indx - 1] << endl;
    }
}
 
 
void main ( void )
{
        setlocale(LC_ALL, "");
    cout << "Проверка кодировки , не кракозябры ,все ок ."<< endl << endl;  
 
    vector<pair_Otchet> vcOtch;
    
    srand(time(NULL));
    for(int i = 0; i < 16; i++)
    {
        stringstream ss;
        ss << "Иванов_" << dec << i + 1;
        cout << " Отметки  " << ss.str() << "   ";
        vcOtmet vctemp;
 
        for(int ii = 0; ii < 5; ii++)
        {
            int x = rand() % 5 + 1;     
            cout << "  "<< dec << ii + 1 << " - " << x;
            vctemp.push_back(x);
        }
        vcOtch.push_back(make_pair(ss.str(),vctemp));
        cout << endl;
    }
 
    sort(vcOtch.begin(),vcOtch.end(),sort_to_5);
    myprint(vcOtch, 5 );
 
    system("pause");
}
Программа работает, но понять єтот код я вообще немогу
И в нём даже слова Struct нету!!
помогите пожалуйста!

Заранее спасибо

Добавлено через 1 минуту
Я сделал как должно примерно быть но программа неправельно работает

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
#include <iostream>
#include <clocale>
#include <conio.h>
using namespace std;
 
struct Student
{
 char name[30];
 int oc[30];
};
 
 
/*ФУНКЦИЯ ОБЕСПЕЧИВАЕТ ВЫВОД ДАННЫХ НА ЭКРАН*/
void ShowData(Student *M,int N)
{
 system("CLS");
 cout<<"Отличники          Сер. бал 4          Не имеющие плохих оценок"<<"/n /n";
 for (int i=0;i<N;i++)
  {
      for (int g=0;g<5;g++)
          if(M[i].oc[g]==5)
       cout<<M[i].name;
   if (((M[i].oc[1]+M[i].oc[2]+M[i].oc[3]+M[i].oc[4]+M[i].oc[5])/5)<4)
   cout<<M[i].name;
   for (int h=0;h<5;h++)
       if(M[i].oc[h]>=3)
           cout<<M[i].name;
  }
  cout<<endl;
}
 
 
/*ФУНКЦИЯ ЗАНОСИТ ДАННЫЕ В СТРУКТУРУ*/ 
void GetData(Student *M,int N)
{
 
 cin.ignore();
 for (int i=0;i<N;i++)
  {
   cout<<"/n";
   cout<<"Фамилия: ";cin.getline(M[i].name,30);
   cout<<"Введите оценки:  ";
   for(int j=0;j<5;j++)
   cin>>M[i].oc[j];
   cin.ignore();
  }
}
 
 
 /*ГЛАВНАЯ ФУНКЦИЯ*/
void main()
{
 system("CLS");
 setlocale(LC_ALL,"Russian");
    int N; cout<<"ВВЕДИ  N: ";cin>>N;
    Student *M=new Student[N]; //Динамическое выделение памяти под N структур
       GetData(M,N); //Занесение данных в структуры
       ShowData(M,N);
    delete []M; //Освобождение памяти
 system("PAUSE");
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2013, 23:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переделать программу по массивам структур (C++):

Задания по массивам структур - C++
Здравствуйте, нужна помощь по выполнению этого домашнего задания.. Катастрофически не хватает времени. Очень прошу помочь. Могу...

Задача на структуры. По двум массивам структур сформировать третий массив - C++
Условие: Задано два элемента структур. Структуры первого массива содержат сведения о фамилии людей и их адреса. Другой - о фамилии и номера...

Переделать статический массив структур в динамический - C++
Имею структуру из 8 эл-ов (массивов чаров и 2 подструктуры). Имею исходные данные (5 штук, строк с ними) под эту структуру. Массив с этими...

Кто-нибудь может переделать задачу со структур на классы? - C++
Огромное спасибо, кто откликнется. #include &lt;stdio.h&gt; #include &lt;string.h&gt; main() { struct ZNAK {

Не получается дописать программу по массивам - C++
Задание: В каждой строке матрицы Т найти количество делящихся на 3, и записать эти числа в вектор. Сделать сортировки вектора по...

требуется исправить программу по динамическим массивам. - C++
код: #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;fstream.h&gt; #include &lt;string.h&gt; #include &lt;iomanip.h&gt; #include &lt;stdlib.h&gt;...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2013, 23:45
Привет! Вот еще темы с ответами:

Разработать программу, которая по заданным элементным массивам и вычисляет - C++
Разработать программу, которая по заданным элементным массивам и вычисляет:

Нужно программу на Паскале переделать в программу на С++ - C++
Помогите, пожалуйста!!! У меня есть программа на Паскале , а нужно ее переписать, чтобы она была на С++ (windows консоль). Текст...

Переделать программу 1 в программу 2 с использованием функций - C++
проблема в том, что компилятор не ругается, но программа зависает при выполнении. уже много времени на это потратил. вроде задание не...

Разработайте программу обработки структур - C++
Здравствуйте уважаемые любители и ценители языка С++! У меня к вам огромная просьба. На днях нужно сдать контрольную работу по предмету...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.