Форум программистов, компьютерный форум CyberForum.ru

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

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

Обработка структур с++ - C++

07.02.2012, 14:35. Просмотров 982. Ответов 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 <conio.h>
#include <iomanip>
using namespace std;
//определяем структуру
struct Spisok
{
char Fam[20];
char Name[15];
char date[10]; 
int numberGr;
int Ball[5];
 
};
 main()
{
 
const int n=2;
Spisok stud[30]; // Создаем массив структур
int mas[n]={0};
for (int i=0; i<n; i++)
{
         cout<< "Фамилия и имя: ";
         cout<<"\t";
         cin>>stud[i].Fam>>stud[i].Name;
         cout<<"Дата рождения: ";
         cin>>stud[i].date;
         cout<<"Номер группы: ";
         cin>>stud[i].numberGr;
         cout<<"Введите оценки: \n";
         cout<< "Введите баллы по предметам: \n";
         cout<<"|математика | физика | Информатика || Этика || Психология |";
for (int j=0; j<5; j++)
{
cout<<"\t";
cin>> stud[i].Ball[j];
}
}
cout<<"\n" ;
cout<<"Имя" << '\t' << "Дата рождения"<<'\t'<<" Номер группы"<<'\t'<<" Средний балл"; 
cout<<"\n" ;
// подсчет среднего балла
for (int i=0; i<n; i++)
{
for (int j=0; j<5; j++)
mas[i]+=stud[i].Ball[j];
}
// вывод результата
for (int i=0; i<n; i++)
{
double sr= (double) mas[i]/5;
cout<<stud[i].Fam<<" "<<stud[i].Name<<"\t"<<stud[i].date<<'\t'<<stud[i].numberGr<<"\t"<<sr;
 
 
cout << "\n=========================================================================="<< endl;
 
cout<<endl;
}
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2012, 14:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка структур с++ (C++):

Обработка структур данных - C++
Здравствуйте.никак не могу понять задачу. подскажите решение. в голову ничего не лезит. (задача на языке СИ) вот условие: Сведения о...

Обработка массива структур - C++
Всем привет. Помогите найти ошибку. Программа должна вывесть имя младшего ребенка если отца зовоут &quot;ivan&quot; Младший ребенок находится тока...

Обработка массива структур - C++
Организовать массив структур и поместить в него сведения о нескольких студентах (Фамилия, имя, отчество, дата рождения, домашний адрес,...

Обработка линейного связного списка структур - C++
Доброго времени суток) Народ,помогите пожалуйста разобраться с такой задачей:-|: В сведениях об игрушках указывается название...

Обработка массивов структур с использованием контейнеров - C++
Вариант 13 Написать программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах включают: □ номер УДК; ...

Обработка массивов, строк и структур в функциях - C++
Здраствуйте ребята не могу найти теорию на такую тему : Обработка массивов, строк и структур в функциях. Перешерстила кучу сайтов не чего,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.02.2012, 15:19 #2
Цитата Сообщение от Woopulk Naivett Посмотреть сообщение
Я не знаю, как организовать вывод анкетных данных учащихся по группам, упорядоченные по среднему баллу.
Сортируем по группам, затем каждую группу сортируем по среднему баллу.

Добавлено через 35 минут
Вот
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 <string>
#include <vector>
#include <algorithm>
#include <iterator>
 
typedef std::string          T_str;
typedef float                T_real;
typedef struct stud
   {
      T_str name;
      T_str group;
      T_real ball;
   }                         T_stud;
typedef std::vector<T_stud>  T_vec;   
 
   
class students
{
private:   
    T_vec v;
public:
   students(const T_vec &_v): v(_v) {};
   friend std::ostream& operator<< (std::ostream& os, T_stud& st);
   void show() const
   {
      std::copy(std::begin(v), std::end(v), std::ostream_iterator<T_stud> (std::cout, "\n"));
   };
   void sort () 
   {
      std::sort(std::begin(v), std::end(v), [] (T_stud a, T_stud b) { return a.group < b.group; });
      
      for ( auto f = std::begin(v), l = std::find_if(f, std::end(v), 
                                   [&] (T_stud i) { return f->group != i.group; });
                 f != std::end(v) ; f = l , l = std::find_if
                              (f, std::end(v), [&] (T_stud i) { return f->group != i.group; }) )
         std::sort (f, l, [] (T_stud a, T_stud b) { return a.ball < b.ball; }); 
    };   
};
 
std::ostream& operator<< (std::ostream& os, const T_stud& st) 
{
        os << "name: "      << st.name;
        os << "\t group: "  << st.group;
        os << "\t ball: "   << st.ball;
        return os;
}  
 
int main()
{
   T_vec v = {{"Ivanov", "012", 4.1}, {"Petrov", "011", 2.1}, {"Sidorov", "012", 4.0}};
   students univer(v);
   
   univer.show();
   
   std::cout << std::endl;
   
   univer.sort();
   univer.show();
   
   std::cout << std::endl;
   
   return 0;   
}
http://liveworkspace.org/code/28113a...2f62d484419cc7

Добавлено через 21 секунду
Код
name: Ivanov	 group: 012	 ball: 4.1
name: Petrov	 group: 011	 ball: 2.1
name: Sidorov	 group: 012	 ball: 4

name: Petrov	 group: 011	 ball: 2.1
name: Sidorov	 group: 012	 ball: 4
name: Ivanov	 group: 012	 ball: 4.1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2012, 15:19
Привет! Вот еще темы с ответами:

Обработка данных железнодорожного расписания. Массив структур - C++
Ребят, подскажите, как правильно ввести направление поезда, почему-то после trains.direction = ругается на скобку и просит выражение....

Формирование, сортировка и обработка динамических структур данных. - C++
Требуется решить задачу формирования, сортировки и обработки динамических структур данных. Требуется создать динамический массив...

Обработка данных в виде массива структур средствами языка С++ - C++
Нужно определить минимальный год издания. Как это сделать? В читаемом файле вот это: Голдинг ПовелительМух 1954 Оруэлл ...

Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур - C++
Добрый вечер)) У меня небольшой вопрос. Почему первые буквы (в названии книг) не выводит на экран? Само задание: О каждой книге ...


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

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

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