zoukankan      html  css  js  c++  java
  • 团队-科学计算器-项目总结

    团队项目:科学计算器

    队长:黄研

    队员:鞠艳   李艾哲    马璐   吕爽    陶丽爽

    项目开发目的:该软件是以实现个人在生活和工作上方便进行简单的计算从而得到想要的数据而设计的,同时也是为了丰富我们的知识和提高实践能力而设计的。

    项目需求:主要应用于日常学习工作中遇到的科学计算问题,系统应该能够更好的完成基本科学计算任务,做到准确快速的计算出用户所需数据。

    该产品的核心功能是:1.支持俩个数的加减乘除

                             2.输入数字时可以进行向后删除,这样输入错误的数字时可以及时修改,比较方便

                             3.有小数的计算,运算比较精确,解决了口算和笔算带  来的失误问题。

                             4.有负数的添加,能够实现学生等进行负数的计算

                             5.当显示框数据过多时还可以进行大清除,避免一个一个的去删除

    项目的进程:目前它能够进行加减乘除运算以及实现清除运算框中不需要的内容。以后我们将讨论增加幂运算等动能模块。我相信通过我们的努力一定会完成。

     运行的页面:

     #-*- coding:UTF-8-*-
     
    from Tkinter import *
     
    def frame(root, side):
        w = Frame(root)
        w.pack(side=side, expand=YES, fill=BOTH)
        return w
    #end of def
     
    def button(root, side, text, command=None):
        w = Button(root, text=text, command=command)
        w.pack(side=side, expand=YES, fill=BOTH)
        return w
    #end of def
    #www.iplaypy.com
     
    class Calculator(Frame):
        def __init__(self):
            Frame.__init__(self)
            #self.oprion_add('*Font', 'Verdana 12 bold')
            self.option_add('*Font', 'Verdana 12 bold')
            self.pack(expand=YES, fill=BOTH)
            self.master.title('Simple Cal')
            self.master.iconname('calc1')
             
            display = StringVar()
            Entry(self, relief=SUNKEN, textvariable=display).pack(side=TOP, expand=YES, fill=BOTH)
            for key in ('123', '456', '789', '+0.'):
                keyF = frame(self, TOP)
                for char in key:
                    button(keyF, LEFT, char, lambda w=display, c=char: w.set(w.get() + c))
            #end of for
            opsF = frame(self, TOP)
             
            for char in '-*/=':
                if char == '=':
                    btn = button(opsF, LEFT, char)
                    btn.bind('<ButtonRelease-1>', lambda e, s=self, w=display: s.calc(w), '+')
                else:
                    btn = button(opsF, LEFT, char, lambda w=display, s='%s '%char: w.set(w.get() + s))
     
                #end of if
            #end of for 
            clearF = frame(self, BOTTOM)
            button(clearF, LEFT, 'Clr', lambda w=display: w.set(''))
        #end of def
         
        def calc(self, display):
            try:
                display.set(eval(display.get()))
            except:
                display.set('ERROR')
            #end of try and except
        #end of def
    #end of class
     
    if __name__ == '__main__':
        Calculator().mainloop()
  • 相关阅读:
    Socket异步通信
    以读取博客园随笔备份为例 将xml 序列化成json,再序列化成对象
    NhibernateProfiler写个自动破解工具
    关于下载GAE High Replication Datastore数据
    .text 0.958 数据添加
    C#实现RTP数据包传输参照RFC3550
    在线商城表结构
    相似字符串
    .net 4.0 的Socket写的支持跨平台双工的轻量级通讯组件
    写一个迷你版Smarty模板引擎,对认识模板引擎原理非常好(附代码)
  • 原文地址:https://www.cnblogs.com/juyan/p/7922461.html
Copyright © 2011-2022 走看看