软件工程作业1——简易计算器

这个作业属于哪个课程https://bbs.csdn.net/forums/ssynkqtd-05
这个作业要求在哪里https://bbs.csdn.net/topics/617294583
这个作业的目标

完成一个具有可视化界面的计算器。

功能:具有基本功能的计算器

实现加、减、乘、除、归零基本操作。

附加功能:具有科学计算的计算器

实现次方、幂、三角函数等操作

其他参考文献https://www.cnblogs.com/xinz/archive/2011/11/20/2255830.html


目录

界面展示
PSP表格
解题思路描述
设计和实现过程
关键代码展示
性能改进
异常处理
心得体会


界面展示


代码地址

fzu-sxw/rj · GitHub


PSP表格

PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划6080
Estimate估计这个任务需要多少时间2530
Development开发480510
Analysis需求分析 (包括学习新技术)180240
Design Spec生成设计文档6070
Design Review设计复审5060
Coding Standard代码规范 (为目前的开发制定合适的规范)6050
Design具体设计120140
Coding具体编码8090
Code Review代码复审3050
Test测试(自我测试,修改代码,提交修改)90100
Reporting报告120140
Test Repor测试报告4035
Size Measurement计算工作量4040
Postmortem & Process Improvement Plan事后总结, 并提出过程改进计划4050
合计14751685

解题思路描述

(1)下载visual studio,创建一个新的Windows窗体应用项目,在form上添加button和textbox组件。
(2)对界面进行布局,模仿经典的计算器界面,对组件精心修改。
(3)对设计好的界面进行代码编程,实现加减乘除等功能。


设计和实现过程

1.利用visual studio 创建一个Windows窗体程序新项目,打开窗口,在工具箱中找到button和textbox组件,然后设计界面。

2,设计好界面后,对各个组件的属性进行编辑,链接插入相关代码。

3,在不同的模块编写代码实现加减乘除等功能。

4,调试检验代码是否可执行,测试各种错误案例。

5,反复确认无误,保存收工。


关键代码展示

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;



namespace 简易计算器2
{
    public partial class Form1 : Form
    {
        Button btn;
        double num1;
        double num2;
        string fh;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text += 1;
        }

        private void num(object sender, EventArgs e)
        {
            btn = (Button)sender;
            textBox1.Text += btn.Text;
        }

        private void button17_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
        }

        private void fuhao(object sender, EventArgs e)
        {
            btn = (Button)sender;
            num1 = Convert.ToDouble(textBox1.Text);
            fh = btn.Text;
            textBox1.Text = "";
        }

        private void button18_Click(object sender, EventArgs e)
        {
            btn = (Button)sender;
            num2 = Convert.ToDouble(textBox1.Text);
            switch (fh)
            {
                case "*":
                    textBox1.Text = (num1 * num2).ToString();
                    break;
                case "/":
                    textBox1.Text = (num1 / num2).ToString();
                    break;
                case "+":
                    textBox1.Text = (num1 + num2).ToString();
                    break;
                case "-":
                    textBox1.Text = (num1 - num2).ToString();
                    break;
                case "%":
                    textBox1.Text = (num1 % num2).ToString();
                    break;
                case "^":           
                    textBox1.Text = (Math.Pow(num1,num2)).ToString();
                    break;
                case "sin":
                    double num3 = num2 * (Math.PI / 180);
                    textBox1.Text = (Math.Sin(num3)).ToString();
                    break;
                case "cos":
                    num3 = num2 * (Math.PI / 180);
                    textBox1.Text = (Math.Cos(num3)).ToString();
                    break;
                case "tan":
                    num3 = num2 * (Math.PI / 180);
                    textBox1.Text = (Math.Tan(num3)).ToString();
                    break;
                case "e":
                    textBox1.Text = (Math.Exp(num2)).ToString();
                    break;
                case "log":     
                    textBox1.Text = (Math.Log(num2)).ToString();
                    break;
            }
        }
    }
}

性能改进

原本只涉及加减乘除这四个基本功能,优化后添加了sin和cos等高级功能


异常处理

在进行单目运算时刚开始输入的不是数字会报错,目前还不知道怎么弄,后续会继续优化。


心得体会

本次的作业让我学会了很多东西,每一次接触新事物,总是充满了挫折与痛苦,在学习可视化界面的过程中,困难重重,有许多难关此时此刻我都还没有解决,但是接下来的日子里我会继续努力,慢慢进步,简易计算器的设计,让我受益匪浅。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值