1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 32
|
||||||
1 | ||||||
Создать линейный список "Анкета"24.04.2010, 16:54. Просмотров 3138. Ответов 8
Метки нет Все метки)
(
условие: Анкета для опроса населения содержит две группы вопросов. Первая группа содержит сведения о респонденте: 1)возраст 2)пол 3)образование(начальное, среднее, высшее).Вторая группа содержит собственно вопрос анкеты, ответом на который может являться либо ДА либо НЕТ. Нужно написать программу, которая:
1)обеспечивает начальный ввод анкет и формирует из них линейный список; 2) на основе анализа анкет выдаёт ответы на следующие вопросы: а)сколько мужчин старше 40 лет, имеющих высшее образование, ответили ДА на вопрос анкеты; а)сколько женщин моложе 30 лет, имеющих начальное образование ответили НЕТ на вопрос анкеты; а)сколько мужчин моложе 24 лет, имеющих начальное образование, ответили ДА на вопрос анкеты; 3)производит вывод всех анкет на экран и ответов на вопросы. Программа должна обеспечивать диалог с помощью меню и контроль ошибок при вводе. я делала её с файлом, она почти правильно работает, у меня не получается сделать во второй части задачи второй пункт, я придумала кое-что другое, и у меня какой-то косяк, если я ввожу в файл 5 анкет, то прога не работает ![]()
0
|
|
24.04.2010, 16:54 | |
Создать линейный список "Картотека абонентов" Создать линейный список "Сведения о квартирах" Реализовать структуру "Анкета" с полями "Фамилия", "Пол" и "Адрес" |
|
372 / 286 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
||||||
24.04.2010, 19:19 | 2 | |||||
строка 98:
и, кстати, где файл?
0
|
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 32
|
|
24.04.2010, 19:39 [ТС] | 3 |
вот файл, хороший вопрос, надо подумать)
0
|
372 / 286 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
|
25.04.2010, 14:28 | 4 |
я тут в файл ввел поболие пяти анкет и все работало. даже не знаю что сказать. выполнимый файл 0.exe прилогаю в архиве.
0
|
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 32
|
|
25.04.2010, 14:42 [ТС] | 5 |
а программа, так можно оставить как у меня сделано, просто не могу сделать то что от меня требует задача(((
0
|
372 / 286 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
||||||
25.04.2010, 15:12 | 6 | |||||
ааа.
![]()
алгоритм прост: проходим по списку, проверяя поля каждой структуры. ели поля нам подходят то прибавляем к возвращаемому значению 1, если не полдхотдят то ничего не прибавляем, и конечно же достигнув конца списка надо вернуть 0, ибо в пустом списке искомых человек в любом случае ноль. моя функция врядле заработает в твоей проге, тебе придется немного подправить её синтаксис, но смысл правильный. если работать не будет то надо добавить к структуре конструктор или просто в прогие прописать чтобы поле next по умолчанию инициализировалось нулем.
0
|
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 32
|
|
25.04.2010, 20:44 [ТС] | 7 |
а можно её этим не усложнять, а сделать проще, отойти от условия, а то меня классы с конструкторами ждут))
Добавлено через 5 часов 26 минут она вообще неправильно работает ![]()
0
|
372 / 286 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
||||||
26.04.2010, 16:06 | 8 | |||||
![]() Решение
"отойти от условия" - это как это? О_О типа отсебятину навалить?
кажется ты не сама писала программу... я немного добавил к программе и теперь она решает поставленную задачу: 1. кодировка в базе какая-то совсем левая, я не стал с этим разбираться ибо это твое дело, я просто сделал записи латинскими буквами. файл с базой прилагается. 2. я добавил функцию int count(Man*,int,char[],char[],char[]); для подсчета записей в которых ответы равны аргументам функции. раз уж в программе разрешено пользоваться классом string (судя по подключенному заголовочнику string.h) то нужно было сделать поля структур string'ами а не массивами чаров. 3. так как в программе подсчет не предусматривался (по крайней мере я не нашел где считается сколько человек как на что ответили), а он нужен по заданию, я добавил пункт в меню в функции void find(Man*); и еще добавил в переключателе блок для этого пункта. Все добавления выделены комментариями очень отчетливо. тебе следует добавить еще аналогичных пунктов в меню для подсчета других людей, сделай это, используя мою функцию int count(Man*,int,char[],char[],char[]); обрати внимание: функция count посчитала только те записи, у которых все поля совпадают с заданными. вот прога:
3
|
StudentIIDS
|
|
21.12.2010, 02:26 | 9 |
Aye Aye, спасибо большое!)) Мне похожее задание задали, правда, насколько я понял, там: "1)обеспечивает начальный ввод анкет" тоесть с клавиатуры, но это уже пустяки.
![]() |
21.12.2010, 02:26 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Создать список из целых чисел. После каждого элемента, равного "х" вставить элемент, равный "у"
Реализовать структуру данных "Линейный список" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |