学号 2019-2020-2 《Python程序设计》实验x报告
课程:《Python程序设计》
班级: 1822
学号:20182213
实验教师:王志强
实验日期:2020年4月11日
必修/选修: 公选课
1.实验内容
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
考核基本语法、判定语句、循环语句、逻辑运算等知识点
2. 实验过程及结果
本次实验我选择制作了一个计算器,使用方式是只需要输入一串运算表达式,计算器就能自动得出运算结果具体步骤如下所示:
- 首先我们采用数据结构作为辅助定义两个类,一个为结点类,另一个为栈类
- 在栈类中我们定义判断栈是否为空的方法,压栈弹栈方法,和打印栈中所有元素方法
- 我们再定义一个计算器的类文件,在此我们初始化两个实例栈类对象,一个用来存储数字栈,另一个用来存储链栈。
- 在计算器类中我们给不同运算符赋予不同优先级,方便其进行优先级不同的运算,从而可以将带括号的运算也能够得出正确的答案。
- 定义比较不同优先级的方法
- 设置判断函数,如果是数字直接入栈,如果是运算符则将其与栈顶运算符进行比较,如果优先级高于栈顶运算符,则直接压栈,如果比栈顶运算符优先级低,则进行弹栈操作,并进行运算。如此往复,直到栈内元素为空时,运算完成。
运行结果
断点调试
代码截图:
3. 实验过程中遇到的问题和解决过程
- 问题1:无法输入小数和多位数
- 问题1解决方案:加入一个判断位数的计数器,计算小数点位置即可
参考资料
- [《Python编程从入门到精通》]