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的格式从来没使用或,程序的安全性很低。

  • 相关阅读:
    小程序底部弹出式导航菜单
    Markdown-it-latex2img
    Typography convention
    排版规约
    Java String的相关性质分析
    switch表达式中可以用哪些类型
    break,continue和return的区别
    一个.java文件中有多少个类(不是内部类)?
    RabbitMQ启动配置中出现(ArgumentError) argument error xxx的错误
    问题:IDEA部署Springboot项目的时候,提示很多xxx程序包找不到
  • 原文地址:https://www.cnblogs.com/jazzone/p/3441132.html
Copyright © 2011-2022 走看看