第一次个人编程作业
这个作业属于哪个课程 | 软件工程 (福州大学至诚学院 - 计算机工程系) |
---|---|
这个作业要求在哪里 | 第一次个人编程作业 |
这个作业的目标 | 汉字编程 |
作业正文 | 见下文 |
其他参考文献 | 请教同学 |
第一次个人编程作业
编程题目
汉字是迄今为止持续使用时间最长的文字,也是上古时期各大文字体系中唯一传承至今者,中国历代皆以汉字为主要的官方文字。我们在感叹汉字的源远流长时,也不禁感慨,为什么没有一门使用汉字编程的语言?
小杨同学想到:用汉字来进行编程一定很有趣,来请你帮帮他。
编程要求
请编写一个程序,满足以下语法要求:
- 变量定义:整数 钱包 等于 零
- 运算(加法):钱包 增加 四
- 运算(减法):钱包 减少 四
- 输出:看看 钱包 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]);
}
}
总结
能力有限,目前只能做出这样的程序。该程序也存在着很多不足的地方,希望在后面的学习中能够得以改善,学到更多东西。