四则运算三

一、设计思路

 总是在c++中编程不免有点乏味,这次我尝试用了上学期的c#。主要是选择合适的控件,布置页面然后利用上次c++的编程思路和过程,实现在c#中的输出,主要是控制条件要改对,要与控件内容相对应。

二、源代码

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 sizeyunsuan
{
    
    public partial class Form1 : Form
    {
        string[] abc = new string[10000];
        public Form1()
        {
            InitializeComponent();
        }
        
        private void textBox3_TextChanged(object sender, EventArgs e)
        {

        }
        System.Random rd = new Random(System.DateTime.Now.Millisecond);
        System.Random fh= new Random(System.DateTime.Now.Millisecond);
        private void button1_Click(object sender, EventArgs e)
        {
           
            int shul = int.Parse(shuliang.Text);
            int fanweio = int.Parse(fanwei1.Text);
            int fanweit = int.Parse(fanwei2.Text);
            int jiange1 = int.Parse(jiange.Text);
            
            //char fuh, yushu;
            for (int i = 0; i < shul; i++)//循环输出所需的题目数量
            {
                int num1 = rd.Next(fanweio, fanweit);
                int num2 = rd.Next(fanweio, fanweit);
                int a = num1 + num2;
                int b = num1 - num2;
                int c = num1 * num2;
                int d = num1 / num2;
                for (int j = 0; j < jiange1; j++)//控制题目行间隔
                {
                    shengcheng.Text += "\r\n";
                }
                if (checkBox4.Checked == true)//判断是否存在余数
                {
                    if (checkBox1.Checked == true)//判断是否有乘除号
                    {
                        int fuhaos1 = fh.Next(0, 4);
                        switch (fuhaos1)//通过判断随机数值选择符号
                        {
                            case 0: shengcheng.Text += "("+(i+1)+")"+num1 + "+" + num2 + "=" + "\r\n";
                                abc[i]= "(" + (i + 1) + ")" + a + "\r\n"; 
                                break;
                            case 1: shengcheng.Text += "(" + (i + 1) + ")" + num1 + "-" + num2 + "=" + "\r\n";
                                abc[i] = "(" + (i + 1) + ")" + b + "\r\n"; 
                                break;
                            case 2: shengcheng.Text += "(" + (i + 1) + ")" + num1 + "*" + num2 + "=" + "\r\n";
                                abc[i] = "(" + (i + 1) + ")" + c + "\r\n"; 
                                break;
                            case 3: shengcheng.Text += "(" + (i + 1) + ")" + num1 + "/" + num2 + "=" + "\r\n";
                                abc[i] = "(" + (i + 1) + ")" + d + "\r\n"; 
                                break;
                        }
                    }
                    else
                    {
                        int fuhaos2 = fh.Next(0, 2);
                        switch (fuhaos2)//通过判断随机数值选择符号
                        {
                            case 0: shengcheng.Text += "(" + (i + 1) + ")" + num1 + "+" + num2 + "=" + "\r\n";
                                abc[i] = "(" + (i + 1) + ")" + a + "\r\n"; 
                                break;
                            case 1: shengcheng.Text += "(" + (i + 1) + ")" + num1 + "-" + num2 + "=" + "\r\n";
                                abc[i] = "(" + (i + 1) + ")" + b + "\r\n"; 
                                break;
                        }
                    }

                }
                else
                {

                    if (num1 % num2 != 0)//判断是否存在余数
                    {
                        int fuhaos2 = fh.Next(0, 2);
                        switch (fuhaos2)//通过判断随机数值选择符号
                        {
                            case 0: shengcheng.Text += "(" + (i + 1) + ")" + num1 + "+" + num2 + "=" + "\r\n";
                                abc[i] = "(" + (i + 1) + ")" + a + "\r\n"; 
                                break;
                            case 1: shengcheng.Text += "(" + (i + 1) + ")" + num1 + "-" + num2 + "=" + "\r\n";
                                abc[i] = "(" + (i + 1) + ")" + b + "\r\n"; 
                                break;
                        }//没有余数则随机生成四则运算//有余数则随机生成+、-符号运算
                    }
                    else
                    {
                        if (checkBox1.Checked == true)//判断是否有乘除号
                        {

                            int fuhaos1 = fh.Next(0, 4);
                            switch (fuhaos1)//通过判断随机数值选择符号
                            {
                                case 0: shengcheng.Text += "(" + (i + 1) + ")" + num1 + "+" + num2 + "=" + "\r\n";
                                    abc[i] = "(" + (i + 1) + ")" + a + "\r\n"; 
                                    break;
                                case 1: shengcheng.Text += "(" + (i + 1) + ")" + num1 + "-" + num2 + "=" + "\r\n";
                                    abc[i] = "(" + (i + 1) + ")" + b + "\r\n"; 
                                    break;
                                case 2: shengcheng.Text += "(" + (i + 1) + ")" + num1 + "*" + num2 + "=" + "\r\n";
                                    abc[i] = "(" + (i + 1) + ")" + c + "\r\n"; 
                                    break;
                                case 3: shengcheng.Text += "(" + (i + 1) + ")" + num1 + "/" + num2 + "=" + "\r\n";
                                    abc[i] = "(" + (i + 1) + ")" + d + "\r\n"; 
                                    break;
                            }
                        }
                        else
                        {
                            int fuhaos2 = fh.Next(0, 2);
                            switch (fuhaos2)//通过判断随机数值选择符号
                            {
                                case 0: shengcheng.Text += "(" + (i + 1) + ")" + num1 + "+" + num2 + "=" + "\r\n";
                                    abc[i] = "(" + (i + 1) + ")" + a + "\r\n";
                                    break;
                                case 1: shengcheng.Text += "(" + (i + 1) + ")" + num1 + "-" + num2 + "=" + "\r\n";
                                    abc[i] = "(" + (i + 1) + ")" + b + "\r\n";
                                    break;
                            }
                        }//没有余数则随机生成四则运算//有余数则随机生成+、-符号运算
                      
                     }
                }
            }

        }
            
        

        private void shuliang_TextChanged(object sender, EventArgs e)
        {

        }

        private void shengcheng_TextChanged(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            shuliang.Text="";
            fanwei1.Text = "";
            fanwei2.Text = "";
            jiange.Text = "";
            shengcheng.Text = "";
            jieguo.Text = "";
            checkBox3.Checked = false;
            checkBox2.Checked = false;
            checkBox1.Checked = false;
            checkBox4.Checked = false;
        }

        private void button3_Click(object sender, EventArgs e)
        {
             int shul = int.Parse(shuliang.Text);
             for (int i = 0; i < shul; i++)
             {
                 jieguo.Text += abc[i];
             }
        }
    }
}

三、实验结果截图
1、

2、

3、

4、

四、实验总结

  本次试验利用了上学期所学的c#,我本人感觉比用c++的成就感要大,因为结果界面就让人看着比较舒服。在程序实现的思路上基本使用的四则运算二的思路,主要变的是循环条件的控制变量,大致过程是一样的。只是主要输出函数全部都变到了“确定”这个键的函数中,利用label控件输出提示,用textbox来输入输出结果。重新生成键可以让全屏内容清空便于下次输入。在做完题目后,可按生成结果键检查对错。

  通过本次编程我了解了思路的重要性,它可以移植到不同的语言,解决相同的问题。还有通过本次编程我感到了不同语言的共通性,对于学习新的语言不再有那么大的抵触心理,因为编程思路是大同小异的。

五、表格

周活动总结表

姓名:高扬                                日期:2015.3.22

日期\任务

听课(分)

编写程序(分)

阅读课本(分)

准备考试(分)

 

 

日总计(分)

周日

 

 

 

 

 

 

 

周一

 

 

 

 

 

 

 

周二

 400

 

 20

 

 

 

 420

周三

 100

 20

 10

 

 

 

 130

周四

 300

 20

 15

 

 

 

 335

周五

 200

 30

 30

 

 

 

 260

周六

 

 20

15

 

 

 

 35

周总结(分)

1000

 90

 90

 

 

 

 1180

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

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

总计

 

 

 

 

 

 

 

平均

 

 

 

 

 

 

 

最大

 

 

 

 

 

 

 

最小

 

 

 

 

 

 

 

以前各周累计时间                                                                          

总计

  1000

90

90

 

 

 

1180

平均

 1000

90

90

 

 

 

1180

最大

 1000

90

90 

 

 

 

1180

最小

 1000

90

90

 

 

 

1180 

 

 

时间记录表:

学生         高扬                                           日期        2015.3.22  

教师        王建民                                             课程           PSP       

日期

开始时间

结束时间

中断时间

净时间

活动

备注

 2015.3.18

 8:00

 9:50

 10

 100

听课

 计算机网络课程

 

 12:40

12:50 

 

 10

读书

 阅读《梦断代码》

 

19: 00

 19:20

 

 20

编写程序 

设计c#框架

 2015.3.19

10:10

12:00

10

100

听课

计算机接口技术课

 

14:00

15:50

10

100

听课

嵌入式开发技术上课

 

 16:40

 16:55

 

 15

 看书

 阅读《梦断代码》

 

 20:10

 20:30

 

 20

编写程序

界面建好改参数

2015.3.20

8:00

9:50

10

100

听课

软件工程课

 

10:10

12:00

10

100

听课

操作系统课

 

12:30

13:00

 

30

看书

阅读《梦断代码》

 

20:15

20:45

 

30

编写程序

实现部分功能

2015.3.21

13:15

13:35

 

20

编写程序

 修改错误完善程序,输出结果。美化界面

 

 

 

 

 

 

缺陷记录日志: 

学生       高扬  

日期       2015.3.22   

教员       王建民   

程序号           

日期

编号

类型

引入阶段

排除阶段

修复时间

修复缺陷

2015.3.19

 1

 

 编码

编译 

 10min

 

 描述: textbox默认属性与int不匹配

2015.3.19

 2

 

 编码

 编译

 5min

 

 描述:函数调用失败(与c++中不大一样,未解决,将函数体最后写入主体中)

 2015.3.20

 3

 

 编码

 编译

 1min

 

 描述:数组定义位置错误

 

 

 

posted @ 2015-03-22 14:13  月之空  阅读(329)  评论(1编辑  收藏  举报