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了:

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

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

  • 相关阅读:
    Java:线程的六种状态及转化
    Java:多线程概述与创建方式
    小白学Java:RandomAccessFile
    如何用IDEA开启断言
    如何通过IDEA添加serialVersionUID
    小白学Java:I/O流
    更改IDEA相对路径
    小白学Java:File类
    小白学Java:内部类
    Leetcode数组题*3
  • 原文地址:https://www.cnblogs.com/czl411/p/12262485.html
Copyright © 2011-2022 走看看