博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结对编程-四则运算
阅读量:5775 次
发布时间:2019-06-18

本文共 3425 字,大约阅读时间需要 11 分钟。

一、结对成员:

蔡少杭 201421122111

XXX XXXXXXXXXXXX

项目开发的coding.net 地址:

 

二、题目描述:

在个人作业1中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成GUI,成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:

  1. 记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。

  2. 有计时功能,能显示用户开始答题后的消耗时间。

  3. 界面支持中文简体/中文繁体/英语,用户可以选择一种;

 

三、项目实现:

1、需求分析

  • 首先需要一个GUI界面,方便用户操作,需要用到按钮,文本框,文字等控件。
  • 我给自己分派的任务是完成记录用户的对错总数,每次打开程序都能加载上次的对错总数。
  • 她的任务是完成计时的功能,在点击开始后开始计时,在用户点击提交或答完全部题目后停止计时。
  • 语言选择,设置为三种,中文简体,中文繁体和英文。

 

2、程序设计

  主要功能分为:生成题目、记录对错数、计时、语言切换。其中计算使用的是第一次作业中的生成四则运算表达式的方式。对错数打算是用文件记录,每次运行的开始时候先从文件读取对错数,每次答对答错都会对对错数进行修改。计时功能,当用户点击开始按钮开始答题时开始计时,结束答题或者答完所有题目后停止计时,使用的是C#中设置事件触发时间间隔的方式。语言切换默认开始是中文,当用户选择对应的语言的时候会做相应的切换,计划使用切换配置文件的方式来修改所有控件的文本。

 

3、代码展示

记录和读取对措数

if (!File.Exists(@"E:\\result.txt")){      FileStream fss = new FileStream("E:\\result.txt", FileMode.Create);      StreamWriter sww = new StreamWriter(fss);      //开始写入      sww.WriteLine("0");      sww.WriteLine("0");      //清空缓冲区      sww.Flush();      //关闭流      sww.Close();      fss.Close();}      FileStream fs = new FileStream("E:\\result.txt", FileMode.Open, FileAccess.Read);      StreamReader read = new StreamReader(fs, Encoding.Default);      string strReadline;      while ((strReadline = read.ReadLine()) != null)      {           result_list.Add(strReadline);      }      read.Close();      fs.Close();      right_number=Convert.ToInt32(result_list[0]);      wrong_number= Convert.ToInt32(result_list[1]);      this.right_show_text.Text = right_number.ToString();      this.wrong_show_text.Text = wrong_number.ToString();      Program.right_wrong_init(right_number, wrong_number);

 

修改对错数

if (question_num 

 

计时

public Form1(){      InitializeComponent();      //timer控件可用      this.timer1.Enabled = true;      //设置timer控件的Tick事件触发的时间间隔      this.timer1.Interval = 1800;      //停止计时      this.timer1.Stop();}

 

 //开始计时 this.timer1.Start(); 

 

private void timer1_Tick(object sender, EventArgs e){            second_r++;            if (second_r > 9)            {                second_r = 0;                secend_l++;            }            if (secend_l > 5)            {                secend_l = 0;                minute_r++;            }            if (minute_r > 9)            {                minute_r = 0;                minute_l++;            }            time = minute_l.ToString()+minute_r.ToString()+":" +secend_l.ToString()+second_r.ToString();            this.time_show_text.Text = time;}

 

4、程序运行

1.主界面

 

 

2.开始之前必须输入题目数和表达式中数的运算范围,不大于这个值

 

3.开始答题,同时开始计时,答错答对的题数是提取自文件的,随着用户的答题结果而发生变化

 

4.用户输入答案,点击确定进行比较,正确就答对题数加1,错误就答错题数加1,然后点击下一题换题目

 

 

5.题目做完或者结束答题,结束计时

  

 

5、小结感受

本次作业是在第一次作业的基础上制作出图形界面,使用的是C#语言编写的窗体运用程序,计时和对错数记录的功能都已经实现,语言切换方面遇到字体资源无法加载的问题还在解决。

给我最大的感受就是团队协作真的很有趣,刚开始确实会有一些编码的不统一而产生分歧,但是随着双方规范的约定,就会很快适应对方的代码,也就能成功地整合。

 

四、运用“汉堡包”的方式,评价结对伙伴:

优点:队友的思维很活跃,我在思考一个问题没有思路时,她能给出我未曾想到的解决思路,瞬间让我恍然大悟。

缺点:一些变量名字的定义不是很好理解,需要询问后才能知道。

希望她提高的地方:在定义变量名字时尽量定义一些对方能瞬间理解的名字。

 

五、描述结对过程:

1.阅读作业的要求,确定这次作业的所有需求。

2.根据任务量和各自熟悉的领域划分,各自负责对应的功能模块。

3.制定编码规范,约定参数传递的方式,使用的语言,环境,开发模式等等。

4.开始各自的开发,期间遇到难以解决的问题就提出,共同讨论和解决。

5.完成各自功能模块后,整合代码,解决整合过程中遇到的问题。

6.测试程序,排查BUG。

 

六、展示PSP:

PSP2.1 Personal Software Process Stages Time Senior Student Time
Planning 计划 20 15
· Estimate 估计这个任务需要多少时间 24 20
Development 开发 500 650
· Analysis 需求分析 (包括学习新技术) 30 60
· Design Spec 生成设计文档 30 10
· Design Review 设计复审 30 15
· Coding Standard 代码规范 20 20
· Design 具体设计 25 32
· Coding 具体编码 200 350
· Code Review 代码复审 20 25
· Test 测试(自我测试,修改代码,提交修改) 30 25
Reporting 报告 30 45
· 测试报告 25 15
· 计算工作量 20 12
· 并提出过程改进计划 20 10

转载地址:http://vkeux.baihongyu.com/

你可能感兴趣的文章
jsp 特殊标签
查看>>
[BZOJ] 1012 [JSOI2008]最大数maxnumber
查看>>
使用VMware安装CentOS
查看>>
gauss消元
查看>>
多线程-ReentrantLock
查看>>
数据结构之链表与哈希表
查看>>
IIS7/8下提示 HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求...
查看>>
http返回状态码含义
查看>>
响应式网站对百度友好关键
查看>>
洛谷P2179 骑行川藏
查看>>
(十八)js控制台方法
查看>>
VB关键字总结
查看>>
虚拟机类加载机制
查看>>
android代码生成jar包并混淆
查看>>
Java基础2-基本语法
查看>>
一个不错的vue项目
查看>>
屏蔽指定IP访问网站
查看>>
python学习 第一天
查看>>
根据毫秒数计算出当前的“年/月/日/时/分/秒/星期”并不是件容易的事
查看>>
python的图形模块PIL小记
查看>>