一、c++11

lambda

/* * File:   main.cpp* Author: liangjie** Created on 2013年11月23日, 下午12:02*/#include <cstdlib>
#include <iostream>using namespace std;/** */
int main(int argc, char** argv) {string aa = "Hello World!";int b = 0, c = 0;for_each(aa.begin(), aa.end(), [&b, &c](char a){if (a == 'l') {b++;} else if (a == 'e'){c++;};});cout<< "Number of e: " << c<<endl;cout<<"Number of l: "<<b<<endl;return 0;
}

lambda,看了一下就搞懂了。

smart_ptr

/* * File:   main.cpp* Author: liangjie** Created on 2013年11月23日, 下午12:16*/#include <cstdlib>
#include <iostream>
#include <memory>using namespace std;/** */void move_print(int n){unique_ptr<string> aa(new string("Hello World!"));for (int i=aa.length() - n; i<aa.length();i++){cout<<aa[i];}for (int i=0;i<aa.length()-n;i++){cout<<aa[i];}
}int main(int argc, char** argv) {int n = 1;move_print(n);return 0;
}

smart_prt,自动清理申请的空间。概念不错。

二、围棋程序

01年就有C#了?搜了一下居然是00年发布的。我第一次听说c#大概是11年吧。原来也不是一个很新的语言了。

playPrev函数

public void playPrev(GoMove gm){Point thepoint = gm.Point;Grid[thepoint.X,thepoint.Y].removeStone();if (gm.DeadGroup){int thecount = gm.DeadGroup.Count;thecount = gm.DeadGroup.Capacity;System.Collections.IEnumerator theenum = gm.DeadGroup.GetEnumerator();while (theenum.MoveNext()){thepoint = (Point)theenum.Current;Grid[thepoint.X,thepoint.Y].setStone(gm.DeadGroupColor);}}m_gmLastMove = gameTree.peekPrev(); if (m_gmLastMove){repaintOneSpotNow(m_gmLastMove.Point);setLabelsOnBoard(m_gmLastMove);setMarksOnBoard(m_gmLastMove);}optRepaint();m_colorToPlay = nextTurn(m_colorToPlay);textBox1.Clear();if (m_gmLastMove)textBox1.AppendText(m_gmLastMove.Comment);}

编码风格:

个人很少用c系的语言,所以说不上什么好坏。不过单从代码角度来说的话,变量名还可以,能传递一部分的意思。不过注释感觉有些过多,很多时候变量名以及代码结构已经足以表达清楚意思了。在我的观点里,一个函数最多只需要一行注释,说明函数的用途及用法。至于函数内部的实现应该靠代码就足以表述清楚——如果表述不清楚,那就是函数写的有问题。

一大串if else我觉得switch比较好。当然我不是用c的,貌似switch只能处理字符?那还不如叫switch_only_for_char。

程序架构:

1500多行,实在没有太多耐心来看。想必其中大部分代码都是画界面的。

MVC的话,感觉并没有很明确的体现出来。各种函数的调用好像并没有什么明显的规则,比如nextTurn()这种,如果按照MVC的话,应该是不能直接调用的。

不过话说话来,MVC还是用在大型程序上比较好,这种小程序完全没必要。大炮大蚊子明显没有用手打有效。

错误处理:

trycatch好像有点太笼统了。如果能细致一点指出具体的错误就更好了。

特殊情况最好归到trycatch里,统一管理。写到外面容易被当做正常情况来看待。

注释:

加到代码里了,太长就不贴到这了。

转载于:https://www.cnblogs.com/numbbbbb/p/3441067.html

[课程相关]homework-06相关推荐

  1. 国家精品课程相关网址

    1.高等学校精品课程建设工作网 http://www.jpkcnet.com/    说明:中国教育部高教司主办,国家精品课程的官方网站,主要包括有关国家精品课程的通知.表格下载等,可以查阅2003年 ...

  2. 教育技术精品课程相关链接

    教育技术精品课程相关链接 资料来源: http://course.zjnu.cn/met/ke/Html/xinwenyugonggao/176.html 注:此资料为2007年12月更新的,如有新的 ...

  3. 深度学习入门课程学习笔记06 反向传播

    本篇学习笔记对应深度学习入门课程 第七课 博客地址:http://blog.csdn.net/tangyudi 欢迎转载 反向传播: 咱们在之前的课程讲了一系列的前向传播的知识点,前向传播也就是从输入 ...

  4. Linux及安全课程——相关链接总结

    附录:学习笔记链接总结 MOOC课程学习笔记与实验: 第一周:计算机是如何工作的 第二周:操作系统是怎么工作的 -- 一个简单的时间片轮转多道程序内核代码及分析 第三周:构造一个简单的Linux系统M ...

  5. 3. 什么是icmp?icmp与ip的关系_公共关系与人际交往能力自主模式课程相关

    点击蓝字关注获取更多课程答案 点击文末 获取完整答案 课程背景 1  构建和谐社会,和谐人与人的关系是重中之重 随着人类交往的发展,全球化.信息化.网络化态势发展迅猛,人与人的空间距离越来越小:但由于 ...

  6. 面向服务的计算(SOC)课程相关资料

    常用的一些web服务: 外国:http://www.xmethods.org/ve2/index.po 中国:http://www.webxml.com.cn/zh_cn/support.aspx 基 ...

  7. Web前端之移动端课程开发之06.bootstrap

    Bootstarp 介绍 bootstarp是Twitter公司开发基于html,css,js的前端框架为实现web应用程序快速实现开发提供了一套前端工具包 UI(userInterface用户界面) ...

  8. [课程相关]homework-03

    零.准备工作 这次的作业是结对编程,因为一些原因我们的队伍一共有三个人,成员为:梁杰.夏天晗.谢祖三.由于大家不在一个班,交流起来也不是特别方便,所以我们经过讨论决定三个人约一个时间在一起完成这次作业 ...

  9. MIT18.06线性代数课程笔记18:矩阵行列式的性质

    课程简介 18.06是Gilbert Strang教授在MIT开的线性代数公开课,课程视频以及相关资料请见https://ocw.mit.edu/courses/mathematics/18-06-l ...

最新文章

  1. 驱动07.USB驱动程序
  2. C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
  3. ssh连接不上linux虚拟机
  4. Spring强制使用CGLIB代理事务
  5. JavaEE学习08--jsp
  6. 帆软复选框选中并打印(按某种格式打印)数据分析、报填可用
  7. mysql的pom文件在哪_Maven中pom文件详解
  8. 移动网优大神VoLTE学习笔记(四):主叫信令流程
  9. 双足机器人的稳定性判据_仿人双足机器人步态规划——零力矩点(ZMP)
  10. 想让你的Mac桌面清爽整洁?试试Mac临时文件存储小助手Yoink
  11. Codeforces Round #507 (Div. 2, based on Olympiad of Metropolises) B. Shashlik Cooking
  12. xp每天定时关机命令
  13. c语言if后面的表达式是什么类型,if语句后面的表达式应该是什么?
  14. ccf公共钥匙盒python_CCF python 201709-2 公共钥匙盒
  15. osgEarth示例分析——osgearth_elevation
  16. 萌新卷妹带你逃出算法无名岛第六站
  17. noip2016普及组初赛中山市成绩表及分数线
  18. 判断两个整数是否互质
  19. Python基础知识-pycharm版-09
  20. A-level Computer Science 计算机科学学习笔记/经验分享/教学 (1):考试流程和大纲

热门文章

  1. 前端学习(3153):react-hello-react之脚手架文件介绍
  2. 前端学习(2208):网络请求模块的选择--axios
  3. 前端学习(1542):cdn简介
  4. 前端学习(702):while循环
  5. 前端学习(659):小结
  6. 前端学习(510):多列布局
  7. 树莓派UART串口编程--使用wiringPi库-C开发【2-修改驱动】
  8. 让LwIP拥有PING其他设备的能力
  9. 【JavaScript】appendChild一个的注意点之会删除原dom树节点
  10. 小程序页面跳转的几个方法和区别