Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ВАваф
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 51
#1

Фамилии - C++

07.12.2013, 14:11. Просмотров 584. Ответов 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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <vector>
#include <string>
#include <clocale>
#include <windows.h>
using namespace std;
int main ()
{setlocale(LC_ALL, "");
std::vector<std::string> students; // Создание вектора из строк
std::string mesto = "";    // Буфер для ввода фамилии студента
std::cout << "Вводите фамилии студентов, "
              << "по окончанию ввода, введите пустую строку" << std::endl;
do {
        std::getline(std::cin, mesto);
        if (mesto.size() > 0) {            // Добавление элемента в конец вектора
            students.push_back(mesto);
        }
    } while (mesto != "");              
unsigned int vector_size = students.size();     // Сохраняем количество элементов вектора 
std::cout << "Фамилии:" << std::endl;
    for (int i = 0; i < vector_size; i++) {             // Вывод заполненного вектора на экран
        SetConsoleCP(1251);
        std::cout << students[i] << std::endl; 
    }
_getch ();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2013, 14:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Фамилии (C++):

Используя класс list, в котором храняться фамилии студентов группы, организовать поиск по фамилии - C++
Дали задание: используя класс list, в котором храняться фамилии студентов группы, организовать поиск по фамилии. Не могу создать list с уже...

Сортировка по фамилии - C++
Добрый день. Имеется Линейный список , содержащийся в следующей структуре. struct my{ string info; //фамилия int...

сортировка по фамилии - C++
написал программу которая сортирует по году и по фамилии, но вот только по фамилии не сортирует прекращает работу, в чем тут ошибки не...

Сортировка по фамилии - C++
Задание: Разработать классы для описанных ниже объектов. File: Имя файла, Размер, Дата создания, Количество обращений. Создать массив...

Распознавание имени и фамилии - C++
Вводим 2 String (текста а именно Имя Фамилия). Программа должна росчетать длину етих джвух слов. Та строка которая кароче прога должна...

Сортировка по фамилии и имени - C++
Помогите написать сортировку имени и фамилии!

3
Yanush
159 / 156 / 46
Регистрация: 28.09.2013
Сообщений: 288
Завершенные тесты: 1
07.12.2013, 15:13 #2
Это по сути невозможно. Есть конечно некоторые, которые можно точно выделить (например: "ин", "ов" для мужских). Большинство будут попадать в категорию, по которым невозможно определить пол.
Самый приемлемый вариант это открыть список фамилий и выделить наиболее часто встречающиеся окончания, а остальные кидать в 3ю категорию.
1
ВАваф
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 51
07.12.2013, 18:24  [ТС] #3
Цитата Сообщение от Yanush Посмотреть сообщение
Это по сути невозможно. Есть конечно некоторые, которые можно точно выделить (например: "ин", "ов" для мужских). Большинство будут попадать в категорию, по которым невозможно определить пол.
Самый приемлемый вариант это открыть список фамилий и выделить наиболее часто встречающиеся окончания, а остальные кидать в 3ю категорию.
Я понимаю, просто я не знаю, как рассмотреть окончания слов, мне это надо...

Препод просто такой... Нифига не объясняет, требует дофига...

Добавлено через 3 часа 8 минут
Heeeelp
0
daslex
1286 / 530 / 109
Регистрация: 02.08.2011
Сообщений: 2,750
07.12.2013, 19:31 #4
Универсально такую штуку не напишешь это факт.
Вряд ли от вас требуют реализации действительно сложного алгоритма.
можно взять всего по 2 окончания (которые в голову первыми приходят)
для жен - а,я
для муж - ин,в
и делать по ним.

Можно, конечно возразить, что есть еще окончания, по которым можно пол определить, но мне они в голову не пришли.
Если врубиться в смысл приведенного ниже примера, то поправить его не должно быть сложно. Сделан он как выше сказано для большинства, но даже так в него могут попадать фамилии, которые точно определяться не могут. Например женская "Сатин" будет определяться как мужская. Сама эта задача не может иметь правильных решений.
=================================
Пример
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
#include <iostream>
#include <clocale>
#include <string.h>
 
 
using namespace std;
 
const char W[]={'а','я'};
const char M[]={'н','в'};
 
 
int main()
{
  //setlocale(LC_ALL,"");
  string S;
  getline(cin,S);
 
 
 
  int len=S.size()/sizeof(char);
  int len_w = sizeof(W)/sizeof(*W);
 
 
    for (int i=0;i<len_w;i++)
    {
        switch (S[len-1])
        {
            case 'а'-64: setlocale(LC_ALL,"");  cout<<"Женская\n"; return 0; break;
            case 'я'-16: setlocale(LC_ALL,"");  cout<<"Женская\n"; return 0; break;
            case 'н'-64: if (S[len-2]=='и'-64)
                         {
                            setlocale(LC_ALL,"");
                            cout<<"Мужская\n";
                            return 0;
                          }
                          else break;
 
            case 'в'-64: setlocale(LC_ALL,"");  cout<<"Мужская\n"; return 0; break;
        }
    }
 
     setlocale(LC_ALL,""); cout<<"не могу определить\n";
    return 0;
}
1
07.12.2013, 19:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2013, 19:31
Привет! Вот еще темы с ответами:

сортировка по фамилии пузырьком - C++
Написала сортировку по фамилии пузырьком. на вход подается petrov petr petrovich 5 5 5 5 5 ivanov ivan ivanovich 5 5 5 5 5 ivanov...

удалить повторяющиеся фамилии - C++
Здравствуйте, многоуважаемые умы.. Передо мной стояла задача такая: &quot;Сведения о выдаче экземпляра журнала состоят из названия журнала,...

Сортировка по фамилии в структуре - C++
Посмотрите пожалуйста структуру Студент! Нужно сделать сортировку по фамилии.Думаю, что с функцией strcmp что-то не так... Задание:...

Получить из БД фамилии и упорядочить их - C++
Задача такая в БД упорядочить фамилии по алфавиту. То бишь есть БД в ней даны фамилии 5 - 10 штук и их надо упорядочить по алфавиту...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.