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

    这个作业属于哪个课程 <软件工程>
    这个作业要求在哪里 <第一次个人编程作业>
    这个作业的目标 <完成汉字编程>
    作业正文 github地址
    其他参考文献

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

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

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

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

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

    输出:

    九
    你好,世界
    

    样例2
    输入:

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

    输出:

    代码行数 51
    需求分析时间 2h
    编码时间 5h

    由于JAVA,python,c语言都只在课堂上学习过,个人凭感觉还是决定用自己相比于其他两门语言较为擅长的C语言完成这道题。

    int swap(char a[]){
        int i;
        for(i=0;i<11;i++){
            if(strcmp(list[i],a)==0){
                return i;
            }
        }
    }
    

    用于将汉字转化为数字。

    int jisuan(int sum,char a[],char b[]){
        int sum1;
        sum1=swap(b);
        if(strcmp(a,"增加")==0) return sum+sum1;
        else if(strcmp(a,"减少")==0) return sum-sum1;
        else if(strcmp(a,"乘与")==0) return sum*sum1;
        else if(strcmp(a,"除以")==0) return sum/sum1;
    }
    

    将汉字转化为数字之后可以进行简单的加减乘除运算。

    int main(){
        int sum;
        char a[100],b[100],c[100],d[100],e[100],f[100],g[100],h[100],i[100],j[100];
        scanf("%s",a);
        if(strcmp(a,"整数")==0){
            scanf("%s %s %s",b,c,d);
        }
        else{
            printf("错误
    "); 
            return 0;
        }
        sum=swap(d);
        while(scanf("%s %s",e,f)!=EOF){
            
            if(strcmp(b,e)==0){
                	scanf("%s",g);
                    sum=jisuan(sum,f,g);       
                }
    		 if(strcmp(e,"看看")==0){ 
                printf("%s
    ",list[sum]);
                break;
    		 } 
        } 
    	scanf("%s %s %s %s %s %s %s %s %s %s",a,b,c,d,e,f,g,h,i,j);
    		
    		if(sum>swap(d))
    			{printf("你好,世界");}
    			else
    			{printf("冻死我了");}
    	return 0;       
    }
    

    主函数则将上面两个函数结合在一起能够进行简单的汉字运算,可以得出样例一的输入输出。

    代码上总体存在较大不足,样例二的输入输出无法得出。稍微复杂的数据也可能造成结果的错误。
    由于个人能力有限,还在不断学习摸索当中,将代码不断完善修正。。。

  • 相关阅读:
    PHP mysqli扩展库 预处理技术
    libevent入门(1)
    你的项目需要升级成64bit程序吗?
    [敏捷个人]个人知识管理
    [转]职业规划中的“我想要”和“我需要”
    《领导力》读书笔记
    http 传输原理及格式
    转载:Fiddler 教程
    Nginx 配置文件详解
    Wireshark
  • 原文地址:https://www.cnblogs.com/CCherie/p/12284336.html
Copyright © 2011-2022 走看看