[课程相关]homework-06
一、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.高等学校精品课程建设工作网 http://www.jpkcnet.com/ 说明:中国教育部高教司主办,国家精品课程的官方网站,主要包括有关国家精品课程的通知.表格下载等,可以查阅2003年 ...
- 教育技术精品课程相关链接
教育技术精品课程相关链接 资料来源: http://course.zjnu.cn/met/ke/Html/xinwenyugonggao/176.html 注:此资料为2007年12月更新的,如有新的 ...
- 深度学习入门课程学习笔记06 反向传播
本篇学习笔记对应深度学习入门课程 第七课 博客地址:http://blog.csdn.net/tangyudi 欢迎转载 反向传播: 咱们在之前的课程讲了一系列的前向传播的知识点,前向传播也就是从输入 ...
- Linux及安全课程——相关链接总结
附录:学习笔记链接总结 MOOC课程学习笔记与实验: 第一周:计算机是如何工作的 第二周:操作系统是怎么工作的 -- 一个简单的时间片轮转多道程序内核代码及分析 第三周:构造一个简单的Linux系统M ...
- 3. 什么是icmp?icmp与ip的关系_公共关系与人际交往能力自主模式课程相关
点击蓝字关注获取更多课程答案 点击文末 获取完整答案 课程背景 1 构建和谐社会,和谐人与人的关系是重中之重 随着人类交往的发展,全球化.信息化.网络化态势发展迅猛,人与人的空间距离越来越小:但由于 ...
- 面向服务的计算(SOC)课程相关资料
常用的一些web服务: 外国:http://www.xmethods.org/ve2/index.po 中国:http://www.webxml.com.cn/zh_cn/support.aspx 基 ...
- Web前端之移动端课程开发之06.bootstrap
Bootstarp 介绍 bootstarp是Twitter公司开发基于html,css,js的前端框架为实现web应用程序快速实现开发提供了一套前端工具包 UI(userInterface用户界面) ...
- [课程相关]homework-03
零.准备工作 这次的作业是结对编程,因为一些原因我们的队伍一共有三个人,成员为:梁杰.夏天晗.谢祖三.由于大家不在一个班,交流起来也不是特别方便,所以我们经过讨论决定三个人约一个时间在一起完成这次作业 ...
- MIT18.06线性代数课程笔记18:矩阵行列式的性质
课程简介 18.06是Gilbert Strang教授在MIT开的线性代数公开课,课程视频以及相关资料请见https://ocw.mit.edu/courses/mathematics/18-06-l ...
最新文章
- 驱动07.USB驱动程序
- C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
- ssh连接不上linux虚拟机
- Spring强制使用CGLIB代理事务
- JavaEE学习08--jsp
- 帆软复选框选中并打印(按某种格式打印)数据分析、报填可用
- mysql的pom文件在哪_Maven中pom文件详解
- 移动网优大神VoLTE学习笔记(四):主叫信令流程
- 双足机器人的稳定性判据_仿人双足机器人步态规划——零力矩点(ZMP)
- 想让你的Mac桌面清爽整洁?试试Mac临时文件存储小助手Yoink
- Codeforces Round #507 (Div. 2, based on Olympiad of Metropolises) B. Shashlik Cooking
- xp每天定时关机命令
- c语言if后面的表达式是什么类型,if语句后面的表达式应该是什么?
- ccf公共钥匙盒python_CCF python 201709-2 公共钥匙盒
- osgEarth示例分析——osgearth_elevation
- 萌新卷妹带你逃出算法无名岛第六站
- noip2016普及组初赛中山市成绩表及分数线
- 判断两个整数是否互质
- Python基础知识-pycharm版-09
- A-level Computer Science 计算机科学学习笔记/经验分享/教学 (1):考试流程和大纲