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

программирование, зачет по второму курсу. - C++

Восстановить пароль Регистрация
 
Ruin_wow
0 / 0 / 0
Регистрация: 13.02.2011
Сообщений: 3
13.02.2011, 14:42     программирование, зачет по второму курсу. #1
Дело вот в чем....Не могу написать алгоритм...Если кто нить поможет, буду очень признателен.

Двоичный файл содержит данные о студентах: фамилия, группа, оценка по программированию.
Создать на его основе текстовый файл с записями такого же вида, помещая в него только тех студентов, у которых оценка по программированию выше средней в группе.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrOldZeppelin
1 / 1 / 0
Регистрация: 02.02.2011
Сообщений: 9
13.02.2011, 14:50     программирование, зачет по второму курсу. #2
А в чём затруднение именно?
В считывании из файла, перевод информации из бинарного в текстовый, в создании структуры, поиск и работа в массиве или вывод результатов?
Вроде все просто

А в каком формате находятся данные о студенте? Сколько позиций на фамилию, группу и оценку.
Можешь дать полное условие задачи
Ruin_wow
0 / 0 / 0
Регистрация: 13.02.2011
Сообщений: 3
13.02.2011, 14:54  [ТС]     программирование, зачет по второму курсу. #3
Цитата Сообщение от MrOldZeppelin Посмотреть сообщение
А в чём затруднение именно?
В считывании из файла, перевод информации из бинарного в текстовый, в создании структуры, поиск и работа в массиве или вывод результатов?
Вроде все просто
мб для кого то и просто....Но у меня к сожалению не лады с программированием, а зачет нужен.
Дали вот на дом пару задач....Одну нашел в интернете, а со второй ничего не получается....
Вот и пришлось обратиться к вам

Добавлено через 54 секунды
Это полное условие
MrOldZeppelin
1 / 1 / 0
Регистрация: 02.02.2011
Сообщений: 9
14.02.2011, 22:28     программирование, зачет по второму курсу. #4
Давай, дружок, прежде, чем решать задачи определимся с исходными данными.
Т.к. у тебя условие неполное, то сам подкорректируешь программу под свои нужды.

Исходные данные:
текстовый(!) файл "input.txt", в котором содержатся данные о студентах в формате:
<имя> <группа> <баллы>
Формат: ТЕКСТОВЫЙ,
ибо приведенных условий недостаточно для перевода из бинарной информации в текстовую
так и скажешь преподу

Выходные данные:
текстовый файл "output.txt", в котором содержатся данные о студентах в формате
<имя>

Связь:
Имена студентов выводятся лишь, в том случае, если их балл выше среднего по группе.

Алгоритм решения задачи:
1) Установить поддержку в консоли русского языка;
2) Создать входные и выходные потоки;
3) Описать две структуры и массив структур, где
а) структура состоит из количества баллов в группе и количества студентов
б) структура состоит из имени и баллов
4) Считать из потока и заполнить структуру данных
5) Вывести необходимые данные.
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//Среда компилятора Microsoft Visual C++ 2008, express 
 
#include <clocale>
#include <fstream>
#include <iostream>
#include <istream>
using namespace std;
int main(){
    setlocale(LC_ALL,"Russian");
 
    int n,st;
    cout<<"Введите количество групп.\n";
    cin>>n;
    cout<<"Введите количество студентов.\n";
    cin>>st;
    n++;// с учетом нулевого индекса
 
    ifstream fin("input.txt");
    if (!fin) {cout<<"Ошибка открытия файла";return 1;}
 
    ofstream fout("output.txt");
    if (!fout) {cout<<"Ошибка открытия файла";return 1;}
 
    struct group{
        int kol;
        int ob_ball;
    };
    group *a=new group[n];
 
    for(int i=0;i<n;i++) {a[i].ob_ball=0;a[i].kol=0;}// оказывается в Си надо обнулять массивы, а я и не знал, думал этот маразм только в Паскале
 
    char buf[100]; //по умолчанию длина фамилии студента не больше 100
    int ibuf,ibuf2;
    for(int i=0; i<st;i++){
        fin>>buf; 
        fin>>ibuf>>ibuf2;
        a[ibuf].ob_ball=a[ibuf].ob_ball+ibuf2;
        a[ibuf].kol++;
    }
    fin.close();
 
    struct student{
        char name[100];
        int ball;
    };
    student *b=new student[st];
 
    ifstream fin2("input.txt");
    if (!fin2) {cout<<"Ошибка открытия файла";return 1;}
 
    for(int i=0; i<st;i++){
        fin2>>b[i].name>>ibuf>>b[i].ball;
        if(a[ibuf].ob_ball/a[ibuf].kol<b[i].ball) fout<<b[i].name<<" ";
    }
 
    fin2.close();
    fout.close();
    return 0;
}
Ruin_wow
0 / 0 / 0
Регистрация: 13.02.2011
Сообщений: 3
16.02.2011, 22:42  [ТС]     программирование, зачет по второму курсу. #5
Спасибо огромное за помощь и потраченное время.
Yandex
Объявления
16.02.2011, 22:42     программирование, зачет по второму курсу.
Ответ Создать тему
Опции темы

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