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

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

Войти
Регистрация
Восстановить пароль
 
Chainik_:(
Сообщений: n/a
#1

Обработка структур данных - C++

08.04.2012, 19:05. Просмотров 438. Ответов 0
Метки нет (Все метки)

Доброе время суток, товарищи программисты и им подобные. Дана следующая задача:
Сформирвать массив записей, описывающих следующую таблицу

--------------------------------------------------------------
Ф.И.О. !Группа ! Экзамены
студента! !-----------------------------------------
! ! 1 экз. ! ... ! N экз.
---------------------------------------------
! !наименование!оценка! ... !наименование!оценка
---------------------------------------------------------------
Определить средний балл по каждой дисциплине.

Результат вывести в форме:

----------------------------------
Дисциплина ! Средний балл !
__________________________________!
Замечанеие: наименование дисциплин у различных групп могут не
совпадать.
а это то что у меня получилось:
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
using namespace std;
struct EXAM
{
    char discipline[40];
    unsigned int mark;
    EXAM *Next_exam;
};
 
struct STUDENT
{                
  char Name[60];  
  char group[20];
  unsigned int exam_number;
  EXAM *exam_ptr;
  STUDENT *Next_student;
 };
STUDENT *f_st,*h_st,*p_st; //объявляем указатели типа стркутры студенты и экзамены
EXAM *h_ex,*p_ex; 
//вводим структуру
void enter_struct_student()
{
    
    int number_st, number_ex, i, j;
    cout<<"Enter number of students"<<endl; //количество студентов
    cin>>number_st;
 
    f_st=new STUDENT[number_st]; //выделяем память - динамическим массивом типа студенты
    h_st=f_st;
    for (i=1;i<=number_st;i++) { 
    cout << "Name of the  " << i << "  student: "; 
    cin>>h_st->Name; 
    cout << "Group of the  student: "; 
    cin>>h_st->group;
    cout<<"Enter number of exams"<<endl;
    cin>>number_ex;
    h_st->exam_ptr=new EXAM[number_ex]; //выделяем память под структуру экзамены равную количеству экзаменов (массив записей) 
    h_st->exam_number=number_ex; //присваиваем количество экзамнов в структуре студенты
    h_ex=h_st->exam_ptr; //присваиваем массиву записей структура количество экзаменов, содержащихся в структуре студенты  
for (j=1;j<=number_ex;j++) { 
cout << "\tName of the " << j << "discipline: "; 
cin >> h_ex->discipline; 
cout << "\tMark of the" <<j<<"exam:"; 
cin >> h_ex->mark; 
if (j<number_ex)
{
    h_ex->Next_exam=new EXAM[number_ex];
    h_ex=h_ex->Next_exam;
} 
} 
if (i<number_st) { 
h_st->Next_student=new STUDENT[number_st];; 
h_st=h_st->Next_student;
} else { 
h_st->Next_student=0; 
}
    }
 
    return;
}
//выводим базу
void read_base() { 
int i,se; 
cout << "*****"<<endl; 
cout<<"|______________________________________________________________________________|\n"; 
cout<<"|Name         | Group     |N     | Exams                                       |\n";
cout<<"|             |           |of    | ____________________________________________|\n";
cout<<"|             |           |exams |Discip                 |   Mark              |\n";
cout<<"|______________________________________________________________________________|\n";
h_st=f_st;
while (h_st) { 
se=h_st->exam_number; 
h_ex=h_st->exam_ptr; 
printf("%13s | %9s |  %10d   \n", h_st->Name,h_st->group,se);
cout<<"|______________________________________________________________________________|\n";
for (i=1;i<=se;i++) { 
printf("%33d| %21s | %18d  |\r",i, h_ex->discipline,h_ex->mark);
cout<<"|______________________________________________________________________________|\n";
h_ex=h_ex->Next_exam; 
 
cout<<endl; 
} 
h_st=h_st->Next_student; 
 
} 
 
cout << "*****\n";  
return; 
    }
void main()
{ 
    enter_struct_student();
    read_base();
    system("pause");
}
на данном этапе все застопорилось по сути на основной части - на обработке.

Итак, вопрос таков, поскольку в замечании сказано, что дисциплины у различных групп могут не совпадать.
А это значит мне нужно посчитать количество дисциплин для каждой, затем узнать сумму баллов для каждой дисциплины и разделить на количество таких дисциплин.
проблема в том, что я даже алгоритмически с трудом представляю, как это реализовать, пожалуйста, помогите?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2012, 19:05     Обработка структур данных
Посмотрите здесь:

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

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

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

Обработка структур с++ - C++
Помогите мне, пожалуйста. Мне нужно разработать программу обработки структур. В программе использовать структуру, содержащую поля с...

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

Обработка структур AER0FL0T - C++
Описать структуру с именем AER0FL0T, содержащую следующие поля: • название пункта назначения рейса; • номер рейса; • тип самолета. ...

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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