实验二 计算器设计
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")
-----------------------------------结果-------------------------------------------
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能够编译计算器,还能编译其他什么实用的工具,并且有什么好处以及不足