需求:作为一个观众,我希望了解某一场比赛的比分,以便了解赛况。(满意条件:精确到每一局的结果比分)

需求分析:实现查询数据库中每一局的分数并用界面显示。

生成设计文档:

运用三层架构,实现软件的基本功能。

设计复审:自我复审已完成。同事复审暂未完成。

代码规范:代码风格的原则,简明,易读,无二义性。

缩进:四个空格。

行宽:不超过100字符。

括号:在复杂的条件表达式中,用括号清楚地表示逻辑优先级。

断行与空白的{}行:(加代码)

分行:不要把多个语句放在一行上。

命名:

Camel 驼峰命名法:单词连写 无分割符 每个单词大写首字母

类名和接口名 大写第一个单词首字母

注释:要加入必要的注释。

具体设计:

大致界面如下所示

单击刷新获取目前场内得分情况。

基本活动图如下

具体编码:

  //获取数据库数据
//查询前几条
int x = a + b;
//x = 3;
string sql = "select *from p limit "+x+"";
MySqlDataReader dr = MySqlHelperA.ExecuteReader(sql, null);
if (dr.HasRows)
{
if (dr.Read())
{
//第一局
diYiJu1.Text = dr["chang1"].ToString();
diYiJu2.Text = dr["chang2"].ToString();
changNeiBiFen1.Text = dr["fen1"].ToString();
changNeiBiFen2.Text = dr["fen2"].ToString();
int aa=int.Parse(dr["chang1"].ToString());
int bb = int.Parse(dr["chang2"].ToString());
if (aa > bb)
{
diYiJu.Text = txtDuiMing1.Text + "胜";
}
else
{
diYiJu.Text = txtDuiMing2.Text + "胜";
}
}
if (dr.Read())
{
//第二局
diErJu1.Text = dr["chang1"].ToString();
diErJu2.Text = dr["chang2"].ToString();
changNeiBiFen1.Text = dr["fen1"].ToString();
changNeiBiFen2.Text = dr["fen2"].ToString();
int aa = int.Parse(dr["chang1"].ToString());
int bb = int.Parse(dr["chang2"].ToString());
if (aa > bb)
{
diYiJu.Text = txtDuiMing1.Text + "胜";
}
else
{
diYiJu.Text = txtDuiMing2.Text + "胜";
}
}
if (dr.Read())
{
//第三局
diSanJu1.Text = dr["chang1"].ToString();
diSanJu2.Text = dr["chang2"].ToString();
changNeiBiFen1.Text = dr["fen1"].ToString();
changNeiBiFen2.Text = dr["fen2"].ToString();
int aa = int.Parse(dr["chang1"].ToString());
int bb = int.Parse(dr["chang2"].ToString());
if (aa > bb)
{
diYiJu.Text = txtDuiMing1.Text + "胜";
}
else
{
diYiJu.Text = txtDuiMing2.Text + "胜";
}
}
if (dr.Read())
{
//第四局
diSiJu1.Text = dr["chang1"].ToString();
diSiJu2.Text = dr["chang2"].ToString();
changNeiBiFen1.Text = dr["fen1"].ToString();
changNeiBiFen2.Text = dr["fen2"].ToString();
int aa = int.Parse(dr["chang1"].ToString());
int bb = int.Parse(dr["chang2"].ToString());
if (aa > bb)
{
diYiJu.Text = txtDuiMing1.Text + "胜";
}
else
{
diYiJu.Text = txtDuiMing2.Text + "胜";
}
}
if (dr.Read())
{
//第五局
diWuJu1.Text = dr["chang1"].ToString();
diWuJu2.Text = dr["chang2"].ToString();
changNeiBiFen1.Text = dr["fen1"].ToString();
changNeiBiFen2.Text = dr["fen2"].ToString();
int aa = int.Parse(dr["chang1"].ToString());
int bb = int.Parse(dr["chang2"].ToString());
if (aa > bb)
{
diYiJu.Text = txtDuiMing1.Text + "胜";
}
else
{
diYiJu.Text = txtDuiMing2.Text + "胜";
}
} }

代码一层版

代码复审:已完成

测试:已完成

测试报告:可以实现基本的查询功能。

计算工作量:

计划

估计用时

实际用时

估计这个任务需要多少时间

145min

120min

开发

105min

100min

需求分析

10min

5min

生成设计文档

5min

5min

设计复审

15miin

5min

代码规范

5min

10min

具体设计

20min

20min

具体编码

40min

50min

代码复审

10min

5min

测试

30min

20min

测试报告

5min

5min

计算工作量

20min

10min

事后总结并提出改进计划

5min

5min

事后总结并提出改进计划:基本功能虽已实现,但是还未改为三层架构的格式。

PSP个人(观众界面)的更多相关文章

  1. 本周psp(观众页面)

    个人项目PSP(观众页面) 计划 30min 估计要用多长时间 3d 开发 5h 需求分析 1h 生成设计文档 1h 设计复审 50min 代码规范 20min 具体设计 40min 具体编码 3h ...

  2. WebSocket原理与实践

    开题思考:如何实现客户端及时获取服务端数据? Polling 指客户端每隔一段时间(周期性)请求服务端获取数据,可能有更新数据返回,也可能什么都没有,它并不在乎服务端数据有无更新.(Web端一般采用a ...

  3. 第16周界面设计PSP总结

    计划:需1周完整完成 需求分析:作为一个观众,我希望能够了解每一场的比分结果,随时跟进比赛进程 生成设计文档:暂无 设计复审:暂无与组员进行设计复审 代码规范:Visual Studio2010 具体 ...

  4. 结对项目:代码复审+PSP

    一.代码复审        首先我从代码风格规范和程序修改两方面进行审查. (一)代码风格规范修改 1 . 代码的部分未缩进:在用markdown粘贴代码时,需要后期tab,无形中加大工作量. 2 . ...

  5. 本周psp个人作业

    计划--用一天的时间来做这个项目 需求分析--作为一个观众,我想要知道每局的比分,以便我更了解比赛情况. 生成设计文档--用类图来进行说明. 设计复审---无 代码规范--3H 具体设计--建立数据库 ...

  6. 最后一周psp

    团队项目PSP 一:表格     C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论用户界面 10:20 11:45 25 40 80 分析 ...

  7. 第十周 psp

    团队项目PSP 一:表格     C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论用户界面 8:45 10:55 40 35 90 分析与 ...

  8. 第九周 psp

    团队项目PSP 一:表格     C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论用户界面 9:50 12:45 35 45 80 分析与 ...

  9. 第八周PSP

    团队项目PSP 一:表格     C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论用户界面 8:40 11:40 35 60 70 分析与 ...

随机推荐

  1. tcpdf最新版 6.2版

    tcpdf6.2版,地址记 录 http://download.csdn.net/detail/hayywcy/9547873

  2. C++const限定符

    在C语言中我们使用#define宏定义的方式来处理符号常量.而在C++中有一种更好的处理符号常量的方法,那就是使用const关键字来修改变量声明和初始化.这种处理常量方式的好处不言而喻:如果程序在多处 ...

  3. C#子类调用基类构造备忘

    using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace First ...

  4. python3.5学习笔记--一个简单的图片爬虫

    参考资料:http://v.qq.com/boke/page/q/g/t/q01713cvdgt.html 目的:爬取网站图片 实际上以上链接的视频中已经将整个过程说的非常明白了,稍微有点计算机基础的 ...

  5. fMRI数据分析处理原理及方法(转载)

    原文地址:http://www.cnblogs.com/minks/p/4889497.html 近年来,血氧水平依赖性磁共振脑功能成像(Blood oxygenation level-depende ...

  6. GPU硬件加速相关

    从android3.0开始,2D渲染开始支持硬件加速,即在view的Canvas上的绘图操作可以用GPU来加速. 硬件加速会使app消耗更多的内存. 如果配置文件中,Target API level  ...

  7. python getopt使用

    函数getopt(args, shortopts, longopts = []) 参数args一般是sys.argv[1:] shortopts 短格式 (-) longopts 长格式(--) 命令 ...

  8. 防止在iOS设备中的Safari将数字识别为电话号码

    在测试中发现iPad上的Safari总会把长串数字识别为电话号码,文字变成蓝色,点击还会弹出菜单添加到通讯录. 别的地方倒也罢了,如果在用户名中出现数字(手机注册新浪微博的话用户名就是“手机用户xxx ...

  9. Eclipse FreeMarker 插件安装

    方法一:手动安装 手动安装没有成功 步骤: 1. 下载freemarker-ide : http://sourceforge.net/projects/freemarker-ide/files/ 2. ...

  10. 安装Oracle报错,全部为未知!

    安装Oracle一开始就报错:需要将以下日志文件发送给管理员,<未知><未知><未知>. 这种问题需要对oracle的setup.exe设置 兼容性.具体如下图: