这个作业属于哪个课程 | 软件工程 |
---|---|
这个作业要求在哪里 | 作业要求 |
这个作业的目标 | <建议的中文编译器> |
作业正文 | <见下方> |
其他参考文献 | 无 |
github仓库地址 : https://github.com/mvm6523/zuoye1
代码行数 :395行
需求分析时间 :分析几分钟,初步明确要做什么之后一边编程一边继续思考
编码时间:总计花费 7小时
理论上支持十亿以下的运算,当然,可能会出Bug
思路:
-
在输入方面
- 起初预想到可能会有多个变量,一开始想要用链表,但发现py好像没有链表,就创建了两个数组,一个存放变量名,一个存放变量值,数组下标相对应
- 后来设立了全局变量,用来判断看是否是创建第一个变量,若不是则会判断变量是否重复定义
- 如果用户输入的是"如果",考虑到用户不知道会做什么事,可能会做出再次创建变量等行为,就嵌套了输入函数
-
在中文转化成数字方面做了三个判断
- 一个是判断有没有百、千这样的数字单位,方便读取如“二一”这样的输入方式
- 一个是判断输入存不存在零,存在零的话会有不同的处理方法
- 一个是判断输入是否为负,若存在负数,则提取第一个字符,其他的字符再次使用一个这个函数,处理完之后的数字乘以负一
-
在数字转化中文方面也是有三个判断
- 一个是判断数字是否存在0
- 一个是判断数字是否存在多个连续的零,如“120000”
- 一个是判断输入是否为负数