• 计算器简单封装


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

     总结:

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

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

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

  • 相关阅读:
    Winform开发框架之终极应用 伍华聪 博客园
    DZ外部调用登陆
    利用服务定时执行
    winForm写cookie经过
    正则第一天
    NHibernate
    Databases supported by NHibernate
    定时执行
    NHibernate视频教程
    bernate异常及处理方法
  • 原文地址:https://www.cnblogs.com/missing-cat/p/4983058.html
Copyright © 2020-2023  润新知