Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2015, 22:22   #1
Alex_244
Новичок
Джуниор
 
Регистрация: 15.05.2015
Сообщений: 1
По умолчанию Работа с файлами(Задача)

Есть структура. Записываем ее в файл. Структура содержит фамилию, номер зачетки, предметы и оценки. Нужно предусмотреть корректировку оценок после переэкзаменовки. То есть исправить двойки, если они есть. Вроде нужно это делать в бинарном режиме, но я без понятия как с ним работать. Может кто поможет

Код:

#include "stdafx.h"
#include <iostream>
#include <cstring>
#include<cstdlib>
#include <clocale>
#include<fstream>
using namespace std;
 
struct rezofses{
    char fio[80];
    int mark[5];
    long num; 
    void show();
    void show1(ofstream &,char[7][30],int);
    void input(char[7][30],int);
};
 
void rezofses::input(char less[7][30],int k)
{
    cout << "ФИО: "; 
    cin.getline(fio, 80);
    cout << "Номер зачетки: "; cin >> num; cin.get();
    for (int i = 0; i < k; i++)
    {
        cout << "Оценка по предмету [" << less[i] << "]: ";
        cin >> mark[i]; cin.get();
    }
}
 
    
void rezofses::show1(ofstream &ofs,char less[7][30],int k)
{
    int j;
 
    ofs << "ФИО: " << fio << "\nНомер зачетки: " << num << endl;
    for (j = 0; j < k; j++)
        ofs << "\nОценка по предмету [" << less[j] << "]: " << mark[j] << endl;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int b,num,kol,s;
    char buf[800],kolvo[7][30];
    rezofses student[30];
    cout << "Для создания файла нажмите 1\n";
    cout << "Для просмотра содержимого файла нажмите 2\n";
 
    
    cin >> num;
    if (num == 1)
    {
 
        cout << "Введите кол-во студентов: "; cin >> b;
        cout << "Введите кол-во предметов, входящих в сессию: "; cin >> kol; cin.get();
        cout << "Введите предметы, сдаваемые студентами: \n";
        for ( s = 0; s < kol; s++)
            gets_s(kolvo[s]);
 
        for (int i = 0; i < b; i++) student[i].input(kolvo, kol);
        
        ofstream ofs("text.txt");
        for (int i = 0; i < b; i++) student[i].show1(ofs, kolvo, kol);
        ofs.close();
    }
    else if (num == 2)
    {
        fstream File("text.txt", ios::in); //проверка, что show1() занесла в файл
        while (!File.eof())
        {
            File.getline(buf, 800);
            cout << buf << '\n';
        }
    }

    
    
    system("pause");
    return 0;
}
Alex_244 вне форума Ответить с цитированием
Старый 16.05.2015, 07:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Могу предложить такую схему: http://www.programmersforum.ru/showthread.php?t=105501
В качестве идеи движка.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача в Делфи, работа с текстовыми файлами Nikproam Помощь студентам 14 21.06.2012 21:22
Задача на С++. Работа с текстом, файлами .beckham. Помощь студентам 2 19.02.2012 16:29
Задача на Паскале работа с текстовыми файлами. StudUL Помощь студентам 3 21.12.2008 23:24