编程题
题目要求
实现以 汉字 为变量名的,范围为 零至九十九 的 整数
实现 整数......等于 操作,使得上述变量得以申请与赋初值
实现 增加 与 减少 操作,使得上述变量得以修改
实现 看看 操作,使得上述变量的值得以输出
可能存在的要求:
实现 整数 操作,使得申请上述变量
实现 等于 操作,给上述变量赋值
设计错误抛出,避免程序崩溃
需求分析
输入输出全为中文,需要实现汉字与阿拉伯数字的互相转化
对于非法的输入,需要实现对非法输入的发现与错误的抛出
对于定义、增加、减少、赋值语句的实现
对语句的识别
思考过程
由于变量的个数是未知的,故全过程涉及到的类,包括:变量库(VariableRepository)、数字库(NumberRepository)、操控者(World)
下面分别考虑各个类(下面提到的方法不涉及构造方法与析构方法):
类名 | 属性 | 方法 |
---|---|---|
变量库 (VariableRepository) |
1. 用 vector 储存的变量值(variableValue) 2. 用 map 实现的,从变量名到变量地址的映射(variableMap) |
1. 查询变量地址(VariableFind) 2. 申请新变量(VariableApply) 3. 变量赋值(VariableAssign) 4. 变量增加(VariableAdd) 5. 变量减少(VariableMinus) 6. 变量输出(VariableShow) |
数字库 (NumberRepository) |
1. 用 vector 实现的数字汉字转化(numberChar) | 1. 汉字转数字(ToNumber) 2. 数字转汉字(ToChar) |
操控者 (World) |
1. 用 string 实现的指令(order) 2. 变量库(variable) 3. 数字库(number) |
1. 指令输入(Input) 2. 指令识别(Understand) 3. 变量修改(Update) 4. 变量申请(Apply) 5. 变量输出(Print) 6. 抛出错误变量不存在(NotExist) 7. 抛出错误变量已申请(Applied) 8. 抛出错误数字错误(NumberError) 9. 抛出错误语句无法识别(CanNotUnderstand) 10.运行(Run) |