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

Ошибка в коде - C++

Восстановить пароль Регистрация
 
dkii
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 101
23.12.2013, 22:51     Ошибка в коде #1
1 Составить программу, которая описывает структуру в соответствии с вариантом и записывает введенные пользователем данные в бинарный файл (использовать потоки). Процесс введения прерывается пользователем.
2 Составить программу, которая, считывая информацию из файла, выполняет ее обработку (не использовать массивы). Результат выводить на экран и в текстовый файл.
Помогите пожалуйста, проблема со второй частью, а именно с ювилеем
«Співробітник»: прізвище, дата народження, рік прийняття на роботу, кількість дітей., оклад
Надрукувати список співробітників, які в поточному році відзначають ювілей
cpp(68): error C2440: =: невозможно преобразовать "char *" в "int"
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
#include <iostream>
#include <fstream>
#include <iomanip>
#include <conio.h>
#include <stdio.h> 
 
 
using namespace std;
struct days
{
    char day[2];
    char month[ 10];
    char year[4];
}a;
 
 
struct man 
{
    char surname[30];
    days a;
    char yearofbegin[4];
    char kids[2];
    char salary[10];
}s;
 
void main(){
 
setlocale(LC_ALL, "Russian");
char c;
 ofstream f2("textin.txt",ios::binary); 
 do 
  { 
  
  cout<<"Введите фамилию сотрудника: ";
  cin>>s.surname; 
 
  cout<<"Введите дату рождения: "<<endl; 
  cout<<"     "<<"День : "; 
  cin >> s.a.day;
  cout<<"     "<<"Месяц : "; 
  cin>>s.a.month; 
  cout<<"     "<<"Год : "; 
  cin>>s.a.year; 
  cout<<" Введите год принятия на роботу: "; 
  cin>>s.yearofbegin; 
  cout<<" Введите количество детей: "; 
  cin>>s.kids; 
  cout<<" Введите оклад : "; 
  cin>>s.salary; 
  f2.write((char*) &s, sizeof (s)); 
  cout<<" Для завершения работы нажмите звездочку *\n"; 
 
  c=getch(); 
  } 
 while (c!='*'); 
 f2.close(); 
 cout<<"Данные записаны в файл"; 
 getch(); 
 { 
 int y=0;
 ifstream f2("textin.txt",ios::binary); 
 
  f2.read((char*)&s,sizeof(s)); 
 
 while (! f2.eof()) 
  { 
   
   y=y+a.year;
   if (y/10)
   f2.read((char*)&a,sizeof(a)); 
 }
    
 cout<<y;  
 f2.close(); 
 
 system("pause");
         
}
}
Добавлено через 47 минут
ап1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2013, 22:51     Ошибка в коде
Посмотрите здесь:

Ошибка в коде К и Р C++
C++ Ошибка в коде)
ошибка в коде C++
Ошибка в коде C++
Ошибка в коде C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
23.12.2013, 22:55     Ошибка в коде #2
Цитата Сообщение от dkii Посмотреть сообщение
char year[4];
Цитата Сообщение от dkii Посмотреть сообщение
int y=0;
Цитата Сообщение от dkii Посмотреть сообщение
y=y+a.year;
Относительно той ошибки что есть сейчас.
dkii
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 101
24.12.2013, 00:33  [ТС]     Ошибка в коде #3
ошибку я знаю, подскажите как ее устранить

Добавлено через 1 час 20 минут
ап1
Людвиг Бодмер
 Аватар для Людвиг Бодмер
212 / 209 / 70
Регистрация: 29.03.2013
Сообщений: 555
Завершенные тесты: 2
24.12.2013, 13:40     Ошибка в коде #4
dkii, используй функцию atoi(...)
C++
1
y=y+atoi(a.year);
dkii
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 101
26.12.2013, 19:22  [ТС]     Ошибка в коде #5
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
#include <iostream>
#include <fstream>
#include <iomanip>
#include <conio.h>
#include <stdio.h> 
 
using namespace std;
 
struct days
{
    char day[2];
    char month[ 10];
    char year[4];
}a;
 
 
struct man 
{
    char surname[30];
    days a;
    char yearofbegin[4];
    char kids[2];
    char salary[10];
}s;
 
void main(){
 
setlocale(LC_ALL, "Russian");
char c;
 ofstream f2("textin.txt",ios::binary); 
 do 
  { 
  
  cout<<"Введите фамилию сотрудника: ";
  cin>>s.surname; 
 
  cout<<"Введите дату рождения: "<<endl; 
  cout<<"     "<<"День : "; 
  cin >> s.a.day;
  cout<<"     "<<"Месяц : "; 
  cin>>s.a.month; 
  cout<<"     "<<"Год : "; 
  cin>>s.a.year; 
  cout<<" Введите год принятия на роботу: "; 
  cin>>s.yearofbegin; 
  cout<<" Введите количество детей: "; 
  cin>>s.kids; 
  cout<<" Введите оклад : "; 
  cin>>s.salary; 
  f2.write((char*) &s, sizeof (s)); 
  cout<<" Для завершения работы нажмите звездочку *\n"; 
 
  c=getch(); 
  } 
 while (c!='*'); 
 f2.close(); 
 cout<<"Данные записаны в файл"; 
 getch(); 
 { 
 int y=0;
 ifstream f2("textin.txt",ios::binary); 
 
  f2.read((char*)&s,sizeof(s)); 
 
 while (! f2.eof()) 
  { 
   y=y+atoi(a.year);
   if (y/10)
   f2.read((char*)&a,sizeof(a));
 }
    
 cout<<y;  
 f2.close(); 
 
 system("pause");
         
}
}
Немного исправил, подскажите как сделать так что бы считал юбилей и выводил его (y) на консоль. Заранее спасибо.

Добавлено через 1 час 15 минут
ап1

Добавлено через 41 минуту
ап2

Добавлено через 1 час 6 минут
ап3

Добавлено через 1 час 21 минуту
ап4

Добавлено через 18 часов 20 минут
ап5
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
26.12.2013, 19:42     Ошибка в коде #6
Цитата Сообщение от dkii Посмотреть сообщение
считал юбилей
C++
1
2
if (s.a.month == s.a.monthCurrent && s.a.day == s.a.dayCurrent && (s.a.yearCurrent - s.a.year)%10 == 5 ) //Если юбилей каждые пять лет
    cout << "Сегодня юбилей" << endl;
Нужно знать текущую дату.

Цитата Сообщение от dkii Посмотреть сообщение
«Співробітник»: прізвище, дата народження, рік прийняття на роботу, кількість дітей., оклад
Надрукувати список співробітників, які в поточному році відзначають ювілей
Цитата Сообщение от dkii Посмотреть сообщение
Добавлено через 1 час 15 минут
ап1
Добавлено через 41 минуту
ап2
Добавлено через 1 час 6 минут
ап3
Добавлено через 1 час 21 минуту
ап4
Добавлено через 18 часов 20 минут
ап5

Не по теме:

If you want to get a real answer, write in real language.

dkii
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 101
28.12.2013, 14:41  [ТС]     Ошибка в коде #7
А как сделать так что бы была извесная текущая дата и нам нужен только год(а не месяц и день), и в место сообщения должны выводится на консоль фамилии.

Добавлено через 3 часа 21 минуту
скоро здавать, помогите

Добавлено через 20 часов 15 минут
как это реализовать?

Добавлено через 3 часа 37 минут
помогите

Добавлено через 13 часов 0 минут
ап41

Добавлено через 1 час 18 минут
скоро здавать
Timur_CF
39 / 39 / 3
Регистрация: 12.12.2013
Сообщений: 227
Записей в блоге: 1
28.12.2013, 15:58     Ошибка в коде #8
C++
1
#include "ctime"
C++
1
2
3
struct tm* now = localtime(time());
char Stroke;
Stroke = char(now->year)
Правда, не помню, есть ли в этой структуре год...
dkii
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 101
28.12.2013, 22:14  [ТС]     Ошибка в коде #9
что-то туплю, куда это вписать что бы работало

Добавлено через 1 час 49 минут
ап1

Добавлено через 52 минуты
ап2

Добавлено через 2 часа 13 минут
помогите первокурснику
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2013, 03:45     Ошибка в коде
Еще ссылки по теме:

C++ Ошибка в коде
C++ Ошибка в коде
Ошибка в коде с++ C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.12.2013, 03:45     Ошибка в коде #10
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
#include <iostream>
#include <fstream>
#include <iomanip>
#include <conio.h>
#include <stdio.h>
#include <ctime>
#include <locale>
#include <Windows.h>
 
using namespace std;
 
struct days
{
    int day;
    int month;
    int year;
} a;
 
 
struct man 
{
    char surname[30];
    days a;
    int yearofbegin;
    int kids;
    int salary;
} s;
 
void main()
{
    setlocale(LC_ALL, "Russian");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    char c;
    const int N = 5;  //Если юбилей каждые пять лет
    
    ofstream f2("textin.txt", ios::binary | ios::app); 
    do 
    { 
        cout << "Введите фамилию сотрудника: ";
        cin >> s.surname; 
 
        cout << "Введите дату рождения (24.3.1990): "<<endl; 
        cout << "     "<<"День (1 - 31): "; 
        cin >> s.a.day;
        cout << "     " << "Месяц (1 - 12): "; 
        cin >> s.a.month; 
        cout << "     " << "Год : "; 
        cin >> s.a.year; 
        cout << " Введите год принятия на роботу: "; 
        cin >> s.yearofbegin; 
        cout << " Введите количество детей: "; 
        cin >> s.kids; 
        cout << " Введите оклад : "; 
        cin >> s.salary; 
        f2.write((char*) &s, sizeof (s)); 
        cout << " Для завершения работы нажмите звездочку *\n"; 
 
        c = getch(); 
    } 
    while (c!='*'); 
    f2.close(); 
    cout << "Данные записаны в файл\n\n"; 
    getch(); 
    { 
        ifstream f2("textin.txt", ios::binary);
        if (!f2) cout << "Error f2!" << endl;
        else
        {
            time_t rawtime;
            time(&rawtime);
            struct tm* now = localtime(&rawtime);
            
            f2.read((char*)&s,sizeof(s));
            while (!f2.eof()) 
            { 
                cout << s.surname << endl;
                cout << s.a.day << '.' << s.a.month << '.' << s.a.year << endl;
                if (s.a.month == now ->tm_mon + 1 && s.a.day == now ->tm_mday && ((1900 + now ->tm_year - s.a.year) % N == 0)) 
                {
                    cout << "Сегодня юбилей: " << 1900 + now ->tm_year - s.a.year << " лет" << endl;
                         
                }
                cout << endl;
                f2.read((char*)&s, sizeof(s));
            }
            f2.close(); 
        }
        system("pause");
    }
}
Yandex
Объявления
29.12.2013, 03:45     Ошибка в коде
Ответ Создать тему
Опции темы

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