Lobooi 结对作业(24235+24229)
结队作业 | |
---|---|
GitHub项目地址 | https://github.com/Lobooi/PairProgramming.git |
伙伴博客地址 | https://www.cnblogs.com/lanti/p/11615583.html |
作业要求地址 | https://www.cnblogs.com/cherish599/p/11577268.html |
1.预期PSP表:
见小伙伴的博客啦——傅伟鑫的博客(24229结对作业)
2.项目设计与编码
2.1伙伴分工
何继武201731024235:UI的设计与代码的主要编写,GitHub的操作,辅助单元测试与审查。
傅伟鑫201731024229:代码的辅助编写,单元测试的编写,博客的整理编写。
并不严格如此分工,两人又相互帮助与交流的地方(以避免两人出现代码实现上的分歧问题)。
2.2思路与实现
项目思路: 在老师教学的基础上,实现项目结队个性化的特点和功能,首先是对UI界面的重新设计,以及对我们自己功能模块的设计,预计设计总共五个类(包括数据集、函数集等)。
代码实现: 主要对老师代码的分析与改进,然后加入自己的特色:
1.对UI的重新设计:对控件进行了合适的布局设置,同时确定了最小显示范围,以免随意缩放后不能找到程序窗口。
2.代码的实现:首先保证我们的基础功能的实现,并且不会出现问题,其次,在实现我们自己对数据集的新信息的添加(优化学号以及添加了学生性别):
然后,是对我们自己新加功能的实现,实现对被点名的学生进行记录并可以在新窗口中展示,目的是为了便于查看与统计点名情况(为奖惩提供一定依据),但是请注意,不要不小心点到删除数据。下面是具体实现,但不是调用,并且在之后我们进行了窗口代码的优化,避免操作人员多次重复的打开我们的记录窗口。
public class DianMingRecord
{
public string[] recordData = new string[100];
int i = 0;
public void DMrecord(string stuName)
{
recordData[i] = stuName;
i++;
}
public string ShowRecord()
{
string data = null;
for(int j = 0 ;j <= i; j++)
{
data += recordData[j];
data += "\r";
}
return data;
}
}
介绍一下,优化后的窗体,主要是控制了其在打开之后,不能再次重复打开,避免多个窗口冗余。
public partial class ShowRecordData : Form
{
string data = null;
public ShowRecordData(string data)
{
InitializeComponent();
this.data = data;
}
private void ShowRecordData_Load(object sender, EventArgs e)
{
lblRCdata.Text = data;
}
private void btnClear_Click(object sender, EventArgs e)
{
data = null;
lblRCdata.Text = data;
DialogResult = DialogResult.OK;
btnClear.Enabled = false;
}
}
这样就差不多完成了我们的点名项目具体实现。
设计原则主要体现了两种,一是:Information Hiding(信息隐藏): 信息隐藏指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。 如何实现:信息隐藏就是对信息的封装,设置访问权限public、protect private等 ;二是:Design By Contract(契约式设计): 契约式设计就是按照某种规定对一些数据等做出约定,如果超出约定,程序将不再运行 如何体现:在输入数据情况下,能得到与预期一样的结果。此外还有合理利用封装与继承的思想对代码的结构进行了优化(尽管最后并没有具体使用继承类以及方法,因为使用会出现一定问题,考虑好后就没用使用)。
2.3代码的审查与单元测试
代码的审查: 主要是对程序错误的修改与处理,主要由24235(我,何继武)负责,但是还并不会有单元测试,它将会在我进行完代码的审查后进行。
单元测试: 这里主要由24229(傅伟鑫)负责,这里给出他的博客——傅伟鑫的博客(24229结对作业),让他来介绍。
3.结队总结
3.1结队过程
从设计交流到功能代码编写以及单元测试完成,我和我的伙伴之间进行了多次交流,好的是我们是室友所以交流起来比较方便,另外我们还花了很多时间来继续研究GitHub的使用,我们发现这个还是挺让人摸不着头脑的,下面给出两个靓仔的认真图,哈哈哈哈。
3.2 结果PSP表
还是他在弄哈,这里再次附上他的博客:傅伟鑫的博客(24229结对作业)
3.3结对总结
实际上来说,最最最最重要的是又学了怎么使用GitHub,以及利用GitHub来管理代码,我们尝试过了分支以及合并,在不冲突的情况下,进行的很顺利,其次有才是让自己的编程能力得到了巩固,在不断的学习和复习中掌握住对C#语言的使用。
我们不怕浪费时间,所以能促使我们不断进步,加油!!!!!
Lobooi 结对作业(24235+24229)的更多相关文章
- 结对作业1----基于flask框架的四则运算生成器
011.012结对作业 coding地址:https://coding.net/u/nikochan/p/2nd_SE/git 一.作业描述 由于上次作业我没有按时完成,而且庞伊凡同学编程能力超棒,所 ...
- 软件工程第三次作业-结对作业NO.1
第一次结对作业 结对人员: 潘伟靖 170320077 张 松 170320079 方案分析 我们对所供的资料进行分析,如下: 从提供的资料可以看出,需要解决的问题以及满足的需求主要有两类目标用户,各 ...
- 第6次结对作业--郑锦伟&古维城
第6次结对作业 在线英语学习平台客户端原型 1.结对成员 郑锦伟 2015034643034 古维城 2015034643033 2.原型设计工具实现-Photoshop 3.需求分析 使用NABCD ...
- [2019BUAA软件工程]结对作业
Tips Link 作业链接 [2019BUAA软件工程]结对作业 GitHub地址 WordChain PSP表格 psp2.1 预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 ...
- [BUAA软工]第一次结对作业
[BUAA软工]结对作业 本次作业所属课程: 2019BUAA软件工程 本次作业要求: 结对项目 我在本课程的目标: 熟悉结对合作,为团队合作打下基础 本次作业的帮助:理解一个c++ 项目的开发历程 ...
- 软工实践——结对作业2【wordCount进阶需求】
附录: 队友的博客链接 本次作业的博客链接 同名仓库项目地址 一.具体分工 我负责撰写爬虫爬取信息以及代码整合测试,队友子恒负责写词组词频统计功能的代码. 二.PSP表格 PSP2.1 Persona ...
- 第四,五周——Java编写的电梯模拟系统(结对作业)
作业代码:https://coding.net/u/liyi175/p/Dianti/git 伙伴成员:石开洪 http://www.cnblogs.com/shikaihong/(博客) 这次的作业 ...
- 结对作业——随机生成四则运算(Core 第7组)
结对作业 ——随机生成四则运算(core第7组) 吕佳玲 PB16060145 涂涵越 PB16060282 GITHUB地址 https://github.com/hytu99/homework_2 ...
- 结对作业(1.0版)(bug1已修复)
import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing ...
随机推荐
- layui框架实现多图片手动上传和随表单提交方法
首先在官方文档并没有手动上传的说明文档,这里手动实现上传原理是:在表单中有三个按钮,分别是上传图片按钮.隐藏上传按钮.表单提交按钮,点击上传图片按钮之后,图片添加在前端但是并没有真正的上传,而是在点击 ...
- 【Docker】删除镜像
删除镜像:docker rmi [OPTIONS] IMAGE [IMAGE...] 1.删除所有未被 tag 标记和未被容器使用的镜像: docker image prune 2.删除所有未被容器使 ...
- Java 工程师应该掌握的知识
以 Java 工程师应该掌握的知识为例,按重要程度排出六个梯度: 第一梯度:计算机组成原理.数据结构和算法.网络通信原理.操作系统原理. 第二梯度:Java 基础.JVM 内存模型和 GC 算法.JV ...
- 前端——jQuery介绍
目录 jQuery介绍 jQuery的优势 jQuery内容: jQuery版本 jQuery对象 jQuery基础语法 查找标签 基本选择器 层级选择器: 基本筛选器: 属性选择器: 表单筛选器: ...
- vue递归组件 (树形控件 )
首先我们要知道,既然是递归组件,那么一定要有一个结束的条件,否则就会使用组件循环引用,最终出现“max stack size exceeded”的错误,也就是栈溢出.那么,我们可以使用v-if=&qu ...
- 机器学习之路--Matplotlib
1.绘制折线图 在pandas里面有一种数据类型为datatime ,可以将不规范的日期改为:xxxx-xx-xx import pandas as pd import numpy as np a = ...
- Revealjs网页版PPT让你复制粘贴另类装逼,简洁优雅又低调,不懂编程也看过来
Revealjs网页版PPT让你复制粘贴另类装逼,简洁优雅又低调,不懂编程也看过来 要了解一个新知识我们可以从三个方面入手:是什么,有什么用,怎么用.下面我们就从这三个方面进行讲解Reveal.js噢 ...
- 1047 编程团体赛 (20 分)C语言
编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行给出一个正 ...
- 《C++Primer》第五版习题详细答案--目录
作者:cosefy ps: 答案是个人学习过程的记录,仅作参考. <C++Primer>第五版习题答案目录 第一章:引用 第二章:变量和基本类型 第三章:字符串,向量和数组 第四章:表达式
- es snapshot备份到hdfs及从hdfs恢复snapshot
snapshot可以将es整个集群,具体索引数据备份到磁盘,hdfs等.需要时,可以从磁盘,hdfs恢复数据到es. 具体参考: https://elasticsearch.cn/article/61 ...