С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
23 / 23 / 1
Регистрация: 06.04.2014
Сообщений: 198
1

Хранение статистических данных в файлах и их обработка

12.01.2015, 22:01. Показов 956. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дано: В шахматном турнире принимают участие 10 шахматистов. Сформировать файл фамилий участников и результатов встреч: фамилия, встреча1, встреча2, встреча3, где выигрыш -2, ничья -1, проигрыш -0). Вывести в виде таблицы информацию из созданного файла. Предусмотреть возможность дополнения созданного файла. Переписать в новый файл информацию о командах, в которых выигрышей, больше проигрышей.
Не получается выполнить это условие(подтолкните на правильную мысль): Переписать в новый файл информацию о командах, в которых выигрышей, больше проигрышей. Это условие должно выполняться в функции printfwin();
Код программы:
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
#include <vcl.h>
#pragma hdrstop
#pragma argsused
#include <stdio.h>
#include<windows.h>
#include<iostream.h>
#include <stdlib.h>
#include <iomanip.h>
void input () ;
void dop() ;
void print() ;
void printwin() ;
 
int main(int argc, char* argv[])
{SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 setlocale(LC_ALL,"Rus");
int nom
while (1)
{printf("\n 1. Сформировать файл \n");
printf ("\n 2. Дополнение \n");
printf ("\n 3. Просмотреть участников \n");
printf ("\n 4. Просмотреть информацию о командах, в которых выигрышей, больше проигрышей \n");
printf ("\n 5. Выход из программы \n");
printf ("\n Введите номер :   ");
cin>>nom;
switch (nom)
{  case 1: input () ; break;
   case 2: dop() ; break;
   case 3: print() ; break;
   case 4: printwin() ; break;
   case 5: return 0;
   default: cout <<" Такого номера нет, введите заново! \n";
}
}
 
        return 0;
}
 
void input ( ) // функция заполнения 
{  int i;
int const num=10;
   struct prolig {char familia[20];int vst1;int vst2;int vst3;int kom;} t1; 
   FILE *f;
   f=fopen("tyrnir.dat","wb");    
    printf  ("\n Введите номер команды(1 или 2), 10 шахматистов,баллы за встречи(2-выйгрыш,1-ничья,0-проигрыш): \n");
   for (i=1;     i<=num;   i++)
      {   printf ("\n Команда : ");    scanf("%i",&t1.kom); 
          printf ("\n Фамилия участника :");     scanf("%s",&t1.familia);
          printf ("\n Встреча 1 : ");    scanf("%i",&t1.vst1);
          printf ("\n Встеча 2 : ");  scanf("%i",&t1.vst2);
          printf ("\n Встреча 3 : ");    scanf("%i",&t1.vst3);       
          fwrite (&t1, sizeof (t1), 1, f);  //запись одной структуры  в файл f
          //аналог : fprintf (tf," \n %20s %6.2f %4d", t1.name, t1.c, t1.kol);
       }
    fclose (f);
    return 0;}
 
void print () \\функция вывода всех участ. в виде таблицы
{      
    struct tyrnir {char familia[20];int vst1;int vst2;int vst3;int kom;} l1;
   FILE *f;
   f=fopen("tyrnir.dat","rb");  
 
   printf ("\n Чтение всех данных из файла tyrnir.dat: \n");
   printf ("\n____________________________________________________________");
   printf ("\n|Команда |     Фамилия     | Встреча 1| Встреча 2| Встреча 3|");
   while(!feof(f))
     { fread (&l1, sizeof (l1), 1, f); 
printf ("\n____________________________________________________________",l1.kom, l1.familia, l1.vst1,l1.vst2,l1.vst3);
printf ("\n| %4i   |%15s  | %6i   | %6i   | %6i   | ",l1.kom,l1.familia, l1.vst1,l1.vst2,l1.vst3);
      }
      printf ("\n____________________________________________________________");
        printf("\n");
 
        fclose (f);
        return 0;}
 
void dop ( ) // функция дополнения
{  int i, num;
   struct prolig {char familia[20];int vst1;int vst2;int vst3;int kom;} l1;
   FILE *f;
   f = fopen ("tyrnir.dat","ab");    // открытие файла для записи
    printf  ("\n Сколько записей будет вводиться: "); scanf ("%d", &num);
    printf  ("\n Введите номер команды(1 или 2), 10 шахматистов,баллы за встречи(2-выйгрыш,1-ничья,0-проигрыш): \n");
   for (i=1;     i<=num;   i++)
      {   printf ("\n Команда : ");    scanf("%i",&l1.kom);
          printf ("\n Фамилия участника :");     scanf("%s",&l1.familia);
          printf ("\n Встреча 1 : ");    scanf("%i",&l1.vst1);
          printf ("\n Встеча 2 : ");  scanf("%i",&l1.vst2);
          printf ("\n Встреча 3 : ");    scanf("%i",&l1.vst3);   
      fwrite (&l1, sizeof (l1), 1, f);
       }
    fclose (f);
    return 0;}
 
void printwin () 
{
//Переписать в новый файл информацию о командах, в которых выигрышей, больше проигрышей.
}
Могут быть ошибки, просто у меня функции были разбиты по разным файлам..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
12.01.2015, 22:01
Ответы с готовыми решениями:

Существования библиотеки статистических данных
Здравствуйте! При решении математических задач мы используем подключение математической библиотеки...

Хранение статистических данных
Здравствуйте. Пишу сниффер сетевого трафика. Сканирую проходящий трафик с помощью winsock2. Получаю...

Обработка статистических данных в MathCAD
Помогите пжлста) Даны 2 выборки X и Y. Построить диаграмму рассеивания. Найти коэффициент...

Хранение данных в файлах
Пытаюсь освоить delphi и возникает очень много вопросом и непоняток. Особенно с &quot;выделением...

2
Почетный модератор
Эксперт С++
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
14.01.2015, 09:16 2
Цитата Сообщение от mraZzzb Посмотреть сообщение
В шахматном турнире принимают участие 10 шахматистов
Цитата Сообщение от mraZzzb Посмотреть сообщение
Переписать в новый файл информацию о командах
Как они кучкуются в команды?

Цитата Сообщение от mraZzzb Посмотреть сообщение
Не получается выполнить это условие(подтолкните на правильную мысль): Переписать в новый файл информацию о командах, в которых выигрышей, больше проигрышей
Если на каждого шахматиста/команду по одному отдельному файлу, то следует их все по очереди открывать, считывать из них количество побед и поражений, запоминать их соотношение и соответствующие им атрбуты команд, суммировать по командам или как там, и все. Потом выяснять наилучшую команду и записывать ее в файл.
1
23 / 23 / 1
Регистрация: 06.04.2014
Сообщений: 198
14.01.2015, 11:06  [ТС] 3
SatanaXIII, Спасибо, я разобрался !!!
0
14.01.2015, 11:06
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
14.01.2015, 11:06
Помогаю со студенческими работами здесь

Хранение данных в файлах
В каком случае лучше хранить данные в файлах в виде байт? Кроме того случая, когда нужно защитить...

Хранение больших объемов данных в файлах.
Добрый день. Столкнулся с проблемой необходимо хранить и обработывать большое количество...

Хранение таблиц базы данных в файлах
Здравствуйте! Помогите, пожалуйста, разобраться с хранением таблиц базы данных в файлах. ...

Хранение и обработка данных с использованием линейных списков
Люди, помогите пожалуйста!!! Дали задание к курсовой работе. Сделать надо любое из двух (какое...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru