Как составить самую простую программу для


Загрузить PDF


Загрузить PDF

Из этой статьи вы узнаете, как написать программу в стандартном приложении «Блокнот» для Windows. Если коротко, то вам нужно будет построчно ввести код программы в Блокнот, а затем сохранить файл в формате необходимого языка программирования.

  1. Изображение с названием Understandthis

    1

    Ознакомьтесь с ограничениями Блокнота. Формально в Блокноте можно написать программу на любом языке программирования, но чтобы ее запустить, программу нужно сохранить в правильном формате.

    • Файлы Блокнота по умолчанию сохраняются в виде текстовых документов.
  2. Изображение с названием Make a Program Using Notepad Step 2

    2

    Найдите и запустите Блокнот. Наиболее простой способ запустить Блокнот — открыть меню «Пуск»

    Windows Start

    , ввести блокнот, а затем нажать на синюю иконку Блокнота в верхней части меню «Пуск».

  3. Изображение с названием Programlanguage

    3

    Выберите язык программирования. Блокнот не имеет ограничений в языках программирования, но для корректной работы программы вам придется использовать один и тот же язык во всем документе.

    • Если вы не знаете ни одного языка программирования, воспользуйтесь одним из примеров, указанных в статье.
  4. Изображение с названием Make a Program Using Notepad Step 4

    4

    Завершив строку кода, нажмите Enter. Как и в большинстве редакторов кода, отдельные строки кода должны располагаться на разных строках Блокнота.

  5. Изображение с названием Make a Program Using Notepad Step 5

    5

    Закройте все открытые фигурные и квадратные скобки. Если вы открыли квадратную или фигурную скобки ({ или [), ее обязательно нужно закрыть, чтобы завершить строку кода. Несоблюдение этого правила приведет к ошибкам в коде.

  6. Изображение с названием Considerusing

    6

    Подумайте об использовании специальной программы для редактирования кода. Хотя в Блокноте, безусловно, можно писать целые программы, на деле же все не так просто. Поскольку в Блокноте нет подсветки синтаксиса и автоматической разметки, он плохо подходит для написания крупных фрагментов кода.

    • Notepad ++ — бесплатный и более удобный вариант для работы с кодом.

    Реклама

  1. Изображение с названием Make a Program Using Notepad Step 7

    1

    Запустите Блокнот. Блокнот позволяет создавать и сохранять любую программу, независимо от используемого языка программирования.

  2. Изображение с названием Make a Program Using Notepad Step 8

    2

    Введите код программы. Убедитесь, что во всем документе используется один и тот же язык программирования.

  3. Изображение с названием Make a Program Using Notepad Step 9

    3

    Нажмите на Файл в верхнем левом углу окна «Блокнот», чтобы раскрыть выпадающее меню.

  4. Изображение с названием Make a Program Using Notepad Step 10

    4

    Нажмите на Сохранить как… в верхней части выпадающего меню, чтобы открыть окно «Сохранение».

  5. Изображение с названием Make a Program Using Notepad Step 11

    5

    Укажите папку для сохранения. Нажмите на папку (например, «Рабочий стол») в левой части окна «Сохранение», чтобы выбрать ее в качестве места расположения программы.

  6. Изображение с названием Make a Program Using Notepad Step 12

    6

    Нажмите на поле «Тип файла» в нижней части окна «Сохранение», чтобы раскрыть выпадающее меню.

  7. Изображение с названием Make a Program Using Notepad Step 13

    7

    Выберите пункт Все файлы в выпадающем меню. Это позволит вам сохранить файл Блокнота в виде любого типа программ.

  8. Изображение с названием Make a Program Using Notepad Step 14

    8

    Введите имя будущей программы. Нажмите на текстовое поле «Имя файла» и введите имя для своей программы.

  9. Изображение с названием Make a Program Using Notepad Step 15

    9

    Добавьте расширение к имени программы. Чтобы правильно сохранить программу, добавьте точку и метку расширения языка программирования сразу после имени программы. Вот перечень наиболее распространенных языков программирования и их расширений:

    • пакетный файл (BAT).bat;
    • HTML.htm;
    • Python.py;
    • C++.cpp.
    • К примеру, чтобы сохранить пакетный файл с именем «арбузы», введите арбузы.bat в поле «Имя файла».
  10. Изображение с названием Make a Program Using Notepad Step 16

    10

    Нажмите на Сохранить в нижнем правом углу окна, чтобы сохранить программу в указанном формате. Чтобы запустить программу, щелкните по ней дважды (возможно, вас попросят выбрать программу для открытия файла).

    Реклама

  1. Изображение с названием Make a Program Using Notepad Step 17

    1

    Запустите Блокнот. Попробуйте создать программу, которая бы запускала другую программу на компьютере, используя скриптовый язык (BAT).

  2. Изображение с названием Make a Program Using Notepad Step 18

    2

    Введите имя исполняющего файла для выведения Командной строки. Введите cmd.exe в Блокнот.

  3. Изображение с названием Make a Program Using Notepad Step 19

    3

    Сохраните программу. Убедитесь, что в конце имени файла указано расширение .bat.

  4. Изображение с названием Make a Program Using Notepad Step 20

    4

    Дважды щелкните по пакетному файлу. Так вы откроете окно командной строки.

    Реклама

  1. Изображение с названием Make a Program Using Notepad Step 21

    1

    Запустите Блокнот. Если вы хотите создать веб-страницу, отличным языком для этой работы будет HTML.

  2. Изображение с названием Make a Program Using Notepad Step 22

    2

    Укажите, что вы будете использовать именно язык HTML. Введите !DOCTYPE html и нажмите Enter.

  3. Изображение с названием Make a Program Using Notepad Step 23

    3

    Добавьте метку HTML. Введите в Блокнот html и нажмите Enter.

  4. Изображение с названием Make a Program Using Notepad Step 24

    4

    Определите текстовый раздел программы. Введите в Блокнот body и нажмите Enter. Эта строка указывает, что далее в документе будет идти раздел информации (в данном случае текст).

  5. Изображение с названием Make a Program Using Notepad Step 25

    5

    Добавьте заголовок страницы. Введите в Блокнот <h1>Текст</h1> и нажмите Enter, заменив слово «Текст» заголовком страницы.

    • К примеру, чтобы создать страницу с заголовком «Привет!», введите в Блокнот <h1>Привет!</h1>.
  6. Изображение с названием Make a Program Using Notepad Step 26

    6

    Добавьте текст на свою страницу. Введите <p>текст</p> и нажмите Enter, заменив слово «текст» текстовыми данными.

    • К примеру, если вы введете в Блокнот <p>Как дела?</p>, сразу после заголовка появится фраза «Как дела?».
  7. Изображение с названием Make a Program Using Notepad Step 27

    7

    Закройте текстовый раздел. Введите </body> и нажмите Enter.

  8. Изображение с названием Make a Program Using Notepad Step 28

    8

    Укажите конец HTML программы. Введите </html>.

  9. Изображение с названием Make a Program Using Notepad Step 29

    9

    Просмотрите код своей программы. Он должен выглядеть следующим образом:

    • <!DOCTYPE html>
    • <html>
    • <body>
    • <h1>Привет!</h1>
    • <p>Как дела?</p>
    • </body>
    • </html>
  10. Изображение с названием Make a Program Using Notepad Step 30

    10

    Сохраните программу. При сохранении убедитесь, что выбрали расширение .htm.

  11. Изображение с названием Make a Program Using Notepad Step 31

    11

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

    Реклама

  1. Изображение с названием Make a Program Using Notepad Step 32

    1

    Запустите Блокнот. С помощью команды «print» в Python можно отобразить любой желаемый текст.

  2. Изображение с названием Make a Program Using Notepad Step 33

    2

    Введите команду «print». Введите в Блокнот print(". Убедитесь, что между символами нет пробелов.

  3. Изображение с названием Make a Program Using Notepad Step 34

    3

    Добавьте текст, который хотите отобразить. Введите Привет!.

  4. Изображение с названием Make a Program Using Notepad Step 35

    4

    Закройте команду «print». Введите "), чтобы закрыть команду.

  5. Изображение с названием Make a Program Using Notepad Step 36

    5

    Ваш код должен выглядеть следующим образом:

    • print("Привет!")
  6. Изображение с названием Make a Program Using Notepad Step 37

    6

    Сохраните программу. При сохранении убедитесь, что выбрали расширение .py. Теперь программу можно будет открыть в любом редакторе Python.

    Реклама

  1. Изображение с названием Make a Program Using Notepad Step 38

    1

    Запустите Блокнот. В данном примере мы рассмотрим создание простой программы на C++, которая при запуске будет отображать на экране фразу «Hello World!».

  2. Изображение с названием Make a Program Using Notepad Step 39

    2

    Добавьте название программы. Введите //, а затем название программы (например, «Моя первая программа»). Любой текст в строке, идущий после двух косых черт, отобразится как обычный текст (не являясь частью программы).

    • К примеру, чтобы обозначить свою программу как «Программа 1», введите в Блокнот: //Программа 1.
  3. Изображение с названием Make a Program Using Notepad Step 40

    3

    Введите директиву препроцессора. Введите # include <iostream> и нажмите Enter. Эта команда сообщает C++, что следующие строки кода нужно запускать в виде программы.

  4. Изображение с названием Make a Program Using Notepad Step 41

    4

    Объявите функцию программы. Введите int main () и нажмите Enter.

  5. Изображение с названием Make a Program Using Notepad Step 42

    5

    Добавьте открытую скобку. Введите в Блокнот { и нажмите Enter. Основной код программы будет заключен между этой открытой скобкой и ее закрывающей парой.

  6. Изображение с названием Make a Program Using Notepad Step 43

    6

    Введите исполняющий код программы. Введите std::cout << "Hello World!"; и нажмите Enter.

  7. Изображение с названием Make a Program Using Notepad Step 44

    7

    Добавьте закрывающую скобку. Введите }, чтобы завершить исполняющий код программы.

  8. Изображение с названием Make a Program Using Notepad Step 45

    8

    Просмотрите свою программу. Она должна выглядеть следующим образом:

    • //Название программы
    • #include <iostream>
    • int main ()
    • {
    • std::cout << "Hello World!";
    • }

    Реклама

  9. 9

  10. Сохраните программу. При этом не забудьте указать расширение .cpp. Сохраненную программу можно будет запустить в любом компиляторе C++.

    Изображение с названием Make a Program Using Notepad Step 46

Советы

  • C++ и HTML — два из наиболее часто используемых языка программирования.
  • Большинство программ можно написать практически на любом языке программирования, хотя некоторые языки лучше подходят для определенных задач (например, язык HTML идеально подходит для создания веб-страниц).

Предупреждения

  • Всегда проверяйте код перед тем, как его сохранить. Сохранение неисправной программы может привести к проблемам со стандартным компилятором.

Об этой статье

Эту страницу просматривали 196 928 раз.

Была ли эта статья полезной?

В этой главе мы напишем первую программу на C++ и научимся печатать и считывать с клавиатуры строки и числа.

Функция main

Пожалуй, самая простая и короткая программа на C++ — это программа, которая ничего не делает. Она выглядит так:

int main() {
    return 0;
}

Здесь определяется функция с именем main, которая не принимает никаких аргументов (внутри круглых скобок ничего нет) и не выполняет никаких содержательных команд. В каждой программе на C++ должна быть ровно одна функция main — с неё начинается выполнение программы.

У функции указан тип возвращаемого значения int (целое число), и она возвращает 0 — в данном случае это сообщение для операционной системы, что программа выполнилась успешно. И наоборот, ненулевой код возврата означает, что при выполнении возникла ошибка (например, программа получила некорректные входные данные).

Для функции main разрешается не писать завершающий return 0, чем мы и будем пользоваться далее для краткости. Поэтому самую короткую программу можно было бы написать вот так:

int main() {
}

Hello, world!

Соблюдая традиции, напишем простейшую программу на C++ — она выведет приветствие в консоль:

#include <iostream>

int main() {
    std::cout << "Hello, world!n";
    return 0;
}

Разберём её подробнее.

Директива #include <iostream> подключает стандартный библиотечный заголовочный файл для работы с потоками ввода-вывода (input-output streams). Для печати мы используем поток вывода std::cout, где cout расшифровывается как character output, то есть «символьный вывод».

В теле функции main мы передаём в std::cout строку Hello, world! с завершающим переводом строки n. В зависимости от операционной системы n будет преобразован в один или в два управляющих байта с кодами 0A или 0D 0A соответственно.

Инструкции внутри тела функции завершаются точками с запятой.

Компиляция из командной строки

Вы можете запустить эту программу из какой-нибудь IDE. Мы же покажем, как собрать её в консоли Linux с помощью компилятора clang++.

Пусть файл с программой называется hello.cpp. Запустим компилятор:

$ clang++ hello.cpp -o hello

В результате мы получим исполняемый файл с именем hello, который теперь можно просто запустить. Он напечатает на экране ожидаемую фразу:

$ ./hello
Hello, world!

Если опцию -o не указать, то сгенерированный исполняемый файл будет по умолчанию назван a.out. В дальнейшем для простых примеров мы будем использовать краткую форму записи команды:

$ clang++ hello.cpp && ./a.out
Hello, world!

С её помощью мы компилируем программу и в случае успеха компиляции сразу же запускаем.

Комментарии

Комментарии — это фрагменты программы, которые игнорируются компилятором и предназначены для программиста. В C++ есть два вида комментариев — однострочные и многострочные:


int main() {  // однострочный комментарий продолжается до конца строки

/* Пример
   многострочного
   комментария */
}

Мы будем использовать комментарии в примерах кода для пояснений, а в реальных программах ими лучше не злоупотреблять.

Хорошо: комментировать, что делает библиотека, функция или класс или почему этот код написан именно так.

Плохо: комментировать, что происходит на отдельной строчке. Это признак того, что код можно написать лучше.

Библиотеки и заголовочные файлы

Библиотека — это код, который можно переиспользовать в разных программах. В стандарт языка C++ входит спецификация так называемой стандартной библиотеки, которая поставляется вместе с компилятором. Она содержит различные структуры данных (контейнеры), типовые алгоритмы, средства ввода-вывода и т. д. Конструкции из этой библиотеки предваряются префиксом std::, который обозначает пространство имён.

Чтобы воспользоваться теми или иными библиотечными конструкциями, в начале программы надо подключить нужные заголовочные файлы. Так, в программе, которая печатала Hello, world!, нам уже встречался заголовочный файл iostream и конструкция std::cout из стандартной библиотеки.

Для C++ существует также множество сторонних библиотек. Наиболее известной коллекцией сторонних библиотек для C++ является Boost.

Ошибки компиляции

Перед запуском программу необходимо скомпилировать. Компилятор проверяет корректность программы и генерирует исполняемый файл. Во время компиляции компилятор может обнаружить синтаксические ошибки.

Рассмотрим пример такой программы:

#include <iostream>

int main() {
    cout << "Hello, worldn"

Компилятор может выдать такие сообщения:

$ clang++ hello.cpp
hello.cpp:4:5: error: use of undeclared identifier 'cout'; did you mean 'std::cout'?
    cout << "Hello, world!n"
    ^~~~
    std::cout

hello.cpp:4:30: error: expected ';' after expression
    cout << "Hello, world!n"
                             ^
                             ;

hello.cpp:5:1: error: expected '}'
^
a.cpp:3:12: note: to match this '{'
int main() {
           ^
3 errors generated.

Первая ошибка — вместо std::cout мы написали cout. Вторая ошибка — не поставили точку запятой после "Hello, world!n". Наконец, третья – не закрыли фигурную скобку с телом функции.

Ошибки компиляции (compile errors) следует отличать от возможных ошибок времени выполнения (runtime errors), которые происходят после запуска программы и, как правило, зависят от входных данных, неизвестных во время компиляции.

Отступы и оформление кода

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

Среди программистов есть соглашение — писать внутренние блоки кода с отступами вправо: компилятор полностью игнорирует эти отступы, а код читать удобнее. Мы будем использовать отступы в четыре пробела. Также мы будем придерживаться стиля оформления кода, принятого в Яндексе. Имена переменных мы будем писать с маленькой буквы, имена функций и классов — с большой (если речь не идёт о конструкциях стандартной библиотеки, где действуют другие соглашения).

Переменные

Любая содержательная программа так или иначе обрабатывает данные в памяти. Переменная — это именованный блок данных определённого типа. Чтобы определить переменную, нужно указать её тип и имя. В общем виде это выглядит так:

Type name;

где вместо Type — конкретный тип данных (например, строка или число), а вместо name — имя переменной. Имена переменных должны состоять из латинских букв, цифр и знаков подчёркивания и не должны начинаться с цифры. Также можно в одной строке определить несколько переменных одного типа:

Type name1 = value1, name2 = value2, name3 = value3;

Например:

#include <string>  // библиотека, в которой определён тип std::string

int main() {
    // Определяем переменную value целочисленного типа int
    int value;

    // Определяем переменные name и surname типа std::string (текстовая строка)
    std::string name, surname;
}

В этом примере мы используем встроенный в язык тип int (от слова integer — целое число) и поставляемый со стандартной библиотекой тип std::string. (Можно было бы использовать для строк встроенный тип с массивом символов, но это неудобно.)

Тип переменной должен быть известен компилятору во время компиляции.

От типа зависит:

  • сколько байтов памяти потребуется для хранения данных;
  • как интерпретировать эти байты;
  • какие операции с этой переменной возможны.

Например, переменной типа int можно присваивать значения и с ней можно производить арифметические операции. Подробнее про разные типы данных и их размер в памяти мы поговорим ниже.

Важно понимать, что тип остаётся с переменной навсегда. Например, присвоить целочисленной переменной строку не получится — это вызовет ошибку компиляции:

int main() {
    int value;
    value = 42;  // OK
    value = "Hello!";  // ошибка компиляции!
}

Переменные можно сразу проинициализировать значением. В С++ есть много разных способов инициализации. Нам пока будет достаточно способа, который называется copy initialization:

#include <string>

int main() {
    int value = 42;
    std::string title = "Bjarne Stroustrup";
}

Если переменная, была объявлена, но нигде дальше не использовалась, то компилятор выдаёт об этом предупреждение. При проверке решений мы используем опцию -Werror, которая считает предупреждения компилятора ошибками компиляции.

Потоковый ввод и вывод

Поток — это абстракция для чтения и записи последовательности данных в форматированном виде.

Записывать данные можно на экран консоли, в файл, буфер в памяти или в строку. Считывать их можно с клавиатуры, из файла, из памяти. Причём с каждым таким «устройством» можно связать свой поток.

Важно, что потоки не просто пересылают байты памяти, а применяют форматированный человекочитаемый ввод-вывод. Например, числа печатаются и считываются в десятичной нотации, хотя в памяти компьютера они хранятся в двоичном виде.

В программе Hello, world! нам уже встречался поток вывода std::cout, по умолчанию связанный с экраном консоли. Познакомимся с потоком ввода std::cin, связанным с клавиатурой. Для его использования нужен тот же заголовочный файл iostream.

Рассмотрим программу, которая спрашивает имя пользователя и печатает персональное приветствие:

#include <iostream>
#include <string>

int main() {
    std::string name;  // объявляем переменную name
    std::cout << "What is your name?n";
    std::cin >> name;  // считываем её значение с клавиатуры
    std::cout << "Hello, " << name << "!n";
}

Обратите внимание на направление угловых скобок в этом примере — они условно показывают направление потока данных. При печати данные выводятся на экран, и стрелки направлены от текста к cout. При вводе данные поступают с клавиатуры, и стрелки направлены от cin к переменной.

В нашем примере в переменную name считается одно слово, которое будет выведено в ответном сообщении. Пример работы программы:

What is your name?
Alice
Hello, Alice!

Однако если ввести строку из нескольких слов с пробелами, то в name запишется только первое слово:

$ ./a.out
What is your name?
Alice Liddell
Hello, Alice!

Дело в том, что cin читает поток данных до ближайшего пробельного разделителя (пробела, табуляции, перевода строки или просто конца файла). Чтобы считать в строковую переменную всю строчку целиком (не включая завершающий символ перевода строки), нужно использовать функцию std::getline из заголовочного файла string:

#include <iostream>
#include <string>

int main() {
    std::string name;
    std::getline(std::cin, name);
    std::cout << "Hello, " << name << "!n";
}

В этом примере мы печатаем в одном выражении друг за другом несколько строк ("Hello, ", name и "!n"), разделённых угловыми скобками <<. Таким образом, cin и cout позволяют кратко считывать и печатать несколько объектов одной командой.

Например, считывание нескольких чисел целого типа, набранных через пробельные разделители, может выглядеть так:

int main() {
    int a;
    int b;
    int c;
    std::cin >> a >> b >> c;
}

Напечатать их значения можно следующим образом:

std::cout << a << " " << b << " " << c << "n";

Обратите внимание, что мы дополнительно вставляем между ними пробелы, чтобы в выводе числа не слиплись вместе. В конце вывода мы вставляем символ перевода строки n, чтобы отделить этот результат от последующего вывода или от сообщений командной строки.

Первый опыт написания полноценной программы

Время на прочтение
17 мин

Количество просмотров 14K

Каждый начинающий программист мечтает реализовать свой собственный проект. Не написать простенький код, по заданию преподавателя, а воплотить в жизнь свои идеи. Так и я, изучая C++ 3-4 месяца, решился попробовать разработать макет электронного журнала для преподавателей.

Определившись с темой, приступил к определению необходимых функций программы. Для этого я провел анализ уже существующих сервисов, выполняющих похожие задачи. 

По итогу, пришел к выводу, что в программе потребуется реализовать:

  1. Регистрацию (Reg),

  2. Авторизацию (Authon),

  3. Выбор группы (GroupSelection),

  4. Возможность выставлять оценки (Grades),

  5. Возможность выставлять посещаемость (Attendance),

  6. Возможность писать комментарии к датам (Comment),

  7. Возможность устанавливать dedlin’ы (Deadline).

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

блок-схема программы

блок-схема программы

Аналогично, были созданы блок схемы для каждой функции.

авторизация

авторизация
регистрация
регистрация
выбор группы
выбор группы
выставление оценок
выставление оценок
простановка посещаемости
простановка посещаемости
написание комментариев к датам
написание комментариев к датам
установка dedlin’ов
установка dedlin’ов

Написание кода программы

Первым шагом написания программы является добавления необходимых заголовочных файлов, а именно:

  1. iostream — заголовочный файл с классами, функциями и переменными для организации ввода-вывода.

  2. string –  это заголовочный файл для взаимодействия с
    классами string (строками).

  3. fstream – заголовочный файл, включающий набор классов, методов и функций, которые предоставляют интерфейс для чтения/записи данных из/в файл.

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

std::string nameofgroup;

Чтобы удобно группировать данных в одной переменной для каждого объекта, который оперирует этими данными, мною было объявлено несколько классов, а именно:

Класс данных о преподавателе – DataofTeature.

class DataofTeature
{
public:
	std::string name; //имя преподавателя
	std::string surname; //фамилия преподавателя
	std::string patronymic; //отчество преподавателя
	std::string login; //логин преподавателя
	std::string password; //пароль преподавателя
};

Класс данных о студенте – DataofStudent.

class DataofStudent
{
public:
	std::string group; //название группы студента
	std::string name; //имя студента
	std::string surname; //фамилия студента
};

Основываясь на ранее представленных блок схемах, был написан код для всех функций. Разберемся с каждой функций подробнее.

Reg

Функция Reg реализует полноценную регистрацию, с записью данных о пользователе в текстовый файл.

В ходе выполнения функции, пользователю предлагается ввести ФИО, логин и пароль. После получения программой логина, проверяется его наличие в системе, если логин совпадает с ранее записанным в базу логинов, то пользователя предлагается ввести логин повторно. Как только программа получает ФИО, пароль и уникальный логин, происходит запись логина в базу для логинов (при открытие базы данных используется режим открытия ios_base::app, позволяющий открыть файл для записи в конец файла, при этом, сохраняя ранее записанные данные), создание специализированного файла для регистрационных данных пользователя, и запись в него ФИО, аналогично создается специальный файл для хранения логина и пароля конкретного пользователя. Формирования уникальных файлов происходит по принципу сложения строк. Например, path=path+teature1.login+txt, где path-путь к директории, в которой хранятся файлы программы, teature1.login – уникальный логин пользователя, txt- строка, хранящая в себе “.txt”.

void Reg()
{
	std::string path = "C:\journal\regdata", datalog = "C:\journal\logdata.txt", txt = ".txt", user = "C:\journal\", delfile = "C:\journal\delfile.txt"; //объявление переменных типа string
	bool flag = 1; //объявление переменной типа bool
	DataofTeature teature1; //объявление переменной класса DataofTeature
	std::ofstream fout; //объявление переменной класса ofstream
	std::ifstream fin; //объявление переменной класса ifstream
	std::cout << "tttРегистрация:n"; //ввод даных, необходимых для регистрации
	std::cout << "Введите фамилию: ";
	std::cin >> teature1.surname;
	std::cout << "Введите имя: ";
	std::cin >> teature1.name;
	std::cout << "Введите отчество: ";
	std::cin >> teature1.patronymic;
	std::cout << "Введите логин: ";
	std::cin >> teature1.login;
	while (flag)
	{
		bool flag2 = 0;
		fin.open(datalog);
		if (fin.is_open())
		{
			std::string data = "";
			while (!fin.eof())
			{
				std::getline(fin, data);
				if (teature1.login == data)		//проверка на существование данного логина в файле
				{
					flag2 = 1;
					flag = 1;
				}
			}
		}
		else
		{
			std::cout << "ERROR"; //Файл не удалось создать или открыть
		}
		if (flag2)
		{
			std::cout << "Данный логин уже существует, придумайте другой логин: "; //прозьба ввести логин повторно, если введенный до этого уже существует
			std::cin >> teature1.login;
			flag = 1;
		}
		else
		{
			flag = 0; //изменение булевой переменной для выхода из цыкла
		}
		fin.close();
	}
	path = path + teature1.login + txt; //формирование пути, для создания файла с ФИО аккаунта
	fout.open(path);
	if (fout.is_open())
	{
		fout << teature1.surname << "n";
		fout << teature1.name << "n";			//запись данных в файл
		fout << teature1.patronymic << "n";
	}
	else
	{
		std::cout << "ERROR"; //Файл не удалось создать или открыть
	}
	fout.close();
	std::cout << "Введите пароль: ";
	std::cin >> teature1.password;		//ввод пароля
	fout.open(datalog, std::ios_base::app); //открыть файл для записи в конец файла
	if (fout.is_open())
	{
		fout << teature1.login << "n"; //запись данных в файл
	}
	else
	{
		std::cout << "ERROR"; //Файл не удалось создать или открыть
	}
	fout.close();
	user = user + teature1.login + txt; //формирование пути хранения логина и пароля
	fout.open(user); //открытия файла
	if (fout.is_open())
	{
		fout << teature1.login << "n";
		fout << teature1.password << "n";		//запись данных в файл
	}
	else
	{
		std::cout << "ERROR"; //Файл не удалось создать или открыть
	}
	fout.close();
}

Authon

Функция Authon реализует авторизацию пользователя в программу.

В ходе выполнения функции, пользователю предлагается ввести логин и пароль. Следом идет проверка наличия логина в базе логинов, если логина в базе нет, пользователю
предлагается ввести логин повторно. Получив логин, программа открывает
специализированный файл пользователя, получая к нему путь, методом сложения
строк. В этом файле проверяется верность пароля, если пароль не совпадает, то
предлагается ввести пароль повторно. Как только все данные проверены, программа
открывает файл с ФИО пользователя и выводит на экран приветствие, используя ФИО
пользователя.

void Authon()
{
	std::string path = "C:\journal\regdata", datalog = "C:\journal\logdata.txt", txt = ".txt", user = "C:\journal\", delfile = "C:\journal\delfile.txt", login, password, filelog = ""; //объявление переменных типа string
	DataofTeature teature1; //объявление переменной класса DataofTeature
	std::ifstream fin; //объявление переменной класса ifstream
	bool flag = 1; //объявление переменной типа bool
	std::cout << "tttАвторизация:n";
	std::cout << "Введите логин: ";
	std::cin >> login;			//ввод логина
	while (flag)
	{
		bool flag2 = 0;
		fin.open(datalog);		//проверка наличия логина в базе логинов
		if (fin.is_open())
		{
			while (!fin.eof())
			{
				std::getline(fin, filelog);
				if (login == filelog)
				{
					flag = 0;
					flag2 = 0;
					break;
				}
				else
				{
					flag2 = 1;
				}
			}
		}
		else
		{
			std::cout << "ERROR"; //Файл не удалось создать или открыть
		}
		if (flag2)
		{
			std::cout << "Такого логина не существует, введите логин повторно: n";			//просьба ввести логин повторно
			std::cin >> login;
		}
		fin.close();
	}
	user = user + login + txt; //формирования пути нахождения файла с логинами и паролями
	flag = 1;
	std::cout << "Введите пароль: ";		//ввод пароля
	std::cin >> password;
	while (flag)
	{
		bool flag2 = 0;
		fin.open(user);
		if (fin.is_open())
		{
			while (!fin.eof())
			{
				std::getline(fin, filelog);
				if (password == filelog)
				{								//проверка верности пароля
					flag = 0;
					flag2 = 0;
					break;
				}
				else
				{
					flag2 = 1;
				}
			}
		}
		else
		{
			std::cout << "ERROR"; //Файл не удалось создать или открыть//
		}
		if (flag2)
		{
			std::cout << "Пароль введен не верно, попробуйте еще раз: n";		//просьба ввести пароль повторно
			std::cin >> password;
		}
		fin.close();
	}
	std::cout << "Добро пожаловать ";
	path = path + login + txt;
	fin.open(path);
	if (fin.is_open())
	{
		std::string data = "";					//вывод приветствия на экран
		while (!fin.eof())
		{
			std::getline(fin, data);
			std::cout << data << " ";
		}
	}
	else
	{
		std::cout << "ERROR"; //Файл не удалось создать или открыть
	}
	fin.close();
	std::cout << "n";
}

GroupSelection

Функция реализует полноценный выбор группы в программе.

В ходе выполнения функции на экран выводится полный список групп, содержащихся в системе. Пользователю предоставляется возможность ввести название необходимой ему группы. После получения программой наименования, происходит проверка на наличие данной группы в списке групп, если такая группа отсутствует, то пользователю предлагается ввести название группы повторно. Как только проверка пройдена, название группы передается в глобальную переменную, для дальнейшего использования в других функциях.

void GroupSelection()
{
	DataofStudent stud1; //объявление переменных класса DataofStudent
	std::string allgroup = "", path = "C:\journal\allgroup\allgroup.txt", delfile = "C:\journal\allgroup\delfile.txt", path2 = "C:\journal\allgroup\", txt = ".txt", choice = ""; //объявление переменных типа string
	bool flag = 1; //объявление переменных типа bool
	std::ifstream fin; //объявление переменной класса ifstream
	std::ofstream fout; //объявление переменной класса ofstream
	std::cout << "Полный список групп: n";
	fin.open(path);
	if (fin.is_open())
	{
		std::string data = "";
		while (!fin.eof())
		{
			std::getline(fin, data);		//вывод а экран полного списка групп
			std::cout << "ttt" << data << "n";
		}
	}
	else
	{
		std::cout << "ERROR"; //Файл не удалось создать или открыть//
	}
	fin.close();
	std::cout << "Введите название группы, которую хотите открыть: ";
	std::cin >> stud1.group;	//ввод название необходимой группы
	while (flag)
	{
		bool flag2 = 1;
		fin.open(path);
		if (fin.is_open())
		{
			std::string data = "";
			while (!fin.eof())
			{
				std::getline(fin, data);
				if (stud1.group == data)	//проверка на наличие введенной группы в списке групп
				{
					flag2 = 0;
					flag = 0;
				}
			}
		}
		else
		{
			std::cout << "ERROR"; //Файл не удалось создать или открыть
		}
		if (flag2)
		{
			std::cout << "Данной группы не существует, введите другую группу: ";
			std::cin >> stud1.group;	//просьба ввести название группы повторно
			flag = 1;
		}
		else
		{
			flag = 0;	//изменение буливой переменной для выхода из цыкла
		}
		fin.close();
	}
	nameofgroup = stud1.group; //присваивание названия группы в глобальную переменную
}

Grades

Функция Grades реализует, простановку оценок студентам.

В ходе выполнения функции, пользователю предлагается ввести дату, за которую он хочет выставить оценку. После получения программой даты, происходит проверка на существование файла с оценками на данную дату. Если файл существует, то происходит его запись в специализированный промежуточный файл, это происходит для реализации корректной и органичной записи в файл отметок, без потерь данных. Если файл не существует, то программа копирует данные из файла со списком группы в промежуточный файл. Следом, на экран выводится полный список группы с отметками (если они есть). Пользователю предлагается ввести фамилию и имя студента, которому он хочет выставить оценку. Как только программа получает эти данные, происходит проверка на наличие данного студента в группе, если его нет, то пользователю предлагается ввести фамилию и имя повторно. После получения данных программой, происходит создание файла для оценок на данную дату (принцип нахождения пути файла и формирования его название – сложение строк). Следом, идет поиск данного студента в промежуточном файле. Принцип поиска и записи таков: если фамилия и имя не совпадает с введенными пользователем, то происходит запись этих данных в файл с оценками, если ФИ совпали, то пользователю предлагается ввести студенту оценку, полученная строчка записывается в файл с оценками. В конце работы функции, на экран выводится список группы с внесенными изменениями.

void Grades()
{
	DataofStudent student1; //объявление переменных класса DataofStudent
	std::string way = "C:\journal\allgroup\", delfile = "delfile.txt", txt = ".txt", attendance = "\grade", choice = ""; //объявление переменных типа string
	bool flag = 0, flag2 = 1; //объявление переменных типа bool
	std::ofstream fout; //объявление переменной класса ofstream
	std::ifstream fin; //объявление переменной класса ifstream
	std::cout << "Введите дату за которую вы хотите проставить оценки: ";
	std::cin >> choice;	//ввод даты 
	fin.open(way + nameofgroup + attendance + choice + txt);
	if (fin.is_open())
	{
		flag = 1;		//проверка наличия файла с оценками на данную дату
	}
	fin.close();
	if (flag)
	{
		fin.open(way + nameofgroup + attendance + choice + txt);
		fout.open(way + delfile);
		if (fin.is_open() and fout.is_open())
		{
			std::string data = "";
			while (!fin.eof())		//запись данных существующего файла в специализированный файл
			{
				std::getline(fin, data);
				fout << data << "n";
			}
		}
		else
		{
			std::cout << "ERROR"; //Файл не удалось создать или открыть
		}
		fin.close();
		fout.close();
	}
	else
	{
		fin.open(way + nameofgroup + txt);
		fout.open(way + delfile);
		if (fin.is_open() and fout.is_open())
		{
			std::string data = "";
			while (!fin.eof())
			{									//запись  в специализированный файл списка группы 
				std::getline(fin, data);
				fout << data << "n";
			}
		}
		else
		{
			std::cout << "ERROR"; //Файл не удалось создать или открыть
		}
		fin.close();
		fout.close();
	}
	fin.open(way + delfile);
	if (fin.is_open())
	{
		std::string data = "";
		while (!fin.eof())	//вывод списка группы на экран
		{
			std::getline(fin, data);
			std::cout << data << "n";
		}
	}
	else
	{
		std::cout << "ERROR"; //Файл не удалось создать или открыть
	}
	fin.close();
	std::cout << "Введите фамилию и имя студента. которому вы хотите выставить оценку: " << std::endl;
	std::cin >> student1.name;	//ввод фамили и имени студента
	while (flag2)
	{
		fin.open(way + delfile);
		if (fin.is_open())
		{
			std::string data = "";
			while (!fin.eof())
			{
				std::getline(fin, data);
				if (data == student1.name)
				{
					flag2 = 0;	//проверка наличия данно ФИ в списке группы
				}
			}
		}
		else
		{
			std::cout << "ERROR"; //Файл не удалось создать или открыть
		}
		if (flag2)
		{
			std::cout << "Такого студента не существует, повторите ввод фамилии и имени: "; //повторный ввод ФИ студента
			std::cin >> student1.name;
		}
		fin.close();
	}
	fin.open(way + delfile);
	fout.open(way + nameofgroup + attendance + choice + txt);
	if (fin.is_open() and fout.is_open())
	{
		std::string data = "";
		while (!fin.eof())
		{
			std::getline(fin, data);
			if (data == student1.name)
			{
				bool flag3 = 1;
				for (int i = 0; i < data.length(); i++)
				{											//процесс нахождения ФИ студента в файле
					if (flag3 and data[i] != 't')
					{
						fout << data[i];	//запись данных в файл с оценками
					}
					else
					{
						flag3 = 0;
					}

				}
				std::string choice2;
				std::cout << "Введите оценку: ";	//ввод оценки
				std::cin >> choice2;
				fout << "t" << choice2 << "n";	//запись данных в файл с оценками
			}
			else
			{
				fout << data << "n";	//запись данных в файл с оценками
			}
		}
	}
	else
	{
		std::cout << "ERROR"; //Файл не удалось создать или открыть
	}
	fin.close();
	fout.close();
	std::cout << "n";
	fin.open(way + nameofgroup + attendance + choice + txt);
	if (fin.is_open())
	{
		std::string data = "";
		while (!fin.eof())
		{
			std::getline(fin, data);
			std::cout << "ttt" << data << "n";	//вывод измененных данных на экран
		}
	}
	else
	{
		std::cout << "ERROR"; //Файл не удалось создать или открыть
	}
	fin.close();
}

Attendance

Функция Attendance реализует простановку посещаемости студентов с последующей записью в файл.

В ходе выполнения функции, пользователю предлагается ввести дату, за которую он хочет выставить посещаемость. После получения программой даты, происходит проверка на существование файла с посещаемостью на данную дату. Если файл существует, то происходит его запись в специализированный промежуточный файл, это происходит для реализации корректной и органичной записи в файл посещаемости, без потерь данных. Если файл не существует, то программа копирует данные из файла со списком группы в промежуточный файл. Следом, на экран выводится полный список группы с посещаемостью (если она есть). Пользователю предлагается ввести фамилию и имя студента, которому он хочет выставить посещаемость. Как только программа получает эти данные, происходит проверка на наличие данного студента в группе, если его нет, то пользователю предлагается ввести фамилию и имя повторно. После получения данных программой, происходит создание файла для посещаемости на данную дату (принцип нахождения пути файла и формирования его название – сложение строк). Следом, идет поиск данного студента в промежуточном файле. Принцип поиска и записи таков: если фамилия и имя не совпадает с введенными пользователем, то происходит запись этих данных в файл с оценками, если ФИ совпали, то пользователю предлагается ввести посещаемость студента, полученная строчка записывается в файл с посещаемостью. В конце работы функции, на экран выводится список группы с внесенными изменениями.

void Attendance()
{
	DataofStudent student1; //объявление переменной класса DataofStudent
	std::string way = "C:\journal\allgroup\", delfile = "delfile.txt", txt = ".txt", attendance = "\attendance", choice = "";//объявление переменных типа string
	bool flag = 0, flag2 = 1; //объявление переменной типа bool
	std::ofstream fout; //объявление пременной класса ofstream
	std::ifstream fin; //объявление переменной класса ifstream
	std::cout << "Введите дату за которую вы хотите проставить посещаемость: ";
	std::cin >> choice; //ввод даты
	fin.open(way + nameofgroup + attendance + choice + txt);
	if (fin.is_open())
	{
		flag = 1;	//проверка на наличие файла
	}
	fin.close();
	if (flag)
	{
		fin.open(way + nameofgroup + attendance + choice + txt);
		fout.open(way + delfile);
		if (fin.is_open() and fout.is_open())
		{
			std::string data = "";
			while (!fin.eof())	//запись данных файла в промежуточный файл
			{
				std::getline(fin, data);
				fout << data << "n";
			}
		}
		else
		{
			std::cout << "EROR";
		}
		fin.close();
		fout.close();
	}
	else
	{
		fin.open(way + nameofgroup + txt);
		fout.open(way + delfile);
		if (fin.is_open() and fout.is_open())
		{
			std::string data = "";
			while (!fin.eof())
			{						//запись списка группы в промежуточный файл
				std::getline(fin, data);
				fout << data << "n";
			}
		}
		else
		{
			std::cout << "EROR";
		}
		fin.close();
		fout.close();
	}
	fin.open(way + delfile);
	if (fin.is_open())
	{
		std::string data = "";
		while (!fin.eof())
		{
			std::getline(fin, data);
			std::cout << data << "n";	//ввывод списка группы на экран
		}
	}
	else
	{
		std::cout << "EROR";
	}
	fin.close();
	std::cout << "Введите фамилию и имя студента. которому вы хотите выставить посещаемость: " << std::endl;
	std::cin >> student1.name;	//ввод фамили и имени студента
	while (flag2)
	{
		fin.open(way + delfile);
		if (fin.is_open())
		{
			std::string data = "";
			while (!fin.eof())
			{
				std::getline(fin, data);
				if (data == student1.name)	//проверка на наличие данного студента в группе
				{
					flag2 = 0;
				}
			}
		}
		else
		{
			std::cout << "EROR";
		}
		if (flag2)
		{
			std::cout << "Такого студента не существует, повторите ввод фамилии и имени: ";	//повторный ввод ФИ студента
			std::cin >> student1.name;
		}
		fin.close();
	}
	fin.open(way + delfile);
	fout.open(way + nameofgroup + attendance + choice + txt);
	if (fin.is_open() and fout.is_open())
	{
		std::string data = "";
		while (!fin.eof())
		{
			std::getline(fin, data);
			if (data == student1.name)
			{
				bool flag3 = 1;
				for (int i = 0; i < data.length(); i++)
				{
					if (flag3 and data[i] != 't')
					{
						fout << data[i];	//процесс нахождения студента в файле
					}
					else
					{
						flag3 = 0;
					}

				}
				std::string choice2;
				std::cout << "Введите посещаемость: ";
				std::cin >> choice2; //ввод посещаемости
				fout << "t" << choice2 << "n";
			}
			else
			{
				fout << data << "n";
			}
		}
	}
	else
	{
		std::cout << "EROR";
	}
	fin.close();
	fout.close();
	std::cout << "n";
	fin.open(way + nameofgroup + attendance + choice + txt);
	if (fin.is_open())
	{
		std::string data = "";
		while (!fin.eof())
		{
			std::getline(fin, data); //вывод измененных данных на экран
			std::cout << "ttt" << data << "n";
		}
	}
	else
	{
		std::cout << "ERROR"; //Файл не удалось создать или открыть
	}
	fin.close();
}

Comment

Функция Comment реализует в программе написание комментария к дате.

В ходе выполнения функции, пользователю предлагается ввести дату, для которой он хочет написать комментарий. При получении программой даты, происходит открытие файла с режимом открытия ios_base::app (открыть файл для записи в конец файла). Наименование файла и путь его нахождения формируется, путем сложения строк. Пользователю предлагается ввести комментарий. Происходит запись данных в файл. После на экран выводятся изменённые данные файла.

void Comment()
{
	DataofStudent student1;//объявление переменной класса DataofStudent
	std::string way = "C:\journal\allgroup\", delfile = "delfile.txt", txt = ".txt", attendance = "\comment", choice = ""; //объявление переменнх типа string
	std::ofstream fout;//объявление переменной класса ofstream
	std::ifstream fin;//объявление переменной класса ifstream
	std::cout << "Введите дату для которой вы хотите оставить коментарий: ";
	std::cin >> choice; //ввод даты
	fout.open(way + nameofgroup + attendance + choice + txt, std::ios_base::app);
	if (fout.is_open())
	{
		std::string choice2;
		std::cout << "Введите коментарий: "; //ввод коментария
		std::cin >> choice2;
		fout << choice2 << "n";
	}
	else
	{
		std::cout << "ERROR"; //Файл не удалось создать или открыть
	}
	std::cout << "n";
	fout.close();
	fin.open(way + nameofgroup + attendance + choice + txt);
	if (fin.is_open())
	{
		std::string data = "";
		while (!fin.eof())
		{
			std::getline(fin, data);	//вывод изменненных данных на экран
			std::cout << "ttt" << data << "n";
		}
	}
	else
	{
		std::cout << "ERROR"; //Файл не удалось создать или открыть
	}
	fin.close();

}

Deadline

Функция Deadline реализует в программе создание dedlin’а и комментария к нему, с записью этих данных в файл.

В ходе выполнения функции, пользователю предлагается ввести дату, на которую он хочет установить deadline. При получении программой даты, происходит открытие файла с режимом открытия ios_base::app (открыть файл для записи в конец файла). Наименование файла и путь его нахождения формируется, путем сложения строк. Пользователю предлагается ввести комментарий. Происходит запись данных в файл. После на экран выводятся изменённые данные файла.

void Deadline()
{
	DataofStudent student1; //объявление переменной класса DataofStudent
	std::string way = "C:\journal\allgroup\", delfile = "delfile.txt", txt = ".txt", attendance = "\deadline", choice = ""; //объявление переменной типа string
	std::ofstream fout; //объявление переменной класса ofstream
	std::ifstream fin; //объявление переменной класса ifstream
	std::cout << "Введите дату на которую вы хотите установить deadline: ";
	std::cin >> choice; //ввод даты
	fout.open(way + nameofgroup + attendance + choice + txt, std::ios_base::app);
	if (fout.is_open())
	{
		std::string choice2;
		std::cout << "Введите коментарий к deadlin'у: "; //ввод коментария 
		std::cin >> choice2;
		fout << choice2 << "n";
	}
	else
	{
		std::cout << "ERROR"; //Файл не удалось создать или открыть
	}
	std::cout << "n";
	fout.close();
	fin.open(way + nameofgroup + attendance + choice + txt);
	if (fin.is_open())
	{
		std::string data = "";
		while (!fin.eof())
		{
			std::getline(fin, data);
			std::cout << "ttt" << data << "n"; //вывод измененных данных на экран
		}
	}
	else
	{
		std::cout << "ERROR"; //Файл не удалось создать или открыть
	}
	fin.close();
}

Main

Аналогично, основываясь на блок схеме, был написан код основной части программы.

В ходе выполнения программы, на экран выводится меню. Пользователю предлагается выбрать один из пунктов. При выборе пункта 1, вызывается функция Reg, а затем функция Authon; При выборе пункта 2, вызывается функция Authon; При выборе пункта 3 происходит выход из программы. После успешной авторизации вызывается функция GroupSelection. После выбора группы на экран выводится меню дальнейших действий. Пользователю предлагается выбрать один из пунктов. При выборе пункта 1 вызывается функция Grades; При выборе пункта 2 вызывается функция Attendance; При выборе пункта 3 вызывается функция Deadline; При выборе пункта 4 вызывается функция Comment; При выборе пункта 5 происходит выход из программы.

void main()
{
	std::string choice = ""; //объявление переменной типа string
	bool flag = 1; //объявление переменной типа bool
	setlocale(0, ""); //установка языкового стандарта для яязыка
	std::cout << "tttДобро пожаловать в электронный журналn"; //вывод меню на экран
	std::cout << "tttЕсли вы ходите зарегистрироваться введите 1ntttЕсли выхотите авторизоваться введите 2ntttЕсли вы хотите закрыть программу введите 3n";
	std::cin >> choice;//ввод символа, отвечающего за выбор пункта меню
	if (choice == "3")
	{
		return; //выход из программы
	}
	while (flag)
	{
		if (choice == "1")
		{
			flag = 0;
			Reg(); //регистрация
			Authon();//авторизация
		}
		else
		{
			if (choice == "2" and flag)
			{
				Authon(); //авторизация
				flag = 0;
			}
			else
			{
				std::cout << "Сделайте выбор повторно: ";
				std::cin >> choice; //повторное осуществленеи выбора пункта меню
			}
		}
	}
	GroupSelection(); //выбор группы
	std::cout << "ntttВыберете дальнейшее действие:n"; //вывод меню выбора дальнейших действий
	std::cout << "tttЕсли вы хотите поставить оценку студенту, введите 1ntttЕсли проставить посещаемость, введите 2ntttЕсли вы хотите установить дату конца дедлайна, введите 3ntttЕсли вы хотите написать коментарий, введите 4ntttЕсли вы хотите закрыть программу введите 5n";
	std::cin >> choice; // ввод символа, отвечающего за выбор пункта меню
	flag = 1;
	while (flag)
	{
		if (choice == "1")
		{
			flag = 0;
			Grades(); //простанока оценки
		}
		if (choice == "2")
		{
			flag = 0;
			Attendance(); //простановка посещаемости
		}
		if (choice == "3")
		{
			flag = 0;
			Deadline(); //установка deadlin'a
		}
		if (choice == "4")
		{
			flag = 0;
			Comment(); //написание комментария
		}
		if (choice == "5")
		{
			return; //выход из программы
		}
		if (choice != "1" and choice != "2" and choice != "3" and choice != "4" and choice != "5")
		{
			flag = 1;
			std::cout << "Повторите ввод: ";
			std::cin >> choice; //повторное осуществление выбора пункта меню
		}
	}
}

Для реализации полноценной работоспособности моей программы необходимо создать несколько текстовых файлов и директорий согласно диаграмме.

диаграмма

диаграмма

В файл allgroup.txt необходимо записать название группы. Также папке allgroup нужно создать папку с название группы и текстовый документ с названием группы, в который необходимо занести список группы.

Тестирование и отладка программы

Для проведения корректного и полного тестирования следует поставить несколько тест кейсов, а именно.

Тестирование работы регистрации

Тестирование работы регистрации
Тестирование авторизации
Тестирование авторизации
Тестирование выбора группы
Тестирование выбора группы
Тестирование постановки оценки
Тестирование постановки оценки
Тестирование постановки посещаемости
Тестирование постановки посещаемости
Тестирование установки даты конца дедлайна
Тестирование установки даты конца дедлайна
Тестирование написания комментария к дате
Тестирование написания комментария к дате

В ходе тестирования программы критических ошибок выявлено не было.

Заключение

По итогу у меня получилось разработать макет электронного журнала для преподавателей, содержащий следующие компоненты:

  • Класс DataofTeature, хранящий в себе информацию о преподавателе.

  • Класс DataofStudent, хранящий в себе информацию о студенте.

  • Функция Reg, реализующая регистраци.

  • Функцию Authon, реализующая авторизацию в программу.

  • Функция GroupSelection, реализующая выбор группы.

  • Функция Grades, реализующая простановку оценок.

  • Функция Attendance, реализующая простановку посещаемости.

  • Функция Comment, отвечающая за возможность написания комментария к дате.

  • Функция Deadline, дающая возможность установить дэдлайн и написать к нему комментарий.

  • Функция main, в которой реализовано основное взаимодействие пользователя с программой (меню и т.д.).

Весь код программы был написан в среде разработки Visual Studio 2022. Суммарный объем строк в тексте программы составляет 724.

Это текст для тех, кто решил написать программу для людей — сервис, приложение или что-то подобное. То есть не просто «Хеллоу ворлд», а что-то полезное, функциональное и потенциально пользующееся спросом. Может быть, вы на этом даже планируете зарабатывать. Вот на что обратить внимание на старте: подводные камни, ошибки и нюансы. 

Нужно ли это писать?

Вот простой способ понять, нужно ли писать эту программу. Задайте себе вопрос: «Делают ли сейчас вручную то, что я хочу зашить в программу?»

В этом вопросе сразу два компонента: 

  1. Люди уже делают то, что будет улучшать ваша программа. То есть существует некоторый спрос на эту работу. 
  2. Люди делают это руками, а значит, они хотели бы это автоматизировать.

Распространенная ошибка — делать программу для того, что люди сейчас не делают в принципе. 

🤔 Например, вы придумали программу для ведения бюджета: туда нужно вводить данные о ваших покупках по категориям, а она бы складывала траты за месяц. Делают ли это люди? Вроде делают, но до поры. Обычно человек начинает вести бюджет, два месяца что-то пишет, а потом забрасывает, потому что денег от этого больше не становится. А еще есть приложения банков, которые сами считают статистику трат. Маловероятно, что очередной менеджер личного бюджета как-то изменит ситуацию. 

✅ А вот что люди часто делают руками, так это регулярно оплачивают разные счета: за связь, интернет и коммуналку. И многие не любят настраивать автоплатежи, чтобы никто не смог с них списать ничего лишнего. Еще они регулярно подают сведения по коммуналке. И наверняка есть еще какие-то дела, которые они делают раз в месяц, раз в квартал или раз в год. Можно было бы поставить себе напоминание в календарь, но его легко проглядеть и забыть. Вот бы была напоминалка, которая ходит за тобой, пока ты не сделаешь дело, — был бы кайф. 

Полезное ядро

Как часто делают: в голове рождается задумка программы, автор садится её писать и начинает буквально с начала — с экрана логина, первого интерфейса, первого экрана, в общем, чего-то первого. Необязательно на этом экране будет происходить основная работа программы. Просто по задумке этот экран должны увидеть первым. 

Как лучше: понять, что будет полезным ядром программы, и сначала убедиться, что вы можете его реализовать. Потом завернуть это ядро в модуль или функцию и уже поверх него написать интерфейс, окна, экраны и всё что угодно. 

✅ Например, в приложении для напоминаний полезное ядро — само напоминание, которое вываливается в нужный момент. Потом, может быть, нужно дать напоминанию статус «Я это уже сделал в этом месяце» или «Напомни мне через…» и опцию повторного срабатывания через какое-то время. 

🤔 А вот интерфейс установки напоминания и инфраструктура для хранения напоминаний не так важны на первом этапе. 

💡 Часто такое же полезное ядро уже реализовал кто-то другой в виде бесплатной библиотеки. Это большая удача: взяли, изучили, допилили — быстро выпустили свой продукт. 

На каком языке?

Есть технологии и языки, которые совсем не подходят для вашей задачи: например, Python совсем не нужен для десктопных приложений. В остальном большинство популярных языков мало-мальски могут всё. 

На старте обычно рекомендуют не гоняться за идеальным языком, а, наоборот, взять тот язык, которым вы уже владеете, и попробовать реализовать задумку на нём. И, если это точно не подходит, искать другие технологии. 

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

Составьте схему или план

Когда у вас появится функциональное ядро, прикиньте на листочке, как будет устроен проект целиком:

  • из каких модулей он будет состоять, включая всякие вспомогательные системы типа логина или восстановления пароля;
  • как они могут влиять друг на друга;
  • какие могут возникнуть ошибки;
  • какие ещё технологии понадобятся для реализации — например, уведомлять можно с помощью пуша, а можно почтой, а можно в самом приложении.

Задача — собрать в голове всю функциональную картину приложения. Это поможет избежать ситуации, когда половина кода уже написана, но вдруг выясняется, что данные нужно всё время синхронизировать с сервером и придётся переписывать логику.

Как начать писать программу и не пожалеть

Схема работы внутреннего чат-бота редакции на Python. На неё ушло 15 минут, и стало понятно, как именно нужно обрабатывать запросы от пользователей и что делать, если потребуется восстановить данные после сбоя

❌ Часто проекты делают так: рисуют полную схему с подробнейшими выкладками, а потом пытаются написать по ней код за один присест. К середине проекта приходит понимание, что всё как-то сложно. В итоге руки опускаются и проект ставится на паузу, чаще всего навсегда.

✅ Вместо этого можно использовать метод быстрых версий:

  1. Выбрать самое простое действие, которое можно сделать прямо сейчас. Например, вывести стартовую картинку или отправить на сервер строчку «Привет, это тестовый запрос!». Убедиться, что всё работает.
  2. Выбрать следующее действие, которое добавляем в проект, например отрисовку главной страницы или сохранение JSON-запроса в файл. Написать код и проверить, как всё работает.
  3. Если работает — перейти к следующему действию, если нет — исправить и потом всё равно перейти.

Так мелкими перебежками и небольшими итерациями можно сделать практически любой проект. Хитрость в том, что мы не замахиваемся на всё сразу, а делаем маленькими порциями, параллельно изучая новое и проверяя знания на практике.

Всё, за дело

  1. Убедитесь, что это кому-то нужно (даже если это только вы).
  2. Возьмите тот язык, которым владеете (а не идеальный).
  3. Реализуйте центральный модуль (хотя бы базово).
  4. Нарисуйте схему работы всего остального (не держите в голове).
  5. Прописывайте мелкие действия и тут же тестируйте (а не пишите сразу всю кодовую базу за один раз).

Этого хватит, чтобы собрать личный проект. А там и до совместного недалеко, но совместный — это немного более сложная история. 

Корректор:

Екатерина Череповицына

Вёрстка:

Кирилл Климентьев

Как писать компьютерные программы

сообщество редакторов, исследователей и специалистов

wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 12 человек(а).

Количество просмотров этой статьи: 52 706.

По мере того как технология становится все более и более доступной широкой публике, растет и потребность в программистах. Написание компьютерных кодов и программ, оно же кодинг (от английского «сoding») — это навык, который приобретается и совершенствуется на протяжении долгого времени, но даже самый опытный программист когда-то был новичком. Существует большое разнообразие языков программирования, которые великолепно подходят для начинающих программистов, вне зависимости от того, в какой сфере деятельности вы хотите применять ваши навыки (например, JavaScript довольно сложен, так что лучше начать с HTML или CSS). Узнайте, как научиться писать компьютерные программы, прочитав эту статью.

Наш специалист делится своей историей:: «Я пришла к написанию кодов, не зная ничего ни о компьютерном дизайне, ни о программировании. Когда я захотела научиться писать программы, я начала с чтения книг по языку и с использования информации из интернета. Сегодня в мире доступно так много ресурсов, что научиться новым навыкам очень легко!»

Источник статьи: http://ru.wikihow.com/%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C-%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B

Программирование (С#) для тех, кто хочет научиться, но не знает с чего начать

Это статья будет полезна людям, которые хотят получить новые навыки (писать программы), но не знают с чего начать или плохо понимают самые простые термины связанные с программированием. Людям абсолютно любого возраста и образования (достаточно среднего уровня знакомства с операционной системой Windows).

Я много лет программировал на языке С++, но мне захотелось (как хобби,а не для работы) сделать модель системы с хорошей визуализацией процесса. И тут я осознал, что надо использовать другой язык. Выбор пал на С# (читается Си Шарп ), потому что потом его удобно стыковать будет с графикой Unity . Я полез в документацию к языку и подумал: это мне легко начать программировать на новом языке, имея опыт других языков и сред разработки, а кто-то может хочет научиться, но бросает потому что просто не знает куда печатать код программы или как организовать программу, чтобы она делала то, зачем её писали. Поэтому я решил параллельно со своим обучением писать статью, в которой буду рассказывать что и как делать, видя проблемы, с которыми сталкивается новичок, изнутри.

Итак у нас есть компьютер с Windows и желание программировать. Программирование — это создание программы (чаще всего в текстовом виде). Потом эта программа выполняет то, что мы от неё хотим. Сам текст программы надо написать в редакторе. Затем этот текст при необходимости подвергается отладке ( дебаг ) и упаковывается в файл-программу ( компиляция ). Редактор, который умеет делать отладку и компиляцию называется средой разработки ( IDE ). Я предлагаю использовать одну из самых крутых IDE (которая к тому же предоставляется бесплатно самими Microsoft) Visual Studio. Скачиваем её (версию Community, читается как комъюнити и переводится как «сообщество») с официального сайта и устанавливаем (на диске C желательно иметь около 20 Гб свободного места). Процесс установки интуитивно понятен. Ставим галочку в блоке C# и устанавливаем. Я поставил галочку ещё и в Unity, чтобы не качать и устанавливать его отдельно.

По процессу установки есть огромный кусок документации . Язык в документации переключается в левом нижнем углу, слева в колонке выбор тем, сверху в строке текущий раздел — всё в одном месте интуитивно понятно. Вообще С# имеет документацию, уроки и примеры почти на всех языках и это очень удобно, потому что на все вопросы можно найти ответы, в отличии от многих других языков программирования. Так же у языка имеется развитое комъюнити, так что типичные вопросы можно найти уже заданными кем-то на форумах просто воспользовавшись поиском Яндекса или самому задать, зарегистрировавшись на каком-то форуме по этому языку. Программирование это больше поиск способа решения, чем набор самого кода (текста программы), поэтому зачастую больше времени уходит (даже у опытного программиста) на чтение документации, поиск и изучение вариантов решения похожих задач (библиотек и шаблонов).

Пока скачивается и устанавливается расскажу чуть теории, а потом продолжим.

Основной принцип написания программ

Далее без теории всё равно не обойтись, поэтому я расскажу основной принцип написания программ. Алгоритм работы — это порядок действий сформулированный так, что не допускает домыслов или разных способов выполнения одного и тоже действия. Многие не любят конкретные примеры, но для того чтобы человек понял как работает программа следует поставить программу на место человека, тогда станет понятно отличие логики работы программы от человеческой.

Например жена хочет что-то приготовить и посылает Вас в магазин за продуктами и говорит: купи батон, молоко, если будут зелёные яблоки, то купи один килограмм, если будут красные, то сходи в магазин столько раз, сколько надо, пока не скупишь все красные яблоки.

Человек услышав такое, скорее всего увидев на полке и зелёные и красные яблоки, не купит килограмм зелёных, а скупит все красные. С точки зрения программы все команды выполняются последовательно и если сначала сказано взять килограмм зелёных яблок, то наличие красных будет проверено только после этого. Чтобы были или зелёные или красные следует сказать » если будут зелёные яблоки, то купи один килограмм, если будут красные, то вместо покупки зелёных сходи в магазин столько раз «. Но тогда программа убедится, что зелёные яблоки есть, но отложит выполнение или отмену до тех пор пока не проверит наличие красных яблок. Эффективнее сказать сначала про красные, а потом про зелёные. На уроках информатики принято рисовать блок-схемы алгоритмов, но на практике к ним прибегают очень редко и они содержат много придуманных только что, но наглядных элементов. Нарисуем алгоритм этой задачи от жены (после дебага), используя для действий прямоугольник, для условий ромб.

Мы видим что в такой простой задаче использованы условия ( если ), повторы или циклы ( пока ). Алгоритм выглядит компактнее записи в виде слов, но программы чаще всего пишутся словами. Попробуем написать эту программу сначала словами нашего языка:

3. Есть ли в магазине красные яблоки?

4. Если да, тогда купи красных яблок сколько унесёшь.

5. В магазине остались красные яблоки?

6. Если да, тогда вернись в магазин и продолжай покупки с третьей строки списка.

7. Если в ответе на третью строке списка первый раз было «нет», тогда есть ли в магазине зелёные яблоки?

8. Если да, тогда Купи один килограмм зелёных яблок.

Строки «Попытайся купить батон» можно заменить на «Есть ли в магазине батон? Если есть Купи батон.», но можно и не менять, так как в большинстве языков программирования существует оператор попытки. Эти 8 строк нельзя выполнить двумя разными способами и они не нуждаются в додумывании действия, если что-то пошло не так. Такой алгоритм можно перевести на любой язык программирования высокого уровня.

Сам алгоритм можно составить несколькими способами. Следует выбирать наиболее простой с точки зрения выполнения компьютера и объёма текста, учитывая возможную необходимость вносить изменения (то есть чтобы был понятным и легко масштабируемым, если так не получается, то программисты такой код называют костылём ). Повторяющиеся операции следует объединять в процедуры (или функции ), чтобы не копировать уже написанное, и ставить комментарии по работе сложных фрагментов (даже для самого себя).

Первая программа на C#

Обычно примером первой программы становится вывод на экран текста «Hello, World!». Раздел изучения C# на официальном сайте с этого и начинается. Далее там рассказываются основы синтаксиса и примеры использования. Со знанием этого словесный алгоритм из «Если А равно Б Тогда Действие» переводится в «if(a==b)действие;» . Справа вверху примеров есть зелёная кнопка для того чтобы пробовать фрагмент кода прямо в браузере. Либо для консольных приложений можно пользоваться сторонними сайтами, например первой же строкой найденной в Яндексе .

Например, я хочу, чтобы моя программа угадывала какую логическую операцию я выполнил (И или ИЛИ) над парой двоичных чисел. Для начала сделаем консольную программу ( приложение ). Вот её алгоритм (не такой подробный как с яблоками):

1. Запросим ввод трёх чисел. Проверим, чтобы введённое было тем, что мы ждём (три двоичных числа одинаковой длины).

2. Попытаемся конвертировать то, что нам ввели в двоичный формат (числа, состоящие из нулей и единиц). Если вы приступили к созданию первой программы сложнее «Hello World», то наверняка прочитали основы языка до циклов включительно (занимает около двух часов времени). Если ещё нет и предпочитаете разведку боем, то я буду делать комментарии, но помните, что язык намного шире того, что я использовал.

3. Выполняем операцию И, если это не И, то выполняем операцию ИЛИ, если это не ИЛИ, то признаёмся, что не знаем какая это операция. Такая конструкция называется условным оператором или ветвлением или ифчиком .

4. Повторяем пункт 3 для каждой пары символов. Предположение об операции делаем по факту большинства опознанных результатов побитового сравнения.

5. Программа должна вывести на экран сообщение о предполагаемой логической операции.

При первом запуске программа предложит открыть сторонний проект (потом будет предлагать из Ваших проектов плюс эти же варианты). В самом низу есть ссылка по которой просто открывается программа. В самой программе нажимаем Файл->Создать->Проект. Выбираем «Консольное приложение C# «.

Источник статьи: http://zen.yandex.ru/media/pss/programmirovanie-s-dlia-teh-kto-hochet-nauchitsia-no-ne-znaet-s-chego-nachat-5ec0f87272423a6de38c5726

Как новичку в программировании написать свою первую программу?

Очень хочу научиться программировать. На каких языках мне лучше начинать?

JavaScript прекрасно решает свою задачу: быть скриптовым языком на вебе, но для обучения он слишком мутный. Его придумали в кратчайшие сроки (у создателей было 10 дней до презентации) прежде всего из маркетинговых соображений. Яваскрипт быстро развивается, но остается прежде всего прикладным инструментом для работы с вебом. Лучше оставьте Яваскрипт на потом, он никуда от вас не денется.

Python — один из лучших вариантов для начинающих. Питон вырос из языка ABC, который как раз создавался для обучения программированию. Питон придуман для того, чтобы быть первым языком.

Питон все чаще используют при обучении в ВУЗах и школах. По Питону гораздо больше качественных фундаментальных учебных материалов, чем по другим языкам. В общем профессиональные преподаватели все чаще выбирают Питон, чтобы именно учить программированию.

Питон — язык программирования общего назначения. На нем можно писать программы для десктопов, делать сайты, игры, мобильные приложения, программировать квадрокоптеры, умные дома и черт знает что еще. Многие выбирают Питон за его простоту и ясность.

И самое главное, Питон дисциплинирует и приучает писать понятный и структурированный код.

Программист прежде всего работает с алгоритмами, а язык — это инструмент. Для начинающих Питон — отличный инструмент. Начните с Питона, а когда освоите, то выбирайте язык под задачу.

Вопрос про программирование. Я никогда не изучал языки программирования. Хочу начать, но не знаю с какого. С чего бы начать?

Pascal — точно нет. Сам язык считается очень хорошим для обучения, но увы, уже лет 20 как мёртв. Базовые концепции программирования вы на нём освоите, а вот все знания по синтаксису потом придётся выкидывать на помойку и учить заново.

По той же причине не стоит начинать изучение с Basic и ему подобных.

Есть семейства языков со своим «уникальным» синтаксисом, типа Pyton, Lisp и т.д., но если нет твёрдой уверенности, что дальше будете работать именно с ними, то тоже не советую. На начальном этапе цена переучивания синтаксиса очень высокая.

В общем, я бы рекомендовал начать с С-подобных языков. Из основных тут, собственно C, C++, C#, Java, JavaScript и PHP. Есть ещё ряд других, но они не на столько распространены.

JavaScript — отметаем сразу. Он делался «на коленке» и содержит в себе множество нелогичных конструкций с которыми приходится мириться современным разработчикам. Плюс это язык с так называемой «динамической» типизацией. Как язык для изучения основ использовать его точно не стоит.

Также, по причине «динамической» типизации, отметаем PHP.

Чистый C. я бы поспорил. С одной стороны, в начале будет тяжело из-за постоянных ошибок с утечками памяти и неправильной адресацией, но с другой, если освоите это, то дальше будет на порядок проще с пониманием нового.

С++, который ещё называют «C с классами» — то же самое, но добавляются концепции объектно ориентированного программирования. С точки зрения обучения основам принципиальной разницы нет.

Остаются C# и Java. Они «одноклассники», созданные прямыми конкурентами для решения бизнес-задач. Java больше распространён, у C# чуть более понятный и логичный синтаксис.

Дальше имеет смысл отталкиваться от задач. Если есть желание заняться, например, написанием игр, то всё-таки стоит начать с C/C++ и сразу развивать в себе навыки контроля памяти и прочих специфичных для C/C++ нюансов. Если же больше привлекает решение бизнес-задач, то смотрите, какие свзанные с этим конторы есть в вашем городе и целенаправленно затачивайте свои знания под это. Если у вас в городе, допустим, никто C# не практикует, то и изучать его смысла особо нет.

Источник статьи: http://yandex.ru/q/question/computers/kak_novichku_v_programmirovanii_napisat_36e1b4e3/

10 способов научиться программировать самостоятельно

Программирование — один из ценнейших навыков для карьерного роста, саморазвития и создания чего-нибудь удивительного. Десять советов для тех, кто только начинает своё путешествие в мир программирования, от Lifehacker .

10. Выясните, почему вы хотите программировать

Выбранное направление в учёбе будет зависеть в большей степени от того, почему именно вы хотите научиться программировать и сколько времени вы готовы уделять этому процессу. Если вы хотите стать программистом, первое что следует сделать — это записаться на профессиональные курсы (Google скомпилировал список навыков и курсов для тех, кто хочет стать инженерами-программистами). Если вы хотите создавать игры и веб-сайты для развлечения в свободное время, лучшим выбором являются интерактивные курсы. Bloc создал сравнительную таблицу курсов в зависимости от загрузки, стоимости и причины изучения программирования.

9. Выберите правильный язык

Не существует лучшего языка программирования, и как только вы выучите один, вам будет нетрудно освоить и второй. Так что не стоит зацикливаться на выборе первого языка. Тем не менее, считается, что некоторые языки даются новичкам легче , чем другие.

Язык, с которого стоит начать, зависит от причины изучения. (К примеру, если вы хотите создать приложение под iOS, вам лучше начать с изучения Swift). Если вы со всей серьёзностью отнеслись к намерению программировать, можно начать с языка C . Хотя выбрав Python, вам будет проще влиться в струю программирования. Приводим инфографику для сравнения нескольких популярных языков программирования.

8. Начните с малого… и будьте терпеливы

Независимо от выбора языка или метода обучения, вам следует начать с самого начала. Когда Дэвид Сински (David Sinsky) научился программировать за восемь недель, он, к примеру, потратил одни выходные на изучение основ Python, а другие — на Django. Взяв учебник, он удалял написанный код и снова проходил обучающий материал с нуля. Начните с основ и будьте терпеливы к себе. Взяв первый проект в программировании , разделите его на несколько этапов. И если один из способов обучения вам не подходит, не опускайте руки — попробуйте другой .

7. Попробуйте приложения для детей

Сейчас даже малыши учатся программированию. Несмотря на то, что многие программы для детского обучения весьма просты, некоторые из них (например, Scratch ) подходят для любого возраста. Не имеет значения, сколько вам лет, даже детские анимационные приложения могут научить основам программирования (у edX есть новый курс обучения по Scrtach ).

6. Воспользуйтесь бесплатными онлайн-тренингами

Бесплатные онлайн тренинги и проекты ( Codecademy , Hour of Code и др.) могут помочь вам в написании первой программы. Учебные пособия от Khan Academy, Codecademy, Code.org и других познакомят с основами программирования и всем необходимым для создания игры, сайта или другого проекта. Найдите нужный источник в зависимости от языка программирования, воспользовавшись Bento . Это хорошая отправная точка, однако дальнейшее обучение вам нужно взять на себя.

5. Пройдите онлайн-курс

Онлайн-курсы по программированию предполагают более обширную образовательную подготовку по сравнению с сайтами, предлагающами онлайн-тренинги по одному языку. Такие курсы предназначены для обучения основным навыкам в течение нескольких месяцев на занятиях университетского уровня. Я большой поклонник гарвардского онлайн-курса CS50 (его можно пройти бесплатно). Существуют также другие возможности . Вы даже можете получить образование университетского уровня, выбрав один из 15 онлайн-курсов .

4. Бесплатные книги по программированию

Если вы застряли на какой-то проблеме или вам нужно найти ответ на свой вопрос, не стоит забывать о справочниках. На GitHub можно найти огромную коллекцию из более чем 500 бесплатных книг по программированию. Также доступна коллекция электронных книг, охватывающая 24 языка программирования.

3. Изучайте, играя

Иногда лучшим способом обучения являются игры. В то время, как многие учебники по программированию обучают вас программировать простые либо сложные игры, некоторые обучающие сайты сами являются играми: Code Combat и CodinGame — инструменты, используя которые вы можете весело провести время.

2. Найдите наставника или станьте им

Сообщество программистов полно людей, готовых помочь следующему поколению программистов. Hack.pledge() — сайт, который поможет вам найти наставника. Либо вы сами можете стать наставником для кого-то другого. Преподавание изученного поможет вам лучше запомнить информацию.

1. Разберите чужой код

Переписывая чужой код , исследуя каждую строчку на предмет ошибок, вы сможете лучше понять общую картину. Благодаря открытым исходникам кода, вы имеете возможность узнать всё, что угодно — продолжайте учиться, используя инкрементально-хакерский подход . Только не забудьте поделиться своим кодом, если вам удастся улучшить часть ПО.

Спасибо за прочтение! Подписывайтесь и ставьте лайк. Этим Вы очень поможете в развитии блога!

Источник статьи: http://zen.yandex.ru/media/codeblog/10-sposobov-nauchitsia-programmirovat-samostoiatelno-5bcc885a5e9ba600af1bff79

Добавить комментарий