Файл: Курсовой проект по мдк 01. 02 Прикладное программирование на тему Программа формирования списков Транспортное агентство.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.03.2024

Просмотров: 22

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


                print(table)    

                while True:

                    try:

                        nomer = int(input("Введите номер рейса для удаления записи: "))

                        cur.execute(""" SELECT 1 FROM napravlenie WHERE NomerReisa = {};""".format(nomer))

                        one = cur.fetchone()[0]

                        break

                    except:

                        print("Ошибка ввода. Попробуйте снова.")
                cur.execute("""DELETE FROM napravlenie  WHERE NomerReisa = {}""".format(nomer))

                db.commit()

                cur.execute("""DELETE FROM rastoainie  WHERE NomerReisaa= {}""".format(nomer))

                db.commit()

                cur.execute("""SELECT NomerReisa, VremiaOtpravlenia, PunktNaznachenia, TsenaPoezdki, Rastoainie, TsenaBileta, KolichestvoMest FROM napravlenie INNER JOIN rastoainie ON NomerReisa = NomerReisaa""")

                table = from_db_cursor(cur)

                print(table)

                while True:

                        action = input("Выберите действие:\n1: Вернуться к выбору действий\n2: Завершить программу \n")

                        match action:

                                case "1":

                                    break

                                case "2":

                                    ifclose = True

                                    break

                                case _:

                                    print("Ошибка ввода, попробуйте снова")                                              

           

            case "3": #Обновление записи

                time = 0

                money = 0

                rasstoanie = 0

                TsenaBileta = 0

                kolvo = 0

                while True:

                    try:

                        nomer = int(input("Введите номер рейса для обновления записи: "))

                        cur.execute(""" SELECT 1 FROM napravlenie WHERE NomerReisa = {};""".format(nomer))

                        one = cur.fetchone()[0]

                        break

                    except:

                        print("Ошибка ввода. Попробуйте снова.")
                while True: # Добавление времени отправления

                    try:

                        time = int(input("VremiaOtpravlenia = "))

                        break

                    except:

                        print("Неккоректный ввод. Повторите ввод")

               

                while True: #Добавление пункта назначения

                    try:

                        punkt = input(str("PunktNaznachenia = "))

                        isCointainsNumbers = bool(re.search(r"\d", punkt))

                        if isCointainsNumbers:

                            print("Неккоректный ввод. Повторите ввод")

                            continue

                        break

                    except:

                        print("Неккоректный ввод. Повторите ввод")
                while True:    # Добавление цены поездки

                    try:


                        money = int(input("TsenaPoezdki= "))

                        break

                    except:

                        print("Неккоректный ввод. Повторите ввод")
                while True:    # Добавление расстояния поездки

                    try:

                        rasstoanie = int(input("Rastoainie = "))

                        if rasstoanie < 201: True

                        break

                    except:

                        print("Ошибка ввода. Попробуйте снова.")                
                TsenaBileta = (rasstoanie/20)*10 # Добавление цены билета
                while True:    # Добавление количества мест

                    try:

                        kolvo = int(input("KolichestvoMest = "))

                        break

                    except:

                        print("Ошибка ввода. Попробуйте снова.")                

               

                cur.execute("""UPDATE napravlenie SET  (VremiaOtpravlenia, PunktNaznachenia, TsenaPoezdki) = ('{}', '{}', '{}') WHERE NomerReisa = ('{}')""".format(time, punkt, money, nomer))

                db.commit()

                cur.execute("""UPDATE rastoainie SET (Rastoainie, TsenaBileta, KolichestvoMest) = ('{}', '{}', '{}') WHERE NomerReisaa = ('{}')""".format(rasstoanie, TsenaBileta, kolvo, nomer))

                db.commit()

                cur.execute("""SELECT NomerReisa, VremiaOtpravlenia, PunktNaznachenia, TsenaPoezdki, Rastoainie, TsenaBileta, KolichestvoMest FROM napravlenie INNER JOIN rastoainie ON NomerReisa = NomerReisaa""")

                db.commit()

                table = from_db_cursor(cur)

                print(table)
            case "4": # Пункты с самой дорогой поездкой

                        cur.execute("""SELECT MAX(TsenaPoezdki) PunktNaznachenia, TsenaPoezdki FROM napravlenie INNER JOIN rastoainie ON NomerReisa = NomerReisaa """)

                        db.commit()

                        table = from_db_cursor(cur)

                        print(table)                                    
            case "5": # Пункты с самой низкой стоимостью билетов

                        cur.execute("""SELECT MIN(TsenaBileta) PunktNaznachenia, TsenaBileta FROM napravlenie INNER JOIN rastoainie ON NomerReisa = NomerReisaa """)

                        db.commit()

                        table = from_db_cursor(cur)

                        print(table)    
            case "6": # По заданному пользователю пункту назначения

                        while True: #Добавление пункта назначения

                            try:

                                runkt = input(str("Введите пункт назначения = "))

                                isCointainsNumbers = bool(re.search(r"\d", runkt))

                                if isCointainsNumbers:

                                    print("Ошибка ввода. Попробуйте снова.")

                                    continue

                                break

                            except:

                                print("Ошибка ввода. Попробуйте снова.")

                        cur.execute("""SELECT NomerReisa, VremiaOtpravlenia, PunktNaznachenia, TsenaPoezdki, Rastoainie, TsenaBileta, KolichestvoMest FROM napravlenie INNER JOIN rastoainie ON NomerReisa = NomerReisaa WHERE PunktNaznachenia = '{}'  """.format(runkt))



                        db.commit()

                        table = from_db_cursor(cur)

                        print(table)

           

            case "7": # По заданному диапазону расстояния до пункта назначения, отсортированный по цене поездки

                        while True:

                            try:

                                diapone = int(input("Введите диапазон от: "))

                                diapsec = int(input("Введите сдиапазон до: "))

                                break

                            except:

                                print("Ошибка ввода. Попробуйте снова.")      

                        cur.execute("""SELECT NomerReisa, VremiaOtpravlenia, PunktNaznachenia, TsenaPoezdki, Rastoainie, TsenaBileta, KolichestvoMest FROM napravlenie INNER JOIN rastoainie ON NomerReisa = NomerReisaa WHERE Rastoainie BETWEEN '{}' AND '{}' ORDER BY TsenaPoezdki """.format(diapone, diapsec))

                        db.commit()

                        table = from_db_cursor(cur)

                        print(table)
            case "8": #По заданному пользователю количеству мест, отсортированный по номеру рейса

                    while True:

                        try:

                            colvo = int(input("Введите количество мест = "))

                            cur.execute("""SELECT 1 FROM rastoainie WHERE KolichestvoMest = '{}'; """.format(colvo))

                            one = cur.fetchone()[0]

                            cur.execute("""SELECT NomerReisa, VremiaOtpravlenia, PunktNaznachenia, TsenaPoezdki, Rastoainie, TsenaBileta, KolichestvoMest FROM napravlenie INNER JOIN rastoainie ON NomerReisa = NomerReisaa WHERE KolichestvoMest = '{}' """.format(colvo))

                            table = from_db_cursor(cur)

                            print(table)

                            break

                        except:

                            print("Ошибка ввода. Попробуйте снова.")

           

            case "9":

                while True:

                    ifclose = True  

                    break

            case "10": #Вернуться к выбору таблиц

                break

ЗАКЛЮЧЕНИЕ

Программа формирования списков «Транспортное агентство» была разработана для курсового проекта по прикладному программированию.

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

  • пункты с самой дорогой поездкой;

  • пункты с самой низкой стоимостью билетов;

  • по заданному пользователю пункту назначения;

  • по заданному диапазону расстояния до пункта назначения, отсортированный по цене поездки;

  • по заданному пользователю количеству мест, отсортированный по номеру рейса.


Для реализации поставленной цели были решены следующие задачи:

  • разработан консольный интерфейс программы;

  • составлена функциональная схема программы;

  • составлена блок – схема программы;

  • составлен алгоритм работы данной программы;

  • разработана обработка исключений в программе;

  • разработана возможность редактирование записей в таблице.

Изучены материалы для обработки различных исключений. Изучены способы объектно-ориентированного программирования. Также изучен материал для написания базы данных на SQLite3.

В ходе выполнения курсового проекта были проанализированы и рассмотрены теоретические материалы по языку программирования Python и материалы по системе управления базами данных (СУБД) SQLite3. А также были получены практические навыки работы с базой данных и написанию прикладных консольных приложений на основе языка Python.

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

Список используемых источников

  1. Python 3 и PyQt 5. Разработка приложений / Н.А. Прохоренок, В.А. Дронов. – СПб.: БХВ – Петербург, 2016. – 832 с.:ил.

  2. Чернышев, С. А.  Основы программирования на Python : учебное пособие для вузов / С. А. Чернышев. — Москва : Издательство Юрайт, 2023. — 286 с. 

  3. Федоров, Д. Ю.  Программирование на языке высокого уровня Python : учебное пособие для среднего профессионального образования / Д. Ю. Федоров. — 4-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2023. — 214 с. 

  4. Гниденко, И. Г.  Технология разработки программного обеспечения : учебное пособие для среднего профессионального образования / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. — Москва : Издательство Юрайт, 2023. — 235 с.

  5. Нестеров, С. А.  Базы данных : учебник и практикум для среднего профессионального образования / С. А. Нестеров. — Москва : Издательство Юрайт, 2023. — 230 с.

  6. Зыков, С. В.  Программирование : учебник и практикум для вузов / С. В. Зыков. — Москва : Издательство Юрайт, 2023. — 320 с.

  7. Маркин, А. В.  Программирование на SQL : учебное пособие для среднего профессионального образования / А. В. Маркин. — Москва : Издательство Юрайт, 2023. — 435 с.

  8. Трофимов, В. В.  Алгоритмизация и программирование : учебник для вузов / В. В. Трофимов, Т. А. Павловская ; под редакцией В. В. Трофимова. — Москва : Издательство Юрайт, 2023. — 137 с.

  9. Черпаков, И. В. Основы программирования : учебник и практикум для среднего профессионального образования / И. В. Черпаков. — Москва : Издательство Юрайт, 2023. — 219 с. 

  10. Стружкин, Н. П.  Базы данных: проектирование : учебник для вузов / Н. П. Стружкин, В. В. Годин. — Москва : Издательство Юрайт, 2023. — 477 с.