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

  • СПИСОК ЛИТЕРАТУРЫ

  • Курсовая работа по информатике на тему Классы. Пояснительная записка к курсовой работе по дисциплине Информатика Выполнил ст гр. Принял Город 2022


    Скачать 173.47 Kb.
    НазваниеПояснительная записка к курсовой работе по дисциплине Информатика Выполнил ст гр. Принял Город 2022
    АнкорКурсовая работа по информатике на тему Классы
    Дата31.05.2022
    Размер173.47 Kb.
    Формат файлаdocx
    Имя файлаInfaK8.docx
    ТипПояснительная записка
    #558650

    ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

    ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

    «ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

    Кафедра «Автоматика и телекоммуникации»

    Пояснительная записка

    к курсовой работе по дисциплине

    Информатика

    Выполнил ст.гр.

    Принял
    Город– 2022

    ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ
    В инвентарной книге библиотеки для каждой книги указаны данные: инвентарный номер (7 цифр), автор, название, год издания, место издания (город), издательство, цена.

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

    Отсортировать список по убыванию цены.

    ЛИСТ ЗАМЕЧАНИЯ

    РЕФЕРАТ
    Курсовая работа: 20 с., 11 рис., 0 табл., 4 источника, 12 приложений
    Согласно заданию, на языке программирования С++ была создана и модернизирована программа для работы с информацией об инвентаре библиотеки. Изначально данные обрабатывались в соответствии с заданием, используя созданную нами переменную типа структуры, содержащую в себе все необходимые для обработки данные об инвентаре. Данные заносились в переменную из текстового файла. Далее та же программа была реализована с использованием объектно-ориентированного программирования на языке программирования C++. Для решения данного задания данные вносились в переменную типа класс и обрабатывались соответствующими методами данного класса. Полученную программу можно использовать для вычисления сколько и на какую сумму книг заданного издательства содержится в библиотеке.

    С++, ООП, СТРУКТУРА, СОРТИРОВКА СПИСКА КЛАСС, КЛАССЫ

















    ШИФР КР ПЗ
















    Из

    Лист

    докум.

    Подпись

    Дата

    Разработал










    Пояснительная записка

    Литера

    Лист

    Листов

    Проверил










    Р













    Гл. конс.










    Факультет

    Кафедра

    Группа

    Нормокон.










    Утв.










    СОДЕРЖАНИЕ


    СПИСОК ЛИТЕРАТУРЫ 16


    ВВЕДЕНИЕ
    На настоящий момент, единственное, известное человеку, «устройство для обработки информации» — это сам человек. Поэтому, то, что называют современными «информационными технологиями», сводится, по большей части, к обработке данных с помощью различных методов, включая применение современных компьютеров и программ для них. Основной задачей информатики является систематизация приемов и методов работы с аппаратными и программными средствами вычислительной техники. Одна из целей систематизации - автоматизация работы с данными. В данной курсовой работе была поставлена задача разработки алгоритма и программы для обработки данных о инвентаре библиотеки, изучение основных принципов ООП. Обработка включала в себя вычисление стоимости книг определённого издательства, и сортировка полученного списка по цене. С помощью разработанного программного обеспечения, необходимые вычисления значительно упрощаются.

    1 РАЗРАБОТКА ПРОГРАММЫ С ИСПОЛЬЗОВАНИЕМ СТРУКТУР
    1.1 Выбор и обоснование языка программирования
    В настоящий момент в мире разработки программного обеспечения сложилась ситуация, что в цене знание определённых технологий и опыт их применения, а не понимание. Современному обществу необходимо много программистов, которые могут выполнять строго определённые функции. Отчасти этому способствуют и развивающиеся технологии разработки. Возможно, что большая часть разработчиков, умеющих просто пользоваться определённым набором инструментов, никогда не столкнётся с «законом дырявых абстракций». Однако людям, претендующим на должности ведущих разработчиков, занимающихся оптимизацией и вопросами автоматизации, необходимо более глубокое понимание того, как всё устроено. Одним из факторов, приводящих к такому пониманию, может отказаться и верный выбор первого языка программирования. На основании этого, язык C++, являющийся статически типизированным, компилируемым, поддерживающий низкоуровневую работу с памятью и не перегруженную синтаксическим сахаром реализацию ООП, можно рекомендовать в качестве лучшего языка программирования.

    1.2 Математическая модель
    При запуске программы в начале будет открыт файл “file.txt. Содержимое файла представлено в приложении А. Структура файла имеет следующую неоднократно повторяющуюся конструкцию:

    Инвентарный номер (num);

    автор (author);

    название (name);

    год издание (year);

    город издания (city);

    издательство (publishment);

    цена (price).

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

    Согласно поставленной задаче, примем следующие ограничения для вводимых данных:

    -Инвентарный номер – не более 7 символов

    -Автор книги – не более 15 символов

    -Название книги – не более 15 символов

    -Город издания – не более 15 символов

    -Издательство – не более 15 символов

    -Цена и год – целое число


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

    int main()

    Главная функция. Осуществляет открытие файла, создание массива структур и его заполнение, а также запрашивает у пользователя название издательства. Алгоритм программы представлен в приложении Б.

    void sorting(library Lib[],int size)

    library Lib[] – массив структур;

    size – размер массива структур.

    Функция будет сортировать элементы переданного ей массива Lib по полю “price” методом вставок, от наибольшей цены, к наименьшей. Алгоритм программы представлен в приложении В.

    void out( library Lib[], int size,char ins[25])

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


    1.4 Результат работы программы
    Код программы представлен в приложении Г. Для оценки работоспособности программы запускаем её и видим сообщение “Enter the name of publishment:”. Откликаемся на запрос программы и вводим название издательства – Pub1. Видим, что в файле содержится информация о двух книгах, которые были реализованы издательством Pub1. Их стоимость составляет 3000 и 1000 у.е., а суммарная – 4000. Результаты работы представлены на рисунке 1


    Рисунок 1 – результат работы программы, реализованной при помощи структур

    2 РАЗРАБОТКА ПРОГРАММЫ С ИСПОЛЬЗОВАНИЕМ КЛАССОВ
    2.1 Выбор и обоснования языка программирования
    Ключевым понятием С++ является класс. Классы обеспечивают удобное хранение данных, их инициализацию, неявное преобразование пользовательских типов, динамическое задание типов, контролируемое пользователем управление памятью и средства для перегрузки операций. При объектно-ориентированном программировании, необходимо фокусироваться на предметах, образующих систему, и операциях, которые должны выполнять над этими предметами. С++ считается одним из лучших, и самых популярных языков в мире. Также, в связи с работой над базами данных, будет неуместным использование языков-интерпретаторов, например таких, как Python. В случае, если нам придется работать с намного большим количеством данных, то разница в скорости выполнения будет весьма ощутимой. Исходя из приведенных выше аргументов, был выбран язык С++.

    2.2 Математическая модель
    При запуске программы в начале будет открыт файл “file.txt. Содержимое файла представлено в приложении А. Структура файла имеет следующую неоднократно повторяющуюся конструкцию:

    Инвентарный номер (num);

    автор (author);

    название (name);

    год издание (year);

    город издания (city);

    издательство (publishment);

    цена (price).

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

    2.3 Используемые функции
    int main ()

    Организует открытие файла, считывание первой строки и создание массива объектов класса. Алгоритм представлен в приложении Д

    void fill(library*Lib,int i,ifstream&file)

    library*Lib – указатель на первый элемент массива;

    int i – номер объекта класса в массиве Lib;

    ifstream&file – ссылка на адрес файла.

    Метод класса, который производит заполнение переменных объектов класса данными, представленными в файле. Алгоритм представлен в приложении Е
    void sorting(library Lib[],int size)

    int size – размер массива объектов класса Lib.

    Подпрограмма, которая сортирует объекты класса в порядке убывания. Алгоритм представлен в приложении Ж.

    int Price()

    Метод, который возвращает значение price (цена книги). Алгоритм представлен в приложении И.

    out( library Lib[], int size,char Pub[15])

    char Pub[15] – вводимое пользователем наименование издательства. Подпрограмма, которая выводит на экран результаты поиска книг по заданному издательству, а также список исходных данных, в отсортированном виде. Алгоритм представлен в приложении К.

    char*Publishment()

    Метод, который возвращает значение publishment (издательство). Алгоритм представлен в приложении Л.

    void Out(library Lib[],int i)

    Метод, который выводит на экран информацию для i-й книги. Алгоритм представлен в приложении М.

    Код программы представлен в приложении Н. Результаты тестирования соответствуют полученным в предыдущем разделе.

    ЗАКЛЮЧЕНИЕ
    При выполнении курсовой работы был получен навык работы с переменными типа структура и основными методами создания переменных типа класс и работы с ними. В первом задании, для выполнения задания использовалась переменная типа «structure». Во втором задании, программа из первого задания была реализована с помощью методов ООП. Все поля, хранящие информацию о инвентаре библиотеки были закрыты, а доступ к ним осуществлялся только с помощью методов. Таким образом, были изучены основные принципы ООП. Аналогичное задание позволило наглядно понять разницу между обычным и объектно-ориентированным подходом.

    СПИСОК ЛИТЕРАТУРЫ
    1. Пахомов, Борис C/C++ и MS Visual C++ 2012 для начинающих / Борис Пахомов. - Москва: СИНТЕГ, 2015. - 518 c.
    2. Пахомов, Борис С/С++ и MS Visual C++ 2012 для начинающих / Борис Пахомов. - М.: "БХВ-Петербург", 2013. - 502 c.
    3. Полубенцева, М. C/C++. Процедурное программирование / М. Полубенцева. - М.: БХВ-Петербург, 2014. - 448 c.
    4. Поляков, А. Методы и алгоритмы компьютерной графики в примерах на Visual C++ / А. Поляков, В. Брусенцев. - М.: БХВ-Петербург, 2011. - 560 c.

    ПРИЛОЖЕНИЯ
    (приложение А) – содержимое файла file.txt

    5

    0000001

    Autor1

    Name1

    2005

    CityName1

    Pub1

    1000

    0000003

    Autor3

    Name3

    2003

    CityName3

    Pub1

    3000

    0000004

    Autor4

    Name4

    2004

    CityName4

    Pub2

    4000

    0000002

    Autor2

    Name2

    2002

    CityName2

    Pub2

    2000

    0000005

    Autor5

    Name5

    2005

    CityName5

    Pub3

    5000

    (приложениe Б) – функция int main()


    приложение В) void sorting(library Lib[],int size)

    (приложениe Г) – функция void out( library Lib[], int size,char ins[25])




    (приложениe Д) – код программы, реализованной с помощью структур
    #include

    #include

    #include

    #include

    #include

    using namespace std;

    string path = "file.txt";

    struct library {

    unsigned short year, price;

    char author[15], name[15],city[15],publishment[15],num[8];

    };

    void sorting(library Lib[],int size)

    {

    for(int j=0;j
    for(int i=j+1;i
    if(Lib[i].price>Lib[j].price)

    swap(Lib[i],Lib[j]);

    }

    void out( library Lib[], int size,char Pub[15])

    {

    int q=0, cost=0;

    cout<
    for (int i =0;i
    {

    if (strcmp(Lib[i].publishment, Pub)==0)

    {

    cout<
    cout<
    cout<
    cout<
    cout<
    cout<
    cout<
    cost+=Lib[i].price;

    q++;

    }

    }

    cout<<"\nPublishment "<




    for (int i =0;i
    {

    cout<
    cout<
    cout<
    cout<
    cout<
    cout<
    cout<
    }

    }
    int main(){

    ifstream file(path);

    int size;

    file>>size;

    library *Lib=new library[size];

    char Pub[15];

    cout<<"Enter the name of publishment:";

    cin>>Pub;

    for(int i=0;i
    {

    file>>Lib[i].num;

    file>>Lib[i].author;

    file>>Lib[i].name;

    file>>Lib[i].year;

    file>>Lib[i].city;

    file>>Lib[i].publishment;

    file>>Lib[i].price;

    }

    sorting(Lib,size);

    out(Lib,size,Pub);

    }

    (приложениe Е) – int main()



    (приложениеЖ) – void fill(library*Lib,int i,ifstream&file)




    (приложениеИ) – void sorting(library Lib[],int size)



    (приложениеК) – int Price()



    (приложениеЛ) – void out( library Lib[], int size,char Pub[15])
    (приложениеМ) – Publishment()



    (приложениеМ) – void Out(library Lib[],int i)



    (приложение Н) – код программы
    #include

    #include

    #include

    #include

    #include

    using namespace std;

    string path = "file.txt";

    class library {

    private:

    unsigned short year, price;

    char author[15], name[15],city[15],publishment[15],num[8];

    public:

    void fill(library*Lib,int i,ifstream&file){

    file>>Lib[i].num;

    file>>Lib[i].author;

    file>>Lib[i].name;

    file>>Lib[i].year;

    file>>Lib[i].city;

    file>>Lib[i].publishment;

    file>>Lib[i].price;

    }

    int Price(){

    return price;

    }

    char*Publishment(){

    return publishment;

    }

    void Out(library Lib[],int i){

    cout<
    cout<
    cout<
    cout<
    cout<
    cout<
    cout<
    }

    };

    void sorting(library Lib[],int size)

    {

    for(int j=0;j
    for(int i=j+1;i
    if(Lib[i].Price()>Lib[j].Price())

    swap(Lib[i],Lib[j]);

    }

    void out( library Lib[], int size,char Pub[15])

    {

    int q=0, cost=0;

    cout<
    for (int i =0;i
    if (strcmp(Lib[i].Publishment(), Pub)==0)

    {

    Lib->Out(Lib,i) ;

    cost+=Lib[i].Price();

    q++;

    }

    cout<<"\nPublishment "<


    for (int i =0;i
    Lib->Out(Lib,i) ;

    }
    int main(){

    ifstream file(path);

    int size;

    file>>size;

    library *Lib=new library[size];

    char Pub[15];

    cout<<"Enter the name of publishment:";

    cin>>Pub;

    for(int i=0;i
    {

    Lib->fill(Lib,i,file);

    }

    sorting(Lib,size);

    out(Lib,size,Pub);

    file.close();

    return 0;

    }



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