Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа проверки логина и пароля 
V
    Опции темы
Лилея
Дата 6.12.2013, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 6.12.2013

Репутация: нет
Всего: нет



Здравствуйте!, Помогите с написанием кода, буду очень благодарна.

Дан массив символов a [4] [7] и массив в[4] [5], первый для логина второй для пароля. Требуется написать программу, в которой при вводе логина и пароля, которые совпадают, происходит вывод на экран сообщение, что вход выполнен. Если логин не правильный - выводится сообщение, что ошибка и снова предоставляется попытка на введение логина (должно быть 3 попытки). Лишь после верного логина можно ввести пароль. Если пароль не правильный - выводится сообщение о ошибке и снова предоставляется попытка на введение пароля. 
Задачу нужно выполнить двумя способами.
1) С использованием массивов, как по условию. 
2)И использовать  функции пользователя.(Я попыталась написать, но программа работает не корректно).
Код

#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
char a[4][7]= {"Login1","Login2","Login3","Login4"},
     b[4][5]= {"pas1","pas2","pas3","pas4"}, login[7],pas[5];


int perevirkalog(char *login)
{
      int i,j, cnt;
      for (i=0, cnt=0; i<4; i++)
      {
      for(j=0; j<7; j++)
         if(a[i][j] == login[j])
              cnt++;
        if(cnt==7) return(i);
         }
       return(-1);
}
int perevirkapar(int ns)
{
//ns = stroka v massive a[];
//1. cin password
//for po mass a[]
//if sovpalo return 0
//else return (-1);
      int chet,j;
        cout<<"Vvedit' parol: ";
        cin>>pas;
        for (j=7, chet=0; j<10; j++)
        if(b[ns][j] == pas[j])
        chet++;
        if(chet == 5) return (ns);
        else return(-1);
}
int main()
{
int nl, ret;
        cout<<"Shchob vviyty vedit' login: ";
        cin>>login;
        nl=perevirkalog(login);
        if(nl != -1)
        {
         ret=perevirkapar(nl);
         if(ret != -1)
         cout << "Pomylka vhodu!\n";
         else
         cout << "Vitaemo!\n";
        }
getch();
}

PM MAIL   Вверх
Лилея
Дата 7.12.2013, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 6.12.2013

Репутация: нет
Всего: нет



помогите(((
PM MAIL   Вверх
smalcom
Дата 7.12.2013, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: нет
Всего: 7



для "напишите за меня" другая тема http://forum.vingrad.ru/forum/Vingrad-help-center.html .
если надо помочь, то объясните, что не получается.


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
Лилея
Дата 8.12.2013, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 6.12.2013

Репутация: нет
Всего: нет



Я новичок, только 2 дня на форуме. Поэтому еще до конца не разобралась, где что находится и куда нужно писать.
Программу как-то написала, но теперь не знаю как ее реализовать с помощью функций. Если можете, подскажите. (Правда, я не уверена, правильно ли то, что я написала).
Код

#include <iostream>
#include <time.h>
#include <conio.h>
using namespace std;
int main()
{
  char logins[4][7]={"Login1","Login2","Login3","Login4"};          
  char pass[4][5]={"1234","5678","9101","1213"},login[7],pas[5];    
    {
     cout<<"Vvedit' login:";
     cin>>login;
     for(int j=0;j<4;j++)                                   
        if(strcmp(login,logins[j])==0)                    
          {                                                   
            cout<<"Vvedit' parol:";
            cin>>pas;
            if(strcmp(pas,pass[j])==0)                       
                    cout<<"Vitaemo, vhid dozvoleno";
                    getch();
                    return 0;
               }
           else                                          
               {
                    cout<<"Parol' ne virnyy!"<<endl;
                    break;
                }
          }
           else if(j==3)
           cout<<"Login  ne virnyy!"<<endl;            
           if(i==2)
           cout<<"Ooops, vy ne moshete vviyty...";           
    }                                                        
    getch();   
    return 0;
}


PM MAIL   Вверх
feodorv
Дата 8.12.2013, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(Лилея @  8.12.2013,  01:12 Найти цитируемый пост)
теперь не знаю как ее реализовать с помощью функций

Честно говоря, не ясно, что от Вас требуют. На ум приходит только что-то вроде такого:
Код

#include <iostream>
#include <string.h>
#include <conio.h>

using namespace std;

const char logins[4][7] = { "Login1", "Login2", "Login3", "Login4" };
const char passes[4][5] = { "1234", "5678", "9101", "1213" };

bool checkPassword( const char *pass )
{
  char pas[5];

  for( int i=0; i<3; i++)
  {
    cout << "Vvedit' parol:";
    cin >> pas;

    if( strcmp( pas, pass) == 0 ) return true;
    cout << "Parol' ne virnyy!" << endl;
  }

  return false;
}

bool checkLogin()
{
  char login[7];

  cout << "Vvedit' login: ";
  cin >> login;

  for( int j=0; j<4; j++)
    if( strcmp( login, logins[j]) == 0 )
      return checkPassword( passes[j] );

  cout << "Login ne virnyy!" << endl;
  return false;
}

int main()
{
  bool success = false;

  for( int i=1; i<=3; i++)
  {
    cout << "Pomylka vhodu #" << i << endl;
    if( checkLogin() )
    {
      success = true;
      break;
    }
  }

  if( success )
    cout << "Vitaemo, vhid dozvoleno" << endl;
  else
    cout << "Ooops, vy ne moshete vviyty..." << endl;
  getch();

  return 0;
}

 smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
Лилея
Дата 8.12.2013, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 6.12.2013

Репутация: нет
Всего: нет



То, что надо) Очень благодарна! Спасибо Вам, и форуму - выручили)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0619 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.