这个作业属于哪个课程 | 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,然后得到如下代码
继续顺着步骤,得到下图,此时已经成功建立ssh key
接着验证是否成功,得到下图,验证建立ssh key成功
接下来我使用的是GitHub Desktop
然后将文件拖拽进去即可
编程题
对于这次的作业,我重点在批处理脚本那方面的研究上,对于编程题,我只是略加改进,相较于上一次的代码,可以实现连续的加减,但是最后输出的结果无法转化成汉字,我也是有点束手无策。
以下是代码
#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;
}
编译脚本
先写一个.bat文档和.c文件
然后执行.bat文档,如果新生成了.exe文件,那就成功了。
测试脚本
先编写一个.bat文件的测试文档
再新敲.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("测试结束");
}
添加新功能
本来对这个东西有点云里雾里的,后面参考了大佬们的作业,运用了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;
}