1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Средний Бал По 4 Предметам

Тема в разделе "С и С++", создана пользователем shilovec5377, 15 май 2013.

  1. shilovec5377

    shilovec5377 Member

    Репутация:
    0
    Регистрация:
    13 апр 2012
    Сообщения:
    12
    Симпатии:
    0
    Всем привет. Помогите пожалуйста найти средний бал по предметам и если средний бал больше 7 то сохранить в файл, а то чета я вообще не могу.

    Вот код проги:

    Код:
    #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;
    }
    }
     
  2. shilovec5377

    shilovec5377 Member

    Репутация:
    0
    Регистрация:
    13 апр 2012
    Сообщения:
    12
    Симпатии:
    0
    Вот мой код, все вроде правильно, пробегаюсь по файлу и если средний бал >6 то вывести этого человека, но что-то его не выводит.
    Подскажите пж в чем проблемка.

    Код:
    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");
    }}
     
  3. shilovec5377

    shilovec5377 Member

    Репутация:
    0
    Регистрация:
    13 апр 2012
    Сообщения:
    12
    Симпатии:
    0
    пробую писать
    Код:
    if(srb > '6')
    но всеравно не хочет, подскажите пж в чем проблема.
     
  4. shilovec5377

    shilovec5377 Member

    Репутация:
    0
    Регистрация:
    13 апр 2012
    Сообщения:
    12
    Симпатии:
    0
    пробую так:
    Код:
    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 раз, при следующем запуске не выводит.
     
  5. rrrFer

    rrrFer Гость

    Репутация:
    0
    чето все не так

    Код:
    char fio[30];
    double matem;
    double oaip;
    double english;
    double srb;
    удобно использовать структуру

    Код:
    fin >> matem >> oaip >> english>>srb;
    в файле дана информация по 4 предметам ведь, почему ты оттуда средний бал считываешь? - его нада посчитать

    Код:
    fin.ignore(1);
    зачем это?

    Код:
    for (int i=0;i<nst;i++)
    откуда ты вобще nst взял ? считывай с файла пока он не кончится

    Код:
    fin >> matem >> oaip >> english>>srb;
    эта штука стоит перед циклом, а значит, ты надеешься что в фале есть как минимум одна запись, это тоже неверно
     
  6. shilovec5377

    shilovec5377 Member

    Репутация:
    0
    Регистрация:
    13 апр 2012
    Сообщения:
    12
    Симпатии:
    0
    подскажите пж, как правильно написать?
     
Загрузка...
Похожие Темы - Средний Бал По
  1. Jack_27
    Ответов:
    0
    Просмотров:
    170
  2. shchigolev
    Ответов:
    0
    Просмотров:
    154
  3. lmike
    Ответов:
    10
    Просмотров:
    1.314
  4. SchwarzeWolfin
    Ответов:
    3
    Просмотров:
    1.414
  5. KiR
    Ответов:
    3
    Просмотров:
    4.834

Поделиться этой страницей