Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Някой ако може да ми помогне !

Featured Replies

Да се състави програма за нуждите на производствена организация, която съхранява в масив следните данни за работниците:

-         Име;

-         ЕГН;

-         Размер на дневно заплащане;

-         Брой на отброени дни през месеца и извършва следните операции,избрани от менюто:

-         Добавя към масив данните на нов работник;

-         Извежда имената и възрастта на от всички мъже;

-         Създава нов масив с имената и месечното заплащане на мъжете.

Ето го и кода ми.

 

#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;

class CDate {
public:
    int D, M, G;
    void ReadDat();
    void WriteDat();
};

void CDate::ReadDat() {
    cout << "Day: "; cin >> D;
    cout << "Month: "; cin >> M;
    cout << "Year: "; cin >> G;
}
void CDate::WriteDat() {
    cout << D << '.' << M << '.' << G << endl;
}
class Workers {
public:
    string Name[21];
    string EGN[11];
    float money;
    int DayMonth;
    void getdata();
    void display();
    int getGender();
    CDate getRoDat();
    int getAge(CDate);

};
void Workers::getdata() {
    cin.ignore();
    cout << "Enter a name: "; cin.getline(Name, 20);
    cout << "Enter a EGN: "; cin >> EGN;
    cout << "Enter a day wage money: "; cin >> money;
    cout << "Enter the number of days worked in the month: "; cin >> DayMonth;
}
void Workers::display() {
    cout << "Name: " << Name << "\nЕГН: " << EGN << "\n day wage noney: " << money <<
        "\nnumber of days worked in the month: " << DayMonth << "; \n";
}

int Workers::getGender() {
    char B[2];
    strncpy(B, EGN + 8, 1); B[1] = '\0';
    return stoi(B) % 2;
}

CDate Workers::getRoDat() {
    char b[3];
    CDate RoDat{};
    strncpy(b, EGN, 2);   b[2] = '\0'; RoDat.G = stoi(b) + 1900;
    strncpy(b, EGN + 2, 2); b[2] = '\0'; RoDat.M = stoi(b);
    strncpy(b, EGN + 4, 2); b[2] = '\0'; RoDat.D = stoi(b);
    return RoDat;
}

int Workers::getAge(CDate CurrentDate) {
    CDate RoDat = getRoDat();
    int Age = CurrentDate.G - RoDat.G;
    cout << "Enter current information: "; CurrentDate.ReadDat();
    if (CurrentDate.M < RoDat.M || CurrentDate.M == RoDat.M && CurrentDate.D < RoDat.D)Age--;
    return Age;
}

//за извеждане имената и възрастта на всички мъже:
void output(Workers mas[], int br)
{
    CDate CurrentDate;
    for (int i = 0; i < br; i++)
        if (mas[i].getGender() == 0)
        {
            cout << "Name is: " << mas[i].Name << endl;
            cout << "Age is:" << mas[i].getAge(CurrentDate) << endl;
        }
}

int main() {
    char KodOp;
    int i;
    int NumberOfPeople = 10;
    Workers grupa[10];
    do {
        cout << "MENU OF PERFORMED OPERATIONS:\n";
        cout << "1-      adds to the array the data of a new worker\n";
        cout << "2-      displays all entered data\n";
        cout << "3-      displays the names and ages of all men\n";
        cout << "4-      creates a new array with the names and monthly salary of the men\n";
        cout << "Specify an operation or 0 to end:\n"; cin >> KodOp;
        switch (KodOp) {
        case'0':break;
        case'1':grupa[NumberOfPeople++].getdata(); break;
        case'2':for (i = 0; i < NumberOfPeople; i++)grupa[i].display(); break;
        case'3':output(grupa, NumberOfPeople); break;
        case'4':string name, float mouthSalary;
            class Men {
                void getGender();
                void NewArryMen();
                 Men [10];
            };
            void NewArryMen(grupa, Men, getGender);
            for (int i = 0; i << grupa;i++){
                    if (getGender() == 0)
                        grupa[i] == Men[j];
                }
                
        case'5':default: cout << "WRONG OPERATION CODE!!!\n";

        }
    } while (KodOp != '0');
}
 

CHATBOTGPT-4

 

Има няколко грешки в програмата:

  1. В функцията getdata() за EGN променливата се декларира като масив от символи, но във функцията се прочита като стринг. Това трябва да се коригира като се промени декларацията на EGN като char EGN[11].

  2. В функцията getGender() трябва да се достъпва EGN като масив от символи, а не като стринг. За да се коригира това, трябва да се добави c_str() след EGN на ред 38.

  3. В функцията output() трябва да се инициализира CurrentDate, преди да се извиква функцията getAge(). За да се коригира това, трябва да се добави ред 24 CurrentDate.ReadDat();.

  4. В функцията main(), след case '4': липсва фигурна скоба {. Освен това, вътре в тази опция има неясноти и синтактични грешки.

Ето коригираният код:

#include <iostream>
#include <string>

using namespace std;

class CDate {
public:
    int D, M, G;
    void ReadDat();
    void WriteDat();
};

void CDate::ReadDat() {
    cout << "Day: "; cin >> D;
    cout << "Month: "; cin >> M;
    cout << "Year: "; cin >> G;
}

void CDate::WriteDat() {
    cout << D << '.' << M << '.' << G << endl;
}

class Workers {
public:
    string Name;
    char EGN[11];
    float money;
    int DayMonth;
    void getdata();
    void display();
    int getGender();
    CDate getRoDat();
    int getAge(CDate);
};

void Workers::getdata() {
    cin.ignore();
    cout << "Enter a name: "; getline(cin, Name);
    cout << "Enter a EGN: "; cin >> EGN;
    cout << "Enter a day wage money: "; cin >> money;
    cout << "Enter the number of days worked in the month: "; cin >> DayMonth;
}

void Workers::display() {
    cout << "Name: " << Name << "\nЕГН: " << EGN << "\nDay wage money: " << money <<
        "\nNumber of days worked in the month: " << DayMonth << "; \n";
}

int Workers::getGender() {
    char B[2];
    strncpy(B, EGN + 8, 1); B[1] = '\0';
    return stoi(B) % 2;
}

CDate Workers::getRoDat() {
    char b[3];
    CDate RoDat{};
    strncpy(b, EGN, 2);   b[2] = '\0'; RoDat.G = stoi(b) + 1900;
    strncpy(b, EGN + 2, 2); b[2] = '\0';

 

На мен ми даде същия отговор като на дзверо но малко по различен като чели.

  1. Вclass Workersтрchar* Nameиchar* EGNвstring Name[21]иstring EGN[11],
  2. ВWorkers::getdata()трgetline(cin, Name, 21)вмcin.getline(Name, 20),
  3. В функцияint Workers::getGender()трEGN[i + 8]вмEGN + 8при
  4. Вint Workers::getAge(CDate CurrentDate)трcin.ReadDat()вCurrentDate.ReadDat(),
  5. Вcase '4'тряMenсъс съоNewArryMen(grupa, Men, getGender)за създ

 

#include <iostream>
#include <string>
using namespace std;

class CDate {
public:
    int D, M, G;
    void ReadDat();
    void WriteDat();
};

void CDate::ReadDat() {
    cout << "Day: "; cin >> D;
    cout << "Month: "; cin >> M;
    cout << "Year: "; cin >> G;
}

void CDate::WriteDat() {
    cout << D << '.' << M << '.' << G << endl;
}

class Workers {
public:
    char* Name;
    char* EGN;
    float money;
    int DayMonth;
    void getdata();
    void display();
    int getGender();
    CDate getRoDat();
    int getAge(CDate);
};

void Workers::getdata() {
    cin.ignore();
    Name = new char[21];
    cout << "Enter a name: "; getline(cin, Name, 21);
    EGN = new char[11];
    cout << "Enter a EGN: "; cin >> EGN;
    cout << "Enter a day wage money: "; cin >> money;
    cout << "Enter the number of days worked in the month: "; cin >> DayMonth;
}

void Workers::display() {
    cout << "Name: " << Name << "\nEGN: " << EGN << "\nDay wage money: " << money
        << "\nNumber of days worked in the month: " << DayMonth << "\n";
}

int Workers::getGender() {
    char B[2];
    for (int i = 0; i < 2; i++) {
        B[i] = EGN[i + 8

 

Сега го накарах той да ми състави програма за нуждите на производствена организация, която съхранява в масив следните данни за работниците.

-         Име;

-         ЕГН;

-         Размер на дневно заплащане;

-         Брой на отброени дни през месеца и извършва следните операции,избрани от менюто:

-         Добавя към масив данните на нов работник;

-         Извежда имената и възрастта на от всички мъже;

-         Създава нов масив с имената и месечното заплащане на мъжете.

И това е резултата!

Цитат

#include <iostream>
#include <string>
using namespace std;

class CDate {
public:
    int D, M, G;
    void ReadDat();
    void WriteDat();
};

void CDate::ReadDat() {
    cout << "Day: "; cin >> D;
    cout << "Month: "; cin >> M;
    cout << "Year: "; cin >> G;
}

void CDate::WriteDat() {
    cout << D << '.' << M << '.' << G << endl;
}

class Worker {
public:
    string Name;
    string EGN;
    float DaySalary;
    int NumOfDaysOff;
    void GetData();
    void Display();
    int GetGender();
    CDate GetBirthDate();
    int GetAge(CDate);
};

void Worker::GetData() {
    cin.ignore();
    cout << "Enter name: "; getline(cin, Name);
    cout << "Enter EGN: "; cin >> EGN;
    cout << "Enter daily salary: "; cin >> DaySalary;
    cout << "Enter number of days off: "; cin >> NumOfDaysOff;
}

void Worker::Display() {
    cout << "Name: " << Name << "\nEGN: " << EGN << "\nDaily salary: " << DaySalary <<
        "\nNumber of days off: " << NumOfDaysOff << "\n";
}

int Worker::GetGender() {
    char B[2];
    strncpy(B, EGN.c_str() + 8, 1); B[1] = '\0';
    return stoi(B) % 2;
}

CDate Worker::GetBirthDate() {
    char b[3];
    CDate BirthDate{};
    strncpy(b, EGN.c_str(), 2);   b[2] = '\0'; BirthDate.G = stoi(b) + 1900;
    strncpy(b, EGN.c_str() + 2, 2); b[2] = '\0'; BirthDate.M = stoi(b);
    strncpy(b, EGN.c_str() + 4, 2); b[2] = '\0'; BirthDate.D = stoi(b);
    return BirthDate;
}

int Worker::GetAge(CDate CurrentDate) {
    CDate BirthDate = GetBirthDate();
    int Age = CurrentDate.G - BirthDate.G;
    if (CurrentDate.M < BirthDate.M || CurrentDate.M == BirthDate.M && CurrentDate.D < BirthDate.D)Age--;
    return Age;
}

void OutputMaleNamesAndAges(Worker* pWorkers, int NumOfWorkers) {
    CDate CurrentDate;
    for (int i = 0; i < NumOfWorkers; i++)
        if (pWorkers[i].GetGender() == 0) {
            cout << "Name: " << pWorkers[i].Name << endl;
            cout << "Age: " << pWorkers[i].GetAge(CurrentDate) << endl;
        }
}

void CreateNewArrayWithMaleNamesAndMonthlySalary(Worker* pWorkers, int NumOfWorkers) {
    Worker* pMaleWorkers = new Worker[NumOfWorkers];
    int NumOfMales = 0;
    for (int i = 0; i < NumOfWorkers; i++) {
        if (pWorkers[i].GetGender() == 0) {
            pMaleWorkers[NumOfMales].Name = pWorkers[i].Name;
            pMaleWorkers[NumOfMales].DaySalary = pWorkers

 

 

Хубаво, че ползвате ChatGPT, ама да го бяхте изчакали да си допише кода ^^

Ето какво ми изкара на мен, директно копи/пейст, без никаква редакция:

#include <iostream>
#include <string>
#include <vector>
using namespace std;

struct Employee {
  string name;
  string number;
  double payment;
  int days_worked;
  char gender;
  int age;
};

int main() {
  const int MAX_EMPLOYEES = 10;
  Employee employees[MAX_EMPLOYEES];
  int num_employees = 0;

  while (true) {
    // Show menu
    cout << "Select an option:" << endl;
    cout << "1. Add a new employee to the array" << endl;
    cout << "2. Select all men with their name and age" << endl;
    cout << "3. Create a new array containing the men's name and monthly salary" << endl;
    cout << "4. Exit" << endl;

    int choice;
    cin >> choice;

    if (choice == 1) {
      if (num_employees < MAX_EMPLOYEES) {
        // Add a new employee
        cout << "Enter name for employee " << num_employees + 1 << ": ";
        cin.ignore();
        getline(cin, employees[num_employees].name);

        cout << "Enter 10-digit number for employee " << num_employees + 1 << ": ";
        getline(cin, employees[num_employees].number);

        cout << "Enter daily payment for employee " << num_employees + 1 << ": ";
        cin >> employees[num_employees].payment;

        cout << "Enter number of days worked for employee " << num_employees + 1 << " this month: ";
        cin >> employees[num_employees].days_worked;

        cout << "Enter gender for employee " << num_employees + 1 << " (M/F): ";
        cin >> employees[num_employees].gender;

        cout << "Enter age for employee " << num_employees + 1 << ": ";
        cin >> employees[num_employees].age;

        num_employees++;
        cout << "Employee added." << endl;
      } else {
        cout << "Array is full. Cannot add more employees." << endl;
      }
    } else if (choice == 2) {
      // Select all men with their name and age
      for (int i = 0; i < num_employees; i++) {
        if (employees[i].gender == 'M') {
          cout << "Name: " << employees[i].name << endl;
          cout << "Age: " << employees[i].age << endl;
          cout << endl;
        }
      }
    } else if (choice == 3) {
      // Create a new array containing the men's name and monthly salary
      vector<string> men_names;
      vector<double> men_salaries;

      for (int i = 0; i < num_employees; i++) {
        if (employees[i].gender == 'M') {
          men_names.push_back(employees[i].name);
          men_salaries.push_back(employees[i].payment * employees[i].days_worked);
        }
      }

      cout << "Men's names and monthly salaries:" << endl;
      for (int i = 0; i < men_names.size(); i++) {
        cout << men_names[i] << ": $" << men_salaries[i] << endl;
      }
    } else if (choice == 4) {
      // Exit the program
      break;
    } else {
      cout << "Invalid choice. Please try again." << endl;
    }

    cout << endl;
  }

  return 0;
}

 

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Публикацията ви съдържа термини, които не допускаме! Моля, редактирайте съдържанието си и премахнете подчертаните думи по-долу. Ако замените букви от думата със звездички или друго, за да заобиколите това предупреждение, профилът ви ще бъде блокиран и наказан!
Напишете отговор в тази тема...

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.