个人第3次作业:结对编程

Github项目地址 https://github.com/zhangyingzhangying/PairProgramming.git
结对伙伴的作业地址 https://home.cnblogs.com/u/mudan/
作业地址 https://www.cnblogs.com/cherish599/p/11577268.html

一.PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 30
Estimate 估计这个任务需多少时间 300 350
Development 开发 240 260
Analysis 需求分析 (包括学习新技术) 60 60
Design Spec 生成设计文档 30 30
Design Review 设计复审 (和同事审核设计文档) 30 60
Coding Standard 代码规范 (为目前的开发制定合适的规范) 100 100
Design 具体设计 180 160
Coding 具体编码 200 280
Code Review 代码复审 60 90
Test 测试(自我测试,修改代码,提交修改) 30 30
Reporting 报告 60 60
Test Report 测试报告 50 60
Size Measurement 计算工作量 30 30
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 50 40
合计 1450 1680

二.解题思路和代码实现

解题思路

在这个题目下肯定首先是要在windows窗口里面体现点名的具体操作,而且要实现点名就需要数据支持,要有一个全班的名字信息与学号信息。窗体上面要有加载,点名,停止等按钮。

代码实现

在进行代码实现时,我们对于开始,停止的按钮是通过生成一个随机数,然后按照顺序挨着往下读取,直到点击停止按钮。

 private void timerCallName_Tick(object sender, EventArgs e)
        {
            Random ra = new Random();
            int i = ra.Next(stuList.Count);
            lblName.Text = stuList[i].Name;
        }

        private void btnStart_Click(object sender, EventArgs e)
        {
            timerCallName.Start();
        }

        private void btnStop_Click(object sender, EventArgs e)
        {
            timerCallName.Stop();
 

在老师给我们讲解提示之后,在实际操作过程中,我们觉得加载学生的时间进度条过于缓慢,进行了改良,在合适的环境里进行了一些改进。

  private void btnLoadStu_Click(object sender, EventArgs e)
        {          

            
            StudentDAO stuDao = new StudentDAO();
            stuList=stuDao.getAllStudents();

            
            int stuCounts = stuList.Count;
            progressName.Maximum = stuCounts;
        

           
            DataTable dt = new DataTable();          
            dt.Columns.Add("stuID", Type.GetType("System.String"));
            dt.Columns.Add("stuName", Type.GetType("System.String"));
            
           
            foreach (Student stu in stuList)
            {
                dt.Rows.Add(stu.Id,stu.Name);
                progressName.Value += 1;
                Thread.Sleep(100);                
            }            
            
            dgvStuList.DataSource = dt;

            setControlVisible();

        }

然后在学生的编号上面,我们也做了相应的改变,使得人员的信息等更加丰富,方面老师进行信息查询

# 三.结对过程和代码复审 ## 代码规范 在我们的讨论过程中,发现了一些问题代码冗余,可阅读查性差,逻辑复杂,不利于维护,出了bug,无法快速定位问题等,所以我们制定了一些规范。 1.代码简洁、少嵌套。 2.插入、修改、删除操作,严格执行标准。 3.用方法可功能明确化,增加程序可读性。 4.明确类的功能,精确地实现类的设计。 5.数据类必须重载toString() 方法,返回该类有意义的内容。 ## 代码复审 代码复审的时候我们认真比较了结对共同部分,然后不断完善了自己分工的部分,解决了一些自己没有解决的问题。然后我们按照以下要求进行了一些检查 代码符合需求和规格说明。对功能的实现非常完善。 代码设计有比较周全的考虑。首先,程序对输入有详细的处理,对输入的格式进行了检查,并对输入的数字大小进行了判断 代码有较高的可读性。代码根据功能分为了几个不同的类,对功能的划分较为直观,关键部分有详细的注释 代码的分工十分明确,易于维护。 代码的每一行都执行并检查过了。 #### 在检查过程中 发现了一些问题比如有一个括号没有规范,最后在运行阶段发现了问题,以及引用没有引用成功,最后发现了问题,所以要关注代码的简明,易读,无二义性,以及缩进 ,行宽 ,括号, 断行与空白的{ }行, 分行, 命名。

结对过程

和我进行结对的是母丹同学,下面是我们结对编写代码的照片。

四.单元测试和代码提交

单元测试

因在这次的编码过程中有许多函数与类,代码量较多,所以我们选择了其中的一些进行了单元测试。下面是我们进行单元测试的过程,最后结果显示单元测试成功

最终效果

代码提交

首先我们在各自的github仓库中建立了文件夹,文件夹的名字是自己的学号,然后在自己的本地同名文件夹中进行代码的编写,再上传到github

五.总结感悟

这次结对编程让我们两个人收获很大,在代码编写的过程中两个人一起确实是比一个人快了很多,也可以很快发现问题,在编写的过程中有些意见不一样的地方我们也协商一下解决了问题,在两人合作的过程中应该尊重对方的意见,要互相理解,在进行编程过程中也有很多问题,在询问同学和百度后解决了,这次作业提升了一些自己的能力。

posted on 2019-10-01 15:47  !zz  阅读(294)  评论(0编辑  收藏  举报