Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2021, 17:09   #1
Korol12
Пользователь
 
Регистрация: 07.05.2020
Сообщений: 16
Сообщение Переписать с C# на C++. Анкета для опроса населения

Анкета для опроса населения содержит две группы вопросов. Первая группа содержит сведения о респонденте: 1)возраст 2)пол 3)образование(начальное, среднее, высшее).Вторая группа содержит собственно вопрос анкеты, ответом на который может являться либо ДА либо НЕТ. Нужно написать программу, которая:
1)обеспечивает начальный ввод анкет и формирует из них линейный список;
2) на основе анализа анкет выдаёт ответы на следующие вопросы: а)сколько мужчин старше 40 лет, имеющих высшее образование, ответили ДА на вопрос анкеты; а)сколько женщин моложе 30 лет, имеющих начальное образование ответили НЕТ на вопрос анкеты; а)сколько мужчин моложе 24 лет, имеющих начальное образование, ответили ДА на вопрос анкеты;
3)производит вывод всех анкет на экран и ответов на вопросы.
Программа должна обеспечивать диалог с помощью меню и контроль ошибок при вводе.

Может кто переписать пожалуйста на С++

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ECSAnketaCS
{
    public class Responder
    {
        public string FirstName { get; private set; }
        public string SecondName { get; private set; }
        public string LastName { get; private set; }
        public int Age { get; private set; }
 
        public string Sex { get; private set; }
        public string Education { get; private set; }
 
        public bool Answer { get; set; }
 
        public Responder() { }
        public Responder(string fN, string sN, string lN, int a, string s, string e)
        {
            FirstName = fN;
            LastName = lN;
            SecondName = sN;
            Age = a;
            Sex = s;
            Education = e;
        }
        public override string ToString()
        {
            return string.Format("Фамилия: {0}, Имя: {1}, Отчество: {2}",
                                FirstName, SecondName, LastName);
        }
    }
    public enum Sex
    {
        Male = 1,
        Female = 2
    }
    public enum Education
    {
        Higth = 1,
        Middle = 2,
        Primary = 3
    }
    class Program
    {
        static void Main(string[] args)
        {
            int count;
            Console.WriteLine("Введите количество респондентов: ");
            while (!int.TryParse(Console.ReadLine(), out count))
            { Console.WriteLine("Ввод не верный! Повторите еще раз!"); }
 
            List<Responder> responders = new List<Responder>();
            //Ввод данных выбранного количества респондентов
            for (int i = 0; i < count; i++)
            {
                Console.WriteLine("Введите имя: ");
                string fName = Console.ReadLine();
 
                Console.WriteLine("Введите отчество: ");
                string sName = Console.ReadLine();
 
                Console.WriteLine("Введите фамилию: ");
                string lName = Console.ReadLine();
 
                Console.WriteLine("Введите возраст: ");
                int age;
                while (!int.TryParse(Console.ReadLine(), out age))
                { Console.WriteLine("Ввод не верный! Повторите еще раз!"); }
 
                Console.WriteLine("Выберите пол: [1] мужчина, [2] женщина: ");
                string sex = Console.ReadLine();
                while (!(sex == "1" || sex == "2"))
                {
                    Console.WriteLine("Ввод не верный! Повторите еще раз!");
                    sex = Console.ReadLine();
                }
 
 
                Console.WriteLine("Выберите уровень образования: [1] высшее, [2] среднее, [3] начальное: ");
                string educ = Console.ReadLine();
                while (!(educ == "1" || educ == "2" || educ == "3"))
                {
                    Console.WriteLine("Ввод не верный! Повторите еще раз!");
                    educ = Console.ReadLine();
                }
 
                responders.Add(new Responder(fName, sName, lName, age,
                               Enum.GetName(typeof(Sex), int.Parse(sex)),
                               Enum.GetName(typeof(Education), int.Parse(educ))));
 
            }
            //Опрос все респондентов
            for (int j = 0; j < responders.Count; j++)
            {
                Console.WriteLine("Введите ответ на вопрос для:\n{0}: \n[1] Да, [2] Нет", responders[j].ToString());
                string answ = Console.ReadLine();
                while (!(answ == "1" || answ == "2"))
                {
                    Console.WriteLine("Ввод не верный! Повторите еще раз!");
                    answ = Console.ReadLine();
                }
                responders[j].Answer = (answ == "1") ? true : false;
            }
 
            //Выбор вариантов вывода
            Console.WriteLine("Выберите вариант вывода данных: [1], [2], [3], [4]: ");
            string option = Console.ReadLine();
            while (!(option == "1" || option == "2" || option == "3" || option == "4"))
            {
                Console.WriteLine("Ввод не верный! Повторите еще раз!");
                option = Console.ReadLine();
            }
 
            switch (option)
            {
                case "1":
                    Option1(responders);
                    break;
                case "2":
                    Option2(responders);
                    break;
                case "3":
                    Option3(responders);
                    break;
                case "4":
                    Option4(responders);
                    break;
            }
            Console.WriteLine("Программа завершена! Нажмите Enter для выхода...");
            Console.ReadLine();
        }
        //Метод варианта 1
        static void Option1(List<Responder> responders)
        {
            var result = from n in responders
                         where (n.Age > 40 && n.Sex == "Male" && n.Answer == true)
                         select n;
            foreach (var r in result)
            {
                Console.WriteLine("{0}, Ответ: {1}", r.ToString(), r.Answer);
            }
        }
        //Метод варианта 2
        static void Option2(List<Responder> responders)
        {
            var result = from n in responders
                         where (n.Age < 30 && n.Sex == "Female" && n.Education == "Middle" && n.Answer == false)
                         select n;
            foreach (var r in result)
            {
                Console.WriteLine("{0}, Ответ: {1}", r.ToString(), r.Answer);
            }
        }
        //Метод варианта 3
        static void Option3(List<Responder> responders)
        {
            var result = from n in responders
                         where (n.Age < 25 && n.Sex == "Male" && n.Education == "Middle" && n.Answer == true)
                         select n;
            foreach (var r in result)
            {
                Console.WriteLine("{0}, Ответ: {1}", r.ToString(), r.Answer);
            }
        }
        //Метод варианта 4
        static void Option4(List<Responder> responders)
        {
            foreach (Responder r in responders)
            {
                Console.WriteLine("{0}, Ответ: {1}", r.ToString(), r.Answer);
            }
        }
    }
}
Korol12 вне форума Ответить с цитированием
Старый 25.10.2021, 17:20   #2
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Есть вроде конвертаторы...
https://www.tangiblesoftwaresolution...r_details.html - не пробовала.
rita616 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Квитанции для населения в Exel с QR-кодом Kuz43 Фриланс 9 29.05.2019 19:56
Анкета для работодателей jura_k Свободное общение 5 20.09.2018 18:47
Скрипт для опроса farm95 JavaScript, Ajax 1 20.02.2014 11:43
Алгоритмом для опроса GSM модема qZED Свободное общение 4 03.05.2013 18:40
Консультация у специалистов - опросная анкета для программистов viild Свободное общение 5 07.04.2011 20:08