第三次作业

Fork仓库的Github仓库地址:https://github.com/zio-1/PairProgramming.git

一起讨论:

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

一、计算模块接口的设计与实现过程

1、窗体设计

这个项目由数据库和C#语言共同组成,通过学生数据库和编写的随机点名程序来实现对学生的点名工作,并且新增了不重复点名和显示学生人数的功能。窗体由学生信息窗体、点名系统、加载进度条和学生人数条组成。

2、代码设计

编码规则有:

文件名称(File Name): 此文件的名称;

PasalCasing:标识符的第一个单词的字母大写;

camelCasing:标识符的第一个单词的字母小写。

对同一项目的不同命名空间中的类,命名避免重复。避免引用时的冲突和混淆;

以上在代码设计中均有具体体现,并且找出了自己的错误之处,但是由于改动的时候可能会有力所不及,因此有些命名方式可能还是有些许问题。

二、代码复审

代码规范:C#编写规范

我和室友在完成项目的过程中分工合作,各自完成了一部分,问题还是不大的,但是在单元测试中我们思考了测试的可能性,因为其实这个程序能直接有返回值测试的部分很少,因此我们按照网上查阅的方法和询问的方式知道了该怎么做,还有在修改界面的过程中进我们所能让界面看起来比较美观一些。第三次作业_第1张图片

三、单元测试

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using DaoLayer;

namespace 单元测试
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            int num  = new DaoLayer.StudentDAO().getStudentRecordsNums();
            Assert.Equals(num,84);
        }
    }
}

第三次作业_第2张图片

四、代码展示

![QQ图片20190930153517](G:\软件工程\个人作业3\QQ图片20190930153517.png)using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using DaoLayer;
using Entity;
using System.Threading;

namespace WinformControlUse
{
    public partial class FrmStudent : Form
    {
        List stuList=new List();

        public FrmStudent()
        {
            InitializeComponent();
        }

        void iniControl()
        {
            btnStart.Visible = false;
            btnStop.Visible = false;
            btnLoadStu.Enabled = true;            
        }

        void setControlVisible()
        {
            btnStart.Visible = true;
            btnStop.Visible = true;
            btnLoadStu.Visible = false;           
        }

        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;//一个学生,进度条加1;
                //Thread.Sleep(500);                
            }            
            
            dgvStuList.DataSource = dt;

            setControlVisible();

            this.stunum.Text = "学生人数:" + stuDao.getStudentRecordsNums();

        }

        private void FrmStudent_Load(object sender, EventArgs e)
        {
            iniControl();
        }

        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 label2_Click(object sender, EventArgs e)
        {

        }

        private void label2_Click_1(object sender, EventArgs e)
        {

        }
    }
}

第三次作业_第3张图片

psp表格

PSP2.1 Personal Software Process Stages 实际耗时(分钟)
Planning 计划 30
Estimate 估计这个任务需要多少时间 20
Development 开发 200
Analysis 需求分析 30
Design Spec 生成设计文档 20
Design Review 设计复审 10
Coding Standard 代码规范 20
Design 具体设计 50
Coding 具体编码 300
Code Review 代码复审 60
Test 测试 100
Reporting 报告 100
Test Report 测试报告 10
Size Measurement 计算工作量 10
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 30
合计 940

附加功能

记录学生的人数,并且防止重复点名情况的发生,让点名系统不是绝对的随机,而是在同一次使用内点到谁就在之后的点名中去除点到过的同学。

项目总结

这次作业学习到了更多的东西,不仅是课本上有的,还有课本上没有的老师没有教过的,在遇到困难到去百度去请教摸索的过程中学习到了最有用的东西。这也让我对以后代码方面的编写更有信心了。这次两个人合作的方式也让我感受到了团队的力量,不仅仅是分工合作,还有更多的是自己对于项目的理解的表达,这也是这次作业的巨大收获之一。

你可能感兴趣的:(第三次作业)