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

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

18.02.2019, 19:56. Показов 9490. Ответов 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,302
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,302
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
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru