蔡少杭 201421122111git
小程序
项目开发的coding.net 地址:https://git.coding.net/HangZhe/HomeWork3.git学习
在我的做业1中,用各类语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序作成GUI,成为一个有基本功能、必定价值的程序。在下面的功能需求中实现两个:测试
记录用户的对错总数,程序退出再启动的时候,能把之前的对错数量保存并在此基础上增量计算。字体
有计时功能,能显示用户开始答题后的消耗时间。this
界面支持中文简体/中文繁体/英语,用户能够选择一种;编码
主要功能分为:生成题目、记录对错数、计时、语言切换。其中计算使用的是第一次做业中的生成四则运算表达式的方式。对错数打算是用文件记录,每次运行的开始时候先从文件读取对错数,每次答对答错都会对对错数进行修改。计时功能,当用户点击开始按钮开始答题时开始计时,结束答题或者答完全部题目后中止计时,使用的是C#中设置事件触发时间间隔的方式。语言切换默认开始是中文,当用户选择对应的语言的时候会作相应的切换,计划使用切换配置文件的方式来修改全部控件的文本。spa
记录和读取对措数.net
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 <a) { if (is_count) { is_count = false; this.anwser.Text = ""; Program.gen(); question_num++; this.count_text.Text = "第" + question_num.ToString() + "题"; this.label7.Text = Program.getNum(); } else { Program.gen(); question_num++; this.count_text.Text = "第" + question_num.ToString() + "题"; this.label7.Text = Program.getNum(); this.right_show_text.Text = Program.get_right_count().ToString(); Program.add_wrong_count(); this.wrong_show_text.Text = Program.get_wrong_count().ToString(); FileStream fs3 = new FileStream("E:\\result.txt", FileMode.Create); StreamWriter sw3 = new StreamWriter(fs3); //开始写入 sw3.WriteLine(Program.get_right_count().ToString()); sw3.WriteLine(Program.get_wrong_count().ToString()); //清空缓冲区 w3.Flush(); //关闭流 sw3.Close(); fs3.Close(); }
计时
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; }
1.主界面
2.开始以前必须输入题目数和表达式中数的运算范围,不大于这个值
3.开始答题,同时开始计时,答错答对的题数是提取自文件的,随着用户的答题结果而发生变化
4.用户输入答案,点击肯定进行比较,正确就答对题数加1,错误就答错题数加1,而后点击下一题换题目
5.题目作完或者结束答题,结束计时
本次做业是在第一次做业的基础上制做出图形界面,使用的是C#语言编写的窗体运用程序,计时和对错数记录的功能都已经实现,语言切换方面遇到字体资源没法加载的问题还在解决。
给我最大的感觉就是团队协做真的颇有趣,刚开始确实会有一些编码的不统一而产生分歧,可是随着双方规范的约定,就会很快适应对方的代码,也就能成功地整合。
优势:队友的思惟很活跃,我在思考一个问题没有思路时,她能给出我不曾想到的解决思路,瞬间让我恍然大悟。
缺点:一些变量名字的定义不是很好理解,须要询问后才能知道。
但愿她提升的地方:在定义变量名字时尽可能定义一些对方能瞬间理解的名字。
1.阅读做业的要求,肯定此次做业的全部需求。
2.根据任务量和各自熟悉的领域划分,各自负责对应的功能模块。
3.制定编码规范,约定参数传递的方式,使用的语言,环境,开发模式等等。
4.开始各自的开发,期间遇到难以解决的问题就提出,共同讨论和解决。
5.完成各自功能模块后,整合代码,解决整合过程当中遇到的问题。
6.测试程序,排查BUG。
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 |