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

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

Войти
Регистрация
Восстановить пароль
 
каддафи
4 / 4 / 1
Регистрация: 02.10.2012
Сообщений: 135
#1

Программа просит ввести время и провеяет правильно ли было введено - C++

01.12.2012, 16:16. Просмотров 1144. Ответов 1
Метки нет (Все метки)

Вот задание

Программа запрашивает время в формате hh:mm:ss и проверяет корректность ввода, выводя соответствующее сообщение, например:
23:09:03 - правильно,
2:2:2 – неправильный формат,
12:02:94 – неправильное время,
14.05.35 - неправильный формат,
qw2:we34 - неправильный формат

Написал свой код как смог. Но мне кажется можно было проще написать.

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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main()
{string s;
    char str[9] ="zz:zz:zz";
    
    cout <<"VVedite vremya v formate HH:MM:SS" << endl;
    cin >>str[0]>>str[1]>>str[2]>>str[3]>>str[4]>>str[5]>>str[6]>>str[7]; //вводим время
    if (str[0]=='0'||str[0]=='1'||str[0]=='2') //проеверяем чтоб первая цифра была 0 или 1 или 2
    {s="Pravilno";}
    else
    {cout<<"Nepravilnii vvod"<<endl;
    system("pause");
    return 0;}
    if (str[2]!=':'||str[5]!=':') // Проверяем чтоб  3 и 5 символ был всегда :
    {cout<<"Nepravilnii format"<< endl;
    system ("Pause");
    return 0;}
    else 
    {
    if (str[3]=='0'||str[3]=='1'||str[3]=='2'||str[3]=='3'||str[3]=='4'||str[3]=='5') // Проверяем чтоб 3 символ был не больше 5
    {s="Pravilno";}
    else {cout << "Nepravilnii vvod"<<endl;
         system ("Pause");
         return 0;}}
    if (str[6]=='0'||str[6]=='1'||str[6]=='2'||str[6]=='3'||str[6]=='4'||str[6]=='5') // Проверяем чтоб 6 символ был не больше 5
    {s="Pravilno";}
    else {cout<<"Nepravilnii vvod"<<endl;
         system("pause");
         return 0;}
       
    for (int i=0; str[i]!='\0'; i++)  // Отсюда и далее вывод всего массива если все правильно введено.       
    cout <<str[i];  
    cout <<" "<<s <<endl; 
    system("PAUSE");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 16:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа просит ввести время и провеяет правильно ли было введено (C++):

Программа просит ввести любое число от -80 до 80, после чего выводит в столбец все числа от 0 до введенного - C++
2) 1.Программа просит ввести любое число от -80 до 80, после чего выводит в столбец все числа от 0 до введенного. В строку выводит все...

Выводится не то, что было введено - C++
Доброго всем вечера. Данная программа должна сначала получать данные от человека и заносить их в матрицу, а затем выводить полученные...

Программа просит ввести число и умножить его на два, затем произведение умножить на два и т.д. - C++
3.Программа просит ввести число и умножить его на два, затем произведение умножить на два и т.д. выполнять эти операции пока произведение...

Как посчитать сколько раз было введено число - C++
Возникла проблема. Надо посчитать сколько пользователь ввел четное число Я так код набросал но он не работает #include &lt;iostream&gt; ...

Определить, что было введено — знак, цифра, заглавная или прописная буква - C++
Здравствуйте. Вот программа показывает буква введена или цифра . Помогите сделать что-бы она ещё и выдавала : заглавная ли введена буква...

Ввести x,y и в зависимости от того что введено - вывести 0 , 1 , или 2 - C++
Помогите сделать задачку...в зависимости какой будет х и y выводится на екран число. Я думал мб вот так, но не получается, выводит...

1
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
01.12.2012, 17:38 #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
#include "stdafx.h"
#include "iostream"
#include "windows.h"
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
 
    char str[9] = "hh:mm:ss";
    int h, m, s;
    char chr1[2], chr2[2];
    char temp[2];
 
    cout << "Введите время в формате HH::MM::SS" << endl;
    cin >> h >> chr1[0] >> m >> chr2[0] >> s;
    chr1[1] = chr2[1] = '\0';
 
 
    if (h<0 || h>24 || m<0 || m>60 || s<0 || s>60 || strcmp(chr1, ":")!=0 || strcmp(chr2, ":")!=0)
    {
        cout << "Неправильный ввод" << endl;
        system("pause");
        return 1;
    }
    else
    {
        cout << "Правильный ввод." << endl;
        itoa(h, temp, 10);  strcpy(str, temp);
        strcat(str, chr1);
        itoa(m, temp, 10);  strcat(str, temp);
        strcat(str, chr2);
        itoa(s, temp, 10);  strcat(str, temp);
        cout << str << endl;
    }
    
    
    
    system("pause");
    return 0;
}
вроде правильно работает, но в конце почему то ошибка выскакивает. не знаю почему так
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2012, 17:38
Привет! Вот еще темы с ответами:

Написать функцию. Функция должна выводить сообщение об ошибке, если было введено два слова и более - C++
Если непонятно задание, то напишу подробнее.

Напишите программу, которая просит ввести имя пользователя - C++
Напишите простую программу, которая просит ввести имя пользователя. Например, в базе есть 2 имени - ivan и vasia. Если мы введем ivan, то...

Определить сколько чисел было введено, и сколько среди них стречалось 1 - C++
С клавиатуры вводятся числа до тех пор пока их сумма не превысит 100. Определить сколько чисел было введено, и сколько среди них стречалось...

Главная функция просит ввести пять чисел, а вспомогательная выводит только те, что кратны трем. - C++
Помогите с С++. Задача на функции, никак не могу разобраться с задаванием функций Главная функция просит ввести пять чисел, а...


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

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

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