Вопрос Какие простые программы можно написать на c++? + Дам исходник

Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,381
Реакции[?]
2,284
Поинты[?]
189K
Привет.
Начал изучать c++, нужно больше практики, а что писать - не знаю.
Из написанного: простой калькулятор.
Код калькулятора, может кому пригодится:

Calculator.cpp
C++:
#include "Calculator.h"
#include <iostream>
#include <windows.h>
#include <cstdlib>

int main()
{
    while (true)
    {
        const char oper = getValues();

        switch (oper)
        {

        case '+': result = fstNum + secNum;
            printResult(); break;
        case '-': result = fstNum - secNum;
            printResult(); break;
        case '*': result = fstNum * secNum;
            printResult(); break;
        case '/': result = fstNum / secNum;
            printResult(); break;
        default:
            SetConsoleTextAttribute(hConsole, (WORD)((0 << 4) | 4));
            std::cout << txtWrongAction << '\n' << '\n';
            SetConsoleTextAttribute(hConsole, (WORD)((0 << 4) | 7));
        }
        system("pause");
        std::cout << '\n';
    }
}

char getValues()
{
    if (!(std::cin))
    {
        std::cin.clear();
        std::cin.ignore(32767, '\n');
    }

    std::cout << txtFstNum << '\n';
    if (!(std::cin >> fstNum))
    return fstNum;

    std::cout << txtSecNum << '\n';
    if (!(std::cin >> secNum))
    return secNum;

    std::cout << txtOper << '\n';
    std::cin >> oper;
    return oper;
}

void printResult()
{
    SetConsoleTextAttribute(hConsole, (WORD)((0 << 4) | 15));
    std::cout << txtResult << result << '\n' << '\n';
    SetConsoleTextAttribute(hConsole, (WORD)((0 << 4) | 7));
}
Calculator.h
C++:
#pragma once

char txtFstNum[] = "Enter first number:";
char txtSecNum[] = "Enter second number:";
char txtOper[] = "Enter operation (+, -. *, /):";
char txtResult[] = "Result: ";
char txtWrongAction[] = "Wrong action, please, repeat:";

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

double fstNum(0), secNum(0), result(0);
char oper(0);

char getValues();
void printResult();

Кидайте свои предложения по поводу того, что можно написать(не очень сложное и не в сфере читов), попробую и дам исходник в тему.
 
Забаненный
Статус
Оффлайн
Регистрация
21 Авг 2019
Сообщения
1,461
Реакции[?]
502
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Це даже калькулятором не назовешь
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,381
Реакции[?]
2,284
Поинты[?]
189K
Це даже калькулятором не назовешь
И чем же он тебе не понравился?)
Тем, что там ресольвера на антрастед десинки нет?))

Вполне нормальный калькулятор для новичка, как по мне. Свою работу выполняет идеально, даже защита от неверного ввода есть(ого)..
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
MONKEY
Пользователь
Статус
Оффлайн
Регистрация
22 Мар 2019
Сообщения
206
Реакции[?]
36
Поинты[?]
0
Написать программу, которая выводит на экран прямоугольник символом *. Высота и ширина задаётся пользователем.
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,381
Реакции[?]
2,284
Поинты[?]
189K
SAMOWARE-PROJECT
Забаненный
Статус
Оффлайн
Регистрация
5 Янв 2020
Сообщения
183
Реакции[?]
21
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сделай игру по типу угадай число от 1 до 10 я хз
 
Забаненный
Статус
Оффлайн
Регистрация
2 Июл 2020
Сообщения
1,223
Реакции[?]
510
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
крестики-нолики :D
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,381
Реакции[?]
2,284
Поинты[?]
189K
Написать программу, которая выводит на экран прямоугольник символом *. Высота и ширина задаётся пользователем.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Не смог придумать как написать.
Сделай игру по типу угадай число от 1 до 10 я хз
Сделал до того, как ты написал :CoolStoryBob:
Чуть позже сурс скину, сейчас не могу. Только рандомизацию правильного числа сделать не получилось, ибо визуалка ругалась на var и rnd, типо не определены.
 
Dreammmless.
Эксперт
Статус
Оффлайн
Регистрация
19 Мар 2019
Сообщения
2,956
Реакции[?]
962
Поинты[?]
1K
Написать программу, которая выводит на экран прямоугольник символом *. Высота и ширина задаётся пользователем.
Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.

 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,381
Реакции[?]
2,284
Поинты[?]
189K
Сделай игру по типу угадай число от 1 до 10 я хз
C++:
#include <iostream>
#include <windows.h>

char enterNumber[] = "Enter number: ";
char txtTrueNumber[] = "\nTrue number!\n\n";
char tooLow[] = "\nToo low\n";
char tooHigh[] = "\nToo high\n";

int main()
{
    int trueNumber = 11;
    int number(0);


    std::cin >> number;

    if (number == trueNumber)
    {
        std::cout << txtTrueNumber;
        system("pause");
        main();
    }
    else if (number >> trueNumber)
    {
        std::cout << tooHigh;
        main();
    }
    else if (number << trueNumber)
    {
        std::cout << tooLow;
        main();
    }
}
 
Dreammmless.
Эксперт
Статус
Оффлайн
Регистрация
19 Мар 2019
Сообщения
2,956
Реакции[?]
962
Поинты[?]
1K
C++:
#include <iostream>
#include <windows.h>

char enterNumber[] = "Enter number: ";
char txtTrueNumber[] = "\nTrue number!\n\n";
char tooLow[] = "\nToo low\n";
char tooHigh[] = "\nToo high\n";

int main()
{
    int trueNumber = 11;
    int number(0);


    std::cin >> number;

    if (number == trueNumber)
    {
        std::cout << txtTrueNumber;
        system("pause");
        main();
    }
    else if (number >> trueNumber)
    {
        std::cout << tooHigh;
        main();
    }
    else if (number << trueNumber)
    {
        std::cout << tooLow;
        main();
    }
}
ну число не рандомное, а всегда 11 (ну я видел твоё сообщение выше, не суть)

еще синтаксические ошибки в этих строках
else if (number >> trueNumber) else if (number << trueNumber)
потому что это побитовые сдвиги (право и влево), правильно использовать > и <
1597932770213.png - получается неверный результат
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,381
Реакции[?]
2,284
Поинты[?]
189K
else if (number >> trueNumber) else if (number << trueNumber)
потому что это побитовые сдвиги (право и влево), правильно использовать > и <
Почему? Всё ок, всё компилируется и работает.
Посмотреть вложение 94694 - получается неверный результат
Где?
 
Dreammmless.
Эксперт
Статус
Оффлайн
Регистрация
19 Мар 2019
Сообщения
2,956
Реакции[?]
962
Поинты[?]
1K
Почему? Всё ок, всё компилируется и работает.
да, но работает не верно

Как она должна работать:
1597933310756.png5 - too low, 20 -too high
Как она работает:
1597933336490.png5 - too low, 20 - too low
потому что происходит не сравнение number и trueNumber, а побитовый сдвиг

я написал "синтаксические ошибки" потому что по синтаксису нужно по другому писать
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,381
Реакции[?]
2,284
Поинты[?]
189K
да, но работает не верно

Как она должна работать:
Посмотреть вложение 946955 - too low, 20 -too high
Как она работает:
Посмотреть вложение 946965 - too low, 20 - too low
потому что происходит не сравнение number и trueNumber, а побитовый сдвиг

я написал "синтаксические ошибки" потому что по синтаксису нужно по другому писать
Хз, я тестил, было всё ок.
Мб что-то пытался сделать в этой версии и сломал, но когда последний раз запускал и тестил, всё работало нормально.
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,381
Реакции[?]
2,284
Поинты[?]
189K
ну число не рандомное, а всегда 11 (ну я видел твоё сообщение выше, не суть)

еще синтаксические ошибки в этих строках
else if (number >> trueNumber) else if (number << trueNumber)
потому что это побитовые сдвиги (право и влево), правильно использовать > и <
Посмотреть вложение 94694 - получается неверный результат
Ааа, хаах, блять, ну и кринж))

Я посмотрел один раз на это и подумал, что это cout, когда были < и >) И "исправил" на двойные... Лол....
 
Сверху Снизу