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

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

一.PSP表格

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划3030
Estimate估计这个任务需多少时间300350
Development开发240260
Analysis需求分析 (包括学习新技术)6060
Design Spec生成设计文档3030
Design Review设计复审 (和同事审核设计文档)3060
Coding Standard代码规范 (为目前的开发制定合适的规范)100100
Design具体设计180160
Coding具体编码200280
Code Review代码复审6090
Test测试(自我测试,修改代码,提交修改)3030
Reporting报告6060
Test Report测试报告5060
Size Measurement计算工作量3030
Postmortem & Process Improvement Plan事后总结, 并提出过程改进计划5040
合计14501680

二.解题思路和代码实现

解题思路

在这个题目下肯定首先是要在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();

        }

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

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTYzMzI1Nw==,size_16,color_FFFFFF,t_70

三.结对过程和代码复审

代码规范

在我们的讨论过程中,发现了一些问题代码冗余,可阅读查性差,逻辑复杂,不利于维护,出了bug,无法快速定位问题等,所以我们制定了一些规范。
1.代码简洁、少嵌套。
2.插入、修改、删除操作,严格执行标准。
3.用方法可功能明确化,增加程序可读性。
4.明确类的功能,精确地实现类的设计。
5.数据类必须重载toString() 方法,返回该类有意义的内容。

代码复审

代码复审的时候我们认真比较了结对共同部分,然后不断完善了自己分工的部分,解决了一些自己没有解决的问题。然后我们按照以下要求进行了一些检查
代码符合需求和规格说明。对功能的实现非常完善。
代码设计有比较周全的考虑。首先,程序对输入有详细的处理,对输入的格式进行了检查,并对输入的数字大小进行了判断
代码有较高的可读性。代码根据功能分为了几个不同的类,对功能的划分较为直观,关键部分有详细的注释
代码的分工十分明确,易于维护。
代码的每一行都执行并检查过了。

在检查过程中 发现了一些问题比如有一个括号没有规范,最后在运行阶段发现了问题,以及引用没有引用成功,最后发现了问题,所以要关注代码的简明,易读,无二义性,以及缩进 ,行宽 ,括号, 断行与空白的{ }行, 分行, 命名。

结对过程

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

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTYzMzI1Nw==,size_16,color_FFFFFF,t_70

四.单元测试和代码提交

单元测试

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

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTYzMzI1Nw==,size_16,color_FFFFFF,t_70

最终效果

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTYzMzI1Nw==,size_16,color_FFFFFF,t_70

代码提交

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

五.总结感悟

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

转载于:https://www.cnblogs.com/zhangyingzhangying/p/11614526.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值