• 第一次编程作业


    这个作业属于哪个课程 <软件工程>
    这个作业要求在哪里 <第一次编程作业>
    这个作业的目标 <简易中文编译器>
    作业正文 如下
    其他参考文献 请教同学和百度

    github仓库地址:https://github.com/Aman-he/test1

    代码行数:105
    需求分析时间:2h
    编码时间:4h

    编程题目

    汉字是迄今为止持续使用时间最长的文字,也是上古时期各大文字体系中唯一传承至今者,中国历代皆以汉字为主要的官方文字。我们在感叹汉字的源远流长时,也不禁感慨,为什么没有一门使用汉字编程的语言?
    小杨同学想到:用汉字来进行编程一定很有趣,来请你帮帮他。

    编程要求

    请编写一个程序,制作一个简易的中文语言编译器,即使用中文语法进行编程,输入为逐行输入,每行为一个语句,一个语句代变一个操作,满足以下语法要求(括号内代变格式类型,具体参考样例):

    变量定义:整数 (变量名) 等于 (数字)
    运算(加法):(变量名) 增加 (数字)
    运算(减法):(变量名) 减少 (数字)
    输出:看看 (变量名) or 看看 “(字符串内容)”

    附加要求:

    选择:如果 (判断语句) 则 (操作语句) 否则 (操作语句)
    若否则后没有任何操作使用(无)来进行填充(参考样例2)。

    样例1
    输入:
    
    整数 气温 等于 十
    气温 减少 三
    气温 增加 二
    看看 气温
    如果 气温 大于 八 则 看看 “你好,世界” 否则 看看 “冻死我了”
    输出:
    
    九
    你好,世界
    
    
    样例2
    输入:
    
    整数 小杨年龄 等于 八
    整数 小杨零花钱 等于 二
    小杨年龄 增加 一
    如果 小杨年龄 大于 八 则 小杨零花钱 增加 一 否则 无
    看看 小杨零花钱
    输出:
    
    三
    

    思路:

    中文数字与阿拉伯数字转换

    int trans(char str[])
    {
        if(strcmp("零",str)==0)return 0;
        if(strcmp("一",str)==0)return 1;
        if(strcmp("二",str)==0)return 2;
        if(strcmp("三",str)==0)return 3;
        if(strcmp("四",str)==0)return 4;
        if(strcmp("五",str)==0)return 5;
        if(strcmp("六",str)==0)return 6;
        if(strcmp("七",str)==0)return 7;
        if(strcmp("八",str)==0)return 8;
        if(strcmp("九",str)==0)return 9;
        if(strcmp("十",str)==0)return 10;
    } 
    

    加减法

    void deal_add(char str[])
    {
        if(strcmp(" 增加 一",str)==0)sum+=1;
        if(strcmp(" 增加 二",str)==0)sum+=2;
        if(strcmp(" 增加 三",str)==0)sum+=3;
        if(strcmp(" 增加 四",str)==0)sum+=4;
        if(strcmp(" 增加 五",str)==0)sum+=5;
        if(strcmp(" 增加 六",str)==0)sum+=6;
        if(strcmp(" 增加 七",str)==0)sum+=7;
        if(strcmp(" 增加 八",str)==0)sum+=8;
        if(strcmp(" 增加 九",str)==0)sum+=9;
        if(strcmp(" 增加 十",str)==0)sum+=10;
    }
    void deal_minus(char str[])
    {
        if(strcmp(" 减少 一",str)==0)sum-=1;
        if(strcmp(" 减少 二",str)==0)sum-=2;
        if(strcmp(" 减少 三",str)==0)sum-=3;
        if(strcmp(" 减少 四",str)==0)sum-=4;
        if(strcmp(" 减少 五",str)==0)sum-=5;
        if(strcmp(" 减少 六",str)==0)sum-=6;
        if(strcmp(" 减少 七",str)==0)sum-=7;
        if(strcmp(" 减少 八",str)==0)sum-=8;
        if(strcmp(" 减少 九",str)==0)sum-=9;
        if(strcmp(" 减少 十",str)==0)sum-=10;
    }
    

    结果显示(一位数与两位数的中文显示)

    if(sum<=10)output(sum);
        if(sum>10)
        {
            int ten_position=sum/10;
            if(ten_position==1)cout<<"十";
            else{
                output(ten_position);
                cout<<"十";
            }
            output(sum%10);
        }
    

  • 相关阅读:
    selenium python 启动Chrome
    安装selenium python
    网络编程32
    动态生成验证码———MVC版
    C#之发送邮件【模板】+【封装】ZJ版
    【转】解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介
    Cache,MemCache,Application,Cookie等其它缓存汇总
    点击弹出li所在的序列号
    【转】js实现复制到剪贴板功能,兼容所有浏览器
    前端效果——持续更新。。。
  • 原文地址:https://www.cnblogs.com/Aman-he/p/12287107.html
Copyright © 2020-2023  润新知