Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <fstream>
- #include <locale>
- using namespace std;
- //
- //
- //а) сколько мужчин старше 40 лет, имеющих высшее образование, ответили ДА на вопрос анкеты;
- //б) сколько женщин моложе 30 лет, имеющих среднее образование, ответили НЕТ на вопрос анкеты
- //в) сколько мужчин моложе 25 лет, имеющих начальное образование, ответили ДА на вопрос анкеты;
- //□производит вывод всех анкет и ответов на вопросы.Программа должна обеспечивать диалог с помощью меню и контроль ошибок при вводе.
- struct point{
- int age;
- bool male;
- short int prof;
- bool quest;
- point* next;
- };
- ifstream f("Text.txt", ios::in);
- point* MakeList(point* beg, int n){
- char quest;
- char male;
- beg->next = NULL;
- //cout << "Возраст?" << endl;
- //cin >> beg->age;
- f >> beg->age;
- //cout << "Введите пол: М or F" << endl;
- //cin >> male;
- f >> male;
- if (male == 'M'){
- beg->male = true;
- }
- else if(male == 'F'){
- beg->male = false;
- }
- else{
- cout << "Ошибка в вводе пола первого анкетируемого! [Необходимо: M или F]" << endl;
- }
- /*cout << "Выберите уровень образования:" << endl;
- cout << "1 - Начальное" << endl << "2 - Среднее" << endl << "3 - Высшее" << endl;
- cin >> beg->prof;
- cout << "Ответ на вопрос анкеты: Y/N" << endl;
- cin >> quest;*/
- f >> beg->prof;
- f >> quest;
- if (quest == 'Y' || quest == 'y'){
- beg->quest = true;
- }
- else{
- beg->quest = false;
- }
- point* r = beg;
- for (int i = 0; i < n - 1; i++){
- point* p = new(point);
- r->next = p;
- p->next = NULL;
- //cout << "Возраст?" << endl;
- //cin >> p->age;
- //cout << "Введите пол: М or F" << endl;
- //cin >> male;
- f >> p->age;
- f >> male;
- if (male == 'M'){
- p->male = true;
- }
- else if (male == 'F'){
- beg->male = false;
- }
- else{
- cout << "Ошибка в вводе пола! [Необходимо: M или F]" << endl;
- }
- //cout << "Выберите уровень образования:" << endl;
- //cout << "1 - Начальное" << endl << "2 - Среднее" << endl << "3 - Высшее" << endl;
- //cin >> p->prof;
- //cout << "Ответ на вопрос анкеты: Y/N" << endl;
- //cin >> quest;
- f >> p->prof;
- f >> quest;
- if (quest == 'Y' || quest == 'y'){
- p->quest = true;
- }
- else{
- p->quest = false;
- }
- r = p;
- }
- return beg;
- }
- void print(point* beg){
- ofstream f("output.txt");
- int i = 1;
- while (beg != NULL){
- cout << "Подопытный #" << 665 + i << " : " << endl;
- cout << "Возраст: " << beg->age << endl;
- cout << "Пол: ";
- if (beg->male == true){
- cout << "Мужчина" << endl;
- }
- else{
- cout << "Женщина" << endl;
- }
- cout << "Образование: ";
- f << "Подопытный #" << 665 + i << " : " << endl;
- f << "Возраст: " << beg->age << endl;
- f << "Пол: ";
- if (beg->male == true){
- f << "Мужчина" << endl;
- }
- else{
- f << "Женщина" << endl;
- }
- f << "Образование: ";
- if (beg->prof == 1){
- cout << "Начальное" << endl;
- f << "Начальное" << endl;
- }
- else if (beg->prof == 2){
- cout << "Среднее" << endl;
- f << "Среднее" << endl;
- }
- else{
- cout << "Высшее" << endl;
- f << "Высшее" << endl;
- }
- cout << "Ответ на вопрос в анкете: ";
- f << "Ответ на вопрос в анкете: ";
- if (beg->quest == 1){
- cout << "Yes" << endl;
- f << "Yes" << endl;
- }
- else{
- cout << "No" << endl;
- f << "No" << endl;
- }
- cout << endl;
- cout << endl;
- f << endl;
- f << endl;
- beg = beg->next;
- i++;
- }
- }
- void Find(point* beg){
- point* p = beg;
- int a=0, b=0, c=0;
- while (p != NULL){
- if (p->age > 40 && p->male == true && p->prof == 3) a++;
- if (p->age < 30 && p->male == false && p->prof == 2) b++;
- if (p->age < 25 && p->male == true && p->prof == 1) c++;
- p = p->next;
- }
- cout << "a)" << a << endl << "б)" << b << endl << "в)" << c << endl;
- }
- void main(){
- setlocale(LC_ALL, "rus");
- int n;
- char make;
- bool flag = true;
- point* beg = new(point);
- beg->age = NULL;
- cout << "Введите кол-во записей" << endl;
- //cin >> n;
- f >> n;
- while (flag){
- cout << endl; cout << endl; cout << endl;
- cout << "Выберите действие:" << endl << "1 - Сформировать список " << endl << "2 - Распечатать данные" << endl << "3 - Поиск анкет" << endl << "4 - Exit" << endl;
- cout << endl; cout << endl;
- cin >> make;
- switch (make)
- {
- case '1': beg = MakeList(beg, n); break;
- case '2': if (beg->age != NULL)print(beg);
- else cout << "Список ещё не сформирован или пуст, воспользуйтесь операцией под номером 1" << endl << "При повторной ошибке обратитесь к разработчику" << endl; break;
- case '3': Find(beg); break;
- case '4': flag = false; break;
- default: cout << "Ошибка ввода" << endl; flag = true;
- break;
- }
- }
- cout << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment