-
-
C++ запитване
#include <iostream> #include <stdlib.h> #include <conio.h> #include <string> using namespace std; class Student { private: string name; string EGN; string university; string facNum; string specialnost; float tochki; public: void display(); void getData(); string getName(); string getUniversity(); string getfacNum(); string getSpecialnost(); string getEGN(); float getTochki(); bool getPol(); }; bool Student::getPol() { char pol = EGN[8]; int gpol = pol - '0'; return gpol % 2 != 0; } string Student::getEGN() { return EGN; } string Student::getName() { return name; } string Student::getUniversity() { return university; } string Student::getfacNum() { return facNum; } string Student::getSpecialnost() { return specialnost; } float Student::getTochki() { return tochki; } void Student::getData() { cin.ignore(); cout << "Въведи име: "; getline(cin, name); cout << "Въведи ЕГН: "; getline(cin, EGN); cout << "Въведи университет: "; getline(cin, university); cout << "Въведи факултетен номер: "; getline(cin, facNum); cout << "Въведи специалност: "; getline(cin, specialnost); cout << "Въведи точки: "; cin >> tochki; } void Student::display() { cout << "---Студент---" << endl; cout << "Име: " << name << endl; cout << "ЕГН: " << EGN << endl; cout << "Университет: " << university << endl; cout << "Факултет: " << facNum << endl; cout << "Специалност: " << specialnost << endl; cout << "Брой събрани точки от студента: " << tochki << endl; cout << endl; } class CStudent { private: string name; string EGN; string school; string klas; int ctochki; public: void display(); void getData(); string getName(); string getSchool(); string getKlas(); int getCTochki(); }; string CStudent::getName() { return name; } string CStudent::getSchool() { return school; } string CStudent::getKlas() { return klas; } int CStudent::getCTochki() { return ctochki; } void CStudent::getData() { cin.ignore(); cout << "Въведете име: "; getline(cin, name); cout << "Въведете ЕГН: "; getline(cin, EGN); cout << "Въведете училище: "; getline(cin, school); cout << "Въведете клас: "; getline(cin, klas); cout << "Въведете броя събрани точки от ученика: "; cin >> ctochki; } void CStudent::display() { cout << "---Ученик---" << endl; cout << "Име: " << name << endl; cout << "ЕГН: " << EGN << endl; cout << "Училище: " << school << endl; cout << "Клас: " << klas << endl; cout << "Брой събрани точки от ученика: " << ctochki << endl; cout << endl; } int main() { system("chcp 1251"); int countStudent = 0; int countCStudent = 0; int highpoints = 0; Student students[20]; CStudent cstudents[20]; char codeOp; do { cout << "1 - добавя данни за студент " << endl; cout << "2 - добавя данни за ученик " << endl; cout << "3 - извежда всички въведени данни " << endl; cout << "4 - извежда името на ученика с най-много точки; " << endl; cout << "5 - създава масив с данните на всички студентки. " << endl; cout << "Посочете операция или 0 за край: " << endl; cin >> codeOp; switch (codeOp) { case'0': break; case'1': cout << "Въведете данните на студента: " << endl; students[countStudent++].getData(); break; case'2': cout << "Въведете данните на ученика: " << endl; cstudents[countCStudent++].getData(); break; case '3': cout << "Всички студенти и ученици: " << endl; for (int i = 0; i < countStudent; i++) { students[i].display(); } for (int i = 0; i < countCStudent; i++) { cstudents[i].display(); } break; case '4': cout << "Ученика с най-много точки: " << endl; for (int i = 0; i < countCStudent; i++) { if (cstudents[i].getCTochki() > highpoints) { highpoints = cstudents[i].getCTochki(); cout << "Име: " << cstudents[i].getName() << endl; } } break; case '5': cin.ignore(); cout << "Данните на всички студентки: " << endl; for (int i = 0; i < countStudent; i++) { if (students[i].getPol()) { cout << "Име: " << students[i].getName() << endl; cout << "ЕГН: " << students[i].getEGN() << endl; cout << "Университет: " << students[i].getUniversity() << endl; cout << "Факултетен номер: " << students[i].getfacNum() << endl; cout << "Специалност: " << students[i].getSpecialnost() << endl; cout << "Събрани точки: " << students[i].getTochki() << endl; } } break; default: cout << "Error! " << endl; break; } } while (codeOp != 0); } case 4 би трябвало да ми изкарва името на ученика с най-много точки, но ми изкарва имената на учениците.
-
C++ задача
#include <iostream> #include <stdlib.h> #include <string> using namespace std; class Employee { private: string name; string EGN; float payment; int workingdays; public: void setData(); void display(); string getName(); float getpayment(); int getWorkingdays(); bool getPol(); bool getMonth(); }; string Employee::getName() { return name; } float Employee::getpayment() { return payment; } int Employee::getWorkingdays() { return workingdays; } bool Employee::getMonth() { char m = EGN[2]; char n = EGN[3]; int month = EGN[2] - '0' + EGN[3] - '0'; if (month < 13) { return month; } else if (21 < month < 32) { int n = month - 20; return n; } else if (41 < month < 52){ int t = month - 40; return t; } else { cout << "Въведено грешно ЕГН: " << endl; } } // Член - функция за намиране пола bool Employee::getPol() { char pol = EGN[8]; int gpol = pol - '0'; return gpol % 2 == 0; } void Employee::setData() { cin.ignore(); cout << "Въведи име: "; getline(cin, name); cout << "Въведи ЕГН: "; getline(cin, EGN); cout << "Въведи дневно заплащане: "; cin >> payment; cout << "Въведи брой отработени дни през месеца: "; cin >> workingdays; } void Employee::display() { cout << "Име: " << name << endl; cout << "ЕГН: " << EGN << endl; cout << "Дневно заплащане: " << payment << endl; cout << "Брой отработени дни: " << workingdays << endl; } int main() { system("chcp 1251"); Employee employees[20]; int countST = 0; string month; char codeOp; do { cout << "1 - добавя данни за нов работник " << endl; cout << "2 - извежда всички въведени данни " << endl; cout << "3 - извежда имената на мъжете с най-малко със заработка между 300 и 500 лв " << endl; cout << "4 - създава нов масив с имената и за жените със заработка над 300 лв, родени през посочен месец. " << endl; cout << "Посочете операция или 0 за край: " << endl; cin >> codeOp; switch (codeOp) { case'0': break; case'1': employees[countST++].setData(); break; case'2':cout << "Списък на всички работници: " << endl; for (int i = 0; i < countST; i++) { employees[i].display(); } break; case'3':for (int i = 0; i < countST; i++) { if (employees[i].getPol() && 300 <= employees[i].getpayment() <= 500) { cout << "Име: " << employees[i].getName() << endl; cout << "Заплащане: " << employees[i].getpayment() << endl; } } break; case'4': cin.ignore(); cout << "Имената на жените със заработка над 300лв." << endl; for (int i = 0; i < countST; i++) { cout << "Задай месец: "; getline(cin, month); if (employees[i].getMonth() && employees[i].getpayment() >= 300) { if (employees[i].getPol() != 0) { cout << "Име: " << employees[i].getName() << endl; } } } break; default: cout << "Error! " << endl; break; } } while (codeOp != 0); } Направих функция за превръщането на EGN[2] и EGN[3] в int bool Employee::getMonth() { char m = EGN[2]; char n = EGN[3]; int month = EGN[2] - '0' + EGN[3] - '0'; if (month < 13) { return month; } else if (21 < month < 32) { int n = month - 20; return n; } else if (41 < month < 52){ int t = month - 40; return t; } else { cout << "Въведено грешно ЕГН: " << endl; } } В main кода не ми изкарва имената на жените над 300лв заработка по зададен месец. Също в main имам string month. case'4': cin.ignore(); cout << "Имената на жените със заработка над 300лв." << endl; for (int i = 0; i < countST; i++) { cout << "Задай месец: "; getline(cin, month); if (employees[i].getMonth() && employees[i].getpayment() >= 300) { if (employees[i].getPol() != 0) { cout << "Име: " << employees[i].getName() << endl; } } } break;
-
C++ задача
Не ми е ясно как трябва да намеря егн по зададен месец. След като превърна EGN[2] и EGN[3] в int какво следва?
-
C++ задача
Как трябва да се срявняват трета и четвъртата цифра от егн-то за да мога да изкарам егн-та родени по посочен месец?
-
C++ задача
Да попитам как да изкарам имената на жените родени през посочен месец? Трябва да имам променливи за ден, месец и година?
-
C++ задача
case'3':for (int i = 0; i < countST; i++) { if (employees[i].getPol() == 0 && 300 <= employees[i].getpayment() <= 500) { cout << "Име: " << employees[i].getName() << endl; } } break; Това би трябвало да извежда имената на мъжете с дневно заплащане между 300 и 500, но извежда на жените.
-
C++ задача
Там е проблема че функцията getPol не работи за намиране на четно или нечетно число за пола
-
DeathHour се регистрира
-
C++ задача
Да се състави програма за нуждите на производствена организация, която съхранява в масив следните данни за работниците: - име; - ЕГН; - размер на дневното заплащане; - брой на отработени дни през месеца; и извършва следните операции, избирани от меню: - добавя към масива данните на нов работник; - извежда всички въведени данни; - извежда имената на мъжете с най-малко със заработка между 300 и 500 лв; - създава нов масив с имената и за жените със заработка над 300 лв, родени през посочен месец. моят код: #include <iostream> #include <stdlib.h> #include <string> using namespace std; class Employee { private: string name; string EGN; float payment; int workingdays; public: void setData(); void display(); string getName(); float getpayment(); int getWorkingdays(); int getPol(); }; string Employee::getName() { return name; } float Employee::getpayment() { return payment; } int Employee::getWorkingdays() { return workingdays; } // Член - функция за намиране пола int Employee::getPol() { char B[2];; strncpy(b, EGN + 8, 1); b[1] = '\0'; return atoi(b) % 2; } void Employee::setData() { cin.ignore(); cout << "Въведи име: "; getline(cin, name); cout << "Въведи ЕГН: "; getline(cin, EGN); cout << "Въведи дневно заплащане: "; cin >> payment; cout << "Въведи брой отработени дни през месеца: "; cin >> workingdays; } void Employee::display() { cout << "Име: " << name << endl; cout << "ЕГН: " << EGN << endl; cout << "Дневно заплащане: " << payment << endl; cout << "Брой отработени дни: " << workingdays << endl; } int main() { system("chcp 1251"); Employee employees[20]; int countST = 0; char codeOp; do { cout << "1 - добавя данни за нов работник " << endl; cout << "2 - извежда всички въведени данни " << endl; cout << "3 - извежда имената на мъжете с най-малко със заработка между 300 и 500 лв " << endl; cout << "4 - създава нов масив с имената и за жените със заработка над 300 лв, родени през посочен месец. " << endl; cout << "Посочете операция или 0 за край: " << endl; cin >> codeOp; switch (codeOp) { case'0': break; case'1': employees[countST++].setData(); break; case'2':cout << "Списък на всички работници: " << endl; for (int i = 0; i < countST; i++) { employees[i].display(); } break; case'3': break; default: cout << "Error! " << endl; break; } } while (codeOp != 0); } Как да намеря пола от ЕГН и да изведа имената на мъжете и отделно на жените?
Разглеждащи това в момента 0
- Няма регистрирани потребители разглеждащи тази страница.