zoukankan      html  css  js  c++  java
  • 编程题

    ·继续完成作业一的编程题。
    ·优化架构,一般要求每个函数长度不超过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了:

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

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

  • 相关阅读:
    【基础算法】- 全排列
    【基础算法】- 2分查找
    区块链培训
    Static Binding (Early Binding) vs Dynamic Binding (Late Binding)
    test
    No data is deployed on the contract address!
    "throw" is deprecated in favour of "revert()", "require()" and "assert()".
    Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
    京都行
    Failed to write genesis block: database already contains an incompatible
  • 原文地址:https://www.cnblogs.com/czl411/p/12262485.html
Copyright © 2011-2022 走看看