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

Средний бал по 4 предметам - C++

Восстановить пароль Регистрация
 
shilovec5377
 Аватар для shilovec5377
28 / 53 / 1
Регистрация: 26.05.2011
Сообщений: 752
16.05.2013, 16:14     Средний бал по 4 предметам #1
Всем привет. Помогите пожалуйста найти средний бал по предметам и если средний бал больше 7 то сохранить в файл, а то чета я вообще не могу.

Вот код проги:
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
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <fstream.h>
 
 
FILE *fl;
 
typedef struct
{
    char fio[30];
    unsigned char matem;
    unsigned char oaip;
    unsigned char english;
}TStudent;
 
TStudent stud[30]; //массив структур
char name[20];//имя файла
int nst=0;//число введенных структур
 
int menu();    //меню
void spisok(); //Ввести список
void resc();   //Вывести результат на экран
void resf();   //Сохранить результат в файл
 
 
 
int main()
{
    while (true)
    {
        switch (menu())
        {
            
            case 1: spisok(); break; //Ввести список
            case 2: resc(); break; //Вывести результат на экран
            case 3: resf(); break; //Сохранить результат в файл
 
            case 4: return 0;
            default: "Viberite pravilno!";
        }
        puts("pres any key to continue");
        getch();
        system("cls"); 
}
} 
 
 
int menu()//меню
{
    cout<<"viberite:"<<endl;
    cout<<"1.vvod studentov"<<endl;
    cout<<"2.vivesti rezultat na ekran"<<endl;
    cout<<"3.sohranit rezultat v file"<<endl;
    cout<<"4.Exit"<<endl;
    int i;
    cin>>i;
    return i;
}
 
 
 
 
 
void resc()//вывести результат на экран
{
    char fio[30];
    unsigned char matem;
    unsigned char oaip;
    unsigned char english;
 
    ifstream fin("ofile.txt", ios::in);
    
    fin.getline(fio, 30);
    fin >> matem >> oaip >> english;
    fin.ignore(2);
 
    while(!fin.eof()){
 
        cout << fio << '\n' << matem << '\n' << oaip << '\n' << english << "\n\n";
 
        fin.getline(fio, 30);
        fin >> matem >> oaip >> english;
        fin.ignore(2);
    }
 
    fin.close();
    system("pause");
}
 
 
 
void spisok () //ввести список
{
 
    cout<<"vvedite chislo studentov"<<endl;
    cin>>nst;
 
    for (int i=0;i<nst;i++)
    {
        cout<<"vvedite imya: ";
        cin>>stud[i].fio;
        cout<<"vvedite ocenki po matem.: ";
        cin>>stud[i].matem;
        cout<<"vvedite ocenku po oaip: ";
        cin>>stud[i].oaip;
            cout<<"vvedite ocenku po english: ";
        cin>>stud[i].english;
        }
 
}
 
 
void resf()////сохранение в файл
{
    ofstream fout("ofile.txt", ios::app);
    for (int i=0;i<2;i++)
    {
        fout << stud[i].fio << endl << stud[i].english << endl
                << stud[i].matem << endl << stud[i].oaip << endl << endl;
    }
}
Добавлено через 51 минуту
___

Добавлено через 22 часа 45 минут
Вот мой код, все вроде правильно, пробегаюсь по файлу и если средний бал >6 то вывести этого человека, но что-то его не выводит.
Подскажите пж в чем проблемка.
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
void resc() //Вывод на экран
{
    char fio[30];
    int matem;
    int oaip;
    int english;
   double srb;
 
 
    ifstream fin("ofile.txt", ios::in);
    
    fin.getline(fio, 30);
    fin >> matem >> oaip >> english>>srb;
    fin.ignore(1);
 
   //while(!fin.eof())
 
    
    
 
 for (int i=0;i<nst;i++)
 {
     if(stud[i].srb > '6')
 
 
    
         cout << fio << '\n' << matem << '\n' << oaip << '\n' << english << '\n'<< srb <<  "\n\n"; 
 
        fin.getline(fio, 30);
        fin >> matem >> oaip >> english>>srb;
        fin.ignore(1);
 
 
    fin.close();
    system("pause");
}}
Добавлено через 1 час 59 минут
___

Добавлено через 3 часа 28 минут
___
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2013, 16:14     Средний бал по 4 предметам
Посмотрите здесь:

Вывести средний бал всех студентов C++
C++ Разработать класс: Student: Фамилия, Имя, Отчество, Дата рождения, Адрес, Средний бал , Факультет, Курс
Структуры. Вывести информацию по победителю в каждой секции и найти средний бал по каждой секции C++
Вычислить средний бал учеников класса C++
Определить средний бал оценок по физике, количество студентов с оценкой 5 по информатике, математике и вывести C++
C++ Структуры, определить средний бал и количество отличников
Структура. Не получается подсчитать средний бал C++
Ввести 5 фамилий, их оценки и вывести средний бал C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shilovec5377
 Аватар для shilovec5377
28 / 53 / 1
Регистрация: 26.05.2011
Сообщений: 752
20.05.2013, 13:21  [ТС]     Средний бал по 4 предметам #2
Цитата Сообщение от shilovec5377 Посмотреть сообщение
if(stud[i].srb > '6')
пробую писать просто
C++
1
if(srb > '6')
не выводит на экран, подскажите пж в чем проблема.

Добавлено через 2 часа 31 минуту
пробую так:
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
void resc() //na ekran
{
    char fio[30];
    double matem;
    double oaip;
    double english;
    double srb;
 
 
    ifstream fin("ofile.txt", ios::in);
    
    fin.getline(fio, 30);
    fin >> matem >> oaip >> english>>srb;
    fin.ignore(1);
 
   //while(!fin.eof())
 
    
        
 
 for (int i=0;i<nst;i++)
 {
     if(srb >= 6.0)
 
 
     
         cout << fio << '\n' << matem << '\n' << oaip << '\n' << english << '\n'<< srb <<  "\n\n"; 
 
 
        fin.getline(fio, 30);
        fin >> matem >> oaip >> english>>srb;
        fin.ignore(1);
 
 
    fin.close();
    system("pause");
}}
но выводит только 1 человека и только 1 раз, при следующем запуске не выводит.
Yandex
Объявления
20.05.2013, 13:21     Средний бал по 4 предметам
Ответ Создать тему
Опции темы

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