实验二 计算器设计

20213419 2021-2022-2 《Python程序设计》实验二报告

课程:《Python程序设计》
班级: 2134
姓名: 刘盼
学号:20213419
实验教师:王志强
实验日期:2022年3月31日
必修/选修: 公选课
(一)实验内容

设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。

考核基本语法、判定语句、循环语句、逻辑运算等知识点
(二)实验要求

创建工程项目,使用Python语言实现具体的操作运算,并完成程序调试和运行,代码托管到码云。

注:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、IDLE、Pycharm等工具编程实现。

(三)实验报告

1.实验内容

自己编写程序,程序功能:完成计算机算法,如:加减乘除运算,除了这些基本的功能,还需要增加更多功能,这些由自己编写

2.实验过程及结果

------------------------------------过程---------------------------------------

import math
print("besti科学计算器")
flag=True
while flag==True:
    choice=input("请选择你要计算的类型(1表示实数类型;2表示虚数类型;3表示实数加虚数类型):\n")
    if choice=="1":
        print("如果你选用sin、cos、tan函数or进制,请将b值设定为1\n")
        print("如果选用与、或、非电路,a和b的值在0 or 1之间选择,且非电路的b值为1\n")
        op=input("请输入需要做的操作(+、-、*、/、%、a的b次方根、sin、cos、tan、十转二进制、十转八进制、十转十六进制、与、或、非、输入0代表退出):")
        
        if op=="0":
            break
        else:
            a=int(input("请输入第一个实数a\n"))
            b=int(input("请输入第二个实数b\n"))
    elif choice=="2":
        op=input("请输入需要做的操作(+、-、输入0代表退出):")
        if op=="0":
            break
        else:
            a=complex(input("请输入第一个虚数a\n"))
            b=complex(input("请输入第一个虚数b\n"))
    elif choice=="3":
        op=input("请输入需要做的操作(+、-、输入0代表退出):")
        if op=="0":
            break
        else:
            a=int(input("请输入第一个实数a\n"))
            b=complex(input("请输入第一个虚数b\n"))
    if op=="+":
            result=a+b
    elif op=="-":
            result=a-b
    elif op=="*":
            result=a*b
    elif op=="/":
            result=a/b
    elif op=="%":
            result=a%b   
    elif op=="a的b次方根":
            result=pow(a,b)
            print(str(a)+"的"+str(b)+"次方根"+"=",result,"\n")
            continue
    elif op=="sin":
            result=math.sin(a*3.1415927/180)
            print("sin"+str(a)+"=",result,"\n")
            continue
    elif op=="cos":
            result=math.cos(a*3.1415927/180)
            print("cos"+str(a)+"=",result,"\n")
            continue
    elif op=="tan":
            result=math.tan(a*3.1415927/180)
            print("tan"+str(a)+"=",result,"\n")
            continue
    elif op=="十转二进制":
            result=bin(a)
            print(str(a)+"的二进制"+"=",result,"\n")
            continue
    elif op=="十转八进制":
            result=oct(a)
            print(str(a)+"的八进制"+"=",result,"\n")
            continue
    elif op=="十转十六进制":
            result=hex(a)
            print(str(a)+"的十六进制"+"=",result,"\n")
            continue
    elif op=="与":
            if a==b:
               result=a
               print(str(a)+"和"+str(b)+"的与电路"+"=",result,"\n")
            else:
               result=0
               print(str(a)+"和"+str(b)+"的与电路"+"=",result,"\n")
               continue
    elif op=="或":
            if a==b:
               result=a
               print(str(a)+"和"+str(b)+"的或电路"+"=",result,"\n")
            else:
               result=1
               print(str(a)+"和"+str(b)+"的或电路"+"=",result,"\n")
               continue
    elif op=="非":
            if a==1:
               result=0
               print(str(a)+"的非电路"+"=",result,"\n")
            else:
               result=1
               print(str(a)+"的非电路"+"=",result,"\n")
               continue
    else:
            print("输入有误,请重新输入\n")
            continue
    print(str(a)+op+str(b)+ "=",result,"\n")

-----------------------------------结果-------------------------------------------

计算物理python例题 python与计算物理_十六进制


计算物理python例题 python与计算物理_Python_02


计算物理python例题 python与计算物理_十六进制_03


计算物理python例题 python与计算物理_Python_04

3. 实验过程中遇到的问题和解决过程

  • 问题1:当输入sin,cos,tan等运算的时候,只需输入a,不需要输入b了,而自己现在的知识难以将程序写成只输入a
  • 问题1解决方案:当使用这些函数时,将b值定为1
  • 问题2:当输入sin,cos,tan等运算的时候,输入的a为弧度制而不是角度值
  • 问题2解决方案:将a*3.1415927/180 变为角度值

2.3 上传源代码至gitee

见图

计算物理python例题 python与计算物理_Python_05


计算物理python例题 python与计算物理_计算物理python例题_06

其他(感悟、思考等)

感悟:python编程虽然自己懂得不是很多,但是当自己成功写出计算器程序(其中当然少不了老师的指导)并且完成调试开始运行时,自己还是感到自豪的,为一件事付出过努力,肯定会有满足感
思考:python能够编译计算器,还能编译其他什么实用的工具,并且有什么好处以及不足