作业正文
一.学会新建立一个github仓库,会使用git,且会将本地仓库的代码传到线上仓库
一开始笔者只是建立了线上仓库,后来在官网下载git失败后选择从大佬网盘拷贝。
1.创建一个 SSH key
$ ssh-keygen -t rsa -C "2535595158@qq.com"

2.打开.ssh中的id_rsa.pub查看公钥以绑定线上仓库

3.在创建完线上仓库后利用公钥进行绑定本地仓库(操作笔者漏了截图,故引用参考链接中的教程图)
创建自己的git仓库,并与github绑定
二.学会.gitignore文件忽略一些不要上传的文件,属于基本操作
在git本地仓库绑定后创建.gitignore 文件


三.优化编程题
因为上次编程题没写完,这次补上。
编程题解题想法
1.将输入的汉字数字转化为十进制数字方便“钱包”的数据初始化,以及数据的相加减;输入的汉字字符转化为钱包名,以及运算符;
通过百度明白汉字在C语言中占据两个字节,因此对于笔者想通过字符串数组来存储通过标准输入的汉字以及与之作对比识别转化的标准汉字库。因为是字符串,采用strcmp函数来比较,而此函数返回值:(1)字符串1=字符串2,返回0(2)字符串1>字符串2,返回一个正整数(3)字符串1<字符串2,返回一个负整数。因此对于转化来说,考虑采用if条件判别语句来实现。
2.其中的细节点
因为是纯汉字的编程,笔者一开始没有使用自定义函数来多次实现,因此使得函数的长度方面以及出错率方面都很大;在调整思考后,使用了多个自定义函数,后续的编程才得以进行。除此之外,一开始对于汉字的编码忽略了一个汉字占据两个字节的因素,使得输入一直得不到正确的输入,有时甚至出现了一堆奇奇怪怪的符号。另外,一开始的标准对比库只考虑了个位数的数据范围,对于两位数甚至更大的数据范围,笔者花了较多的时间思考,一开始相当粗暴,想要直接复制粘贴然后小小的修改使用枚举暴力法来实现转化,然后觉得相当不实际,目前还在找办法。
说说遇到的问题吧,一开始呢,发现零就无法正常输出了,重回自定义函数检查,调整之后将0放在s1[0]位置就可。

再接着检查运行,发现当钱包等于整十数,会多输出零,于是多增加了a%10==0的判定条件。

因为对于数据范围的处理还在思考,故先提交到这里。附代码
#include<stdio.h>
#include<string.h>
int zhuanshu(char s[]){
int i;
char s1[11][5]={"零","一","二","三","四","五","六","七","八","九","十"};
for(i=0;i<=10;i++){
if(!strcmp(s,s1[i]))return i;
}
}
void zhuanhan(int a){
char s1[11][5]={"零","一","二","三","四","五","六","七","八","九","十"};
if(a>=0&&a<=10){
printf("%s",s1[a]);
}
else if(a%10==0) printf("%s十",s1[a/10]);
else if(a>10&&a<20){
printf("十%s",s1[a%10]);
}
else if(a>=20&&a<100){
printf("%s十%s",s1[a/10],s1[a%10]);
}
}
int main(){
char strzs[10],strqb[10],strdy[10],strqian[1000],strchuli[10];
char kankan[10]={"看看"},qianbao[10]={"钱包"};
char chaxun[100];
scanf("%s%s%s%s",strzs,strqb,strdy,strqian);
int qb=zhuanshu(strqian);
while(1){
scanf("%s",strzs);
if(!strcmp(strzs,kankan)){
zhuanhan(qb);
break;
}
else{
scanf("%s%s",strchuli,strqian);
if(!strcmp(strchuli,"增加")){
qb+=zhuanshu(strqian);
}
if(!strcmp(strchuli,"减少")){
qb-=zhuanshu(strqian);
}
}
}
getchar();
return 0;}
四.脚本语言
对于脚本语言,本着选择了windows批处理,在百度之后,学习使用了记事本写脚本代码修改后缀.bat创建脚本,以达到脚本语言编译的目的。在编写脚本语言时,因为pause的原因无法正常运行。

编译完成后,对汉字编码的程序进行编译。(此处卡了相当久,笔者一开始没注意将.bat放置在了桌面,没有放置在cpp相应的文件夹内,即便如此也没有从.bat运行输入路径的角度来处理这个问题)

在进行单元测试时,在测试函数时候便已出现了“不是内部或者外部命令,也不是可运行的程序”的报错

,在csdn百度处理完了这个问题之后对汉字转化数字这个函数进行了单元测试

附单元测试函数代码
void zhuanhan(int a){
char s1[11][5]={"零","一","二","三","四","五","六","七","八","九","十"};
if(a>=0&&a<=10){
printf("%s",s1[a]);
}
else if(a%10==0) printf("%s十",s1[a/10]);
else if(a>10&&a<20){
printf("十%s",s1[a%10]);
}
else if(a>=20&&a<100){
printf("%s十%s",s1[a/10],s1[a%10]);
}
}
浙公网安备 33010602011771号