Нужно написать программу с библиотекой пайкьют6 и паймайскл по заданию
Ниже прикреплю задание,помогите пожалуйста, времени совсем мало осталось,а я не справлюсь,нейронка вообще ересь пишет.
6 вариант
----------------------------------------------------------------------------
создание базы
----------------------------------------------------------------------------
create table Regions(
RegionID int primary key auto_increment,
Name varchar(100),
TaxRate decimal(5, 2));
create table if not EXISTS Manufacturers(
ManufacturerID int primary key auto_increment,
Name varchar(100));
create table if not EXISTS CarModels(
ModelID int primary key auto_increment,
ManufacturerID int,
Name varchar(100),
foreign key(ManufacturerID) references Manufacturers(ManufacturerID));
create table if not EXISTS Cars(
CarID int primary key auto_increment,
ModelID int,
Year int,
Power int,
Price decimal(10, 2),
foreign key(ModelID) references CarModels(ModelID));
create table if not EXISTS CalculationHistory(
CalculationID int primary key,
Tax decimal(10, 2),
Period int,
CarID int,
RegionID int,
Session int,
foreign key(CarID) references Cars(CarID),
foreign key(RegionID) references Regions(RegionID));
insert into Regions(Name, TaxRate) values ('Москва', 25),
('Санкт-Петербург', 26);
insert into Manufacturers(Name) values ('Toyota'), ('BMW');
insert into CarModels(ManufacturerID, Name) values
(1, 'Toyota Corolla'), (1, 'Toyota Auris'), (1, 'Toyota Allion'), (2, 'BMW X1'), (2, 'BMW X5'), (2, 'X7');
insert into Cars(ModelID, Year, Power, Price) values (1, 2022, 120, 25000000.00), (2, 2018, 116, 2200000.00), (3, 2017, 109, 1500000.00), (4, 2008, 116, 3280000.00), (5, 1999, 184, 1900000.00), (6, 2022, 530, 11489000.00);
----------------------------------------------------------------------------
функция для подсчета месяца
----------------------------------------------------------------------------
delimiter //
create FUNCTION raschet_viplat1(id_model int, id_city int)
returns decimal(8, 2)
BEGIN
declare stavka INT(11);
declare l_sili int(11);
declare summa_mounth decimal(8, 2);
select c.Power into l_sili
from Cars c
where c.ModelID=id_model;
select r.TaxRate into stavka
from Regions r
where r.RegionID = id_city;
select (l_sili * stavka) / 12 into summa_mounth;
return summa_mounth;
end //
---------------------------------------------------------------------------
процедура для общего подсчета
----------------------------------------------------------------------------delimiter //
create PROCEDURE itog_deneg(in id_modeli int, in id_city int, in user_input_month int)
begin
declare quantity_mounth int;
declare summa_vsego decimal(8, 2);
declare id_m int;
declare id_c int;
set quantity_mounth = user_input_month;
select cm.ModelID into id_m
from CarModels cm
where cm.ModelID = id_modeli;
select r.RegionID into id_c
from Regions r
where r.RegionID = id_city;
select raschet_viplat1(id_m, id_c) * quantity_mounth into summa_vsego;
insert into CalculationHistory(Tax, Period, CarID, RegionID, Session)
values (summa_vsego, quantity_mounth, id_m, id_c, NOW());
end //
Интерфейс программы состоит из:
- QComboBox для выбора региона, в котором прописан владелец;
- QComboBox для выбора производителя автомобиля;
- QLabel для вывода текущего сеанса;
- QRadioButton для выбора машины;
- QLineEdit для ввода необходимого периода;
- QLabel для вывода стоимости налога;
- QPushButton ‘РАСЧИТАТЬ’ для расчета налога и добавления нового расчета в таблицу CalculationHistory;
Формула:
НАЛОГ ЗА МЕСЯЦ = (Л.С. МАШИНЫ * НАЛОГОВАЯ СТАВКА РЕГИОНА) / 12
ИТОГОВЫЙ НАЛОГ = НАЛОГ ЗА МЕСЯЦ * НЕОБХОДИМЫЙ ПЕРИОД
Для реализации основных расчетов и функций используйте хранимые процедуры:
- ХП для нахождения суммы налога и добавления нового расчета в таблицу CalculationHistory;
Важно:
Также необходимо добавить обработку ошибок на каждое возможное событие. Например, когда пользователь не выбрал производителя, модель, регион или не заполнил другие обязательные поля, то должно появитьс

я соответствующее сообщение об этом.