zoukankan      html  css  js  c++  java
  • 第一次编程作业

    这个作业属于哪个课程 课程
    这个作业要求在哪里 作业地址
    这个作业的目标 写一篇博客
    作业正文 见下文
    其他参考文献 ...
    github仓库地址 https://github.com/dwadekobe24/Hello-world

    作业要求

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

    编程要求

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

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

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

    整数 气温 等于 十
    气温 减少 三
    气温 增加 二
    看看 气温
    如果 气温 大于 八 则 看看 “你好,世界” 否则 看看 “冻死我了”
    输出:


    你好,世界
    样例2
    输入:

    整数 小杨年龄 等于 八
    整数 小杨零花钱 等于 二
    小杨年龄 增加 一
    如果 小杨年龄 大于 八 则 小杨零花钱 增加 一 否则 无
    看看 小杨零花钱
    输出:

    注意事项

    • 输入输出采用utf-8编码,请在编码过程中注意。
    • 数字只会出现:零一二三四五六七八九十。(此条作废,可先完成0-10的情况)
    • 字符串输出的双引号是全角,即中文双引号。
    • 变量类型要求只有整数,如有余力,可以自己实现更多。
    • 测试数据会相较于样例复杂,请考虑充分需求。
    • 不限制编程语言。
    • 不能使用eval函数动态执行代码,或调用系统指令。
    • 数据输入形式为交互式运行,类似于shell。

    代码行数:115行
    需求分析时间:2h
    编码时间:1天

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

    • 中文汉字和数字相互转化
    • 判断各种边界条件,加强程序的健壮性
    • 代码简洁明了,易读性高

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

    • Scanf的捕捉机制
    • 命令行交互参数的确定
    • 暂时不支持负数运算
    #include<stdio.h>
    #include<string.h>
    int main(int argc,char** argv)
    {
        int chineseCoverToInterger(char s[10]);
        int calculate(char s[10],int m,int n);
        char intergerCoverToChinese(int k);
        // 初始化各项参数
        char a[10],b[10],c[10],d[10],ab[10], bb[10], cc[10], dd[10];
        int result,FInterger;
        scanf("%s %s %s %s",&a,&b,&c,&d);
        result = chineseCoverToInterger(d);
        int flag = 1 ;
        
        
        while(flag)
        {
            
      
            scanf("%s", &bb);
    
    
            
            if(strcmp(bb,"看看")== 0)
            {
                
                    intergerCoverToChinese(result);
                    if (result > 8) {
                        printf("
    你好,世界");
                    }else {
                        printf("
    冻死我了");
                        
                  
                    break;
                }
            }
    
            else // 气温
            {
                scanf("%s %s", cc, dd);
    
                FInterger = chineseCoverToInterger(dd);
                result = calculate(cc,result,FInterger);
    //            B(x);
       
                
            }
            
        }
        return 0;
    }
    
    char zhengshu[100][100]= {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"};
    int chineseCoverToInterger(char a[]) {
        int i;
        for (i = 0; i < 11; i++) {
            if (strcmp(zhengshu[i], a) == 0) {
                return i;
            }
        }
        return 0;
    }
    
    char intergerCoverToChinese(int k)
    {
        switch (k) {
            case 0:
                printf("零");
                break;
            case 1:
                printf("一");
                break;
            case 2:
                printf("二");
                break;
            case 3:
                printf("三");
                break;
            case 4:
                printf("四");
                break;
            case 5:
                printf("五");
                break;
            case 6:
                printf("六");
                break;
            case 7:
                printf("七");
                break;
            case 8:
                printf("八");
                break;
            case 9:
                printf("九");
                break;
            case 10:
                printf("十");
                break;
        }
        return 0;
        
    }
    
    
    int calculate(char s[10],int m,int n)
    {
        int result;
        if(strcmp(s,"增加")==0)
            result=m+n;
        if(strcmp(s,"减少")==0)
            result=m-n;
        return result;
        
    }
    
    
  • 相关阅读:
    安装Android studio出现'tools.jar' seems to be not in Android Studio classpath......的解决方法
    jdk的设置及安装android studio提示does not point to a valid jvm问题
    第七章 : Git 介绍 (下)[Learn Android Studio 汉化教程]
    netcore使用AutoFac实现AOP
    netcore使用Autofac实现依赖注入
    新创建的netcore项目报错
    asp.net core 使用log4net日志组件
    Unity容器实现AOP面向切面编程
    点击a链接防止滚动条滚动
    wkhtmltopdf 自定义字体未生效或中文乱码
  • 原文地址:https://www.cnblogs.com/dwadekobe24/p/12287238.html
Copyright © 2011-2022 走看看