[课程相关]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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jieba中文分词
- 下一篇: 陕西师范大学计算机科学学院保研院校,陕西