面向对象程序设计寒假作业2

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/2020OOP
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2020OOP/homework/10231
这个作业的目标 1.优化编程题 2.新建一个github仓库,并把作业推送到该仓库 3.发布博客
作业正文 如下

实践题
首先,创建了一个新的仓库,然后参考了https://blog.csdn.net/tanzhengyu/article/details/51064380,然后得到如下代码
面向对象程序设计寒假作业2_第1张图片
继续顺着步骤,得到下图,此时已经成功建立ssh key
面向对象程序设计寒假作业2_第2张图片
接着验证是否成功,得到下图,验证建立ssh key成功
面向对象程序设计寒假作业2_第3张图片
接下来我使用的是GitHub Desktop
然后将文件拖拽进去即可
面向对象程序设计寒假作业2_第4张图片
面向对象程序设计寒假作业2_第5张图片

编程题
对于这次的作业,我重点在批处理脚本那方面的研究上,对于编程题,我只是略加改进,相较于上一次的代码,可以实现连续的加减,但是最后输出的结果无法转化成汉字,我也是有点束手无策。
以下是代码

#include 
#include 

char dictionary[]={"零一二三四五六七八九十"};
int r=0; 

int scan(str)//定义函数scan 扫描字符串中的汉字数字并完成汉字与阿拉伯数字的转换
{//调用strchr(str,ch)函数,用于找到ch在str的位置,不存在则返回0
        int num;
        if(strchr(str,'零')) num=0;
        else if(strchr(str,'一')) num=1;
        else if(strchr(str,'二')) num=2;
        else if(strchr(str,'三')) num=3;
        else if(strchr(str,'四')) num=4;
        else if(strchr(str,'五')) num=5;
        else if(strchr(str,'六')) num=6;
        else if(strchr(str,'七')) num=7;
        else if(strchr(str,'八')) num=8;
        else if(strchr(str,'九')) num=9;
        else if(strchr(str,'十')) num=10;
        if(strchr(str,'减')) num=-num;
        if(strchr(str,'看'))
        {
            num=0;
            printf("%d\n",r);
            printf("%c",dictionary[r*2]);/*是用来最后完成阿拉伯数字对应汉字的转换,可惜不能成功。*/ 
        }
        return num;
}

int main()
{
    char str[100];
    for(;;)
    {
        
        gets(str);
        r+=scan(str);
        str[0]='\0';
    }
    return 0;
}

接着是一些运行结果。
面向对象程序设计寒假作业2_第6张图片

编译脚本
先写一个.bat文档和.c文件
面向对象程序设计寒假作业2_第7张图片
然后执行.bat文档,如果新生成了.exe文件,那就成功了。
面向对象程序设计寒假作业2_第8张图片
面向对象程序设计寒假作业2_第9张图片
面向对象程序设计寒假作业2_第10张图片

测试脚本
先编写一个.bat文件的测试文档
面向对象程序设计寒假作业2_第11张图片
再新敲.c文件用于测试
代码如下

#include
#include
int scan(str)
{
        int num;
        if(strchr(str,"零")) num=0;
        else if(strchr(str,"一")) num=1;
        else if(strchr(str,"二")) num=2;
        else if(strchr(str,"三")) num=3;
        else if(strchr(str,"四")) num=4;
        else if(strchr(str,"五")) num=5;
        else if(strchr(str,"六")) num=6;
        else if(strchr(str,"七")) num=7;
        else if(strchr(str,"八")) num=8;
        else if(strchr(str,"九")) num=9;
        else if(strchr(str,"十")) num=10;
        else return -1;
        return num;
}
int main()
{
    char dictionary[11][10]={"零","一","二","三","四","五","六","七","八","九","十"}; 
    
    int i,r;
    
    for(i=0;i<11;i++)
    {
        printf("%s",dictionary[i]);
        r=scan(dictionary[i]);
        if(r!=-1)
            printf("通过测试\n");
        else
            printf("测试失败\n");
    }
    printf("测试结束");
}

接着就是开始测试
面向对象程序设计寒假作业2_第12张图片

添加新功能
本来对这个东西有点云里雾里的,后面参考了大佬们的作业,运用了freopen函数,将其加入到了main函数中。
代码如下

#include 
#include 

char dictionary[]={"零一二三四五六七八九十"};
int r=0; 

int scan(str)//定义函数scan 扫描字符串中的汉字数字并完成汉字与阿拉伯数字的转换
{//调用strchr(str,ch)函数,用于找到ch在str的位置,不存在则返回0
        int num;
        if(strchr(str,'零')) num=0;
        else if(strchr(str,'一')) num=1;
        else if(strchr(str,'二')) num=2;
        else if(strchr(str,'三')) num=3;
        else if(strchr(str,'四')) num=4;
        else if(strchr(str,'五')) num=5;
        else if(strchr(str,'六')) num=6;
        else if(strchr(str,'七')) num=7;
        else if(strchr(str,'八')) num=8;
        else if(strchr(str,'九')) num=9;
        else if(strchr(str,'十')) num=10;
        if(strchr(str,'减')) num=-num;
        if(strchr(str,'看'))
        {
            num=0;
            printf("%d\n",r);
            printf("%c",dictionary[r*2]);/*是用来最后完成阿拉伯数字对应汉字的转换,可惜不能成功。*/ 
        }
        return num;
}

int main()
{
    char str[100],s[100],filename;
    printf("输入文件名\n"); 
    scanf("%s",filename);
    freopen(filename,"r",stdin);
    for(;;)
    {
        
        gets(str);
        r+=scan(str);
        str[0]='\0';
    }
    return 0;
}

然后这是我写的文本文件
面向对象程序设计寒假作业2_第13张图片
接下来是运行的结果
面向对象程序设计寒假作业2_第14张图片
(本次代码没有像上次那样枚举,因此阿拉伯数字转化为数字也就没有成功)

你可能感兴趣的:(面向对象程序设计寒假作业2)