Loading:

Postanowienia noworoczne - a Ty czego nauczysz się w nowym roku? [-25%]

Sprawdź płeć

Prosty program który na podstawie podanego imienia określa płeć. Działa to oczywiście poprawnie tylko dla polskich imion, nie posiada również żadnej bazy danych, na podstawie której można by określić, że "akoooossoso" nie jest prawidłowym imieniem. Jedynym zabezpieczeniem jest ograniczenie wprowadzanych znaków do liter.

Program działa bardzo prosto. Polskie imiona kończące się na "a" to imiona żeńskie, pozostałe to imiona męskie. Jedynym wyjątkiem jest imię "Kuba" (jednak jest to tak na prawdę zdrobnienie), więc to zostało oddzielnie zabezpieczone. 



Napisz Artykuł

Listing

#include <cstdlib>
#include <iostream>
#include <string>
#include <ctype.h>

using namespace std;

int IloscLiter(string Imie);
bool Plec(string Imie, int IloscLiter);
string PoprawImie(string Imie);
bool SprawdzDane(string Imie);

int main(int argc, char *argv[])
{
     string pImie;
     cout << " Podaj swoje imie: ";
     cin >> pImie;
     if(!SprawdzDane(pImie)){
          while(!SprawdzDane(pImie)){
          cout << " Podales bledne dane. Sprobuj jeszcze raz: ";
          cin >> pImie;
          }
     }
     cout << endl << " Czesc " << PoprawImie(pImie) << "! Moim zdaniem ";
     if(Plec(PoprawImie(pImie),IloscLiter(pImie))) cout << "jestes mezczyzna." << endl;
     else cout << "jestes kobieta." << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

bool SprawdzDane(string Imie){
     int i=0; int a=0;
     while(Imie[i] != 0){
          if((Imie[i] < 'a' || Imie[i] > 'z') && (Imie[i] < 'A' || Imie[i] > 'Z') || (Imie[i] == 32)) a++;
          i++;
     }
     if(a>0) return false;
     else return true;
}

string PoprawImie(string Imie){
     int i=0;
     while(Imie[i] != '\0'){
          Imie[i] = tolower(Imie[i]);
          i++;
     }
     Imie[0] = toupper(Imie[0]);
     return Imie;
}

bool Plec(string Imie, int IloscLiter){
     if(Imie[IloscLiter] == 'a' && Imie == "Kuba") return true;
     if(Imie[IloscLiter] != 'a') return true;
     else return false;
}

int IloscLiter(string Imie){
     int i=0;
     while(Imie[i] != '\0') i++;
     return i-1;
}
 


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=12821

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: bari Ranga: Poziom 8 Punktów: 250
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors