Проблемы с программой [закрыт]

118
02 июня 2021, 03:30
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.

Закрыт 1 год назад.

Улучшить вопрос

Конструктор игнорирует 2 метода в конце, поэтому переменные зарплаты и премии не высчитываются(этим и должны заняться 2 игнорируемых метода); так же метод toFile вроде бы работает, fout.is_open() показывает, что файл открыт, но изменений никаких в файле не происходит. В чём может быть проблема?

//Описать Класс Работник
    #include<iostream>
    #include<string>
    #include<fstream>
    using namespace std;

    class worker
    {
        string name;
        int experience;
        int hourlyWag;
        int workedHours;
        int salary;
        double premy;
        void salaryCalculate()
        {
            salary = workedHours * hourlyWag;
        }
        void premyCalculate()
        {
            if (experience < 1) { premy = 0; return; }
            if (experience < 3) { premy = (double) (salary * 0.05); return; }
            if (experience < 5) { premy = (double)((salary / 100) * 8); return; }
            premy = (double)((salary / 100) * 15); return;
        }
    public:
        worker()
        {
            cout << "Enter worker's name: ";
            cin >> name; cout << endl;
            cout << "Enter worker's experience: ";
            cin >> experience; cout << endl;
            cout << "Enter worker's hourly wag: ";
            cin >> hourlyWag; cout << endl;
            cout << "Enter how much hours "<<name<<" has worked: ";
            cin >> workedHours; cout << endl;

            void salaryCalculate();
            void premyCalculate();
        }
        void Display()
        {
            cout << name << endl
                << "Experience is " << experience << endl
                << "Hourly wage is " << hourlyWag << endl
                << "Denis has worked " << workedHours << " hours" << endl
                << "Salary is " << salary << endl
                << "Premy is " << premy << endl;
        }
        void toFile()
        {
            ofstream fout;
            fout.open("A:\ProgProjects\output.txt");
            fout << name << endl
                << "Experience is " << experience << endl
                << "Hourly wage is " << hourlyWag << endl
                << "Denis has worked " << workedHours << " hours" << endl
                << "Salary is " << salary << endl
                << "Premy is " << premy << endl;
            fout.close();
            cout << "Information about " << name << " was written in file output.txt"<<endl<<endl;
        }
    };

    int main()
    {
        worker a;
        a.Display();
        a.toFile();
        return 0;

    }
Answer 1

Не нашёл fin в представленном коде, вследствие чего могу сказать лишь, что изменения в файл записываются после его закрытия. Если файл открыт на запись, записанная в него информация не отобразится до тех пор, пока он не будет закрыт.

void salaryCalculate(); – объявление функции, а не её вызов, как уже сказали в комментарии. Используйте просто salaryCalculate();. Для второго метода аналогично.

READ ALSO
QLabel-&gt;setText(pointer)

QLabel->setText(pointer)

Допустим есть указатель на обьект класса Qt (например QPushButton *btn)Хочу выводить адрес, на который ссылается указатель, через QLabel на виджет

96
Приведение типов в стиле функций

Приведение типов в стиле функций

Не нашел нигде информацию для приведении типов в стиле вызова функций:

75
Как переопределить функцию в шаблоне с++?

Как переопределить функцию в шаблоне с++?

Собственно, имеется шаблонный класс treeЕсть еще класс SomeClass, в котором есть метод show

76