• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

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

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

Calculator.cpp
C++:
Expand Collapse Copy
#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++:
Expand Collapse Copy
#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();

Кидайте свои предложения по поводу того, что можно написать(не очень сложное и не в сфере читов), попробую и дам исходник в тему.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Це даже калькулятором не назовешь
 
Це даже калькулятором не назовешь
И чем же он тебе не понравился?)
Тем, что там ресольвера на антрастед десинки нет?))

Вполне нормальный калькулятор для новичка, как по мне. Свою работу выполняет идеально, даже защита от неверного ввода есть(ого)..
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Написать программу, которая выводит на экран прямоугольник символом *. Высота и ширина задаётся пользователем.
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сделай игру по типу угадай число от 1 до 10 я хз
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
крестики-нолики :D
 
Написать программу, которая выводит на экран прямоугольник символом *. Высота и ширина задаётся пользователем.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Не смог придумать как написать.
Сделай игру по типу угадай число от 1 до 10 я хз
Сделал до того, как ты написал :CoolStoryBob:
Чуть позже сурс скину, сейчас не могу. Только рандомизацию правильного числа сделать не получилось, ибо визуалка ругалась на var и rnd, типо не определены.
 
Написать программу, которая выводит на экран прямоугольник символом *. Высота и ширина задаётся пользователем.
Пожалуйста, авторизуйтесь для просмотра ссылки.

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

 
Сделай игру по типу угадай число от 1 до 10 я хз
C++:
Expand Collapse Copy
#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();
    }
}
 
C++:
Expand Collapse Copy
#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
- получается неверный результат
 
else if (number >> trueNumber) else if (number << trueNumber)
потому что это побитовые сдвиги (право и влево), правильно использовать > и <
Почему? Всё ок, всё компилируется и работает.
Посмотреть вложение 94694 - получается неверный результат
Где?
 
Почему? Всё ок, всё компилируется и работает.
да, но работает не верно

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

я написал "синтаксические ошибки" потому что по синтаксису нужно по другому писать
 
да, но работает не верно

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

я написал "синтаксические ошибки" потому что по синтаксису нужно по другому писать
Хз, я тестил, было всё ок.
Мб что-то пытался сделать в этой версии и сломал, но когда последний раз запускал и тестил, всё работало нормально.
 
ну число не рандомное, а всегда 11 (ну я видел твоё сообщение выше, не суть)

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

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