小学生100以内加减法口算题卡
一.计划
1.创建规定算数题范围函数,即和不大于100,差不小于0
2.显示开始界面,选择答题界面开始,显示所用时间。
3.显示对错的数据,并计算出正确率。
二、开发
1、需求分析:
作为一名一年级学生家长,由于疫情原因,孩子们在家老师要求家长出100以内的 数学算题帮助孩子们做练习 ,因此我希望出一款能出题,并判断对错,算出正确率的软件 来解决我的家庭负担 。
2.生成设计文档
3.设计复审
运行程序,修改错误。
4.代码规范
命名规范,代码缩进。
5.具体设计
系统开始,随机产生加法或者减法,计算完成后,显示正确题数,正确率以及所花费的时间,系统结束
6.具体代码
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 FormProject
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
/// <summary>
/// 等于按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
//char.IsNumber判断是否为数字,这里只假设都是整数的情况下
//for (int i = 0; i < textBox1.Text.Length; i++)
//{
// if (char.IsNumber(textBox1.Text,i))
// {
// int n1 = Convert.ToInt32(textBox1.Text.Trim());
// }
// else
// {
// MessageBox.Show("只支持整数运算");
// }
//}
//采集数据
int n1 = Convert.ToInt32(textBox1.Text.Trim());
int n2 = int.Parse(textBox2.Text.Trim());
if (comboBox1.SelectedIndex == 0)
{
MessageBox.Show("请选择一个操作符再进行运算!");
}
else
{
int s = 0;
switch (comboBox1.Text)
{
case "+":
s = n1 + n2;
break;
case "-":
s = n1 - n2;
break;
case "*":
s = n1 * n2;
break;
case "/":
if (n2 == 0)
{
MessageBox.Show("除数不能为零!");
}
else
{
s = n1 / n2;
}
break;
default:
MessageBox.Show("未知的运算!");
break;
}
label1.Text = s.ToString();
}
}
/// <summary>
/// 窗体加载时
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form2_Load(object sender, EventArgs e)
{
//给下拉列表框设置默认值
this.comboBox1.SelectedIndex = 0;
}
}
}
用面向对象来实现简易计算器:
添加一个计算类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Calculate
{
public class Cal
{
public double Num1
{
get;
set;
}
public double Num2
{
get;
set;
}
public double Calcu(string operate)
{
double sum = 0;
switch(operate)
{
case "+":
sum = this.Num1 + this.Num2;
break;
case "-":
sum = this.Num1 - this.Num2;
break;
case "*":
sum = this.Num1 * this.Num2;
break;
case "/":
sum = this.Num1 / this.Num2;
break;
}
return sum;
}
}
}
窗体直接引用这个类的实例:
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 Calculate
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Cal cal = new Cal();
cal.Num1 = Convert.ToInt32(textBox1.Text.Trim());
cal.Num2 = int.Parse(textBox2.Text.Trim());
if (comboBox1.SelectedIndex == 0)
{
MessageBox.Show("请选择一个操作符后再执行计算!");
}
else
{
label1.Text = cal.Calcu(comboBox1.Text).ToString();
}
}
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.SelectedIndex = 0;
}
}
}
任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|
计划 | 30 | 60 |
开发 | 20 | 40 |
需求分析 (包括学习新技术) | 20 | 5 |
· 生成设计文档 | 15 | 3 |
· 设计复审 (和同事审核设计文档) | 20 | 2 |
代码规范 (为目前的开发制定合适的规范) | 10 | 1 |
具体设计 | 20 | 5 |
具体编码 | 40 | 20 |
· 代码复审 | 5 | 2 |
· 测试(自我测试,修改代码,提交修改) | 15 | 2 |
报告 | 20 | 20 |
· 测试报告 | 5 | 5 |
计算工作量 | 5 | 5 |
· 事后总结 ,并提出过程改进计划 | 10 | 10 |
总结:在这次的个人项目开发中,完成了项目基本的需求,在与开发过程中和组员并有着积极的交流。
但有些地方还是很生疏,需要勤加练习。