网络1911、1912 C语言第4次作业--函数批改总结
网络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语言,主要是建立一个好的编程思维,为其他计算机专业课程打下一个扎实基础。希望每位同学都能在刚开始的时候,扎扎实实地踏出每一步。每一步都是未来的经验之谈。
- 其实很快这学期就要结束啦,希望大家期末都能设计出自己喜欢的程序!
五、得分详情
网络1911、1912 C语言第4次作业--函数批改总结的更多相关文章
- 网络1911、1912 C语言第0次作业批改总结
网络1911.1912 C语言第0次作业批改总结 题目:C博客作业00--我的第一篇博客 一.评分规则 总分10分,每个问题都务必回答,分值都在问题后面 抄袭 - 0分 博客作业格式不规范,没有用Ma ...
- 网络1711班 C语言第四次作业批改总结
网络1711班 C语言第四次作业批改总结 助教有话说(写在前面) 近来,有同学跟老师和助教们反映:博客作业太多太麻烦,而且对编程能力提高似乎没什么帮助?在这里我要谈一谈我的感想. 博客作业的意义? 首 ...
- 网络1711班 C语言第七次作业批改总结
网络1711班 C语言第七次作业批改总结 1.本次作业评分细则 1.1 基本要求(1分) 按时交 - 有分 未交 - 0分 迟交一周以上 - 倒扣本次作业分数 抄袭 - 0分 泛泛而谈(最多七分) 1 ...
- 网络1711班 C语言第八次作业批改总结
网络1711班 C语言第七次作业批改总结 最近在忙一些琐事,没能及时批改大家的作业,连续两次作业总结也没有很用心写,在这要给大家say sorry. 1.本次作业评分细则 1.1 基本要求(1分) 按 ...
- 网络1911、1912 C语言第5次作业--循环结构 批改总结
如题 一.评分规则 1.伪代码务必是文字+代码描述,直接反应代码,每题扣1分 2.提交列表没内容,或者太简单,每题得分0分.注意选择提交列表长的题目介绍. 3.代码格式不规范,包括命名随意.继续扣分. ...
- 网络1911、1912 C语言第1次作业批改总结
一.评分规则 重点检查大家代码规范,变量名.大括号换行.缩进等发现不规范倒扣3分. 助教会进PTA查看大家代码的提交列表,发现不规范或抄袭,均扣分 每次作业完成后,至少邀请3个同学点评. 原作业地址: ...
- 网络1911、1912 C语言第2次作业--循环结构 批改总结
一.评分规则 伪代码务必是文字+代码描述,直接反应代码,每题扣1分 提交列表没内容,或者太简单,每题得分0分.注意选择提交列表长的题目介绍. 代码格式不规范,继续扣分. 代码互评,内容简单,0分. 原 ...
- C语言第十一次作业--函数嵌套调用
一.实验作业 1.1 PTA题目:递归法对任意10个数据按降序排序 设计思路 定义整型循环变量i,最小值下标min,中间变量t 若n==1,直接返回 否则 min=10-n 最小值下标赋初值 for ...
- C语言第五次作业函数
一.PTA实验作业 题目1: 6-6 使用函数输出水仙花数 1.本题PTA提交列表 2.设计思路 1.narcissistic函数 1.由于number的值后面会变化,所以定义d,e用于储存numbe ...
随机推荐
- SVN迁移到Gitlab实践经历
svn 迁移至git操作手册 项目交付.版本管理工具变更等情况下,迁移svn旧历史记录有很大必要,方便后续追踪文件的提交历史,文件修改记录比对等.git自带了从svn迁移至git的工具命令,可很好的对 ...
- 此项目与Visual Studio的当前版本不兼容的报错
问题再现:程序是用visual studio 2013开发的,放在本地运行报此项目与Visual Studio的当前版本不兼容.本地是visual studio 2010. 解决办法: <1&g ...
- (一)easyUI之树形网络
树形网格(TreeGrid)可以展示有限空间上带有多列和复杂数据电子表 一.案例一:按tree的数据结构来生成 前台 <%@ page language="java" con ...
- golang包管理工具
软件开发中,不可避免的会使用到第三方库,因此包管理工具可以极大的方便开发者管理第三方依赖,避免掉入"依赖地狱". 作为google强大背书的golang语言,golang官方包管理 ...
- js 五 jquery的使用,调用
4 this 关键字 this 表示当前函数或方法的调用者 1 全局函数由window调用,所以全局函数中的this 指的是window对象 2 事件处理函数中使用this,指的是当前事件的触发对象 ...
- 使用SQLAlchemy,以及问题处理
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0014021031294178 ...
- CentOS7数据库架构之NFS+heartbeat+DRBD(亲测,详解)
目录 参考文档 理论概述 DRBD 架构 NFS 架构部署 部署DRBD 部署heartbeat 部署NFS及配合heartbeat nfs切记要挂载到别的机器上不要为了省事,省机器 参考文档 htt ...
- 《数据结构与算法之美》 <04>链表(上):如何实现LRU缓存淘汰算法?
今天我们来聊聊“链表(Linked list)”这个数据结构.学习链表有什么用呢?为了回答这个问题,我们先来讨论一个经典的链表应用场景,那就是 LRU 缓存淘汰算法. 缓存是一种提高数据读取性能的技术 ...
- 判断一个ip地址是动态的还是静态的
要确定计算机的IP是静态IP还是动态IP,请执行以下步骤: 通过单击开始打开命令提示符并搜索CMD,然后单击cmd.exe 键入ipconfig / all. 找到“以太网本地连接”列表.找到“ I ...
- python-----多线程笔记
多进程笔记: 多线程介绍: 多线程是为了同步完成多项任务,通过提高资源使用效率来提高系统的效率.线程是在同一时间需要完成多项任务的时候实现的. 最简单的比喻多线程就像火车的每一节车厢,而进程则是火车. ...