网络1911、1912 C语言第4次作业--函数批改总结
一、评分规则
- 编程规范主要指变量命名,不要a,b,c,x,y,z。函数命名要驼峰命名。太随意命名负分
- 函数接口主要就是设计函数尽量不过重复功能、void fun()类似无参无返回
- 算法代码,就看程序流程、完成功能如何评分
- 调试问题一句话或没实质内容扣分
- 原则上,认定代码是自己独立编写,就算没有结果,大作业这块也至少4分吧
二、本次作业亮点
2.1整体情况
- pta题集分析
- 此次pta主要以函数题为主,对之前写过的题目进行一个再改造,难度不大。整体完成度较高。
- 博客作业分析
- 本次作业全部提交,但出现有同学提交后未完成情况。
- 博客此次以大作业为主,大部分同学能够完成系统的基础功能,希望能继续改进。
2.2博客推荐
-
推荐作业: 林智凯
推荐理由: 认真考虑用户需求,关于小学生如何展现表达式等细节都处理特别好。计时函数等功能。对于教师的建议,花时间去修改完善功能。无论是代码还是学习态度,都值得去学习。
-
推荐作业: 朱振豪
推荐理由:小朱同学的代码一如既往的赏心悦目。首先代码可读性非常好,程序的功能也比较完整,同时程序具有一定的弹性。另外一点值得大家学习的是小朱同学的命名和代码规范。函数类型也不单纯只有void类型,不滥用全局变量。当然可以对一些重复功能进行封装优化。
-
推荐作业: 张洸洋
推荐理由:张洸洋同学在代码规范和命名上做的比较好,在算法代码设计也比较好,当然在函数封装上可以再进行优化,做到更好。
-
推荐作业:陈勇
推荐理由:灵活的GetLevel函数,通过返回不同随机数,巧妙控制随机数生成范围。该同学还控制了负数、不能整除等数据的控制情况,很值得学习。函数接口不多,却完成本次作业大部分功能。
-
推荐作业:陈理荣
推荐理由:把操作数都存储在数组中,做混合运算,巧妙控制优先级。可以让乘除这块先运算再做加减。problem函数值得学习。
三、本次作业存在的问题
-
博客完成度参差不齐
- 这次的博客作业是以设计完成大作业程序为主题,大部分同学能够完成程序的基本内容,但是在博客作业这里掉了链子。在代码实践的同时,需要同学们学会静下心来对实践内容进行归纳整理。
- 部分同学态度应付,学习体会、调试内容等板块甚至一句话带过。没有尝试找自己程序的问题并进行改进。同学之间在完成程序主干内容后,可以尝试交换彼此的exe文件,测试程序,找出bug并加以改进。设计程序,需要赋予其弹性,作为开发者,在测试程序时需要转换角度,因为你永远都不知道你的客户会做出啥让你程序崩溃的事情,而一个优秀的程序,它的包容性一定是很高的。
-
函数
- 很多同学对于函数的理解,可能还停留在——一段长代码,从主函数当中挪出去,装到一个新的函数当中。但其实函数的功能性是很明确的。打印目录、计算抑或是传递参数,每个函数都应该有其特有的功能。根据功能封装函数,也能使程序的可读性更好。一段好的代码,需要做到当旁观者看到程序主干时,知道这个程序的大体功能。部分同学的装货式封装,使得函数只是个乱炖的大锅。当功能性更强,函数的调用也会更加灵活。
- 函数还有个很重要的地方,在于函数类型。刚开始很多同学还是用一长串的void类型函数来完成整个程序,再利用定义全局变量来弥补void类型函数的小缺陷——造成全局变量的滥用。
- 相似的功能要用函数进行封装,在设计函数时,需要使它更灵活,更方便被调用。不能因为一个参数就设计多个重复赘余的函数。例如:Add1,Add2,Add3……
-
全局变量
- 如果需要修改程序,即使是对局部函数进行修改。如果涉及到全局变量,就需要理解整个程序。效率低。
- 如果全局对象得到一个不正确的值,则必须查找整个程序以判断错误发生的位置。容错率低。
- 使用全局对象的函数依赖于全局对象的存在和类型,这使得在不同上下文环境中重用该函数更加困难 。灵活性低。
综上,应该避免全局变量的滥用。
-
命名及代码规范
-
老生常谈的一个问题了。首先再复习一下驼峰命名的规则:
骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单*词开始以后的每个单词*的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。
仍旧出现大面积大片的同学命名不规范,使得程序可读性极差,且不美观。
-
函数与变量命名需强调要与功能或性质相关。让人一看就知道你的函数或者变量的大致意义。仍存在有同学abc命名(当然有同学学聪明了,不用abc,用jk)。
-
切忌用中文命名!养成英文命名的好习惯,不会的可以百度翻译。
-
四、助教有话说
- 相信经过这次大作业,就会有同学发现程序设计的乐趣了。程序设计,除了代码语法外,更加重要的是关于功能的设计。走心的同学已经开始给自己的程序添加功能了,而有些同学还是一个残缺的程序,在这里态度就有比较大的差别了。是我们亲手赋予给程序功能与价值,希望同学们对自己的程序能有一定的追求,能够主动学习一些新的内容——详情参照智凯同学,剑龙同学博客。
- 另外博客是平常记录学习的一个很好的途径。互联网是有记忆的,比我们的大脑来的更精确。我们要知道,一年前犯的错误,一年后可能还是会犯。除了百度Google能教会你知识,曾经的自己其实也可以。(我就出现过知识点遗漏,找自己原来的博客康康当时自己的思路)。大家的c语言学习时间其实很短,学好C语言,主要是建立一个好的编程思维,为其他计算机专业课程打下一个扎实基础。希望每位同学都能在刚开始的时候,扎扎实实地踏出每一步。每一步都是未来的经验之谈。
- 其实很快这学期就要结束啦,希望大家期末都能设计出自己喜欢的程序!