zoukankan      html  css  js  c++  java
  • homework-06

    首先贴出智能指针的作业

    1. 了解Lambda的用法

    计算“Hello World!”中

    a.字母‘e’的个数
    b. 字母‘l’的个数
    void main(){
        char c[] = "Hello World";
        int e = 0;
        [&]()
        {
            int i = 0;
            while (i < 11)
            {
                if (c[i++] == 'e')
                    e++;
            }
        }();
        printf("e:%d
    ", e);
        int l = 0;
        [&]()
        {
            int i = 0;
            while (i < 11)
            {
                if (c[i++] == 'l')
                    l++;
            }
            return l;
        }();
        printf("l:%d
    ", l);
        system("pause");
    }

    2. 练习使用智能指针

      打印“Hello World!”循环右移n位的结果

      Example:

        n = 1, output = “!Hello World”

      n = 3, output = “ld!Hello Wor”

    void main(){
        int n;
        cin >> n;
        auto sp1 = std::make_shared<string>("Hello World!");
        auto sp2 = std::make_shared<string>("Hello World!");
        int i = 0;
        int i2;
        while (i < 12)
        {
            i2=(i + n) % 12;
            (*sp2)[i2] = (*sp1)[i++];
        }
        sp1.reset();
        cout << *sp2;
        system("pause");
    
    }

    然后是作业06

    1) 把程序编译通过, 跑起来。

        读懂程序,在你觉得比较难懂的地方加上一些注释,这样大家就能比较容易地了解这些程序在干什么。

         把正确的 playPrev(GoMove) 的方法给实现了。 如果大家不会下围棋,那就需要大家实地或者上网练习一下围棋的死活,提子是怎么回事。这个应该一个小时就能搞定。

    注释放在github的代码中,请自行查看。主要的方法是要看研究明白原来是如何存储的,从doDeadGroup中我们能知道新的下棋操作会带来的新情况,当前的棋子颜色,次序等等都要改变。然后如果有吃子的现象就会生成一个数组来储存吃掉的子的信息,这样当我们写playPrev时只需要把这些信息搞懂,然后重新写入棋盘,并把当前的一些状态值设成上一步的即可。

    2)根据你选择的教材 (三本之一或更多),点评一下这个程序设计方面的不足,例如:

         编码风格,

         程序架构,有哪些不符合良好的设计,这个程序的设计模式 (MVC等) 是高端大气国际化的么? 等等。 

         程序的错误处理,文件处理,UI 等等

    我对这个程序的理解就是,有非常多的没用的参数和没用的代码没有注释掉只是在那里放着,这样会非常影响阅读,倒是很多东西摸不到头绪,浪费了很多时间。所有的处理都放到几个大类中,比如操作,棋子,棋谱等东西分开写会更有利与维护。在读取文件的时候也咩有考虑得很周全,try-catch的格式从来没使用或,程序的安全性很低。

  • 相关阅读:
    开发中的一些总结2
    XML与DataTable/DataSet互转(C#) 把数据库中表的内容转存为XML文件
    闲来无事。。。。
    一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码:
    20120301 14:10 js函数内部实现休眠
    设为首页和收藏本站的代码
    Jquery实现对a标签改变选中的背景色 支持多选 再次点击背景色消失
    asp.net上传图片并生成等比例缩略图(.Net自带函数完成)
    类中只有 成员变量 和 一个成员函数表
    CListCtrl 使用技巧
  • 原文地址:https://www.cnblogs.com/jazzone/p/3441132.html
Copyright © 2011-2022 走看看