Wątek przeniesiony 2023-10-23 21:07 z C/C++ przez Althorion.

Program poczty z hasłem

0

Potrzebuje rozwiązać zadanie, które moja dziewczyna dostała w szkole, nie kodowałem w tym języku, proszę o pilną pomoc, bo czasu dość mało.

/*
Zmodernizuj tak kod, aby poniższe wymogi były spełnione.
Warunki które musi spełnić wpisywany adres email:
   musi zawierać symbol @ (at)
   nie może zawierac 2 i więcej symboli @
   kropka musi być 3 lub 4 pozycje od lewej
   nie może być kropki na końcu
   znak @ nie może być pierwszy

*/

#include <iostream>
#include <string>
using namespace std;

int main() {
  const string INF_OK = "Hasło do serwisu wysłalismy na adres: ";
  const string INF_BLAD = "Podane adresy e-mail są różne!";

  string imie, nazwisko, adres_1, adres_2;
  int dl;
  cout << "Podaj imie: ";
  cin >> imie;
  cout << "Podaj nazwisko: ";
  cin >> nazwisko;

  cout << "Podaj adres e-mail: ";
  cin >> adres_1;
  dl = adres_1.length();

  cout << "Powtorz adres e-mail: ";
  cin >> adres_2;
  cout << endl;
  cout << "długość emaila wynosi " << dl << endl;
  cout << "znak @ jest na pozycji  od lewej " << adres_1.find("@") << endl;
  cout << "znak @ jest na pozycji gdy szukamy od prawej " << adres_1.find("@")
       << endl;
  if (adres_1.find("@") == 0)
    cout << "zły adres email" << endl;
  if (adres_1.rfind("@") == dl - 1)
    cout << "zły adres email" << endl;
  if (adres_1 == adres_2)
    cout << INF_OK + adres_1 << endl;
  else
    cout << INF_BLAD << endl;

  return 0;
}
2

Jakiej dokładnie pomocy oczekujesz? Z czym konkretnie sobie nie radzisz? Bo jak odpowiedź brzmi „ze wszystkim”, to możemy co najwyżej podręczniki do C++ polecić…

0
Althorion napisał(a):

Jakiej dokładnie pomocy oczekujesz? Z czym konkretnie sobie nie radzisz? Bo jak odpowiedź brzmi „ze wszystkim”, to możemy co najwyżej podręczniki do C++ polecić…

Chętnie zgłębił bym jakieś podstawy i zrobił to sam, lecz czas mnie goni i potrzebuje tego na jutro. Nie wydaje się to trudne dla kogoś kto już miał do czynienia z tym językiem, więc jak poświęciłby trochę czasu na zrobienie tego, byłbym wdzięczny.

0

Oczywiście. Biorę 80 zł za godzinę, wystawiam fakturę.

0

Ja to zrobię za 75 zł/h (na fakturę).

0

Ja zrobię po 200 pln/h, ale ja jestem jak apple

2
#include <iostream>
#include <string>
using namespace std;

int main() {
  const string INF_OK = "Hasło do serwisu wysłaliśmy na adres: ";
  const string INF_BLAD = "Podane adresy e-mail są różne!";

  string imie, nazwisko, adres_1, adres_2;
  int dl;
  cout << "Podaj imię: ";
  cin >> imie;
  cout << "Podaj nazwisko: ";
  cin >> nazwisko;

  cout << "Podaj adres e-mail: ";
  cin >> adres_1;
  dl = adres_1.length();

  // Sprawdź warunki dotyczące adresu e-mail
  size_t atPosition = adres_1.find("@");
  size_t dotPosition = adres_1.find(".");
  size_t lastDotPosition = adres_1.find_last_of(".");
  
  if (atPosition == string::npos || atPosition == 0 || adres_1.find("@", atPosition + 1) != string::npos ||
      dotPosition == string::npos || (lastDotPosition - dotPosition < 3) || (lastDotPosition == dl - 1)) {
    cout << "Zły adres email" << endl;
  }
  else {
    cout << "Poprawny adres email" << endl;

    cout << "Powtórz adres e-mail: ";
    cin >> adres_2;
    cout << endl;

    if (adres_1 == adres_2)
      cout << INF_OK + adres_1 << endl;
    else
      cout << INF_BLAD << endl;
  }

  return 0;
}
0
Spine napisał(a):
#include <iostream>
#include <string>
using namespace std;

int main() {
  const string INF_OK = "Hasło do serwisu wysłaliśmy na adres: ";
  const string INF_BLAD = "Podane adresy e-mail są różne!";

  string imie, nazwisko, adres_1, adres_2;
  int dl;
  cout << "Podaj imię: ";
  cin >> imie;
  cout << "Podaj nazwisko: ";
  cin >> nazwisko;

  cout << "Podaj adres e-mail: ";
  cin >> adres_1;
  dl = adres_1.length();

  // Sprawdź warunki dotyczące adresu e-mail
  size_t atPosition = adres_1.find("@");
  size_t dotPosition = adres_1.find(".");
  size_t lastDotPosition = adres_1.find_last_of(".");
  
  if (atPosition == string::npos || atPosition == 0 || adres_1.find("@", atPosition + 1) != string::npos ||
      dotPosition == string::npos || (lastDotPosition - dotPosition < 3) || (lastDotPosition == dl - 1)) {
    cout << "Zły adres email" << endl;
  }
  else {
    cout << "Poprawny adres email" << endl;

    cout << "Powtórz adres e-mail: ";
    cin >> adres_2;
    cout << endl;

    if (adres_1 == adres_2)
      cout << INF_OK + adres_1 << endl;
    else
      cout << INF_BLAD << endl;
  }

  return 0;
}

Dziękuje bardzo za pomoc, jestem wdzięczny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1