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

cтрутура данных с++ - C++

Войти
Регистрация
Восстановить пароль
 
ess399
0 / 0 / 0
Регистрация: 18.11.2009
Сообщений: 4
18.11.2009, 02:42     cтрутура данных с++ #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
62
63
64
#include <iostream.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
#include <fstream.h>
struct student{
  char name[50];
 struct{
    char egzamen[24];
}
      egz[10];
      double sredn;
} stud_[3]={
{"  :  Степанов  :   Степанов  :  ТИ08 ",{"математика", "программирование", "статистика", "философия", "русский язык"}, 0.0},
{"  :  Дмитриев  :   Дмитриев  :  ТИ08" , {"математика", "программирование", "статистика", "философия", "русский язык"}, 0.0},
{"  :  Стрельцов  :  Стрельцов  : ТИ08" , {"математика", "программирование", "статистика", "философия", "русский язык"}, 0.0},
 
 };
 
int main(){
      ofstream book_file("BOOKINFO.DAT");
 int kol, i;
 cout<<"сколько будет экзаменов:";
   book_file <<"////////////////////////////////////////////////////////////////////////" <<endl; 
 
  book_file <<"средний бал  :  имя    :   фамилия      :  группа  :    результат.       " <<endl;  
  
  
  book_file <<"........    .......       .........        ......       .......        : " <<endl;
  
  
  
 cin>>kol;
 if(kol>5){
  return 0;
 }
 int ran; 
 double all;
  for(int p=0; p<3; p++){
   i=0; all=0;
   cout <<"ввести оценки по экзаменам"<<" "<< stud_[p].name<<endl;
  
 
  while(i!=kol){
  cout <<stud_[p].egz[i].egzamen<<":";
   cin>>ran;
   i++;
   all+=ran;
  }
  stud_[p].sredn=(all/kol);
 }
 for(i=0; i<3; i++){
          
    
        
 book_file <<"оценка"<<" "<<stud_[i].name<<" :     = " <<stud_[i].sredn<<endl;
 
book_file << "........................................................................:\n"<<endl;
 
 }
 getch();
 return 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
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include <vcl.h>
#pragma hdrstop
 
/* струтура данных
        групировать с qsort
                и поиск  bsearch ir lfind
                                        
                                         воспользоваться sort_function masyv?
                                                        работа с файлами*/
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
#include <vcl.h>
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
 
const N=100;
const npav=20;
struct BOOK{
char pav[npav];
int god;
float cena;
};
void fun(BOOK *,int);
 
int sort_function_naz(const void *, const void *);
int sort_function_god(const void *, const void *);
int sort_function_cena(const void *, const void *);
int sort_function_all(const void *, const void *);
 
int main(int argc, char* argv[])
{
BOOK *x;
x=new BOOK[N];
int n;
cout <<"vvesti spisok:";
cin>>n;
cout <<"vvesti naz. god cena:";
for(int i=0;i<n;i++)
         cin>>(x[i].naz)
            >>(x[i].god)
            >>(x[i].cena);
fun(x,n);
delete x;
cin>>n;
        return 0;
}
void fun(BOOK *y,int m)
{
char *msg[]={"запись сгрупировать по названию:\n",
"запись сгрупирован по году:\n",
"запись сгрупирован по цене:\n",
"запись несгрупирована:\n"};
char *msg1[]={"запись по названию ненайден!!!\n",
"запись по году ненайден!!!\n",
"запись по цене ненайден!!!\n",
"запись  по всему полю ненайден!!!\n"};
char *msg2[]={"запиь по названию найден!\n",
"запись по году найден!\n",
"запись по цене найден!\n",
"запись по вему полю найден!\n"};
BOOK *z=y;
int jm;
int (*functor[4])( const void *, const void *)={sort_function_naz,
sort_function_god, sort_function_cena, sort_function_all};
 
size_t index=m;
BOOK  xx, *work;
BOOK *yf=new BOOK[m];
int *x;
FILE *fl=fopen("rez.txt","w");
for(int j=0;j<4;j++)
   {
y=z;
//Групировка
if (j<3) qsort(y,m,sizeof(BOOK),functor[j]);
cout<<msg[j];
for(int i=0;i<m;i++)
{
         cout<<y[i].naz<<" "
             <<y[i].god<<" "
             <<y[i].cena<<"\n";
 
 
/*
//отдельную запись записываем в файл
fwrite(y+i,sizeof(BOOK),1,fl);
fputs("\n",fl);
*/
}
//ве записи записываем в файл
fwrite(y,sizeof(BOOK),m,fl);
fputs("\n",fl);
 
 
 
 
 
//поиск
cout<<"ввести запись:";
cin>>xx.naz>>xx.god>>xx.cena;
work=y;
if (j==3) x=(int *)lfind(&xx, work, &index, sizeof(BOOK),functor[j]);
else x=(int *)bsearch(&xx, work, index, sizeof(BOOK),functor[j]);
if(x==NULL)
cout<<msg1[j];
else
cout<<msg2[j];
   }
   fclose(fl);
}
int sort_function_pav(const void *a,const void *b)
{
   BOOK *aa=(BOOK *)a;
   BOOK *bb=(BOOK *)b;
   return(strcmp(aa->naz,bb->naz));
}
 
int sort_function_god(const void *a, const void *b)
{
   BOOK *aa=(BOOK *)a;
   BOOK *bb=(BOOK *)b;
   return((aa->god)-(bb->god));
}
 
int sort_function_cena(const void *a, const void *b)
{
   BOOK *aa=(BOOK *)a;
   BOOK *bb=(BOOK *)b;
   return((aa->cena)-(bb->cena));
}
 
int sort_function_all(const void *a,const void *b)
{
   BOOK *aa=(BOOK *)a;
   BOOK *bb=(BOOK *)b;
   return((strcmp(aa->pav,bb->pav))+((aa->god)-(bb->god))
   +((aa->cena)-(bb->cena)));
}
//-
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2009, 02:42     cтрутура данных с++
Посмотрите здесь:

C++ Напишите функции записи данных в файл, чтения данных из файла
C++ Каким образом организовывать ввод данных для поддержки программной обработка неправильно введенных данных?
C++ Удалённая база данных - запрос и вывод данных
C++ ООП.Разработать структуру элементов данных класса в виде динамической структуры данных
C++ Написать программу на языке С + + реализующая класс содержащий поля данных и методы ввода и вывода данных
C++ Проверить существование данных и посчитать количество данных (стек)
Киносеанс - хранение данных, замена данных, добавленных новых C++
C++ Организовать добавление данных в файл, просмотр, поиск и очистку данных
Путаница с типами данных TCHAR и char. Какой тип данных выбрать? C++
В зависимости от данных чисел, уменьшить или увеличить оба данных числа C++
C++ Найти значения выражений А, В по данных значениях начальных данных x,y,z
Чтение из файла определённого места и сортировка данных исходя из этих данных C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
R0mm
Псевдо программист
 Аватар для R0mm
192 / 113 / 15
Регистрация: 19.09.2009
Сообщений: 303
18.11.2009, 08:02     cтрутура данных с++ #2
Цитата Сообщение от ess399 Посмотреть сообщение
а сгрупировать по шифру группы и среднему баллу неполучаеться
дать ссылку на алгоритмы сортировки, или сам найдешь?
ess399
0 / 0 / 0
Регистрация: 18.11.2009
Сообщений: 4
18.11.2009, 14:00  [ТС]     cтрутура данных с++ #3
Если можете, то дайте ссылку ,может что полезное найду ,а то неполучаеться у меня ничего по шаблону преподователя ,а сдавать работу уже надо .
Yandex
Объявления
18.11.2009, 14:00     cтрутура данных с++
Ответ Создать тему
Опции темы

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