1、使用的编程语言
我在本科期间学习过C语言,自学过C++、python,本科期间用的环境一般是DevC++(主要用于C和C++)以及Pycharm(主要用于python),偶尔使用过Matlab。本科期间除课程正常要求的代码以外,还参与一些竞赛有过一些编程经验,在2017年湖北省蓝桥杯C语言编程竞赛获得过全省三等奖,由于本科所学专业在高年级后对代码要求降低,因此代码量总体来说一般。
C语言的特点我认为有以下几点:
1)可以容易地解决一些比较具体的问题,但同时也造成了整体不好移植的特点;
2)代码量总体而言比较小,但对语法非常严格,例如少打一个分号就会报错等;
3)对程序结构的要求也比较高,好处我认为是方便读者理解,但对编程者来说工作量有些大。
Python的特点我认为有以下几点:
1)Python有很多库可以供我们调用,在很多情况下省去了很多事情;
2)Python的语法没有C那么严格,对编程者来说比较简单,但对阅读者来说有时候并不是那么好懂。
本次试验首先准备使用C++,所使用的编程环境主要是DevC++,但随后发现自己对C++的掌握还不够,因此重新考虑使用VSCode中的C语言进行编程,程序编写较为正确,但连接码云存在困难。最后使用MacOS系统下的Xcode对C进行编译运行,成功上传至码云。
2、使用的集成开发环境
本次实验经历了三个集成开发环境,分别是第一次选择DevC++,转而使用的功能更强大的VSCode,和最后一次利用MacBook上的Xcode,最后提交的形式也是利用了Xcode这一编译平台。
总体而言,DevC++最为简单,适合简单的小程序编译和运行,在解决课堂问题来说是够用的,但随后发现网络上关于DevC++连接至码云的教程几乎没有,于是选择了VSCode再次进行编译,仍然搭建C环境,总体来说搭建过程比DevC++来说要难一些,除了添加路径之外还需要按ctrl+~打开VSCode控制台,点击终端,在VSCode的终端下操作其实就是在windows下的cmd或者powershell下操作,一切的编译运行等操作可以用输入命令行的方式来实现。
c/c++编译器需要先用cd命令切换到源文件目录或者直接输入完整路径名,然后用编译器指令(编译器是mingw)g++ xxx.cpp -o xxx.exe编译,接着再输入./xxx.exe就可以运行编译好的程序。
但仍然出现了一些问题,就是根据互联网上的操作过程,无法将测试程序连接至码云。最后使用MacOS下的Xcode,其好处在于编译效果相同,且更容易上传至码云。Xcode的环境搭建也极为简单。最后本次作业也使用Xcode作为主要的集成开发环境。
3、版本控制工具、基本的操作介绍以及项目示例
本次主要使用的版本开发工具是git,平台在使用VSCode时为Github,随后最终的实验是在XCode的平台下使用码云为平台。
具体步骤为:
1、先在码云上注册账号,这里使用微信号注册并绑定手机和邮箱;随后新建一个仓库,用于上传并保存所编译的程序;
2、创建成功以后,在点击克隆/复制按钮,复制下载链接;
3、在终端中,cd到桌面,执行命令git clone https://gitee.com/fenghaojun/zuoye.git ;
4、命令行执行完毕之后,会在桌面下载下我们刚在码云创建的项目,打开文件夹,会有以下如图;
5、然后将我们项目里的文件拖进来,一定要注意,这里我们拖进来的是项目里的文件而不是吧整个项目的文件夹拖进来,否则是不行的,而且我们也不要工程里的.git隐藏文件,否则会造成存储库冲突;整个运行过程会进行报错。测试用例如下:
在码云中显示已提交成功测试案例。
6、打开项目,利用sourceControl进行操作。点击commit,将改变的内容提交到本地仓库;
7、上传并勾选,本次上传为初始化上传,最后点击Commit;
8、最后点击Push,上传至码云。
可在码云上看到自己的提交的初始化版本和第一次更改的版本。
4、使用的单元测试框架
本次的程序为:
在Xcode中选择File中的Target,选择iOS中的unit test,利用swift语言的单元测试,生成代码如下:
5、环境配置过程的问题与解决方法、心得体会
配置过程的问题:我本次配置的最主要问题在于对各个平台的掌握情况不熟悉,首先对DevC++与码云的连接不熟悉,再次配置VSCode后,仍然利用git无法与码云连接,最后使用MacOS下的Xcode,最终成功实现代码的上传,主要利用了简书https://www.jianshu.com/p/3fc466ef5a3f中的内容(用xcode往码云上传项目),主要耗时的地方在于更换开发环境,最终在Xcode下实现速度较快。同时,单元测试框架的使用仍存在问题。
心得体会:本次实验主要是为后面要进行的实验打基础,由于较久没有进行此类实验,上手比较生疏,感谢教员的悉心指导和同学们的帮忙,单元测试框架中,仍存在一些问题需要课后进行解决,我会在课后继续补足此类知识,希望未来的实践过程顺利。