四则运算生成器升级版1.0
2015-03-14 16:42
274 查看
一、程序设计题目要求和设计思想
1、题目
(1)、题目避免重复;
(2)、可定制(数量/打印方式);
(3)、可以控制下列参数: 是否有乘除法、是否有括号、 数值范围、加减有无负数、除法有无余数、否支持分数 (真分数, 假分数, …)、是否支持小数 (精确到多少位)、打印中每行的间隔可调整;
2、设计思想
要求1:题目避免重复
设计思想:(1)通过srand(time(NULL));来控制。
要求2:可以定制(数量/打印方式)
设计思想:(1)定义一个参数,利用用户输入的数量来控制数量;
设计思想:(2)输出格式可以目前可以设置两个方式,一个方式是纵向X道,另一个是X*Y格式输出,其中X、Y可以由用户选择来控制。
要求3:控制参数
设计思想:(1)所有的参数控制都要通过用户来选择,控制实现在主函数里,打印函数另行设计
设计思想:(2)数值范围可以设置几个输出函数,用户进行选择
设计思想:(3)是否有乘除法,可以在输出函数里控制,用户进行选择
设计思想:(4)加减有无负数可以用参数比较大小来实现
总体设计:程序里要涉及到很多条件判断,一层一层的设计,先把在所有要求都满足的情况下的结果输出,然后在一步步的展开,一项一项的完成。
二、程序源代码
三、运算结果截图
四、程序存在的问题
目前来说这个程序还存在很多的问题:
1、本程序交互能力比较差,发生问题是没有很好的反馈,打印数量只有输入正整数程序才能正常运行;
2、数值范围的输入,用户可以输入整数范围,例如:-100到100,范围包括所有整数,也可以输出,输出结果没有为负数加上括号来区分,如果用户真的输入负数范围,打印出来就会是像 “1--1=”情况,理想的情况应该是“1-(-1)=”;
3、题目要求的所有功能只实现了一部分,并没有完全实现,尤其是打印方式没有规范,一直是纵向输出;
4、由于本人能力以及时间等多重复杂因素在内,本程序还只是一个简简单单的雏形,忘广大博友批评指正,谢谢;
五、psp记录表
1、项目计划总结:
周活动总结表
姓名: 韩雪东 日期:2015/03/09
阶段时间和效率 周数(上一次周活动表的周数+1):
不包括上一周在内的累计时间
以前各周的累计时间
2、时间记录表:
学生 韩雪东 日期 2015/03/09
教师 王建民 课程 PSP
3、缺陷记录日志:
学生 韩雪东
日期 2015/03/09
教员 王建民
程序号 四则运算生成器升级版1.0
1、题目
(1)、题目避免重复;
(2)、可定制(数量/打印方式);
(3)、可以控制下列参数: 是否有乘除法、是否有括号、 数值范围、加减有无负数、除法有无余数、否支持分数 (真分数, 假分数, …)、是否支持小数 (精确到多少位)、打印中每行的间隔可调整;
2、设计思想
要求1:题目避免重复
设计思想:(1)通过srand(time(NULL));来控制。
要求2:可以定制(数量/打印方式)
设计思想:(1)定义一个参数,利用用户输入的数量来控制数量;
设计思想:(2)输出格式可以目前可以设置两个方式,一个方式是纵向X道,另一个是X*Y格式输出,其中X、Y可以由用户选择来控制。
要求3:控制参数
设计思想:(1)所有的参数控制都要通过用户来选择,控制实现在主函数里,打印函数另行设计
设计思想:(2)数值范围可以设置几个输出函数,用户进行选择
设计思想:(3)是否有乘除法,可以在输出函数里控制,用户进行选择
设计思想:(4)加减有无负数可以用参数比较大小来实现
总体设计:程序里要涉及到很多条件判断,一层一层的设计,先把在所有要求都满足的情况下的结果输出,然后在一步步的展开,一项一项的完成。
二、程序源代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace sizeyunsuanqi { public partial class Form1 : Form { int shitishumu = 0; int shuzhifanwei1 = 0; int shuzhifanwei2 = 0; string suoyoufuhao; string fuhao; string d; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e)//通常初始化在Form1_Load事件中完成 { richTextBox1.Clear(); textBox1.Clear(); } private void button2_Click(object sender, EventArgs e)//button2(清除按钮)的单击事件:清除功能,清除已选择选项内容 { richTextBox1.Clear(); textBox4.Text = ""; textBox2.Text = ""; textBox3.Text = ""; checkBox3.Checked = false; checkBox2.Checked = false; checkBox1.Checked = false; } private void button1_Click(object sender, EventArgs e) //button2(确认按钮)的单击事件:单击后,输出题目 { shitishumu = int.Parse(textBox4.Text);//用户控制输入试题数目 shuzhifanwei2 = int.Parse(textBox3.Text);//用户控制输入数值范围(大) shuzhifanwei1 = int.Parse(textBox2.Text);//用户控制输入数值范围(小) richTextBox1.Text += "尊敬的用户您好,您的请求已经得到确认"+"\r\n"; richTextBox1.Text += "您将打印 " + shitishumu + " 道题目" + "\r\n"; richTextBox1.Text += "您打印试题的数值范围是: " + shuzhifanwei1 + "-" + shuzhifanwei2 + "\r\n"; if (checkBox3.Checked == true) { richTextBox1.Text += "试题输出结果存在括号" + "\n"; } if (checkBox3.Checked == false) { richTextBox1.Text += "试题输出结果不存在括号" + "\n"; } if (checkBox2.Checked == true) { richTextBox1.Text += "试题输出结果中减法的结果存在负数" + "\n"; } if (checkBox2.Checked == false) { richTextBox1.Text += "试题输出结果中减法的结果不存在负数" + "\n"; } if (checkBox1.Checked == true) { richTextBox1.Text += "试题输出结果存在乘除法" + "\n"; } if (checkBox1.Checked == false) { richTextBox1.Text += "试题输出结果不存在乘除法" + "\n"; } System.Random number = new Random(System.DateTime.Now.Millisecond); //循环输出题目 for (int i = 0; i < shitishumu; i++) { int num1 = number.Next(shuzhifanwei1, shuzhifanwei2); int num2 = number.Next(shuzhifanwei1, shuzhifanwei2); int num3 = number.Next(shuzhifanwei1, shuzhifanwei2); int yunsuan1 = number.Next(0, 4); int yunsuan2 = number.Next(0, 2); int fuhaonum = number.Next(0, 2); if (fuhaonum == 0)//符号进行随机 { fuhao = "+"; }; if (fuhaonum == 1) { fuhao = "-"; }; int suoyoufuhaonum = number.Next(0, 4); if (suoyoufuhaonum == 0) { suoyoufuhao = "+"; }; if (suoyoufuhaonum == 1) { suoyoufuhao = "-"; }; if (suoyoufuhaonum == 2) { suoyoufuhao = "*"; }; if (suoyoufuhaonum == 3) { suoyoufuhao = "/"; }; if (checkBox3.Checked == true)//有括号情况 { textBox1.Text += num3; if (checkBox1.Checked == true)//有乘除法 { if (checkBox2.Checked == true)//减法有负数 { if (yunsuan1 == 0) { textBox1.Text += suoyoufuhao + "(" + num1 + "+" + num2 + ")" + "=" + "\r\n"; } else if (yunsuan1 == 1) { textBox1.Text += suoyoufuhao + "(" + num1 + "*" + num2 + ")" + "=" + "\r\n"; } else if (yunsuan1 == 2) { textBox1.Text += suoyoufuhao + "(" + num1 + "-" + num2 + ")" + "=" + "\r\n"; }//减法有负数 else if (yunsuan1 == 3 && num2 != 0) { textBox1.Text += suoyoufuhao + "(" + num1 + "/" + num2 + ")" + "=" + "\r\n"; }//除法有余数 } else if (checkBox2.Checked == false)//减法没有负数 { if (yunsuan1 == 0) { textBox1.Text += suoyoufuhao + "(" + num1 + "+" + num2 + ")" + "=" + "\r\n"; } else if (yunsuan1 == 1) { textBox1.Text += suoyoufuhao + "(" + num1 + "*" + num2 + ")" + "=" + "\r\n"; } else if (yunsuan1 == 2 && num1 > num2) { textBox1.Text += suoyoufuhao + "(" + num1 + "-" + num2 + ")" + "=" + "\r\n"; }//减法没有负数 else if (yunsuan1 == 2 && num1 <= num2) { textBox1.Text += suoyoufuhao + "(" + num2 + "-" + num1 + ")" + "=" + "\r\n"; }//减法没有负数 else if (yunsuan1 == 3 && num2 != 0) { textBox1.Text += suoyoufuhao + "(" + num1 + "/" + num2 + ")" + "=" + "\r\n"; }//除法有余数 } } else if (checkBox1.Checked == false)//没有乘除法 { if (checkBox2.Checked == true)//减法有负数 { if (yunsuan2 == 0) { textBox1.Text += fuhao + "(" + num1 + "+" + num2 + ")" + "=" + "\r\n"; } else if (yunsuan2 == 1) { textBox1.Text += fuhao + "(" + num1 + "-" + num2 + ")" + "=" + "\r\n"; }//减法有负数 } else if (checkBox2.Checked == false)//减法没有负数 { if (yunsuan2 == 0) { textBox1.Text += fuhao + "(" + num1 + "+" + num2 + ")" + "=" + "\r\n"; } else if (yunsuan2 == 1 && num1 > num2) { textBox1.Text += fuhao + "(" + num1 + "-" + num2 + ")" + "=" + "\r\n"; }//减法没有负数 else if (yunsuan2 == 1 && num1 <= num2) { textBox1.Text += fuhao + "(" + num2 + "-" + num1 + ")" + "=" + "\r\n"; }//减法没有负数 } } } else if (checkBox3.Checked == false)//没有括号 { if (checkBox1.Checked == true)//有乘除法 { if (checkBox2.Checked == true)//减法有负数 { if (yunsuan1 == 0) { textBox1.Text += num1 + "+" + num2 +"=" + "\r\n"; } else if (yunsuan1 == 1) { textBox1.Text += num1 + "*" + num2 + "=" + "\r\n"; } else if (yunsuan1 == 2) { textBox1.Text += num1 + "-" + num2 + "=" + "\r\n"; }//减法有负数 else if (yunsuan1 == 3 && num2 != 0) { textBox1.Text += num1 + "/" + num2 +"=" + "\r\n"; }//除法有余数 } else if (checkBox2.Checked == false)//减法没有负数 { if (yunsuan1 == 0) { textBox1.Text += num1 + "+" + num2 + "=" + "\r\n"; } else if (yunsuan1 == 1) { textBox1.Text += num1 + "*" + num2 + "=" + "\r\n"; } else if (yunsuan1 == 2 && num1 > num2) { textBox1.Text += num1 + "-" + num2 + "=" + "\r\n"; }//减法没有负数 else if (yunsuan1 == 2 && num1 <= num2) { textBox1.Text += num2 + "-" + num1 + "=" + "\r\n"; }//减法没有负数 else if (yunsuan1 == 3 && num2 != 0) { textBox1.Text += num1 + "/" + num2 + "=" + "\r\n"; }//除法有余数 } } else if (checkBox1.Checked == false)//没有乘除法 { if (checkBox2.Checked == true)//减法有负数 { if (yunsuan2 == 0) { textBox1.Text += num1 + "+" + num2 + "=" + "\r\n"; } else if (yunsuan2 == 1) { textBox1.Text += num1 + "-" + num2 + "=" + "\r\n"; }//减法有负数 } else if (checkBox2.Checked == false)//减法没有负数 { if (yunsuan2 == 0) { textBox1.Text += num1 + "+" + num2 + "=" + "\r\n"; } else if (yunsuan2 == 1 && num1 > num2) { textBox1.Text += num1 + "-" + num2 + "=" + "\r\n"; }//减法没有负数 else if (yunsuan2 == 1 && num1 <= num2) { textBox1.Text += num2 + "-" + num1 + "=" + "\r\n"; }//减法没有负数 } } } } } private void button3_Click(object sender, EventArgs e)//清除输出结果按钮 { textBox1.Text = ""; } private void checkBox3_CheckedChanged(object sender, EventArgs e) { } private void checkBox1_CheckedChanged(object sender, EventArgs e) { } private void checkBox2_CheckedChanged(object sender, EventArgs e) { } private void textBox2_TextChanged(object sender, EventArgs e) { } private void textBox3_TextChanged(object sender, EventArgs e) { } private void textBox4_TextChanged(object sender, EventArgs e) { } private void button4_Click(object sender, EventArgs e)//全屏清除按钮 { richTextBox1.Clear(); textBox1.Text = ""; textBox4.Text = ""; textBox2.Text = ""; textBox3.Text = ""; checkBox3.Checked = false; checkBox2.Checked = false; checkBox1.Checked = false; } } }
三、运算结果截图
四、程序存在的问题
目前来说这个程序还存在很多的问题:
1、本程序交互能力比较差,发生问题是没有很好的反馈,打印数量只有输入正整数程序才能正常运行;
2、数值范围的输入,用户可以输入整数范围,例如:-100到100,范围包括所有整数,也可以输出,输出结果没有为负数加上括号来区分,如果用户真的输入负数范围,打印出来就会是像 “1--1=”情况,理想的情况应该是“1-(-1)=”;
3、题目要求的所有功能只实现了一部分,并没有完全实现,尤其是打印方式没有规范,一直是纵向输出;
4、由于本人能力以及时间等多重复杂因素在内,本程序还只是一个简简单单的雏形,忘广大博友批评指正,谢谢;
五、psp记录表
1、项目计划总结:
周活动总结表
姓名: 韩雪东 日期:2015/03/09
日期 任务 | 听课 | 编写程序 | 阅读课本 | 准备考试 | 日总计 | ||
周日03/08 | 0 | ||||||
周一 | 200 | 60 | 260 | ||||
周二 | 300 | 60 | 360 | ||||
周三 | 100 | 180 | 280 | ||||
周四 | 100 | 100 | 200 | ||||
周五 | 200 | 100 | 20 | 320 | |||
周六 | 180 | 180 | |||||
周总结 | 900 | 560 | 140 | 1600 |
不包括上一周在内的累计时间
总计 | |||||||
平均 | |||||||
最大 | |||||||
最小 |
总计 | |||||||
平均 | |||||||
最大 | |||||||
最小 |
学生 韩雪东 日期 2015/03/09
教师 王建民 课程 PSP
日期 | 开始时间 | 结束时间 | 中断时间 | 净时间 | 活动 | 备注 |
03/11周三 | 10:30 | 11:00 | 0 | 30 | 写程序 | |
03/11周三 | 14:30 | 17:30 | 30 | 150 | 写程序 | |
03/12周四 | 14:30 | 17:30 | 80 | 100 | 写程序 | |
03/13周五 | 15:30 | 17:30 | 20 | 100 | 写程序 | |
03/14周六 | 14:30 | 18:00 | 30 | 180 | 写程序 | |
学生 韩雪东
日期 2015/03/09
教员 王建民
程序号 四则运算生成器升级版1.0
日期 | 编号 | 类型 | 引入阶段 | 排除阶段 | 修复时间 | 修复缺陷 |
03/11周三 | 01 | |||||
RichtextBox控件里面不能输出30道题目,只能输出一道题目。 改正:用textbox控件,输出代码“=”前加上“+”号解决了问题 | ||||||
03/12周四 | 02 | |||||
If判断语句里的条件出错,打印不出来想要的结果 改正:整理思路,重新整理代码 | ||||||
03/13周五 | ||||||
03/14周六 | ||||||
相关文章推荐
- 四则运算生成器升级版1.0设计思想
- 四则运算生成器升级版1.0代码规范与测试程序
- IIS_AD 1.0+生成器IIS插件方便提供空间加广告无限制版
- 四则运算生成器升级版2.0
- wow(mangos模拟器) 的物品生成器---wowItemEdit 1.0
- 数据库表结构生成器v1.0发布
- 基于Python的参考文献生成器1.0
- 实体类生成器v1.0发布
- Jekyll 1.0 发布,Ruby 的静态网站生成器
- 全国小学四则运算1.0
- CPassword弱密码生成器1.0
- 小学四则运算1.0
- 冲顶大会/芝士超人/花椒直播/头脑王者...答题助手升级版 v1.0
- ImagesSprite V1.0 Beta发布
- Java探索之旅(10)——数组线性表ArrayList和字符串生成器StringBuffer/StringBuilder
- python的迭代器iterator和生成器generator(关键字yield)的简单理解
- ASP.NET MVC 1.0 + spring.net 1.2.0.20288 + NHibernate 2.0.1.4000整合笔记(一)——准备工作
- Yii框架官方指南系列21——使用表单:使用表单生成器(CForm)
- 结队编程-基于gui的四则运算生成器
- Extjs表单生成器