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

Файлы. Как сделать так, что бы не только последний ответ выводил, а все которые удовлетворяют условию? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка массива методом квадратичной выборки http://www.cyberforum.ru/cpp-beginners/thread796700.html
Здравствуйте. Пусть, к примеру, дан одномерный массив (статический или динамический - без разницы) целых чисел. Можете помочь реализовать сортировку массива методом квадратичной выборки? В интернете только даны идеи реализации в виде текста, текст один и тот же, но пример кода к этим словам нету, к сожалению, но из самих этих слов я все равно не понимаю, как это реализовать.
C++ "Числовая память" Помогите!!!у меня курсовой по С++:( мне нужна программа которая будет развивать память.Может кто то уже делал) Содержание: 1-й уровень: на экране выводится одна цифра, и через (допустим) 1 сек. исчезает, и появляется окошко, куда ты должен ввести эту цифру (число), если ввёл правельно переходишь на 2-й уровень. 2-й уровень: на экране выводится 2 цифры, ну и так же. Всего надо 10 уровней. http://www.cyberforum.ru/cpp-beginners/thread796695.html
Библиотека winmm.dll C++
Как ее скормить компилятору, ну то есть как ее подключить можно к среде разработки, библиотеку эту? есть dev, xe3, geany .... я так по мелочи работал, программки маленькие, для себя =) библиотек не подключал (кроме gluit), как это делается? я вообще не чушь несу? Кто знает - подскажите!!! пожаааааалуйста =) Ушь очень хочется со звуком поработать....
Файлы. Программа должна печатать список студентов, желающих прослушивать дисциплину Х C++
Помогите написать прогу. Я нуб, в голову ничего не лезет( С++ А. Создать файл, в котором есть сведения про пять дисциплин, которые желает слушать студент. Структура записи: фамилия, индекс группы, 5 дисциплин, средний балл успеваемости. Нужная дисциплина отмечается 1, ненужная пробелом. Количество записй - 25. Б. Программа должна печатать список студентов, желающих прослушивать дисциплину Х....
C++ Создать класс Date http://www.cyberforum.ru/cpp-beginners/thread796660.html
Задача заключается в том что нужно создать класс Date. Поля класса год, месяц, день. Реализовать метод вычисления даты через заданное количество дней, определение високосного года. Почти понял как делать, знаю функцию нахождения високосного года, его делим на 400 если делить то високосный Но суть не понятна как прибавить к дате например 38 дней, например начальная дата 27 02 2013 + 38...
C++ Работа с указателем на двумерный массив Добрый день. Изучая тему указатели, столкнулся с проблемой - никак не могу понять как работать с указателем на двумерный массив. Поиск данного вопроса по форуму особой ясности мне не дал. Например, вот простая программа по выводу массива 6x6 на экран и нахождения наибольшего и наименьшего элемента в каждой из его строк: #include <iostream> #include <ctime> #include <locale> using namespace... подробнее

Показать сообщение отдельно
Amaran
0 / 0 / 0
Регистрация: 30.11.2012
Сообщений: 4

Файлы. Как сделать так, что бы не только последний ответ выводил, а все которые удовлетворяют условию? - C++

27.02.2013, 22:15. Просмотров 324. Ответов 2
Метки (Все метки)

Господа, помогите. Сделал программу. В идеале ответ должен выдавать несколько значений, то есть несколько людей если условие верное. Но у меня выводит только один ответ в результатах. Как сделать так, что бы не только последний ответ выводил, а все которые удовлетворяют условию? Условие задачи в начале кода.
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
//Отдел кадров хранит записи работающих в организации № п.п Ф.И.О специальность, стаж, дата преема на работу .
//Необходимо выводить информацию о работниках, принятых на работу в заданных границах дат.
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
using namespace std;  
 
struct organization {char FIO[30],specialisation[20]; int number,probation; double date,sdate,fdate,mod_sdate,mod_fdate,mod_date,dater,div_date,div_sdate,div_fdate;};
       
       int main() { FILE *f; 
                     organization dat,max;
                     int n;
                     double sdate,fdate,mod_sdate,mod_fdate,mod_date,dater,div_date,div_sdate,div_fdate;
                     char s[20];
                     
                     cout<<"Enter file name: ";
                     cin.getline(s,20);
                     f=fopen(s,"wb");  //создание файла
                     cout<<"Enter worker's amount: ";
                     cin>>n;
                     for (int i=1; i<=n; i++){   
                                          dat.number=i;
                                          cout<<endl;
                                          cout<<"---The enter is started----";
                                          cout<<endl;
                                          cout<<"Worker's number: ";
                                          cout<<dat.number;
                                          cout<<endl;
                                          cout<<"Enter F.I.O: ";
                                          cin>>dat.FIO;
                                          cout<<"Enter worker's specialisation: ";
                                          cin>>dat.specialisation;
                                          cout<<"Enter worker's probation: ";
                                          cin>>dat.probation;
                                          cout<<"Enter worker's date: ";
                                          cin>>dat.date;
                                          cout<<"---The enter is over---";
                                          cout<<endl;
                                          dater=dat.date;
                                          fwrite (&dat, sizeof (organization),1,f);
                                          }
                      fclose(f);      
                      f=fopen(s,"rb"); //считывание файла
                      fread(&dat, sizeof(organization),1,f);
                      cout<<endl;
                      cout<<"Enter starting date: ";
                      cin>>sdate;
                      cout<<"Enter finishing date: ";
                      cin>>fdate;
                      cout<<endl;
                      
                      //просчет дат
                      
                      
                      mod_sdate=floor(sdate);
                      div_sdate=sdate - mod_sdate;
                      
                      mod_fdate=floor(fdate);
                      div_fdate=fdate - mod_fdate;
                      
                      cout<<"------RESULT------";
                      while (fread(&dat, sizeof(organization),1,f)); 
                      {
                            mod_date=floor(dater);
                      div_date=dater - mod_date;
          if(div_sdate >= div_date && mod_sdate <= mod_date && div_date >= div_fdate && mod_date <= mod_fdate)
                              {
                      cout<<endl;                                                
                      cout<<"Worker's number: "<<dat.number<<endl;
                      cout<<"********************"<<endl;
                      cout<<"Worker's F.I.O "<<dat.FIO<<endl;
                      cout<<"********************"<<endl;
                      cout<<"Worker's specialisation: "<<dat.specialisation<<endl;;
                      cout<<"********************"<<endl;
                      cout<<"Worker's probation: "<<dat.probation<<endl;
                      cout<<"********************"<<endl;
                      cout<<"Worker's date: "<<dat.date<<endl;
                                }
                       else cout<<endl<<"No results";         
                      }   
                      
                      getch ();
                      return 0;
                      }
Добавлено через 17 минут
Понял, что не хватает цикла for. Теперь выдает нужное количество результатов, но ни все последние, как исправить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
while (fread(&dat, sizeof(organization),1,f)); 
                      {
          if(dater > sdate && dater < fdate)
                              {
                      for (int i=1; i<=n; i++){              
                      cout<<endl;                                                
                      cout<<"Worker's number: "<<dat.number<<endl;
                      cout<<"********************"<<endl;
                      cout<<"Worker's F.I.O "<<dat.FIO<<endl;
                      cout<<"********************"<<endl;
                      cout<<"Worker's specialisation: "<<dat.specialisation<<endl;;
                      cout<<"********************"<<endl;
                      cout<<"Worker's probation: "<<dat.probation<<endl;
                      cout<<"********************"<<endl;
                      cout<<"Worker's date: "<<dat.date<<endl;
                      }
                                }
                       else cout<<endl<<"No results";         
                      }
Добавлено через 2 минуты
Понял, что не хватает цикла for. Теперь выдает нужное количество результатов, но они все последние, как исправить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
while (fread(&dat, sizeof(organization),1,f)); 
                      {
          if(dater > sdate && dater < fdate)
                              {
                      for (int i=1; i<=n; i++){              
                      cout<<endl;                                                
                      cout<<"Worker's number: "<<dat.number<<endl;
                      cout<<"********************"<<endl;
                      cout<<"Worker's F.I.O "<<dat.FIO<<endl;
                      cout<<"********************"<<endl;
                      cout<<"Worker's specialisation: "<<dat.specialisation<<endl;;
                      cout<<"********************"<<endl;
                      cout<<"Worker's probation: "<<dat.probation<<endl;
                      cout<<"********************"<<endl;
                      cout<<"Worker's date: "<<dat.date<<endl;
                      }
                                }
                       else cout<<endl<<"No results";         
                      }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru