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

    深刻检讨,为我最近一周的行为,可恨的是上了一节课我的草稿也没了!!!!用txt粘贴进来还乱码,罪孽深重……以后不再截止日期24小时内再开始写作业,这样连着搞20来个小时还不如分成几天来做,欠了好几次债了,这周争取还两个。

    1、代码改写

    参数传递:怎么把参数传入Form中?

      解决这个问题的方法有四五种比较流行的,我采用的是重写构造函数,眼看着就截止了,不多赘述了。

    public Form1()
            {
                InitializeComponent();
                
            }
            public Form1(int[][] matrix,bool[][] inout)
            {
                
                InitializeComponent();
                this.matrix = matrix;
                this.inout = inout;
                //this.argv = argv;
                SetupDataGridView();
                PopulateDataGridView();
            }
            public Form1(int[][] matrix, bool[][] inout,string[] argv)
            {
    
                InitializeComponent();
                this.matrix = matrix;
                this.inout = inout;
                //this.argv = argv;
                SetupDataGridView();
                //PopulateDataGridView();
                Do(argv);
            }

    然后,就是要实现UI:怎么才能在Form中显示出处理的结果?

      我第一个想到的方法就是拼接,动态地添加,无非就是在数据量很大的时候会撑开 Form,出现滚动条。重新设置一下Form的大小应该就可以处理这个问题,我记得当时在写Java 大作业的时候就用了这个方法。请教过鲁大师之后发现,原来有一个线程的DataGridView可以 使用,而且可以直接使用DataTable作为它的数据源,看完MSDN那个超长的文档之后,我瞬间很 膜拜的感觉,“还可以这么强大!?”,但是,很不幸的是,我用不好那个Datatable,虽然也 可以使用数组进行转换,我还是做动态的添加,而且考虑到“Foreach函数对于锯齿数组的不给力”,我想还是机械地处理这个问题吧。

    C#的命令行:是不是有点儿特别?

      以前没用过C#,更没用过C#的命令行参数,我在VS2012中用调试设置了命令行参数, 很天真地按照C语言的风格写了“homework-03 input.txt”,然后很顺利成章的认为argv[1] 就会送文件名,于是在VS下无论怎么运行都是对的,在控制台无论怎么运行都是错的。一路各 种Debug之后,排出了各种不可能的,但是被我假设“impossible is nothing”的Bug,我才意识到是命令行参数的问题,于是,就这样,天亮了。一门陌生的语言,一颗不敢相信任何自 己所写代码的心默默地熬到白天,没有交集。

    感想:

      进行了这一遍的改写,我想我对设计的理解确实有了一点点进步,我觉得需要注意设计的精细度。在进行大框架的设计的时候,要事无巨细;在实现一个小的模块的时候,可以采用写一点儿试一试,先走两步探路的方法。

    2、进程通信

      上节课听大神讲了“命名管道”这个名词,度娘一下,果然,进程通信一般都是用这 个东西做的,当然,也有一些其他的方法,只是没时间去了解那么多了。当然,我能想到的方方法依旧是那个土鳖的共享文件,当然,如果弄得好一点的话,我觉得是需要加个锁,保证不出 乱子。我想,如果我考虑完善了这些所有的问题,是不是就相当于自己实现了一个简单的命名 管道。仔细翻一翻,好像“命名管道”也是一块公共的存储空间,只不过周圈都包好,留好口 ,对上口就“狼狈为奸”了。不过,我是真心没有时间来做这个东西了,下次一定提前写作业 ,不拖到最后时刻。跟大师讨论过这个东西到底设计成什么样之后比较好,大师的做法是,取第一个进程 作为圆心,后来的都走一遍,来告诉他要执行什么。我感觉穿成串执行也可以接受,只是可能需要做一些特殊出里,让他们排好队,别出乱子。

    感想:

      在研究这个过程的时候,我深切感觉到快速获得有用的信息是一种能力,我急需锻炼的能力。我还曾经吵着要老师给每一个作业给一点提示,现在觉得老师的做法也许是对的,我们如果能够快速地在大量信息中做出选择、做出正确的选择是需要锻炼的,因为早晚我们要面对自己去探路的情况。

    3、我的小伙伴

      我自觉我是个坑,我的小伙伴儿自觉也是个坑,本着坑加坑等于大坑的原则,加之我们这两个坑还很不靠谱,都不爱写作业。我们决定自己各自搞一搞,有什么问题及时交流一下,尽量减少重复的工作,提高效率。

    我对小伙伴的评价:

      我的小伙伴儿是个思维很活跃的人,观察问题也很仔细,稍微差一点的地方就是跟我一样懒惰。

  • 相关阅读:
    背包问题
    计蒜客lev3
    线段树BIT操作总结
    图论题收集
    Codeforces Round #607 (Div. 2) 训练总结及A-F题解
    2-sat 学习笔记
    洛谷 P3338 【ZJOI2014】力/BZOJ 3527 力 题解
    $noi.ac$ #51 array 题解
    洛谷 P3292 【SCOI2016】幸运数字/BZOJ 4568 幸运数字 题解
    洛谷 P5283 【十二省联考2019】异或粽子 题解
  • 原文地址:https://www.cnblogs.com/hennande/p/3380345.html
Copyright © 2011-2022 走看看