这个做业属于哪一个课程 | 2020面向对象程序设计张栋班 |
---|---|
这个做业要求在哪里 | 寒假做业1 |
这个做业的目标 | 安装开发环境、回顾知识、了解编译过程、实现白话文编程、记录学习过程并发布博客 |
做业正文 | 1.问答题2. 实践题3.编程题 |
其它参考文献 | 问答题和实践题中已注明 |
注: 系统是Mac OShtml
语法定义:遇到“整数“时开始定义变量,并把“等于“后面的中文所表明的大小赋值给变量;遇到“增长“、”减小“可以进行相应的运算;遇到”看看“可以输出最终结果编程
超过9的数据可以处理成中文的语言习惯,好比10不是输出”一零“而是”十“并发
temp = a.value; if(temp <= 10) { printf("%s",convertToString(temp)); } else if(temp % 10 == 0 && temp < 100) { printf("%s十",convertToString(temp/10)); #十的整数倍输出为几十而不是几零 } else if(temp < 20) { temp %= 10; printf("十%s",convertToString(temp)); #输出十几而不是一十几 } else if(temp < 100) { printf("%s十%s",convertToString(temp/10),convertToString(temp%10)); }
// 感受处理方式不太好,提示错误的方式也是很暴力 #include <stdio.h> #include <string.h> typedef struct variable { char name[1000]; int value; } var; int convertToInt(char str[]); char* convertToString(int n); int main() { var a; char integer[6]; char name[1000],operator[6],number[3]; int temp; scanf("%s",integer); if(strcmp(integer,"整数")) { printf("Error: 您输入的不是“整数”\n"); } else { scanf("%s%s%s",a.name,operator,number); if(strcmp(operator,"等于")) { printf("Error: 您输入的不是“等于”\n"); } else if(convertToInt(number) == -1) { printf("Error: 请输入正确的数字大小\n"); } else { a.value = convertToInt(number); //赋初始值 scanf("%s",name); while(!strcmp(name,a.name)) { scanf("%s%s",operator,number); if(convertToInt(number) == -1) { printf("Error: 请输入正确的数字大小\n"); } else if(!strcmp(operator, "增长")) { a.value += convertToInt(number); } else if(!strcmp(operator, "减小")) { a.value -= convertToInt(number); } else { printf("Error: 请输入正确的运算\n"); break; } scanf("%s",name); } if(!strcmp(name,"看看")) { scanf("%s",name); if(!strcmp(name,a.name))//“看看”后面输入的内容得和前面的变量名称相同 { temp = a.value; if(temp <= 10) { printf("%s",convertToString(temp)); } else if(temp % 10 == 0 && temp < 100) { printf("%s十",convertToString(temp/10));//十的整数倍输出为几十而不是几零 } else if(temp < 20) { temp %= 10; printf("十%s",convertToString(temp));//输出十几而不是一十几 } else if(temp < 100) { printf("%s十%s",convertToString(temp/10),convertToString(temp%10)); } } else { printf("不存在此变量\n"); } } } } return 0; } int convertToInt(char str[]) { if(!strcmp(str,"零")) return 0; else if(!strcmp(str,"一")) return 1; else if(!strcmp(str,"二")) return 2; else if(!strcmp(str,"三")) return 3; else if(!strcmp(str,"四")) return 4; else if(!strcmp(str,"五")) return 5; else if(!strcmp(str,"六")) return 6; else if(!strcmp(str,"七")) return 7; else if(!strcmp(str,"八")) return 8; else if(!strcmp(str,"九")) return 9; else return -1; } char* convertToString(int n) { if(n == 0) return "零"; else if(n == 1) return "一"; else if(n == 2) return "二"; else if(n == 3) return "三"; else if(n == 4) return "四"; else if(n == 5) return "五"; else if(n == 6) return "六"; else if(n == 7) return "七"; else if(n == 8) return "八"; else if(n == 9) return "九"; else if(n == 10) return "十"; else return "Error"; }