第一次个人编程作业

这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系)
这个作业要求在哪里 第一次个人编程作业
这个作业的目标 汉字编程
作业正文 见下文
其他参考文献 请教同学

第一次个人编程作业

编程题目

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

编程要求

请编写一个程序,满足以下语法要求:

  • 变量定义:整数 钱包 等于 零
  • 运算(加法):钱包 增加 四
  • 运算(减法):钱包 减少 四
  • 输出:看看 钱包 or 看看 “字符串”
    附加要求:
  • 选择:如果 钱包 大于 十 则 看看 “钱太多了” 否则 看看 “我穷死了”

样例1

输入:

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

输出:


你好,世界

样例2

输入:

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

输出:

记录

  • 代码行数:81
  • 需求分析时间:20min
  • 编码时间:4h+

思路

先读入一个c1,若c1=="看看",则读入一个c2,跳出循环;否则读入c2、c3,进行加减操作。
然后再读入b1 - b10,输出去掉引号的子串。

  • 汉字转数字
int zzs(char t[10]) 
{
    if(strcmp(t,"零")==0){return 0;}
    if(strcmp(t,"一")==0){return 1;}
    if(strcmp(t,"二")==0){return 2;}
    if(strcmp(t,"三")==0){return 3;}
    if(strcmp(t,"四")==0){return 4;}
    if(strcmp(t,"五")==0){return 5;}
    if(strcmp(t,"六")==0){return 6;}
    if(strcmp(t,"七")==0){return 7;}
    if(strcmp(t,"八")==0){return 8;}
    if(strcmp(t,"九")==0){return 9;}
    if(strcmp(t,"十")==0){return 10;}
}
  • 数字转汉字
void szz(int t)
{
    if(t==0){printf("零");} 
    if(t==1){printf("一");} 
    if(t==2){printf("二");} 
    if(t==3){printf("三");} 
    if(t==4){printf("四");} 
    if(t==5){printf("五");} 
    if(t==6){printf("六");} 
    if(t==7){printf("七");} 
    if(t==8){printf("八");} 
    if(t==9){printf("九");} 
    if(t==10){printf("十");}  
}

代码

Github代码地址,持续更新中。

#include<stdio.h>
#include<string.h>

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

int main()
    {
    char a1[100],a2[100],a3[100],a4[100];
	scanf("%s %s %s %s",a1,a2,a3,a4);
    char b1[100],b2[100],b3[100],b4[100],b5[100],b6[100],b7[100],b8[100],b9[100],b10[100];
    char c1[100],c2[100],c3[100];
    int d=0,d1=0,d2=0,d3=0;
	int e;
    int zzs(char t[10]);
    void szz(int t); 
    d1=zzs(a4);
    d=d+d1;
    for(;;)
    {
    	scanf("%s", c1);
    	if (strcmp(c1,"看看")) {
    		scanf(" %s %s", c2,c3);
    		if(strcmp(c2,"减少")==0) {
			    d2=zzs(c3);
			    d=d-d2;
			} else if (strcmp(c2,"增加")==0) {   
				d3=zzs(c3);
	            d=d+d3;
			}
    		
		} else {
			scanf(" %s", c2);
			break;
		}      
    } 
    scanf("%s %s %s %s %s %s %s %s %s %s",b1,b2,b3,b4,b5,b6,b7,b8,b9,b10);
	e=zzs(b4);
    szz(d);
    printf("\n");
    int len1=strlen(b7);
    int len2=strlen(b10); 
    if(d>e)
        for (int i=1;i<len1-1; i=i+2) 
        {
            
            printf("%c%c",b7[i],b7[i+1]);
        }
    else
        for (int i=1;i<len2-1;i=i+2) 
        {
        
            printf("%c%c",b10[i],b10[i+1]);
        }
}

总结

能力有限,目前只能做出这样的程序。该程序也存在着很多不足的地方,希望在后面的学习中能够得以改善,学到更多东西。

posted @ 2020-02-09 21:04  pigpig922  阅读(204)  评论(0编辑  收藏  举报