Главная страница
Навигация по странице:

  • Курсовая РАБОТА

  • ЗАДАНИЕ на курсовую работу

  • 1. Теоретическая часть

  • Язык программирования «C»

  • 3. Результаты тестирования программы

  • 3.2. Обработка ошибок, возникающих при некорректном вводе пользователя

  • 3.3. Обработка ошибок, не связанных с вводом пользователя

  • ПРИЛОЖЕНИЕ 2. БЛОК-СХЕМА АЛГОРИТМА

  • Программирование курсовая. Приложение Калькулятор


    Скачать 334 Kb.
    НазваниеПриложение Калькулятор
    АнкорПрограммирование курсовая
    Дата06.06.2022
    Размер334 Kb.
    Формат файлаdoc
    Имя файлаDosdacha.doc
    ТипКурсовая
    #572855


    МИНОБРНАУКИ РОССИИ

    Санкт-Петербургский государственный

    электротехнический университет

    «ЛЭТИ» им. В.И. Ульянова (Ленина)

    Кафедра информационной безопасности


    Курсовая РАБОТА

    по дисциплине «Программирование»

    Тема: Приложение «Калькулятор»

    Студент гр. 1363




    Соловьев М.И.

    Преподаватель




    Халиуллин Р.А.



    Санкт-Петербург

    2021

    ЗАДАНИЕ на курсовую работу


    Студент Соловьев М.И.

    Группа 1363

    Тема работы: Приложение «Калькулятор»

    Исходные данные:

    Разработать на языке программирования C или C++ (по выбору студента) приложение для выполнения простых расчетов с использованием основных арифметических операций (сложение, вычитание, умножение, деление). Значения для расчета (не менее двух значений) и арифметическая операция вводятся пользователем. Поддержка вещественных значений (значений с плавающей точкой) не обязательна. Допускается возникновение целочисленного переполнения в результате выполнения арифметической операции. Ввод/вывод значений должен осуществляться в десятичной системе счисления. Приложение должно иметь консольный или графический интерфейс (по выбору студента). В интерфейсе приложения допускается использовать буквы латинского алфавита для транслитерации букв алфавита русского языка. Интерфейс приложения должен быть интуитивно понятным и содержать подсказки для пользователя. В исходном коде приложения должны быть реализованы функции. В исходном коде приложения должны быть реализованы проверки аргументов реализованных функций и проверки возвращаемых функциями значений (для всех функций — как сторонних, так и реализованных). Приложение должно корректно обрабатывать ошибки, в том числе ошибки ввода/вывода, выделения/освобождения памяти и т. д.

    Содержание пояснительной записки:

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

    Дата выдачи задания: 07.11.2021

    Дата сдачи реферата: 24.12.2021

    Дата защиты реферата: 30.12.2021

    Студент




    Соловьев М.И.

    Преподаватель




    Халиуллин Р.А.


    Аннотация

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

    Summary

    Course work is devoted to the development of the console application "Calculator". The application was developed in the C programming language. As a result of the work, a program was created that can perform basic arithmetic operations (addition, subtraction, multiplication, division). The program has been tested for incorrect user input.


    содержание




    Введение

    6

    1.

    Теоретическая часть

    7

    1.1.

    Сведения о программном калькуляторе

    7

    1.2.

    Язык программирования C

    7

    2.

    Реализация программы

    8

    2.1.

    Язык программирования

    8

    2.2.

    Программное обеспечение

    8

    2.3.

    Реализованные функции

    8

    3.

    Результаты тестирования программы

    10

    3.1.

    Выполнение программы при корректном вводе пользователя

    10

    3.2.

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

    11

    3.3.

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

    Заключение

    13

    14




    Список использованных источников

    15




    Приложение 1. Руководство пользователя

    Приложение 2. Блок-схема алгоритма

    Приложение 3. Исходный код программы

    16

    18

    19


    введение

    Целью курсовой работы является разработка приложения «Калькулятор» для выполнения простых расчетов с использованием основных арифметических операций (сложение, вычитание, умножение, деление).

    В связи с поставленной целью необходимо решить следующие задачи:

    1. Выбрать язык программирования;

    2. Выбрать тип интерфейса приложения;

    3. Определить алгоритм программы;

    4. Реализовать проверку ошибок.

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


    1. Теоретическая часть

      1. Сведения о программном калькуляторе

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

      1. Язык программирования «C»

    Си (англ. C) — компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как развитие языка Би. Первоначально был разработан для реализации операционной системы UNIX, но впоследствии был перенесён на множество других платформ. Согласно дизайну языка, его конструкции близко сопоставляются типичным машинным инструкциям, благодаря чему он нашёл применение в проектах, для которых был свойственен язык ассемблера, в том числе как в операционных системах, так и в различном прикладном программном обеспечении для множества устройств — от суперкомпьютеров до встраиваемых систем. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++C#Java и Objective-C.

    2. Реализация программы

    2.1. Язык программирования

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

    2.2. Программное обеспечение

    Курсовая работа выполнялась на операционной системе «Windows 10» в интегрированной среде разработки «Visual Studio 2019» и с помощью компилятора «MSVC».

    2.3. Реализованные функции

    Функция solve.

    Функция solve выполняет основные вычисления программы.

    Исходный код функции solve находится в файле main.c

    Объявление функции:

    float solve(float f, float s, char* op);

    Тип функции: float.

    Аргументы функции:

    • f – переменная типа float, 1 число, введенное пользователем;

    • s – переменная типа float, 1 число, введенное пользователем;

    • op – указатель на строку, которая является оператором.

    Возвращаемое функцией значение:

    Функция main.

    Функция main является начальной точкой выполнения программы.

    Исходный код функции main находится в файле main.c

    Объявление функции:

    int main();

    Тип функции: int.
    Аргументы функции отсутствуют.

    Возвращаемое функцией значение:

    • -1 – функция завершилась с ошибкой вызова функции printf;

    • 0 – функция завершилась без ошибок.


    3. Результаты тестирования программы

    3.1. Выполнение программы при корректном вводе пользователя

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



    Рисунок 1 – Выбор оператора

    Далее пользователю нужно написать в консоль числа, к которым применится введенная ранее математическая операция. Если был введен оператор «q», то программа завершит свою работу (см. рисунок 2).



    Рисунок 2 – Ввод 2 чисел

    На следующем этапе выводится результат вычисления и начинается цикл повторного выполнения программы с самого начала (см. рисунок 3).



    Рисунок 3 – Результат вычисления

    3.2. Обработка ошибок, возникающих при некорректном вводе пользователя

    При попытке ввода оператора, который не входит в список определенных, программа выдаст сообщение об ошибке и начнет выполнение заново (см. рисунок 4).



    Рисунок 4 – Ошибка ввода оператора

    Также оператор чувствителен к пробелам, например, если ввести « +», то программа сообщит об ошибке (см. рисунок 5).



    Рисунок 5 – Некорректный ввод оператора

    Программа также обрабатывает ошибки при вводе чисел. При попытке ввода только 1 числа, пользователь получает сообщение о некорректном вводе (см. рисунок 6).



    Рисунок 6 – Некорректный ввод чисел

    При попытке ввода букв и других посторонних символов, не имеющих ничего общего с цифрами, программа выдает сообщение об ошибке ввода (см. рисунок 7).



    Рисунок 7 – Использование букв при вводе чисел

    3.3. Обработка ошибок, не связанных с вводом пользователя

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

    заключение

    В ходе выполнения курсовой работы разработано приложение «Калькулятор» для выполнения простых расчетов с использованием основных арифметических операций (сложение, вычитание, умножение, деление).

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

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

    1. Бент Кент. Экстремальное программирование. Разработка через тестирование. Питер, 2020. 224 с.

    2. Дональд Э. Кнут. Искусство программирования. Вильямс, 2019. 832 с.

    3. Скиена Стивен С. Алгоритмы. Руководство по разработке. БХВ –Петербург, 2018. 720 с.

    4. Шень А. Программирование. Теоремы и задачи. Учебное пособие. МЦНМО, 2021. 320 с.

    5. Архитектура корпоративных программных приложений / Фаулер Мартин, Райс Дейвид. Вильямс, 2007. 544 с.

    6. Язык программирования С / Керниган Брайан, Ритчи Деннис. Вильямс, 2019. 288 с.

    7. Искусство тестирования программ / Гленофорд Майерс, Баджетт Том, Сандлер Кори. Вильямс, 2020. 272 с.

    8. Программный калькулятор – Software Calculator: [Электронный ресурс] // Hrwiki. URL: https://hrwiki.ru/wiki/Software_calculator. (дата обращения 20.12.2021).

    9. Си (язык программирования): [Электронный ресурс] // Википедия. URL: https://ru.wikipedia.org/wiki/%D0%A1%D0%B8_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F). (дата обращения 20.12.2021).

    10. Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина): [Электронный ресурс]. URL: https://etu.ru (дата обращения 20.12.2021).


    приложение 1. руководство пользователя

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

    • Умножение;

    • Деление;

    • Сложение;

    • Вычитание.

    Минимальные системные требования:

    • Процессор с частотой не менее 1 ГГц;

    • 1 ГБ оперативной памяти;

    • 16 ГБ свободного места на диске;

    • Видеоадаптер, поддерживающий DirectX 9.

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

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

    Программы разделена на следующие этапы:

    1. Ввод желаемого оператора

    2. Ввод чисел

    3. Получение результата

    На первом этапе пользователю нужно ввести математическую операцию, желаемую для использования (см. рисунок 8).



    Рисунок 8 – Ввод оператора

    На втором этапе пользователю нужно ввести 2 числа, к которым будет применена операция, введенная на 1 этапе (см. рисунок 9).



    Рисунок 9 – Ввод чисел

    На третьем этапе пользователь получает результат вычисления (см. рисунок 10).



    Рисунок 10 – Результат вычисления

    ПРИЛОЖЕНИЕ 2. БЛОК-СХЕМА АЛГОРИТМА



    Рисунок 11– Блок-схема алгоритма
    ПРИЛОЖЕНИЕ 3. ИСХОДНЫЙ КОД ПРОГРАММЫ

    Файл main.c:

    #include

    #include

    #include

    #define _CRT_SECURE_NO_WARNINGS

    #define SIZE 5

    float solve(float f, float s, char* op) {

    if(op==NULL){

    return -1;

    }

    float res;

    if (strcmp(op, "+") == 0) {

    res = f + s;

    if(printf("%f\n", res)<0){

    return -1;

    };

    return 1;

    }

    else if (strcmp(op, "-") == 0) {

    res = f - s;

    if(printf("%f\n", res)<0){

    return -1;

    };
    return 1;

    }

    else if (strcmp(op, "*") == 0) {

    res = f * s;

    if(printf("%f\n", res)<0){

    return -1;

    };

    return 1;

    }

    else if (strcmp(op, "/") == 0) {

    if (s == 0) {

    if(printf("error division by zero\n")<0){

    return -1;

    };

    return -1;

    }

    else {

    res = f / s;

    if(printf("%f\n", res)<0){

    return -1;

    };
    return 1;

    }

    }

    return -1;

    };
    int main(void)

    {

    const char* list[SIZE] = { "+","-","/","*","q" };

    do {

    float f, s, res;

    char op[5];

    int flag = 0;

    int errorflag = 0;

    int ch;
    if (printf("Enter op(+,-,/,*,q): ") < 0) {

    return -1;

    };
    if (!fgets(op, sizeof(op), stdin)) {

    printf("error,non-valid operator\n");

    continue;

    }

    if (!strchr(op, '\n')) {

    errorflag = 1;

    while ((ch = getchar()) != '\n' && ch != EOF);

    }

    if (errorflag) {

    printf("invalid input\n");

    continue;

    }

    op[strlen(op) - 1] = 0;

    for (int i = 0; i < SIZE; i++) {

    if (strcmp(op, list[i]) == 0) {

    flag = 1;

    break;

    }

    }

    if (strcmp(op, "q") == 0) {

    return 0;

    }

    if (!flag) {

    printf("non-valid operator\n");

    continue;

    }


    char line[256];

    if (printf("Enter 2 numbers: ") < 0) {

    return -1;

    };

    if (!fgets(line, sizeof line, stdin)) {

    printf("error\n");

    continue;

    }

    if (!strchr(line, '\n')) {

    errorflag = 1;

    while ((ch = getchar()) != '\n' && ch != EOF);

    }

    if (errorflag) {

    printf("invalid input\n");

    continue;

    }


    line[strlen(line) - 1] = 0;

    int bufPos;

    if (sscanf(line, "%f %f %n", &f, &s, &bufPos) < 2 || line[bufPos] != '\0') {

    printf("error non valid numbers\n");

    continue;

    }

    if(solve(f, s, op)==-1){

    printf(“Error\n”);

    return -1;

    };

    } while (1);

    }




    написать администратору сайта