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

  • Кафедра информационных технологий, электроэнергетики и систем управления КУРСОВАЯ РАБОТА по дисциплине: «Программирование на языке низкого уровня»

  • Введение 4 ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА РАЗРАБОТКУ ПО 5 1Глава 1. Теоретическая часть 14 1.1Язык программирования C 14

  • Целью данной курсовой работы

  • 1. Наименование программы

  • 2. Основание для разработки Основанием для разработки является задание на курсовую работу.3. Назначение

  • 4. Требования к разработке С использование современного ПО на языке программирования C.4.1 Требования по надежности

  • 4.2 Требования к условиям эксплуатации

  • 4.3 Требования к составу технических средств

  • 4.5 Требования к безопасности Аппаратные средства должны быть заземлены в соответствии с инструкцией по эксплуатации ПК.4.6 Безопасность при эксплуатации ПЭВМ

  • 5. Стадии и этапы разработки

  • Создание программы на языке программирования C


    Скачать 0.77 Mb.
    НазваниеСоздание программы на языке программирования C
    Дата17.11.2022
    Размер0.77 Mb.
    Формат файлаdocx
    Имя файлаKursovaya_Game.docx
    ТипКурсовая
    #793607




    ЧЕБОКСАРСКИЙ ИНСТИТУТ (ФИЛИАЛ)

    МОСКОВСКОГО ПОЛИТЕХНИЧЕСКОГО УНИВЕРСИТЕТА
    Кафедра информационных технологий, электроэнергетики и систем управления


    КУРСОВАЯ РАБОТА
    по дисциплине:

    «Программирование на языке низкого уровня»

    на тему:

    «Создание программы на языке программирования C»

    Выполнил:

    студент группы 09.03.01 4з

    Александров Владислав Петрович
    учебный шифр 18187
    Проверил(а):

    Доцент Решетников А.В.

    Чебоксары 2022

    Содержание


    Введение 4

    ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА РАЗРАБОТКУ ПО 5

    1Глава 1. Теоретическая часть 14

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

    22.Работа программы 17

    2.1Блок схема программы 20

    Заключение 21

    3Приложение А 23

    3.1Код программы: 23


    Введение



    Целью данной курсовой работы

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

    Си (англ. C) — стандартизированный процедурный язык программирования, разработанный в начале 1970-х годов сотрудниками Bell Labs Кеном Томпсоном и Денисом Ритчи как развитие языка Би. Си был создан для использования в операционной системе UNIX. С тех пор он был портирован на многие другие операционные системы и стал одним из самых используемых языков программирования. Си ценят за его эффективность. Он является самым популярным языком для создания системного программного обеспечения. Его также часто используют для создания прикладных программ. Несмотря на то, что Си не разрабатывался для новичков, он активно используется для обучения программированию. В дальнейшем синтаксис языка Си стал основой для многих других языков (см.: Си-подобный синтаксис).

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

    ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА РАЗРАБОТКУ ПО



    1. Наименование программы

    Консольная игра на два действия «Сдохни или умри».
    2. Основание для разработки

    Основанием для разработки является задание на курсовую работу.
    3. Назначение

    Целью данной курсовой работы является разработка программы на языке программирования C.
    4. Требования к разработке

    С использование современного ПО на языке программирования C.

    4.1 Требования по надежности

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

    Условия эксплуатации должны соответствовать инструкции. Программный комплекс должен корректно работать на персональном компьютере под управлением ОС Windows.

    4.3 Требования к составу технических средств

    • Свободное место на жестком диске: 512Кб и более;

    • Оперативная память 16Мб и выше;

    4.4 Требования к программной и информационной совместимости

    Программный комплекс должен работать под управлением ОС Microsoft Windows 8.0 или новее и иметь следующие установленные программы:

    • Visual Studio 2022

    • .NET Framework 4.7.2

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


    4.5 Требования к безопасности

    Аппаратные средства должны быть заземлены в соответствии с инструкцией по эксплуатации ПК.
    4.6 Безопасность при эксплуатации ПЭВМ

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

    Необходимо произвести расчеты по безопасности труда: расчет освещенности вычислительного центра.

    5. Стадии и этапы разработки

    1 . Задание переменных со значениями здоровья и урона


    2 . Блок программы с расчетом урона противника

    2 .1 Шанс критического значения и величина критического урона



    \2.2Блок стандартного и критического значения урона противника
    3 . Блок программы с расчетом здоровья противника


    3 .1 Шанс критического значения и величина критического исцеления


    3 .2Блок стандартного и критического значения исцеления противника

    4 . Блок программы с заданием поведения противника зависящее от количества здоровья (Health) противника.

    4 .1 Проверка значения здоровья противника. При нулевом значении конец программы и вывод сообщения о победе игрока. Иначе продолжение программы.

    4 .2 Вероятность срабатывания исцеления противника. При значении здоровья равном или более 130 нулевой шанс.


    4 .3 При значении здоровья менее 130 поведение (Action) зависит от случайного значения не превышающее 3. При значении 0 или 1 противник наносит урон игроку. При значении 2 противник исцеляется.

    5 .Блок программы с расчетом урона игрока.

    6 . Блок программы с расчетом здоровья противника

    7 . Блок программы с действиями зависящими от выбора игрока.

    7 .1 Проверка состояния здоровья игрока. Если меньше или равна нулю, конец программы.
    7 .2 Блок с действиями программы при различных значениях. При выборе значения 1 выполняется блок с расчетом урона игрока. При значении 2 выполняется блок с пополнением здоровья.

    8 . Блок выполнения программы и структура выполнения. Вначале выполняется блок с поведением игрока, далее блок с поведением противника. Если чье-либо здоровье окажется меньше или равно нулю выводится сообщение об окончании игры и конец программы.


    9 . Блок с параметрами работы приложения. Возможностью корректного отображения кириллицы.

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

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


    Язык программирования Си отличается минимализмом. Авторы языка хотели, чтобы программы на нём легко компилировались с помощью однопроходного компилятора, чтобы каждой элементарной составляющей программы после компиляции соответствовало весьма небольшое число машинных команд, а использование базовых элементов языка не задействовало библиотеку времени выполнения. Однопроходный компилятор компилирует программу, не возвращаясь назад, к уже обработанному тексту. Поэтому использованию функции должно предшествовать её объявление. Код на Си можно легко писать на низком уровне абстракции, почти как на ассемблере. Иногда Си называют «универсальным ассемблером» или «ассемблером высокого уровня», что отражает различие языков ассемблера для разных платформ и единство стандарта Си, код которого может быть скомпилирован без изменений практически на любой модели компьютера. Си часто называют языком среднего уровня или даже низкого уровня, учитывая то, как близко он работает к реальным устройствам.

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

    Си (как и ОС UNIX, с которой он долгое время был связан) создавался программистами и для программистов, круг которых был бы ненамного шире
    круга разработчиков языка. Несмотря на это, область использования языка значительно шире задач системного программирования.

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

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

    области действия имён; записи — определяемые пользователем собирательные типы данных (структуры), которыми можно манипулировать как одним целым;

    Вот некоторые особенности других языков программирования, которых не имеет Си:

    автоматическое управление памятью; поддержка объектно-ориентированного программирования (при этом первые версии C++ генерировали код программы на языке Си); замыкание; вложенные функции (существуют компиляторы языка Си реализующие эту функцию, например компилятор GNU); полиморфизм функций и операторов; встроенная поддержка многозадачности и сети функции высшего порядка карринг.

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

    Одним из последствий высокой эффективности и переносимости Си стало то, что многие компиляторы, интерпретаторы и библиотеки других языков высокого уровня часто выполнены на языке Си.

    22.Работа программы


    1 . Запуск программы и предложение выбрать действие


    2 . При вводе значения 1 выполнение программы по заданным сценариям и вывод соответствующий сообщений. Сработал шанс исцеления противника.

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

    4 . Конец программы с победой противника.

    5 . Выполнение программы в случае выбора игроком значения 2

    6 . Конец программы с победой игрока.


    2.1Блок схема программы




    Заключение


    С помощью программы языка программирования Cмы создали приложения-игру под названием «Сдохни или умри», в котором реализовали:

    1. расчет шанса получения критической переменной для нанесения урона/повышения здоровья

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

    3. проверку состояния игрока/противника

    4. поддержку кириллицы для вывода сообщений

    5. цикличности в случае невыполнения ряда условий

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

    3Приложение А

    3.1Код программы:


    #include

    #include
    usingnamespace std;
    double HisHelth = 100;

    double MyHelth = 100;

    double HisDamage = 10;

    double MyDamage = 10;

    double HisHeal = 20;

    double MyHeal = 20;
    void HISDamage(double&HisDamage, double&MyHelth)

    {

    int CritChance = rand() % 6;

    double Crit = HisDamage * 1.5;
    if (CritChance == 0 || 2 || 4)

    {

    MyHelth = MyHelth - Crit;

    cout <<"Противник нанес тебе урон в размере "<< Crit << endl;

    cout <<"Твое здоровье составляет "<
    }

    else

    {

    MyHelth = MyHelth - HisDamage;

    cout <<"Противник нанес тебе урон в размере "<
    cout <<"Твое здоровье составляет "<
    };

    };
    void HISHeal(double&HisHeal, double&HisHelth)

    {

    int CritChance = rand() % 6;

    double Crit = HisHeal * 1.5;
    if (CritChance == 0 || 2 || 4)

    {

    HisHelth = HisHelth + Crit;

    cout <<"Противник исцелился в размере "<< Crit << endl;

    cout <<"Здоровье противника составляет "<
    }

    else

    {

    HisHelth = HisHelth + HisHeal;

    cout <<"Противник исцелился в размере "<
    cout <<"Здоровье противника составляет "<
    };

    };
    int Enemy()

    {

    if (HisHelth <= 0)

    cout <<"Противник повержен! Ты победил!!!"<< endl;

    else

    {

    int Action = rand() % 3;
    if (HisHelth >= 130)

    Action = 0;
    switch (Action)

    {

    case 0 || 1:

    HISDamage(HisDamage, MyHelth);

    break;

    case 2:

    HISHeal(HisHeal, HisHelth);

    break;

    default:

    HISDamage(HisDamage, MyHelth);

    break;

    };

    };
    if (HisHelth <= 0)

    cout <<"Противник повержен! Ты победил!!!"<< endl;
    return 0;
    };
    void MYDamage(double&MyDamage, double&HisHelth)

    {

    int CritChance = rand() % 6;

    double Crit = MyDamage * 1.5;
    if (CritChance == 0 || 2 || 4)

    {

    HisHelth = HisHelth - Crit;

    cout <<"Ты нанес урон противнику в размере "<< Crit << endl;

    cout <<"Здоровье противника составляет "<
    }

    else

    {

    HisHelth = HisHelth - MyDamage;

    cout <<"Ты нанес урон противнику в размере "<
    cout <<"Здоровье противника составляет "<
    };

    };
    void MYHeal(double&MyHeal, double&MyHelth)

    {

    int CritChance = rand() % 6;

    double Crit = MyHeal * 1.5;
    if (CritChance == 0 || 2 || 4)

    {

    MyHelth = MyHelth + Crit;

    cout <<"Ты повысил здоровье в размере "<< Crit << endl;

    cout <<"Твое здоровье составляет "<
    }

    else

    {

    MyHelth = MyHelth + MyHeal;

    cout <<"Ты повысил здоровье в размере "<
    cout <<"Твое здоровье составляет "<
    };

    };
    int MySelf()

    {

    if (MyHelth <= 0)

    cout <<"Ты убит!!! Противник одержал победу!!!"<< endl;
    int MyAction = 0;

    cout <<"Что ты хочешь сделать? 1 - Нанести урон, 2 - Повысить здоровье..."<< endl;

    cin >> MyAction;

    switch (MyAction)

    {

    case 1:

    MYDamage(MyDamage, HisHelth);

    break;

    case 2:

    MYHeal(MyHeal, MyHelth);

    break;
    default:

    MySelf();

    break;

    };
    if (MyHelth <= 0)

    cout <<"Ты убит!!! Противник одержал победу!!!"<< endl;
    return 0;

    };
    int Game()

    {

    MySelf();
    Enemy();
    if ((MyHelth <= 0) || (HisHelth <= 0))

    {

    cout <<"Game Over"<< endl;

    return 0;

    }

    else

    {

    return Game();

    };
    };
    int main()

    {

    system("chcp 1251 > nul");

    int srand((unsignedint)time(NULL));
    Game();
    return 0;

    }


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