zoukankan      html  css  js  c++  java
  • 四则运算生成器升级版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)加减有无负数可以用参数比较大小来实现
        总体设计:程序里要涉及到很多条件判断,一层一层的设计,先把在所有要求都满足的情况下的结果输出,然后在一步步的展开,一项一项的完成。

    二、程序源代码

      1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Data;
      5 using System.Drawing;
      6 using System.Linq;
      7 using System.Text;
      8 using System.Windows.Forms;
      9 
     10 namespace sizeyunsuanqi
     11 {
     12     public partial class Form1 : Form
     13     {
     14         int shitishumu = 0;
     15         int shuzhifanwei1 = 0;
     16         int shuzhifanwei2 = 0;
     17         string suoyoufuhao;
     18         string fuhao;
     19         string d;
     20 
     21         public Form1()
     22         {
     23             InitializeComponent();
     24         }
     25         private void Form1_Load(object sender, EventArgs e)//通常初始化在Form1_Load事件中完成
     26         {
     27             richTextBox1.Clear();
     28             textBox1.Clear();
     29         }
     30         private void button2_Click(object sender, EventArgs e)//button2(清除按钮)的单击事件:清除功能,清除已选择选项内容
     31         {
     32             richTextBox1.Clear();
     33             textBox4.Text = "";
     34             textBox2.Text = "";
     35             textBox3.Text = "";
     36             checkBox3.Checked = false;
     37             checkBox2.Checked = false;
     38             checkBox1.Checked = false;
     39         }
     40         private void button1_Click(object sender, EventArgs e)        //button2(确认按钮)的单击事件:单击后,输出题目
     41         {
     42             shitishumu = int.Parse(textBox4.Text);//用户控制输入试题数目
     43             shuzhifanwei2 = int.Parse(textBox3.Text);//用户控制输入数值范围(大)
     44             shuzhifanwei1 = int.Parse(textBox2.Text);//用户控制输入数值范围(小)
     45             richTextBox1.Text += "尊敬的用户您好,您的请求已经得到确认"+"
    ";
     46             richTextBox1.Text += "您将打印 " + shitishumu + " 道题目" + "
    ";
     47             richTextBox1.Text += "您打印试题的数值范围是: " + shuzhifanwei1 + "-" + shuzhifanwei2 + "
    ";
     48             if (checkBox3.Checked == true)
     49             {
     50                 richTextBox1.Text += "试题输出结果存在括号" + "
    ";
     51             }
     52             if (checkBox3.Checked == false)
     53             {
     54                 richTextBox1.Text += "试题输出结果不存在括号" + "
    ";
     55             }
     56             if (checkBox2.Checked == true)
     57             {
     58                 richTextBox1.Text += "试题输出结果中减法的结果存在负数" + "
    ";
     59             }
     60             if (checkBox2.Checked == false)
     61             {
     62                 richTextBox1.Text += "试题输出结果中减法的结果不存在负数" + "
    ";
     63             }
     64             if (checkBox1.Checked == true)
     65             {
     66                 richTextBox1.Text += "试题输出结果存在乘除法" + "
    ";
     67             }
     68             if (checkBox1.Checked == false)
     69             {
     70                 richTextBox1.Text += "试题输出结果不存在乘除法" + "
    ";
     71             }
     72             
     73 
     74             System.Random number = new Random(System.DateTime.Now.Millisecond);
     75             //循环输出题目
     76             for (int i = 0; i < shitishumu; i++)
     77             {
     78                 int num1 = number.Next(shuzhifanwei1, shuzhifanwei2);
     79                 int num2 = number.Next(shuzhifanwei1, shuzhifanwei2);
     80                 int num3 = number.Next(shuzhifanwei1, shuzhifanwei2);
     81                 int yunsuan1 = number.Next(0, 4);
     82                 int yunsuan2 = number.Next(0, 2);
     83                 int fuhaonum = number.Next(0, 2);
     84                 if (fuhaonum == 0)//符号进行随机
     85                 {
     86                     fuhao = "+";
     87                 };
     88                 if (fuhaonum == 1)
     89                 {
     90                     fuhao = "-";
     91                 };
     92                 int suoyoufuhaonum = number.Next(0, 4);
     93                 if (suoyoufuhaonum == 0) 
     94                 { 
     95                     suoyoufuhao = "+"; 
     96                 };
     97                 if (suoyoufuhaonum == 1)
     98                 { 
     99                     suoyoufuhao = "-";
    100                 };
    101                 if (suoyoufuhaonum == 2)
    102                 {
    103                     suoyoufuhao = "*";
    104                 };
    105                 if (suoyoufuhaonum == 3) 
    106                 {
    107                     suoyoufuhao = "/"; 
    108                 };
    109 
    110                 if (checkBox3.Checked == true)//有括号情况
    111                 {
    112                     textBox1.Text += num3;
    113                     if (checkBox1.Checked == true)//有乘除法
    114                     {
    115                         if (checkBox2.Checked == true)//减法有负数
    116                         {
    117                             if (yunsuan1 == 0) { textBox1.Text += suoyoufuhao + "(" + num1 + "+" + num2 + ")" + "=" + "
    "; }
    118                             else if (yunsuan1 == 1) { textBox1.Text += suoyoufuhao + "(" + num1 + "*" + num2 + ")" + "=" + "
    "; }
    119                             else if (yunsuan1 == 2) { textBox1.Text += suoyoufuhao + "(" + num1 + "-" + num2 + ")" + "=" + "
    "; }//减法有负数
    120                             else if (yunsuan1 == 3 && num2 != 0) { textBox1.Text += suoyoufuhao + "(" + num1 + "/" + num2 + ")" + "=" + "
    "; }//除法有余数
    121                         }
    122                         else if (checkBox2.Checked == false)//减法没有负数
    123                         {
    124                             if (yunsuan1 == 0) { textBox1.Text += suoyoufuhao + "(" + num1 + "+" + num2 + ")" + "=" + "
    "; }
    125                             else if (yunsuan1 == 1) { textBox1.Text += suoyoufuhao + "(" + num1 + "*" + num2 + ")" + "=" + "
    "; }
    126                             else if (yunsuan1 == 2 && num1 > num2) { textBox1.Text += suoyoufuhao + "(" + num1 + "-" + num2 + ")" + "=" + "
    "; }//减法没有负数
    127                             else if (yunsuan1 == 2 && num1 <= num2) { textBox1.Text += suoyoufuhao + "(" + num2 + "-" + num1 + ")" + "=" + "
    "; }//减法没有负数
    128                             else if (yunsuan1 == 3 && num2 != 0) { textBox1.Text += suoyoufuhao + "(" + num1 + "/" + num2 + ")" + "=" + "
    "; }//除法有余数
    129 
    130                         }
    131                     }
    132                     else if (checkBox1.Checked == false)//没有乘除法
    133                     {
    134                         if (checkBox2.Checked == true)//减法有负数
    135                         {
    136                             if (yunsuan2 == 0) { textBox1.Text += fuhao + "(" + num1 + "+" + num2 + ")" + "=" + "
    "; }
    137                             else if (yunsuan2 == 1) { textBox1.Text += fuhao + "(" + num1 + "-" + num2 + ")" + "=" + "
    "; }//减法有负数
    138                         }
    139                         else if (checkBox2.Checked == false)//减法没有负数
    140                         {
    141                             if (yunsuan2 == 0) { textBox1.Text += fuhao + "(" + num1 + "+" + num2 + ")" + "=" + "
    "; }
    142                             else if (yunsuan2 == 1 && num1 > num2) { textBox1.Text += fuhao + "(" + num1 + "-" + num2 + ")" + "=" + "
    "; }//减法没有负数
    143                             else if (yunsuan2 == 1 && num1 <= num2) { textBox1.Text += fuhao + "(" + num2 + "-" + num1 + ")" + "=" + "
    "; }//减法没有负数
    144                         }
    145                     }
    146 
    147                 }
    148                 else if (checkBox3.Checked == false)//没有括号
    149                 {
    150                     if (checkBox1.Checked == true)//有乘除法
    151                     {
    152                         if (checkBox2.Checked == true)//减法有负数
    153                         {
    154                             if (yunsuan1 == 0) { textBox1.Text += num1 + "+" + num2 +"=" + "
    "; }
    155                             else if (yunsuan1 == 1) { textBox1.Text += num1 + "*" + num2 + "=" + "
    "; }
    156                             else if (yunsuan1 == 2) { textBox1.Text += num1 + "-" + num2 + "=" + "
    "; }//减法有负数
    157                             else if (yunsuan1 == 3 && num2 != 0) { textBox1.Text += num1 + "/" + num2 +"=" + "
    "; }//除法有余数
    158                         }
    159                         else if (checkBox2.Checked == false)//减法没有负数
    160                         {
    161                             if (yunsuan1 == 0) { textBox1.Text += num1 + "+" + num2 + "=" + "
    "; }
    162                             else if (yunsuan1 == 1) { textBox1.Text += num1 + "*" + num2 + "=" + "
    "; }
    163                             else if (yunsuan1 == 2 && num1 > num2) { textBox1.Text += num1 + "-" + num2 + "=" + "
    "; }//减法没有负数
    164                             else if (yunsuan1 == 2 && num1 <= num2) { textBox1.Text += num2 + "-" + num1 + "=" + "
    "; }//减法没有负数
    165                             else if (yunsuan1 == 3 && num2 != 0) { textBox1.Text += num1 + "/" + num2 + "=" + "
    "; }//除法有余数
    166 
    167                         }
    168                     }
    169                     else if (checkBox1.Checked == false)//没有乘除法
    170                     {
    171                         if (checkBox2.Checked == true)//减法有负数
    172                         {
    173                             if (yunsuan2 == 0) { textBox1.Text += num1 + "+" + num2 + "=" + "
    "; }
    174                             else if (yunsuan2 == 1) { textBox1.Text +=  num1 + "-" + num2 + "=" + "
    "; }//减法有负数
    175                         }
    176                         else if (checkBox2.Checked == false)//减法没有负数
    177                         {
    178                             if (yunsuan2 == 0) { textBox1.Text += num1 + "+" + num2 + "=" + "
    "; }
    179                             else if (yunsuan2 == 1 && num1 > num2) { textBox1.Text += num1 + "-" + num2 + "=" + "
    "; }//减法没有负数
    180                             else if (yunsuan2 == 1 && num1 <= num2) { textBox1.Text += num2 + "-" + num1 + "=" + "
    "; }//减法没有负数
    181                         }
    182                     }
    183 
    184                 }
    185 
    186             }
    187             
    188         }
    189 
    190         private void button3_Click(object sender, EventArgs e)//清除输出结果按钮
    191         {
    192             textBox1.Text = "";
    193         }
    194 
    195         private void checkBox3_CheckedChanged(object sender, EventArgs e)
    196         {
    197             
    198         }
    199 
    200         private void checkBox1_CheckedChanged(object sender, EventArgs e)
    201         {
    202             
    203         }
    204 
    205         private void checkBox2_CheckedChanged(object sender, EventArgs e)
    206         {
    207             
    208         }
    209 
    210         private void textBox2_TextChanged(object sender, EventArgs e)
    211         {
    212 
    213         }
    214 
    215         private void textBox3_TextChanged(object sender, EventArgs e)
    216         {
    217 
    218         }
    219 
    220         private void textBox4_TextChanged(object sender, EventArgs e)
    221         {
    222 
    223         }
    224 
    225         private void button4_Click(object sender, EventArgs e)//全屏清除按钮
    226         {
    227             richTextBox1.Clear();
    228             textBox1.Text = "";
    229             textBox4.Text = "";
    230             textBox2.Text = "";
    231             textBox3.Text = "";
    232             checkBox3.Checked = false;
    233             checkBox2.Checked = false;
    234             checkBox1.Checked = false;
    235 
    236         }
    237     }
    238 }

    三、运算结果截图

    四、程序存在的问题

    目前来说这个程序还存在很多的问题:

    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 

    阶段时间和效率                                            周数(上一次周活动表的周数+1):

    不包括上一周在内的累计时间                                                                         

    总计

     

     

     

     

     

     

     

    平均

     

     

     

     

     

     

     

    最大

     

     

     

     

     

     

     

    最小

     

     

     

     

     

     

     

    以前各周的累计时间                                                                                    

    总计

     

     

     

     

     

     

     

    平均

     

     

     

     

     

     

     

    最大

     

     

     

     

     

     

     

    最小

     

     

     

     

     

     

     

    2、时间记录表:

    学生        韩雪东                                                    日期       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

     写程序

     

     

     

     

     

     

     

     

     

    3、缺陷记录日志:

    学生          韩雪东              

    日期          2015/03/09         

    教员         王建民              

    程序号         四则运算生成器升级版1.0                    

    日期

    编号

    类型

    引入阶段

    排除阶段

    修复时间

    修复缺陷

     03/11周三

     01

     

     

     

     

     

     RichtextBox控件里面不能输出30道题目,只能输出一道题目。

    改正:用textbox控件,输出代码“=”前加上“+”号解决了问题

     03/12周四

     02

     

     

     

     

     

     If判断语句里的条件出错,打印不出来想要的结果

    改正:整理思路,重新整理代码

     03/13周五

     

     

     

     

     

     

     

     03/14周六

     

     

     

     

     

     

     

  • 相关阅读:
    【转载】 c++中static的用法详解
    ROS学习 Python读写文本文件
    (论文分析) Machine Learning -- Learning from labeled and unlabeled data
    (论文分析) 图像相似度和图像可见性分析
    (论文分析) Machine Learning -- Support Vector Machine Learning for Interdependent and Structured Output Spaces
    (论文分析) Object Detection-- Discriminatively Trained Part Based Models
    (论文分析) Machine Learning -- Predicting Diverse Subsets Using Structural SVMs
    (论文分析) Machine Learning -- Online Choice of Active Learning Algorithms
    (论文分析) Object Detection -- Class-Specific Hough Forests for Object Detection
    (论文分析) Object Detection -- A Boundary Fragment Model for Object Detection
  • 原文地址:https://www.cnblogs.com/hanshidiguo/p/4337796.html
Copyright © 2011-2022 走看看