С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/47: Рейтинг темы: голосов - 47, средняя оценка - 4.87
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 42

Программа расчета недельной зарплаты

18.02.2019, 19:56. Показов 9381. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть консольная программа расчета недельной зарплаты, а преподавателю нужно что бы она была с интерфейсом. Сохранением, добавлением, удалением сотрудника и расчета зарплаты сотрудника. Помогите пожалуйста, разработайте программу время поджимает, пробовал в tkinter, но так и нечего не получилось.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
print('Приветствую вас. Эта программа предназначена для расчета заработной платы работников нашего завода')
name=input('Введите имя работника: ')
hours=float(input('Введите количество отработанных часов : '))
rate=float(input('Введите суммы оплаты труда за 1 час : '))
if hours <= 37.5:
 
  pay = rate * hours
 
else:
 
  pay = rate * 37.5 + (rate * 1.5 * (hours - 37.5))
  pay = float(pay)
 
print('Заработная платa ' + name + ' за неделю равна: ' + str(pay))
end=input('Нажмите Enter для завершения')
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.02.2019, 19:56
Ответы с готовыми решениями:

Программа начисления зарплаты
Решил для себя освоить язык Python, и первым делом поставил задачу написать программу по расчету зарплаты для продавцов. Основная идея...

Программа расчета общей зарплаты
В двумерном массиве хранится информация о зарплате 20 человек за каждый месяц года (первого человека - в первой строке, второго человека во...

Написать программу начисления недельной зарплаты сотрудникам работающим за почасовую плату
Написать программу начисления недельной зарплаты сотрудникам работающим за почасовую плату. Норма часов работы в неделю составляет 40...

14
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
18.02.2019, 19:58
flames, интерфейс? Какой интерфейс конкретно интересует препода?
0
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 42
18.02.2019, 20:22  [ТС]
Типа такого как во вложении, только вся информация о сотруднике это его ФИО, количество отработанных часов за неделю и размер почасовой ставки.
Миниатюры
Программа расчета недельной зарплаты  
0
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 42
18.02.2019, 21:39  [ТС]
Tkinter
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
18.02.2019, 23:46
flames, все что есть - справка
я в этой программе еще не силен
Вложения
Тип файла: pdf Modul_tkinter.pdf (856.6 Кб, 19 просмотров)
0
 Аватар для __ALPHA__
302 / 160 / 87
Регистрация: 16.04.2018
Сообщений: 239
19.02.2019, 20:24
Сделано на PyQt5. Что бы удалить строку надо выделить её целиком.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import sys
from PyQt5.QtGui import QFont, QColor
from PyQt5.QtCore import QPersistentModelIndex
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QTableView, QTableWidget, QPushButton, QTableWidgetItem
 
app = QApplication(sys.argv)
 
window = QMainWindow()
window.resize(795, 325)
window.setWindowTitle('Расчет недельной зарплаты')
 
def button1_clicked(event):
    with open('table.save', encoding='UTF-8') as f:
        lines = f.read().splitlines()
        table.setRowCount(len(lines))
        for row, line in enumerate(lines):
            for column, value in enumerate(line.split()):
                if value != 'None':
                    table.setItem(row, column, QTableWidgetItem(value))
 
button1 = QPushButton('Открыть', window)
button1.setGeometry(0, 0, 100, 50)
button1.setFont(QFont('Arial', 10))
button1.clicked.connect(button1_clicked)
 
table = QTableWidget(5, 6, window)
table.setGeometry(0, 50, 795, 239)
table.setHorizontalHeaderLabels(['Фамилия', 'Имя', 'Отчество', 'Отработанные\nчасы', 'Почасовая\nставка', 'Недельная\nзарплата'])
 
def button3_clicked(event):
    table.setRowCount(table.rowCount()+1)
 
button3 = QPushButton('Добавить', window)
button3.setGeometry(0, 289, 100, 35)
button3.setFont(QFont('Arial', 10))
button3.clicked.connect(button3_clicked)
 
def button4_clicked(event):
    index_list = []
    for model_index in table.selectionModel().selectedRows():
        index = QPersistentModelIndex(model_index)
        index_list.append(index)
 
    for index in index_list:
         table.removeRow(index.row())
         
button4 = QPushButton('Удалить', window)
button4.setGeometry(100, 289, 100, 35)
button4.setFont(QFont('Arial', 10))
button4.clicked.connect(button4_clicked)
 
def button5_clicked(event):
        for index in range(table.rowCount()):
 
            try:
                hours = int(table.item(index, 3).text())
                rate = int(table.item(index, 4).text())
 
                if hours <= 37.5:
                    pay = rate * hours
                
                else:
                    pay = rate * 37.5 + (rate * 1.5 * (hours - 37.5))
                    pay = float(pay)
 
                table.setItem(index, 5, QTableWidgetItem(str(pay)))
            
            except Exception as e:
                #print(e)
                continue
 
button5 = QPushButton('Расчет недельной зарплаты', window)
button5.setGeometry(522, 289, 250, 35)
button5.setFont(QFont('Arial', 10))
button5.clicked.connect(button5_clicked)
 
 
def button2_clicked(event):
    with open('table.save', 'w') as f:
        for row in range(table.rowCount()):
            try:
                line = ''
                for column in range(table.columnCount()):
                    value = table.item(row, column).text()
                    line = line + value + ' '
                f.write(line + '\n')
 
            except Exception as e:
                #print(e)
                f.write('None '*table.columnCount() + '\n')
                
 
button2 = QPushButton('Сохранить', window)
button2.setGeometry(100, 0, 100, 50)
button2.setFont(QFont('Arial', 10))
button2.clicked.connect(button2_clicked)
 
 
window.show()
 
sys.exit()
Добавлено через 4 часа 31 минуту
Нашел у себя ошибку в 79 строчке, надо добавить encoding utf-8, должно быть так:
Python
1
    with open('table.save', 'w', encoding='UTF-8') as f:
Иначе ошибка при клике по кнопке "Открыть".
2
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 42
20.02.2019, 23:05  [ТС]
Спасибо большое! А не подскажите как ее запустить? пробовал стандартным ide, visual studio, pycharm. Догружал pip install PyQt5. Короче не могу скомпилировать Если Вам не трудно, не могли бы вы скомпилировать программу и в архиве ее загрузить сюда, что бы я мог ее преподавателю показать? Заранее спасибо.
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,301
20.02.2019, 23:15
Ошибка в последней строке

Python
1
sys.exit(app.exec_())
0
 Аватар для __ALPHA__
302 / 160 / 87
Регистрация: 16.04.2018
Сообщений: 239
21.02.2019, 00:43
flames, попробовал скомпилировать с помощью cx_Freeze, он не установился. Я делал в стандартном idle, версия python 3.7.0 win32, PyQt5 устанавливал командой pip3 install pyqt5

tooru, это как-то отражается на функционале? Всё и без того работает.
1
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,301
21.02.2019, 02:41
Цитата Сообщение от __ALPHA__ Посмотреть сообщение
это как-то отражается на функционале? Всё и без того работает.
Python
1
sys.exit()
Это работает только в idle, в командной строке, эта команда сразу закрывает окно

Цитата Сообщение от __ALPHA__ Посмотреть сообщение
попробовал скомпилировать с помощью cx_Freeze, он не установился.
лучше использовать pyinstaller
0
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 42
21.02.2019, 12:51  [ТС]
Спасибо, запустил через стандартную IDLE все заработало. Только кнопки открыть и сохранить ничего не делают.)
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
21.02.2019, 13:12
flames, не на кнопки нажимай - на строчки

строчки в программе



Добавлено через 20 секунд
еще заметил, программа не сохраняет данные ?
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
21.02.2019, 13:14
Считает вроде =)
но при закрытии ,стирает

а надо, чтобы ДОПИСЫВАЛА

дата - кто
зарплата
=)

и брала Кто
из этого же файла =)

да?
Миниатюры
Программа расчета недельной зарплаты  
0
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 42
21.02.2019, 18:55  [ТС]
Кнопка "добавить" добавляет строки в таблицу все нормально, а кнопка "удалить" - удаляет соответственно.

А вот две верхних не работают вообще, по идее, надо чтобы данные в таблице открывались и сохранялись.
Миниатюры
Программа расчета недельной зарплаты  
0
22.02.2019, 07:54

Не по теме:

Вам кинули набросок. Не ленитесь и доделайте сами.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.02.2019, 07:54
Помогаю со студенческими работами здесь

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

Начисление зарплаты регистр расчета
Здравствуйте, уважаемы специалисты. Помогите пожалуйста разобраться. Я создал в базе 1с (версия 8.1) регистр расчета для начисления...

Изменить показатели расчета зарплаты
Часто требуется изменить показатели рассчета зарплаты. Т.е. пользователь щёлкает по кнопочке &quot;Заполнить&quot; в документе...

База данных расчёта зарплаты
Здравствуйте! Я делаю базу данных расчёта зарплаты. Как мне можно оформить учет количества отработанных часов? Вообще для расчёта зарплаты...

Разработка программы расчета зарплаты
Класс должен содержать следующие поля: 1 фамилия и инициалы; 2 должность; 3 год приема на работу; 4 зарплата; 5 функция, которая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 07.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru