Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/89: Рейтинг темы: голосов - 89, средняя оценка - 4.74
 Аватар для Дилярочка
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 37

Программа-анкета для опроса населения

14.05.2014, 19:29. Показов 17618. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста написать программу на C#.можно и в консоли.
Анкета для опроса населения содержит две группы вопросов
Первая группа содержит сведения о респонденте:
- возраст;
- пол;
- образование (начальное, среднее, высшее).
Вторая группа содержит собственно вопрос анкеты, ответ на который ДА
или НЕТ.
Разработать программу, которая:
- обеспечивает начальный ввод анкет и формирует из них линейный список;
- на основе анализа анкет выдает ответы на следующие вопросы:
1) сколько мужчин старше 40 лет, имеющих высшее образование,
ответили ДА на вопрос анкеты;
2) сколько женщин моложе 30 лет, имеющих среднее образование,
ответили нет на вопрос анкеты;
3) сколько мужчин моложе 25 лет, имеющих начальное образование,
ответили ДА на вопрос анкеты;
4) производит вывод всех анкет и ответов на вопросы.
Программа должна обеспечивать диалог с помощью меню и контроль
ошибок при вводе.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.05.2014, 19:29
Ответы с готовыми решениями:

Анкета для опроса населения
Помогите пожалуйста написать программу на C# Анкета для опроса населения содержит две группы вопросов Первая группа содержит...

Линейный список с анкетой для опроса населения
Анкета для опроса населения содержит две группы вопросов. Первая группа содержит сведения о респонденте: возраст; пол; ...

Клиент-сервер, программа для опроса
Вообщем ситуация такая: Хочу написать программу для того что бы опросить пользователей . Предполагается что есть n количество...

9
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
14.05.2014, 19:34
Дилярочка, свои наработки какие-нибудь есть?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
14.05.2014, 19:37
Дилярочка, ятд что тут оптимальный вариант-реализовать класс Респондент, с определенными свойствами, а потом создавать объекты при опросе столько, сколько понадобится. После опроса отфильтровывать нужные данные.
0
 Аватар для Дилярочка
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 37
14.05.2014, 19:49  [ТС]
я не знаю как сделать вторую группу,где нужно составить вопрос с ответом Да Нет.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
14.05.2014, 19:55
Дилярочка, а зачем это? У каждого респондента поле типа bool, и при опросе этому полю присваивается true или false, в зависимости от ответа.
0
 Аватар для Дилярочка
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 37
14.05.2014, 20:09  [ТС]
мне бы узнать как начать.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
14.05.2014, 20:52
Цитата Сообщение от Дилярочка Посмотреть сообщение
мне бы узнать как начать.
Дилярочка, с самого начала.
По теме - сейчас соображу что-нибудь подобное...
0
 Аватар для Дилярочка
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 37
14.05.2014, 20:55  [ТС]
спасибо)
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
14.05.2014, 22:44
Лучший ответ Сообщение было отмечено Дилярочка как решение

Решение

Дилярочка, вот что получилось. К сожалению, комментов почти нет. Мало времени на них.
Вариант для консоли.
Отдельный класс Респондент.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication25
{
    //Класс Responder
    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
    }
}
Собственно сама программа.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication25
{
    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);
            }
        }
    }
}
Проверяйте.
1
 Аватар для Дилярочка
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 37
15.05.2014, 13:14  [ТС]
Большое спасибо!)вы мне очень помогли!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.05.2014, 13:14
Помогаю со студенческими работами здесь

Программа анкета
Всем привет, если не по теме то простите, и если вопрос уже поднимался и закрыт, то ткните носам, где эта тема. У нас препод задал...

Программа-анкета: использовать файл записей
Добрый день! Помогите пожалуйста с программой. Нужно написать её как файл записей. Я попробовала, но что-то не особо получилось....

Программа-Анкета: собственный ответ анкетируемого?
Я пишу прогу-анкету, используя RadioButton, но как быть когда помимо имеющихся вариантов ответов, есть собственный ответ анкетируемого? Как...

Не работает программа опроса персонала на месторождении
В одном месте происходит ошибка, подскажите пожалуйста в чем дело, за ранее спасибо. unit Unit1; interface uses Windows,...

Программа опроса счетчика меркурий 206 rn по rs485
есть счетчик меркурий 206 rn есть конвертер rs 485 to Ethernet как реализовать на C# опрос счетчика? чтобы получить текущие показания...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru