计算器简单封装
2015-11-21 10:55
381 查看
场景故事
1、背景
1)典型用户:老陈【主要】、小石头【次要】。
【老陈】
【小石头】
2)用户的需求
老陈:a.可以自己输入题数,让孩子进行计算。
b.当输入错误时程序可以给出提示。
c.程序可以自行统计孩子的计算情况。
d.孩子错误时程序及时给出提示
2场景
老陈:要把题目输入进去
小石头:要计算题目
3场景故事
老陈作为一名工作繁忙没有时间对孩子进行辅导的家长来说,希望有这样一个程序既可以帮助自己辅导孩子,
以便自己可以腾出时间去完成自己的工作,并且可以让孩子的学习得到提高。
小石头作为一名小学二年级的学生,希望通过软件来完成自己的家庭作业作业,
得到肯定,最重要的是可以早点完成作业有时间出去玩。
【用例图】
添加一个新类Calculate
namespace Prodogy
出题
保存:
打开;
计算情况;
[b]总结:[/b]
一开始是由老师布置得一个小小的计算器作业。我很喜欢老师布置的这个作业。这个作业虽然很简单,但是他给了我很多机会去练习。让我从这里面里点一点汲取;
一开始连最基本的语法都不懂,老实讲的我听着也是一头雾水,不过,我庆幸我比较爱刨根问底,不到黄河比死心的精神,哈哈。我一步一步去练,去敲代码。我重
复很多次,感谢每次出错,这会让我学习。还有很多不完善的地方,我继续加油。看到敲出来的一行行的代码,运行出来的惊喜,我喜欢这种感觉。加油,我继续完善。
1、背景
1)典型用户:老陈【主要】、小石头【次要】。
【老陈】
【小石头】
2)用户的需求
老陈:a.可以自己输入题数,让孩子进行计算。
b.当输入错误时程序可以给出提示。
c.程序可以自行统计孩子的计算情况。
d.孩子错误时程序及时给出提示
2场景
老陈:要把题目输入进去
小石头:要计算题目
3场景故事
老陈作为一名工作繁忙没有时间对孩子进行辅导的家长来说,希望有这样一个程序既可以帮助自己辅导孩子,
以便自己可以腾出时间去完成自己的工作,并且可以让孩子的学习得到提高。
小石头作为一名小学二年级的学生,希望通过软件来完成自己的家庭作业作业,
得到肯定,最重要的是可以早点完成作业有时间出去玩。
【用例图】
添加一个新类Calculate
namespace Prodogy
{ class Calculate//类名 { public string type = "";//运算类型 public double sum;//计算结果 private double a;//第一个数 public double A//封装字段 { get { return a; } set { a = value; } } private double b;//第二个数字段封装 public double B { get { return b; } set { b = value; } } public void Add()//加法计算方法 { if (type=="+") { sum=a + b; } } public void Sub()//减法计算方法 { if (type=="-") if(a<b) { MessageBox.Show("第一个数大于第二个数");} else { sum = a - b; } } public void Mul()//乘法计算方法 { if (type=="*") { sum = a * b; } } public void Div()//除法计算方法 { if (type=="/") { sum = a / b; } } public void Mod()//取模计算方法 { if (type=="%") { sum = a % b; }} } Form1中调用 先实例化一个cal对象 引用实例化成员
cal.A = double.Parse(txtone.Text); cal.B = double.Parse(txttwo.Text); cal.sum = sum; ; cal.type = typ1.Text;//调用类成员 type = typ1.Text; cal.Add();//加法 cal.Sub();//减法 cal.Mul();//乘法 cal.Div();//除法 cal.Mod();//取模
出题
保存:
private void Savebt_Click(object sender, EventArgs e) { SaveFileDialog TxtSaveDialog = new SaveFileDialog(); TxtSaveDialog.Filter = "RTF文件(*.RTF)|*.RTF"; if (File.Exists(path)) { this.richTextBox1.LoadFile(path, RichTextBoxStreamType.RichText); MessageBox.Show("保存成功", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); this.richTextBox1.Clear(); Savebt.Enabled = false; } else { if (TxtSaveDialog.ShowDialog() == DialogResult.OK) { this.richTextBox1.SaveFile(TxtSaveDialog.FileName, RichTextBoxStreamType.RichText); MessageBox.Show("保存成功", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); this.richTextBox1.Clear(); Savebt.Enabled = false; } } }
打开;
private void offertstbt_Click(object sender, EventArgs e) { richTextBox2.Text = richTextBox1.Text; richTextBox1.Text = ""; createbt.Text = "出题"; createbt.Enabled = false; }
计算情况;
if (e.KeyCode==Keys.Enter) { if (txtresult.Text ==cal.sum.ToString()) { right++; MessageBox.Show("回答正确"); txtone.Text = ""; txttwo.Text = ""; //txtthree.Text = ""; txtresult.Text = ""; typ1.Text = ""; //typ2.Text = ""; } else { MessageBox.Show("回答错误"); txtone.Text = ""; txttwo.Text = ""; //txtthree.Text = ""; txtresult.Text = ""; typ1.Text = ""; //typ2.Text = ""; } question++; } From2: private void Form2_Load(object sender, EventArgs e) { txtquestion.Text = Form1.question.ToString(); txtright.Text = Form1.right.ToString(); txtrighrLv.Text=((Form1.right/(double)(Form1.question))*100).ToString()+"%"; }
[b]总结:[/b]
一开始是由老师布置得一个小小的计算器作业。我很喜欢老师布置的这个作业。这个作业虽然很简单,但是他给了我很多机会去练习。让我从这里面里点一点汲取;
一开始连最基本的语法都不懂,老实讲的我听着也是一头雾水,不过,我庆幸我比较爱刨根问底,不到黄河比死心的精神,哈哈。我一步一步去练,去敲代码。我重
复很多次,感谢每次出错,这会让我学习。还有很多不完善的地方,我继续加油。看到敲出来的一行行的代码,运行出来的惊喜,我喜欢这种感觉。加油,我继续完善。
相关文章推荐
- 根据二叉树的先序和中序来构建二叉树
- 奇异值分解(SVD) --- 几何意义
- android前端定制浏览器开发(干货)
- Android中的线程
- [HDU 2312]Cliff Climbing[BFS]
- 理解Scala的函数式风格:从var到val的转变
- DBA常用脚本和表
- 如何优化JavaScript的构造函数
- 微信环境下完全前后端分离未必是最好的解决方案
- http协议头文件的控制信息(转)
- ACM_lca
- @IntDef的使用
- android开发Enum (枚举)的完美替代 —— @IntDef的使用
- 25.NSUserDefaults储存数据的类(数据持久化)
- Pulltorefresh使用中碰到的问题
- @@identity、scope_identity()、IDENT_CURRENT('tablename')函数的区别
- Objective-C 的属性与合成方法使用详解
- Smarty中foreach属性的使用index,last
- Xcode自动注释插件:VVDocumenter-Xcode
- linux设备驱动归纳总结(三):3面向对象思想和lseek