这个作业属于哪个课程 | 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表格
解题思路描述
设计和实现过程
关键代码展示
性能改进
异常处理
心得体会
界面展示
代码地址
PSP表格
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
Planning | 计划 | 60 | 80 |
Estimate | 估计这个任务需要多少时间 | 25 | 30 |
Development | 开发 | 480 | 510 |
Analysis | 需求分析 (包括学习新技术) | 180 | 240 |
Design Spec | 生成设计文档 | 60 | 70 |
Design Review | 设计复审 | 50 | 60 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 60 | 50 |
Design | 具体设计 | 120 | 140 |
Coding | 具体编码 | 80 | 90 |
Code Review | 代码复审 | 30 | 50 |
Test | 测试(自我测试,修改代码,提交修改) | 90 | 100 |
Reporting | 报告 | 120 | 140 |
Test Repor | 测试报告 | 40 | 35 |
Size Measurement | 计算工作量 | 40 | 40 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 40 | 50 |
合计 | 1475 | 1685 |
解题思路描述
(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等高级功能
异常处理
在进行单目运算时刚开始输入的不是数字会报错,目前还不知道怎么弄,后续会继续优化。
心得体会
本次的作业让我学会了很多东西,每一次接触新事物,总是充满了挫折与痛苦,在学习可视化界面的过程中,困难重重,有许多难关此时此刻我都还没有解决,但是接下来的日子里我会继续努力,慢慢进步,简易计算器的设计,让我受益匪浅。