zoukankan      html  css  js  c++  java
  • 简易的中文语言翻译器

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/SE
    这个作业要求在哪里 https://edu.cnblogs.com/campus/fzzcxy/SE/homework/10283
    这个作业的目标 <制作一个简易的中文语言编译器>
    作业正文 https://github.com/287928201/-
    其他参考文献 同学代码,百度搜索

    1.记录自己的代码行数,需求分析时间,编码时间。

    代码共113行。
    分析时间:2小时。
    编码时间:一个下午一个晚上。

    2.分解需求的思路,分解成多个模块,并阐述为什么这么分,优势在哪,可以附上代码片段。

    用的python写的,觉得用py写方便,不用头文件,但是运行过程中比较麻烦,不能整段输入一起复制,需要一句一句复制。

    输入片段

    def 输入():
        str = input()
        s = str.split()
        if len(s)>0:
            if s[0] == '整数':
                what[0] = s[1]
            elif s[0] == '看看' or '如果':
                what[0] = s[1]
            else:
                what[0] = s[0]
            return s
        else:
            return None
    

    汉字数字转换片段

    def 汉转数(s):
        if len(s) <= 2:
            s[1] = s[1]
        elif s[2] == '零':
            s[2] = 0
        elif s[2] == '一':
            s[2] = 1
        elif s[2] == '二':
            s[2] = 2
        elif s[2] == '三':
            s[2] = 3
        elif s[2] == '四':
            s[2] = 4
        elif s[2] == '五':
            s[2] = 5
        elif s[2] == '六':
            s[2] = 6
        elif s[2] == '七':
            s[2] = 7
        elif s[2] == '八':
            s[2] = 8
        elif s[2] == '九':
            s[2] = 9
        elif s[2] == '十':
            s[2] = 10
        elif s[3] == '零':
            s[3] = 0
        elif s[3] == '一':
            s[3] = 1
        elif s[3] == '二':
            s[3] = 2
        elif s[3] == '三':
            s[3] = 3
        elif s[3] == '四':
            s[3] = 4
        elif s[3] == '五':
            s[3] = 5
        elif s[3] == '六':
            s[3] = 6
        elif s[3] == '七':
            s[3] = 7
        elif s[3] == '八':
            s[3] = 8
        elif s[3] == '九':
            s[3] = 9
        elif s[3] == '十':
            s[3] = 10
        return s
    def 数转汉():
        if what[1] == 0:
            what[3] = '零'
        elif what[1] == 1:
            what[3] = '一'
        elif what[1] == 2:
            what[3] = '二'
        elif what[1] == 3:
            what[3] = '三'
        elif what[1] == 4:
            what[3] = '四'
        elif what[1] == 5:
            what[3] = '五'
        elif what[1] == 6:
            what[3] = '六'
        elif what[1] == 7:
            what[3] = '七'
        elif what[1] == 8:
            what[3] = '八'
        elif what[1] == 9:
            what[3] = '九'
        elif what[1] == 10:
            what[3] = '十'
        return s
    

    运算片段

    def 运算(s):#只考虑了加减运算
    #第一句话
        if (s[0]=='整数') and (s[2]=='等于'):
            what[1] = s[3]
    #第二句话
        if s[1] == '减少':
            what[1] = what[1] - s[2]
    #第三句话
        if s[1] == '增加':
            what[1] = what[1] + s[2]
    #第四句话
        if s[0] == '看看':
            数转汉()
            print(what[3])
    #第五句话
        if s[0] == '如果':
            if s[2] == '大于':
                if what[1] > s[3]:
                    print(s[6])
                else:
                    print(s[9])
    

    使用片段

    if __name__ == '__main__':
        what = ['',0,0,'']
        while(1):
            s = 输入()
            if s != None:
                s = 汉转数(s)
                使用(s)
    

    3.记录不会的知识的学习过程以及修改优化的过程;可以附上资料网站。

    数组部分和字符转换部分忘了许多,str类型和int类型的不一致导致经常报错。参考了许多同学的代码。

    4.测试样例

  • 相关阅读:
    基于log4net的帮助类Log
    log4Net不能成功生成日志问题(关于配置错误)
    js 时间构造函数
    启动调试IIS时,vs无法在 Web 服务器上启动调试。Web 服务器未能找到请求的资源。 有关详细信息,请单击“帮助”。
    XmlException: 名称不能以“<”字符(十六进制值 0x3C)开头
    poj 3040 Allowance
    1144 数星星 (树状数组)
    18121 排排坐看电影
    18124 N皇后问题
    18025 小明的密码
  • 原文地址:https://www.cnblogs.com/denghui123/p/12286050.html
Copyright © 2011-2022 走看看