计算器简单封装

场景故事
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()+"%";
        }

 总结:

一开始是由老师布置得一个小小的计算器作业。我很喜欢老师布置的这个作业。这个作业虽然很简单,但是他给了我很多机会去练习。让我从这里面里点一点汲取;

一开始连最基本的语法都不懂,老实讲的我听着也是一头雾水,不过,我庆幸我比较爱刨根问底,不到黄河比死心的精神,哈哈。我一步一步去练,去敲代码。我重

复很多次,感谢每次出错,这会让我学习。还有很多不完善的地方,我继续加油。看到敲出来的一行行的代码,运行出来的惊喜,我喜欢这种感觉。加油,我继续完善。

原文地址:https://www.cnblogs.com/missing-cat/p/4983058.html