这个作业属于哪个课程 | <软件工程> |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzzcxy/SE/homework/10283 |
这个作业的目标 | <第一次编程> |
作业正文 | <github https://github.com/Weizhongjie123/Weizhongjie123/tree/master > |
其他参考文献 | < 无 > |
记录
行数67
用时83分钟
编程题目
汉字是迄今为止持续使用时间最长的文字,也是上古时期各大文字体系中唯一传承至今者,中国历代皆以汉字为主要的官方文字。我们在感叹汉字的源远流长时,也不禁感慨,为什么没有一门使用汉字编程的语言?
小杨同学想到:用汉字来进行编程一定很有趣,来请你帮帮他。
编程要求
请编写一个程序,制作一个简易的中文语言编译器,即使用中文语法进行编程,输入为逐行输入,每行为一个语句,一个语句代变一个操作,满足以下语法要求(括号内代变格式类型,具体参考样例):
变量定义:整数 (变量名) 等于 (数字)
运算(加法):(变量名) 增加 (数字)
运算(减法):(变量名) 减少 (数字)
输出:看看 (变量名) or 看看 “(字符串内容)”
附加要求:
选择:如果 (判断语句) 则 (操作语句) 否则 (操作语句)
若否则后没有任何操作使用(无)来进行填充(参考样例2)。
代码如下
include<stdio.h>
include<string.h>
int n(char s[10])
{
if(strcmp(s,"零")0) return 0;
else if(strcmp(s,"一")0) return 1;
else if(strcmp(s,"二")0) return 2;
else if(strcmp(s,"三")0) return 3;
else if(strcmp(s,"四")0) return 4;
else if(strcmp(s,"五")0) return 5;
else if(strcmp(s,"六")0) return 6;
else if(strcmp(s,"七")0) return 7;
else if(strcmp(s,"八")0) return 8;
else if(strcmp(s,"九")0) return 9;
else if(strcmp(s,"十")==0) return 10;
}
int suan(char s[10],int x,int y)
{
int s1;
if(strcmp(s,"增加")0) s1=x+y;
if(strcmp(s,"减少")0) s1=x-y;
return s1;
}
char n1(int k)
{
if(k0) printf("零");
else if(k1) printf("一");
else if(k2) printf("二");
else if(k3) printf("三");
else if(k4) printf("四");
else if(k5) printf("五");
else if(k6) printf("六");
else if(k7) printf("七");
else if(k8) printf("八");
else if(k9) printf("九");
else if(k10) printf("十");
return 0;
}
int main()
{
int n(char s[10]);
int suan(char s[10],int m,int n);
char n1(int k);
char a[10],b[10],c[10],d[10];
int x,y;
scanf("%s %s %s %s",&a,&b,&c,&d);
x=n(d);
while(1)
{
scanf("%s",a);
if(strcmp(a,"看看")0)
{
scanf("%s",b);
break;
}
else
{
scanf("%s %s",b,c);
y=n1(c);
x=suan(b,x,y);
}
}
n1(x);
return 0;
}