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

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

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

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

18.11.2009, 02:42. Просмотров 359. Ответов 2
Метки нет (Все метки)

Уважаемые программисты!!! помогите пожалуйста дописать программу. я пока еще чайник .

"Имеем в текстовом файле список студентов: фамилия, имя ,шифр группы ,оценки по экзаменам.
сформировать список по фамилии ,имени ,шифру группы и среднему балу .вывести две таблицы: данные и результат"
часть программы сделана ,а сгрупировать по шифру группы и среднему баллу неполучаеться.

мой код

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)));
}
//-
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2009, 02:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос cтрутура данных с++ (C++):

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

Создайте меню программы, состоящее из трех пунктов: удаление данных, добавление данных, просмотр данных - Turbo Pascal
Создайте меню программы, состоящее из трех пунктов: удаление данных, добавление данных, просмотр данных. Программируйте запись текста в...

Выбор данных из полей со списком, занесение этих данных в список и добавление данных в таблицу - MS Access
Подскажите пожалуйста, как что то подобное сделать в Access или посоветуйте хорошую литературу где это описывается.

Скопировать структуру базы данных в новую базу данных без самих данных - PHP БД
Здравствуйте! Подскажите пожалуйста, как более удобно скопировать всю базу данных в новую базу данных, но без самих данных, а только...

Редактирование пользователем данных из базы данных и сохранение уже отредактированных данных - PHP
Здравствуйте форумчане!Вынужден обратиться к вам,так как сам ничего не могу сделать:( У меня такая задача: создать небольшой сайтик,в...

Использование псевдопеременных: bd (3,5) = s, где bd - база данных, s - элемент базы данных, тогда с 3 по 5 элементы базы данных заменить на элемент s. - C++
всем доброго времени суток! есть у меня класс bd, массив элементов этого класса table, а вот сам метод: int copyTable(int a, int b) {...

2
R0mm
Псевдо программист
192 / 113 / 15
Регистрация: 19.09.2009
Сообщений: 303
18.11.2009, 08:02 #2
Цитата Сообщение от ess399 Посмотреть сообщение
а сгрупировать по шифру группы и среднему баллу неполучаеться
дать ссылку на алгоритмы сортировки, или сам найдешь?
0
ess399
0 / 0 / 0
Регистрация: 18.11.2009
Сообщений: 4
18.11.2009, 14:00  [ТС] #3
Если можете, то дайте ссылку ,может что полезное найду ,а то неполучаеться у меня ничего по шаблону преподователя ,а сдавать работу уже надо .
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2009, 14:00
Привет! Вот еще темы с ответами:

Не открывается база данных Access , пишет неразпознаваемый формат базы данных - MS Access
Не открывается база данных Access , пишет неразпознаваемый формат базы данных,что делать

Разделение данных между пользователями БД. Назначение нормы обработки данных в день - MS Access
Добрый день уважаемые форумчане! Столкнулась с острой необходимость реализовать следующее: 1)Есть некий файл Excel, допустим...

В зависимости от данных чисел, уменьшить или увеличить оба данных числа - C++
Даны действительные числа x, y. Если x и y отрицательны, то каждое значение заменить модулем; если отрицательно только одно из них, то оба...

SELECT данных в реляционной базе MySQL с выводом данных внешнего ключа - MySQL
Например, есть MySQL и в ней бд - firma, в бд 3 таблицы - professions, fio, current_workers. В таблице &quot;professions&quot; - все...


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

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

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