编程题

·继续完成作业一的编程题。
·优化架构,一般要求每个函数长度不超过15行。
·优化规范,尤其是命名规范。
·制作一个编译脚本,运行该脚本可以编译你的代码,可选的脚本语言,python(2.7),windows批处理,powershell,shell。
·进行单元测试,即测试每一个函数,并制作一个测试脚本,运行该脚本可以进行测试,并显示测试结果。
·在作业一编程题的基础上添加以下功能
·通过命令行读取一个文件

因为我的代码每个函数长度都在15行以下,所以我就没有优化架构了。代码如下:
include<stdio.h>
include<string.h>
int zuanhuan(char s[])
{
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;
else return -1;
}
void yue1(int n)
{
int k=0;
if(n>10){
k=n/10;
}
switch(k)
{
case 1:printf("十");break;
case 2:printf("二十");break;
case 3:printf("三十");break;
case 4:printf("四十");break;
case 5:printf("五十");break;
case 6:printf("六十");break;
case 7:printf("七十");break;
case 8:printf("八十");break;
case 9:printf("九十");break;
}
}
void yue2(int n)
{
if(n==0){
printf("零");
}
else{
int k=0;
k=n%10;
switch(k)
{
case 0:break;
case 1:printf("一");break;
case 2:printf("二");break;
case 3:printf("三");break;
case 4:printf("四");break;
case 5:printf("五");break;
case 6:printf("六");break;
case 7:printf("七");break;
case 8:printf("八");break;
case 9:printf("九");break;
}

}

}
int main()
{
char a[105],b[105],c[105],d[105],m[105],n[105],s[105],w[105];
scanf("%s %s %s %s",a,b,c,d);
int money = zuanhuan(d);
getchar();
while(1){
scanf("%s",m);
if(strcmp(m,"看看") == 0) break;
scanf("%s %s",n,s);
if(strcmp(n,"增加") == 0) money += zuanhuan(s);
if(strcmp(n,"减少") == 0) money -= zuanhuan(s);
}
scanf("%s",w);
yue1(money);
yue2(money);
return 0;
}
我直接编译脚本:
刚刚开始我也是满脸懵逼。。编译脚本。。新名词。所以我看了同学(大佬)的解题过程,发现大部分都用windows批处理。所以我就跟随大趋势(其实就是不会,借鉴。。)。
网上搜了好几个版本:window批处理、python等等。后来我有看了同学做的,我也试着去模仿,后来一直出现这个:

巨烦人。。卡了半个小时,一直不知道什么问题。后来问了群里的人(一个是助教,另一个不知道那个是助教还是老师)。才知道是我的环境变量没设置。。(简直搞我。)
首先要找到我gcc的安装目录,刚开始我还找错了,找成了另一个:
(错误的目录)
正确地应该是:
(呜呜呜,找了好久,不过学到了挺多的。。)
后来就ok了:

但后来我又发现我的文件名与要求不一样,我又问了群里,才知道我隐藏了文件拓展名。。修改了样子如下:
(终于出来了。。。。呜呜呜呜)
接下来就是单元测试:
第一步:十以内的转换测试,代码、脚本及结果如下图(注:因为题目要求是加个位数的钱,因此没有考虑俩位数以上的转换):

第二部:接下来就是余额的输出,函数分三块(阿拉伯数字十以上的输出,和十以内的输出,及主函数):
(几十的转换)
(个位数的转换)
(主函数和引用转换函数的函数块)

原文地址:https://www.cnblogs.com/czl411/p/12262485.html