鱼C论坛

 找回密码
 立即注册
查看: 2456|回复: 3

[原创] 用Python写了个关于煤炭检验的计算器

[复制链接]
发表于 2018-1-21 11:25:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
由于本人的工作平时有涉及到煤炭工业分析方面的计算,用计算器直接按还是相对比较麻烦的,而且有很多系数需要做判断后再选择计算,写了一个简单的计算器,新手,勿喷
  1. import tkinter
  2. tk=tkinter.Tk()
  3. #设置窗口标题
  4. tk.title("煤工业分析计算器")
  5. #设置窗口大小
  6. tk.geometry("565x220")

  7. FC=tkinter.StringVar()
  8. Qnet_ad=tkinter.StringVar()
  9. Ad=tkinter.StringVar()
  10. Vadf=tkinter.StringVar()
  11. Vadfj=tkinter.StringVar()
  12. K=tkinter.StringVar()
  13. Jj=tkinter.StringVar()
  14. #添加Label
  15. label_Mad = tkinter.Label(tk,text="Mad")
  16. label_Mad.place(x=10,y=10,width=50,height=25)
  17. label_Aad = tkinter.Label(tk,text="Aad")
  18. label_Aad.place(x=65,y=10,width=50,height=25)
  19. label_Vad=tkinter.Label(tk,text="Vad")
  20. label_Vad.place(x=120,y=10,width=50,height=25)
  21. label_FC=tkinter.Label(tk,text="FC")
  22. label_FC.place(x=175,y=10,width=50,height=25)
  23. label_Qnet_ad=tkinter.Label(tk,text="Qnet.ad")
  24. label_Qnet_ad.place(x=230,y=10,width=50,height=25)
  25. label_Ad = tkinter.Label(tk,text="Ad")
  26. label_Ad.place(x=285,y=10,width=50,height=25)
  27. label_Vadf = tkinter.Label(tk,text="Vadf")
  28. label_Vadf.place(x=340,y=10,width=50,height=25)
  29. label_Vadfj = tkinter.Label(tk,text="Vadf校")
  30. label_Vadfj.place(x=395,y=10,width=50,height=25)
  31. label_K = tkinter.Label(tk,text="K")
  32. label_K.place(x=450,y=10,width=50,height=25)
  33. label_Jj = tkinter.Label(tk,text="焦渣特征")
  34. label_Jj.place(x=505,y=10,width=50,height=25)

  35. entry_Mad=tkinter.Entry(tk,textvariable=tkinter.StringVar())
  36. entry_Mad.place(x=10,y=35,width=50,height=25)
  37. entry_Aad=tkinter.Entry(tk,textvariable=tkinter.StringVar())
  38. entry_Aad.place(x=65,y=35,width=50,height=25)
  39. entry_Vad=tkinter.Entry(tk,textvariable=tkinter.StringVar())
  40. entry_Vad.place(x=120,y=35,width=50,height=25)
  41. entry_FC=tkinter.Entry(tk,textvariable=FC, state='readonly')
  42. entry_FC.place(x=175,y=35,width=50,height=25)
  43. entry_Qnet_ad=tkinter.Entry(tk,textvariable=Qnet_ad, state='readonly')
  44. entry_Qnet_ad.place(x=230,y=35,width=50,height=25)
  45. entry_Ad=tkinter.Entry(tk,textvariable=Ad,state='readonly')
  46. entry_Ad.place(x=285,y=35,width=50,height=25)
  47. entry_Vadf=tkinter.Entry(tk,textvariable=Vadf, state='readonly')
  48. entry_Vadf.place(x=340,y=35,width=50,height=25)
  49. entry_Vadfj=tkinter.Entry(tk,textvariable=Vadfj, state='readonly')
  50. entry_Vadfj.place(x=395,y=35,width=50,height=25)
  51. entry_K=tkinter.Entry(tk,textvariable=K, state='readonly')
  52. entry_K.place(x=450,y=35,width=50,height=25)
  53. entry_Jj=tkinter.Entry(tk,textvariable=Jj)
  54. entry_Jj.place(x=505,y=35,width=50,height=25)

  55. def aq():
  56.     fc = round(100-float(entry_Mad.get())-float(entry_Aad.get())-float(entry_Vad.get()),2)
  57.     FC.set(fc)
  58.     ad = round(float(entry_Aad.get())*100/(100-float(entry_Mad.get())),4)
  59.     Ad.set(ad)
  60.     vadf = round(float(entry_Vad.get())*100/(100-(float(entry_Mad.get())+float(entry_Aad.get()))),4)
  61.     Vadf.set(vadf)

  62.     if float(ad)<=10:
  63.         if float(ad)<10:
  64.             vadfj=round(0.95*vadf,4)
  65.         elif float(ad)>=10 and float(ad)<15:
  66.             vadfj=round(0.9*vadf,4)
  67.         elif float(ad)>=15 and float(ad)<20:
  68.             vadfj=round(0.8*vadf,4)
  69.         elif float(ad)>=20 and float(ad)<25:
  70.             vadfj=round((0.95*vadf-0.1*ad),4)
  71.         elif float(ad)>=25 and float(ad)<30:
  72.             vadfj=round((0.85*vadf-0.1*ad),4)
  73.         elif float(ad)>=30 and float(ad)<40:
  74.             vadfj=round((0.8*vadf-0.1*ad),4)
  75.         Vadfj.set(vadfj)
  76.     if float(entry_Vad.get())<=10:           #无烟煤计算        
  77.         if float(vadfj)<=3:
  78.             k=8200
  79.         elif float(vadfj)<=5.5 and float(vadfj)>3:
  80.             k=8300
  81.         elif float(vadfj)<=8 and float(vadfj)>5.5:
  82.             k=8400
  83.         elif float(vadfj)<=10 and float(vadfj)>8.0:
  84.             k=8500
  85.         K.set(k)

  86.         qnetad = round((k-86*float(entry_Mad.get())-92*float(entry_Aad.get())-24*float(entry_Vad.get())),0)
  87.         Qnet_ad.set(qnetad)
  88.         
  89.     if float(entry_Vad.get())>10.0:       #烟煤计算
  90.         if float(vadfj)>10 and float(vadfj)<=13.5:  #Vadf校正在10-13.5范围内K的选择
  91.             if float(entry_Jj.get())>=1 and float(entry_Jj.get())<=2:
  92.                 k=84
  93.             elif float(entry_Jj.get())>=3 and float(entry_Jj.get())<=7:
  94.                 k=84.5
  95.         if float(vadfj)>13.5 and float(vadfj)<=17:  #Vadf校正在13.5-17范围内K的选择
  96.             if float(entry_Jj.get())==1:
  97.                 k=80.5
  98.             elif float(entry_Jj.get())==2:
  99.                 k=83.5
  100.             elif float(entry_Jj.get())==3:
  101.                 k=84.5
  102.             elif float(entry_Jj.get())>=4 and float(entry_Jj.get())<=8:  
  103.                 k=85
  104.         if float(vadfj)>17 and float(vadfj)<=20:  #Vadf校正在17-20范围内K的选择
  105.             if float(entry_Jj.get())==1:
  106.                 k=80
  107.             elif float(entry_Jj.get())==2:
  108.                 k=82
  109.             elif float(entry_Jj.get())==3:
  110.                 k=83.5
  111.             elif float(entry_Jj.get())==4:
  112.                 k=84
  113.             elif float(entry_Jj.get())>=5 and float(entry_Jj.get())<=8:
  114.                 k=85
  115.         if float(vadfj)>20 and float(vadfj)<=23:  #Vadf校正在20-23范围内K的选择
  116.             if float(entry_Jj.get())==1:
  117.                 k=78.5
  118.             elif float(entry_Jj.get())==2:
  119.                 k=81
  120.             elif float(entry_Jj.get())==3:
  121.                 k=82.5
  122.             elif float(entry_Jj.get())==4:
  123.                 k=83
  124.             elif float(entry_Jj.get())==5:
  125.                 k=84
  126.             elif float(entry_Jj.get())==6:
  127.                 k=84
  128.             elif float(entry_Jj.get())==7:
  129.                 k=85
  130.             elif float(entry_Jj.get())==8:
  131.                 k=85.5
  132.         if float(vadfj)>23 and float(vadfj)<=29:  #Vadf校正在23-29范围内K的选择
  133.             if float(entry_Jj.get())==1:
  134.                 k=76.5
  135.             elif float(entry_Jj.get())==2:
  136.                 k=78
  137.             elif float(entry_Jj.get())==3:
  138.                 k=81
  139.             elif float(entry_Jj.get())==4:
  140.                 k=82
  141.             elif float(entry_Jj.get())==5:
  142.                 k=83.5
  143.             elif float(entry_Jj.get())==6:
  144.                 k=83.5
  145.             elif float(entry_Jj.get())==7:
  146.                 k=84.5
  147.             elif float(entry_Jj.get())==8:
  148.                 k=85
  149.         if float(vadfj)>29 and float(vadfj)<=32:  #Vadf校正在23-29范围内K的选择
  150.             if float(entry_Jj.get())==1:
  151.                 k=76.5
  152.             elif float(entry_Jj.get())==2:
  153.                 k=78
  154.             elif float(entry_Jj.get())==3:
  155.                 k=80
  156.             elif float(entry_Jj.get())==4:
  157.                 k=81
  158.             elif float(entry_Jj.get())==5:
  159.                 k=82.5
  160.             elif float(entry_Jj.get())==6:
  161.                 k=82.5
  162.             elif float(entry_Jj.get())==7:
  163.                 k=84
  164.             elif float(entry_Jj.get())==8:
  165.                 k=84.5
  166.         if float(vadfj)>29 and float(vadfj)<=32:  #Vadf校正在32-35范围内K的选择
  167.             if float(entry_Jj.get())==1:
  168.                 k=73
  169.             elif float(entry_Jj.get())==2:
  170.                 k=77.5
  171.             elif float(entry_Jj.get())==3:
  172.                 k=79
  173.             elif float(entry_Jj.get())==4:
  174.                 k=80
  175.             elif float(entry_Jj.get())==5:
  176.                 k=81.5
  177.             elif float(entry_Jj.get())==6:
  178.                 k=81.5
  179.             elif float(entry_Jj.get())==7:
  180.                 k=83
  181.             elif float(entry_Jj.get())==8:
  182.                 k=83.5
  183.         if float(vadfj)>35 and float(vadfj)<=38:  #Vadf校正在32-35范围内K的选择
  184.             if float(entry_Jj.get())==1:
  185.                 k=73
  186.             elif float(entry_Jj.get())==2:
  187.                 k=76.5
  188.             elif float(entry_Jj.get())==3:
  189.                 k=78.5
  190.             elif float(entry_Jj.get())==4:
  191.                 k=79.5
  192.             elif float(entry_Jj.get())==5:
  193.                 k=81
  194.             elif float(entry_Jj.get())==6:
  195.                 k=81
  196.             elif float(entry_Jj.get())==7:
  197.                 k=82.5
  198.             elif float(entry_Jj.get())==8:
  199.                 k=83
  200.         if float(vadfj)>38 and float(vadfj)<=42:  #Vadf校正在38-42范围内K的选择
  201.             if float(entry_Jj.get())==1:
  202.                 k=73
  203.             elif float(entry_Jj.get())==2:
  204.                 k=75.5
  205.             elif float(entry_Jj.get())==3:
  206.                 k=78
  207.             elif float(entry_Jj.get())==4:
  208.                 k=79
  209.             elif float(entry_Jj.get())==5:
  210.                 k=80
  211.             elif float(entry_Jj.get())==6:
  212.                 k=80
  213.             elif float(entry_Jj.get())==7:
  214.                 k=82
  215.             elif float(entry_Jj.get())==8:
  216.                 k=82.5
  217.         if float(vadfj)>42:  #Vadf校正大于42范围内K的选择
  218.             if float(entry_Jj.get())==1:
  219.                 k=72.5
  220.             elif float(entry_Jj.get())==2:
  221.                 k=74.5
  222.             elif float(entry_Jj.get())==3:
  223.                 k=76.6
  224.             elif float(entry_Jj.get())==4:
  225.                 k=77.5
  226.             elif float(entry_Jj.get())==5:
  227.                 k=79.5
  228.             elif float(entry_Jj.get())==6:
  229.                 k=79.5
  230.             elif float(entry_Jj.get())==7:
  231.                 k=81
  232.             elif float(entry_Jj.get())==8:
  233.                 k=82
  234.         

  235.         qnetad = round((100*k-(k+6)*(float(entry_Mad.get())+float(entry_Aad.get()))-3*float(entry_Vad.get())),0)
  236.         Qnet_ad.set(qnetad)
  237.    
  238. b1=tkinter.Button(tk,text="结果",command=aq)
  239. b1.place(x=189,y=90,width=200,height=100)

  240. tk.mainloop()
复制代码


这是自己写的第一个小程序,写完运行完还有点小激动,就是代码比较长,应该很多步骤的有其他方法可以减少代码行数的,但是目前还不懂得,只能以后再慢慢完善了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-21 20:56:22 | 显示全部楼层
感觉用Python写窗口应用程序好麻烦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-26 13:54:09 | 显示全部楼层
看看,学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-29 06:14:38 | 显示全部楼层
感觉可以直接把数据做成字典,代码更漂亮
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 07:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表