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

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

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

В чем ошибка? - C++

10.04.2013, 15:38. Просмотров 235. Ответов 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
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
#include <iostream>
#include <string.h>
#include <cstring>
#include <stdio.h>
#include <fstream>
#include <sstream>
#include <conio.h>
using namespace std;
class table
{
    public:
    char fio[40];
    char gr[40];
    int oc;
    void vvod1(void);
    void pokaz1(void);
    //void srbal (void);
    void vyvod(void);
    void pokaz2(void);
};
void table::vvod1(void)
{
   cout << "ФИО студента: ";
   cin >> fio;
   cout << "Группа: ";
   cin >> gr;
   cout << "Оценки: ";
   for (int i=0;i<4;++i)
   cin >> oc;
};
 
void table::pokaz1(void)
{
  cout << endl << fio << " " << gr << " " << oc << endl;
};
 
void table::vyvod()
{
      ofstream f("таблица.txt",ios::app);
      f << fio << "\n";
      f << gr << "\n";
      f << oc << "\n";
    f.close();
 
};
void table::pokaz2()
{
      fstream f( "таблица.txt", ios::app);
      f.open( "таблица.txt", ios_base::in);
        f >> fio;
        f >> gr;
        f >> oc;
      f.close();
};
 
void clear_f()
{
    fstream f("таблица.txt", ios_base::out);
    f.open( "таблица.txt", ios_base::out);
    f.close();
    cout << "Файл очищен";
    getch();
};
int main()
{
    setlocale(LC_ALL,"Russian");
    table kol[2];
    int n=2;
    int q,w;
    do{cout << "1) Ввод данных  " << "2) Вывод на экран  " << "\n"
     << "3) Сохранить  "<<"4) Сортировка по ФИО " << "5) Очистить файл "<<"6) Средний бал\n";
     cin>>q;
     switch(q)
     {
    case 1:
      for(int i=0; i<n; ++i) {
      kol[i].vvod1();
     }
      break;
      case 2:
     for(int i=0; i<n; ++i) {
     kol[i].pokaz1();
         }
      getch();
      break;
      case 3:
    for ( int i = 0; i < n; ++i)
     {
    kol[i].vyvod();
     }
 
     for ( int i = 0; i < n; ++i )
      {
    kol[i].pokaz2();
      }
 
    cout << "Содержимое файла: " << "\n";
    for ( int i = 0; i < n; ++i )
    cout << endl << kol[i].fio << " " << kol[i].gr << " " << kol[i].oc << endl;
     cout << "\n" << "Для продолжения нажмите любую клавишу " << endl;
    getch();
 
    break;
    case 4:
    for ( int i=0; i <=n; ++i)
    {
    for (int j=0; j<n-1; ++j)
    {
    if ( kol[j].fio > kol[j+1].fio)
    {
    table b;
    b = kol[j];
    kol[j] = kol[j+1];
    kol[j+1] = b;
            }
       }
for ( int i=0; i <n; ++i)
cout<<kol[i].fio;
    }
  break;
  case 5:
  clear_f();
  break;
 
     }
     }while(q!=6);
       return(0);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 15:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В чем ошибка? (C++):

Реализовать через тип данных структура. При сборке и отладки возникает ошибка. В чем ошибка? - C++
С++ в таблице из 5 строк хранятся данные о товарах: наименование, цена, количество. Определить и вывести наименование товара, цена которого...

Ошибка 2 error LNK2019, не пойму в чем ошибка - C++
Выдает такую ошибку: Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ &quot;int __cdecl game(void)&quot; (?game@@YAHXZ) в функции....

В чем ошибка? - C++
Здравствуйте. Начал учить C++. Первая учебная программа.Вы все ее знаете))) #include &lt;iostream&gt; using namespace std; void main() ...

в чем ошибка? - C++
for (int i=1; i&lt;=S.Length(); i++) { if ((S=='-') &amp;&amp; (S=='-')) { S='+'; S=&quot;&quot;; } ...

В чем ошибка? - C++
лаба12.cpp(16): error C2668: pow: неоднозначный вызов перегруженной функции лаба12.cpp(24): error C2661: pow: нет перегруженной функции,...

В чем ошибка? - C++
Дано натуральное число X. Вычислить: sin x + sin (pow(2,x)) + sin (pow(3,x)) + ... + sin (pow(n,x)) Вот мое решение, в чем ошибка? ...

2
abit
271 / 270 / 34
Регистрация: 03.02.2013
Сообщений: 754
10.04.2013, 16:33 #2
1) вместо
C
1
2
    char fio[40];
    char gr[40];
используйте
C++
1
2
   std::string fio;
   std::string gr;
2) вместо этой структуры
C++
1
 table kol[2];
воспользуйтесь
C++
1
 std::vector <table> kol;
заведите в класс предикат такого плана
C++
1
bool table::namecompare (table& a,table& b) { return (a.fio<b.fio); }
и воспользуйтесь стандартной сортировкой std::sort - http://www.cplusplus.com/reference/algorithm/sort/?kw=sort

C++
1
std::sort(kol.begin(),kol.end(),table::namecompare)
3) места подсчёта среднего я что-то не нашёл, вместо этого по цифре 6 выходит я так понимаю из программы
C++
1
2
     }while(q!=6);
       return(0);
Добавлено через 6 минут
да и ещё у вас вот что странно
в классе заведена одна переменная под оценки
C++
1
int oc;
а пишете вы туда аж 4
C++
1
2
for (int i=0;i<4;++i)
   cin >> oc;
или я что-то не уловил в этой программе, или он запишет только последнюю и речи о среднем не имеют смысла
0
special one
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 34
11.04.2013, 07:33  [ТС] #3
Средний бал нужно посчитать по каждому студенту , у него должно быть 4 оценки

Добавлено через 12 часов 27 минут
Цитата Сообщение от abit Посмотреть сообщение
1) вместо
C
1
2
    char fio[40];
    char gr[40];
используйте
C++
1
2
   std::string fio;
   std::string gr;
2) вместо этой структуры
C++
1
 table kol[2];
воспользуйтесь
C++
1
 std::vector <table> kol;
заведите в класс предикат такого плана
C++
1
bool table::namecompare (table& a,table& b) { return (a.fio<b.fio); }
и воспользуйтесь стандартной сортировкой std::sort - http://www.cplusplus.com/reference/algorithm/sort/?kw=sort

C++
1
std::sort(kol.begin(),kol.end(),table::namecompare)
3) места подсчёта среднего я что-то не нашёл, вместо этого по цифре 6 выходит я так понимаю из программы
C++
1
2
     }while(q!=6);
       return(0);
Добавлено через 6 минут
да и ещё у вас вот что странно
в классе заведена одна переменная под оценки
C++
1
int oc;
а пишете вы туда аж 4
C++
1
2
for (int i=0;i<4;++i)
   cin >> oc;
или я что-то не уловил в этой программе, или он запишет только последнюю и речи о среднем не имеют смысла

Средний бал нашел,но сортировка не получается:

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
class table
{
    public:
    //char fio[40];
    //char gr[40];
    string fio;
    string gr;
    int oc1;
    int oc2;
    int oc3;
    int oc4;
    int oc5;
    void vvod1(void);
    void pokaz1(void);
    //void srbal (void);
    bool namecompare (table& a,table& b) ;
    void vyvod(void);
    void pokaz2(void);
};
 
bool table::namecompare (table& a,table& b)
{
return (a.fio<b.fio);
}
   case 4:
 for ( int i = 0; i < n; ++i )
    {
 sort(kol.begin(),kol.end(),table::namecompare);
 
 }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2013, 07:33
Привет! Вот еще темы с ответами:

в чем ошибка? - C++
не понимаю, в чем ошибка. помогите! #include&lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;string&gt; #include&lt;vector&gt; ...

В чем ошибка? - C++
Программа компиллируется, но после ввода данных возникает непонятная ошибка. Задание: Определить банки, где выгоднее всего покупать и...

в чем ошибка? - C++
#include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; int main() { cout &lt;&lt;&quot;20 &amp; 50 = &quot;&lt;&lt;(20&amp;50)&lt;&lt;endl; cout...

В чем ошибка? - C++
ввод и вывод квадратной матрицы... #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; using namespace std; int...


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

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

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