ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

自动化物料,能量,经济等的核算程序

2022-03-19 23:05:29  阅读:213  来源: 互联网

标签:物料 return money price material list write 自动化 核算


自动化物料,能量,经济等的核算程序

简介

这个程序是基于python自动化开发,要熟练掌握python的基础,自动化开发只是和python的高级知识。它集成了在我的毕业设计中基本上的用到所有的公式,可以将复杂的工作进行一个汇总,将python自动化更好的融入我们的日常生活中,来大大的提高我们的工作效率。

优点

大大的提高我们的工作效率,使我们的日常更加的自动化,代码简单,可拓展性强

代码

evaluation.py(物料的传入和计算模块)

import material
import money
import revenue

# 函数的调用斯
# 计算的实现
total_production = 100000  # 想要生产的总质量(kg)
step_play = ['包装的日需量', '总混的日需量', '整粒的日需量', '干燥的日需量', '粉碎筛分的日需量']  # 生产所需要进行的步奏
last_step = 442  # 传入最后一步的量(kg)
raw_material_list = ['碳酸钠', '柠檬酸', '蜂蜜粉', '速溶红茶粉', '阿斯巴甜味剂', 'PEG6000']  # 传入生产所需要的原料
materials_list = [0.25, 0.37, 0.20, 0.02, 0.05, 0.11]  # 传入生产所需原料的占比
total_amount = 100000000  # 传入生产的总质量(g)
area = 1000  # 传入总占地面积
area_price = 2500  # 传入的是这个地区的价格
install_price = 25000  # 传入的是一次的安装费
install_number = 2  # 传入每年安装的次数
water = 50  # 传入总用水量
electric = 15000  # 传入总的用电量
price_list = [3, 20, 90, 90, 119, 440]  # 传入每个原料的每千克所用的钱数单位是元
weight_list = [27625.0, 40885.0, 22100.0, 2210.0, 5525.0, 12155.0]  # 传入所消耗的原料(kg)
employee_salary = 5000  # 传入员工的工资
employee_number = 20  # 传入员工的数量
overhaul_times = 4  # 传入检修的次数
overhaul_money = 10000  # 传入每次检修的价格(元)
every_bag_price = 15  # 传入每袋卖出去的价格
sales_volume = 74250000  # 传入买完所赚到的钱(元)
loan = 30000000  # 传入贷款的钱数(元)

with open('material_output.txt', mode='w', encoding='utf-8') as f:
    f.write('*********物料计算***********')
    f.write('\n')
    f.write('*********歩奏的计算***********')
    f.write('\n')
    f.write(str(material.day_product(total_production, step_play, 2)))
    f.write('\n')
    f.write('*********原料的计算***********')
    f.write('\n')
    f.write(str(material.material_calculation(raw_material_list, materials_list, last_step)))
    f.write('\n')
    f.write('*********包装消耗的计算***********')
    f.write('\n')
    f.write(str(material.product_pack(total_amount, every_bag_price)))
    f.write('\n')
    f.write('*********经济计算***********')
    f.write('\n')
    f.write('*********占地面积的计算***********')
    f.write('\n')
    f.write(str(money.area_money(area, area_price)))
    f.write('\n')
    f.write('*********安装费的计算***********')
    f.write('\n')
    f.write(str(money.install_money(install_number, install_price)))
    f.write('\n')
    f.write('*********水费和电费的计算***********')
    f.write('\n')
    f.write(str(money.other_money(water, electric)))
    f.write('\n')
    f.write('*********流动资金的计算***********')
    f.write('\n')
    f.write(str(money.flow_money(raw_material_list, price_list, weight_list)))
    f.write('\n')
    f.write('*********人员财务计算***********')
    f.write('\n')
    f.write(str(money.people_money(employee_number, employee_salary)))
    f.write('\n')
    f.write('*********检修计算***********')
    f.write('\n')
    f.write(str(money.overhaul_money(overhaul_times, overhaul_money)))
    f.write('\n')
    f.write('*********税率的计算***********')
    f.write('\n')
    f.write('*********增值税的计算***********')
    f.write('\n')
    f.write(str(revenue.value_added_tax(sales_volume, 0.17)))
    f.write('\n')
    f.write('*********消费税的计算***********')
    f.write('\n')
    f.write(str(revenue.excise_tax(sales_volume, 0.03)))
    f.write('\n')
    f.write('*********贷款的计算***********')
    f.write('\n')
    f.write(str(revenue.interest_construction(loan)))

f.close()

material.py(原料计算的底层代码)

用于化工毕业设计的计算,制作等等代码
# 计算过程
# 各个过程的损耗率为1%

def day_product(total_amount, step_list, places):
    """
    每日生产函数
    各个过程的损耗率为1%
    该功能暂时支持五个歩奏
     以每年250天为基准计算日需求量
    :param total_amount: 传入一个年产量(kg)
    :param step_list: 传入一个歩奏列表如干燥日需量注
    :param places:传入保留的位数
    :return:一个关于歩奏的每日所需资源的字典如{干燥日需量:400}和每年原辅料的总需求量
    """
    try:
        if places > 0:
            places = int(places)
            day_amount_need = total_amount / 250
            need_dict = {}
            amount_list = []
            # print('日需求量:%s' % day_amount_need)
            for i in range(3):
                day_amount_need = day_amount_need / 0.99
                amount_list.append(round(day_amount_need, places))
            # print(amount_list)
            a = amount_list[2] / 0.99
            all_zao = a / (0.95 / 0.99)
            all_shi = all_zao / 0.99
            all_fen = all_shi / 0.99
            all_year = all_fen * 250
            need_dict.setdefault(step_list[0], round(day_amount_need, places))  # 内包装日需求量
            need_dict.setdefault(step_list[1], round(amount_list[1], places))  # 总混日需求量
            need_dict.setdefault(step_list[2], round(amount_list[2], places))  # 整粒日需求量
            need_dict.setdefault(step_list[3], round(all_shi, places))  # 干燥日需求量
            need_dict.setdefault(step_list[3], round(all_zao, places))  # 湿法制粒日需求量
            need_dict.setdefault(step_list[4], round(all_fen, places))  # 粉碎筛分时的日需求量'
            return need_dict, '每年原辅料的总需求量:%s' % round(all_year, places), '粉碎日需量:%d' % all_fen
        else:
            print('*********输入的数字要是正整数***********')
    except Exception:
        print('***********有错误请重新输入!*************')


# 每日需要的量的计算
def material_calculation(material_list, mixture_ratio_list, smash_day):
    """
    如:碳酸氢钠25%:柠檬酸37%:蜂蜜粉20%:速溶红茶粉2%:阿斯巴甜味剂5%;PEG6000 11%
    :param material_list: 所需的原料的列表
    :param mixture_ratio_list: 所需原料的配比列表
    :param smash_day: 传入筛分的日需量
    :return: 每年消耗的量和每日所消耗的原料的量
    """
    material_calculation_list_day = []
    material_calculation_dict_day = {}
    material_calculation_list_year = []
    material_calculation_dict_year = {}
    if len(material_list) == len(mixture_ratio_list):
        try:

            for a in mixture_ratio_list:
                quantity_material_day = a * smash_day
                quantity_material_year = quantity_material_day * 250
                material_calculation_list_day.append(quantity_material_day)
                material_calculation_list_year.append(quantity_material_year)

            for i in range(len(material_list)):
                material_calculation_dict_day.setdefault(material_list[i], material_calculation_list_day[i])
                material_calculation_dict_year.setdefault(material_list[i], material_calculation_list_year[i])
        except Exception:
            print('*******smash输入的不是数字**********')
    else:
        print('*****原料的数量和配比要相对应********')

    return '每天的消耗的为:{}'.format(material_calculation_dict_day), '每年的各个原料消耗的为:{}'.format(material_calculation_dict_year)


# # 包装消耗
def product_pack(total_amount, price):
    """
    包装消耗的计算
    :param total_amount: 输入总的质量(注意使用的单位是g)
    :return: 各个阶段的值
    """
    if total_amount > 0:
        all_dai = (total_amount / 20) * 0.99
        all_he = all_dai / 20
        all_box = all_he / 12
        everyday_box = all_box / 250
        all_money = price * all_dai
        return '总的袋数:{}'.format(round(all_dai, 3)), \
               '总的包装数:{}'.format(round(all_box, 2)), \
               '总的盒数:{}'.format(round(all_he, 2)), \
               '每天生产的箱数%s' % round(everyday_box, 2), '总的销售的钱数:%s元' % all_money
    else:
        print('***********总量要大于零***********')

money.py(一些关于钱的计算的底层代码)

def area_money(area, price):
    """
    占地面积计算
    :param area: 地区的面积平方米
    :param price: 价格元每米
    :return:钱数
    """
    if area > 0 and price > 0:
        money = area * price
        return '占地所用的钱:%d元' % money
    else:
        print('*********输入错误请重新输入!**********')


def install_money(install, number):
    """
    :param install: 建筑安装费
    :param number: 数量
    :return:钱数
    """
    if install > 0 and number > 0:
        number = int(number)
        money = install * number
        return '总的安装费:%d元' % money
    else:
        print('*********输入错误请重新输入!**********')


def other_money(water, electric):
    """

    :param water: 用的电量
    :param electric:用的水量单位是吨
    :return:总价格单位元
    单价约为12元/升,其他生活用水量约为1000吨,
    兰州市工商业用水为4.10元/立方米,1吨=1立方米单价约为12元/升,其他生活用水量约为1000吨,
    兰州市工商业用水为4.10元/立方米,1吨=1立方米
    兰州市工业用电电价电费为0.5元/kw∙h,基本电价20元/kVA

    """
    if water > 0 and electric > 0:
        water_price = water * 1000 + 1000 * 4.1
        electric_price = electric * 0.5 + 130 * 20 * 12
        other_price = 200000
        all_price = water_price + electric_price + other_price

        return '所用的水费:%d元' % water_price, '所用的电费:%d元' % electric_price, '所用的总的费用:%d元' % all_price
    else:
        print('*********输入错误请重新输入!**********')


def flow_money(material_list, price_list, weight_list):
    """
    计算流动资金
    :param material_list: ,传入一个物料为valued单价格为key的字典
    :param price_list:每个物料单价
    :param weight_list: 重量kg
    :return: 价格总字典
    """
    if len(material_list) and len(price_list) == len(weight_list):
        all_material_dict = {}
        for i in range(len(material_list)):
            new_price = price_list[i] * weight_list[i]
            all_material_dict.setdefault(material_list[i], new_price)

        return '原料和其各自的钱为:{}'.format(all_material_dict), '总的钱数:{}'.format(sum(all_material_dict.values()))
    else:
        print('**********每个列表的长度要相同!***********')


def people_money(number, wages):
    """
    人的消耗的钱
    :param number: 员工人数
    :param wages: 工资
    :return: 总支出
    """
    if number > 0 and wages > 0:
        number = int(number)
        money = number * wages
        return '员工的总支出:%d元' % money
    else:
        print('*********输入错误请重新输入!**********')


def overhaul_money(time, money):
    """
    检修的钱数
    :param time: 每年检修的次数
    :param money: 每次检修的钱
    :return: 全部需要的钱
    """
    if time > 0 and money > 0:
        time = int(time)
        return '检修的费用:%d元' % (time * money)
    else:
        print('*********输入错误请重新输入!**********')

revennu.py(关于利率计算的底层代码)

def value_added_tax(money, rate):
    """
    增值税计算
    增值税:含税价格=不含税价格+增值税,医药行业增值税税率为0.17
    :param money:营业额(元)
    :param rate:利率
    :return:
    """
    if money > 0 and 0 < rate < 1:
        value_added = money / (1 + rate)
        return '增值税的钱:%d元' % (money - value_added)
    else:
        print('*********输入错误请重新输入!************')


def excise_tax(sales, rate):
    """
    消费税计算
    :param sales:消费额
    :return:税后的消费额
    """
    if sales > 0 and 0 < rate < 1:
        return '消费税的钱:%d元' % (sales * rate)
    else:
        print('*********输入错误请重新输入!************')


def interest_construction(loan):
    """
    建设期利息Qi=(Pj-1+1/2Ai) ×i(利率),贷款1年利率为3.75%。
    贷款20000000元,建设期为1年
    :param loan:贷款钱数
    :return:价格
    """
    all_money = 0.5 * loan * 0.0375
    return '还贷款:%d元' % all_money

运行效果

*********物料计算***********
*********歩奏的计算***********
({'包装的日需量': 412.24, '总混的日需量': 408.12, '整粒的日需量': 412.24, '干燥的日需量': 438.32, '粉碎筛分的日需量': 442.75}, '每年原辅料的总需求量:110686.88', '粉碎日需量:442')
*********原料的计算***********
("每天的消耗的为:{'碳酸钠': 110.5, '柠檬酸': 163.54, '蜂蜜粉': 88.4, '速溶红茶粉': 8.84, '阿斯巴甜味剂': 22.1, 'PEG6000': 48.62}", "每年的各个原料消耗的为:{'碳酸钠': 27625.0, '柠檬酸': 40885.0, '蜂蜜粉': 22100.0, '速溶红茶粉': 2210.0, '阿斯巴甜味剂': 5525.0, 'PEG6000': 12155.0}")
*********包装消耗的计算***********
('总的袋数:4950000.0', '总的包装数:20625.0', '总的盒数:247500.0', '每天生产的箱数82.5', '总的销售的钱数:74250000.0元')
*********经济计算***********
*********占地面积的计算***********
占地所用的钱:2500000元
*********安装费的计算***********
总的安装费:50000元
*********水费和电费的计算***********
('所用的水费:54100元', '所用的电费:38700元', '所用的总的费用:292800元')
*********流动资金的计算***********
("原料和其各自的钱为:{'碳酸钠': 82875.0, '柠檬酸': 817700.0, '蜂蜜粉': 1989000.0, '速溶红茶粉': 198900.0, '阿斯巴甜味剂': 657475.0, 'PEG6000': 5348200.0}", '总的钱数:9094150.0')
*********人员财务计算***********
员工的总支出:100000元
*********检修计算***********
检修的费用:40000元
*********税率的计算***********
*********增值税的计算***********
增值税的钱:10788461元
*********消费税的计算***********
消费税的钱:2227500元
*********贷款的计算***********
还贷款:562500元

标签:物料,return,money,price,material,list,write,自动化,核算
来源: https://www.cnblogs.com/xiaowenxu/p/16028439.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有