题目要求 :http://www.cnblogs.com/gdfhp/p/5311937.html

结对同伴: 姓名:胡仕辉   学号:130201225   博客地址:http://www.cnblogs.com/hushihui666/

实现功能:

  1) 题目的数量(个人项目的要求)

  2) 数值的范围(个人项目的要求)

  3) 题目中最多几个运算符

  4) 题目中或运算过程中有无有分数(比如进行整数除法的时候不能除尽)

  5) 题目中是否有乘除法

  6) 题目中是否有括号

我负责程序构建的算法设计,胡仕辉同学负责窗体和代码生成

主要在之前完成的作业算法上进行改进,附上博客地址:http://www.cnblogs.com/SaltWu/p/5281184.html

合作优点在于可以互相讨论,每个人的想法不一样,有时候卡在一个问题上,同伴一个意见就能帮我拐弯。

合作时的照片:

      

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 新四则运算
{public partial class 新四则运算 : Form{public 新四则运算(){InitializeComponent();}char[] ysf = { '+', '-', '*', '%'};static int GetRandomSeed()  //随机数种子,解决随机数一致问题
        {byte[] bytes = new byte[4];System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider();rng.GetBytes(bytes);return BitConverter.ToInt32(bytes, 0);}private void btn_1_Click(object sender, EventArgs e){int n = Convert.ToInt32(this.tbox_n.Text);  //获取生成题目数int r = Convert.ToInt32(this.tbox_r.Text);  //获取生成数范围int ysf = Convert.ToInt32(this.cbox_ysf.Text.ToString());  //获取运算符个数for(int i = 0; i < n; i++) //生成n道题
            {if (ysf == 1)  //一个运算符
                {ysf1(r); }else if (ysf == 2)  // 两个运算符
                {ysf2(r);}else    //三个运算符
                {ysf3(r);}input(" = ");input("\n");input("\n");}}public void ysf1(int r)   //一个运算符
        {if(cbox_fs.SelectedItem.ToString() == "是")   //包含分数
            {Random rd = new Random(GetRandomSeed());randnum1(r);  //插入随机数,可以是分数input_ysf();  //插入运算符
                randnum1(r);}else{Random rd = new Random(GetRandomSeed());randnum(r); //插入整数随机数
                input_ysf();randnum(r);}}public void ysf2(int r){Random rd = new Random(GetRandomSeed());int t = 0;t = rd.Next(2); //随机运算符数量,1或2,对零时变量t随机,结果为0,跳至ysf1,结果为1则为ysf2if (t == 0){ysf1(r);}else{if(cbox_kh.SelectedItem.ToString() == "是")  //包含括号
                {input_ysf2_kh(r);  }else{input_ysf2(r); }}}public void ysf3(int r){Random rd = new Random(GetRandomSeed());int t = 0;t = rd.Next(2); //随机运算符数量,对零时变量t随机,结果为0,跳至ysf2,结果为1则为ysf3if (t == 0){ysf2(r);}else{if (cbox_kh.SelectedItem.ToString() == "是")  //包含括号
                {int m = 0;m = rd.Next(3); //对加括号的形式进行随机if(m == 0){input_ysf3_kh1(r);  //括号形式1
                    }else if(m == 1){input_ysf3_kh2(r);   //括号形式2
                    }else{input_ysf3_kh3(r);  //括号形式3
                    }                       }else{input_ysf3(r);   //不含括号
                }}}public void input_ysf(){input(" "); //运算符前后空格Random rd = new Random(GetRandomSeed());if (cbox_ccf.SelectedItem.ToString() == "是") {input(ysf[rd.Next(4)].ToString());//包含乘除法
            }else{input(ysf[rd.Next(2)].ToString());//不含乘除法
            }input(" ");}public void input_ysf2(int r){if(cbox_fs.SelectedItem.ToString() == "是")  //判断是否含分数
            {randnum1(r);   input_ysf();randnum1(r);input_ysf();randnum1(r);}else{randnum(r);  input_ysf();randnum(r);input_ysf();randnum(r);}}public void input_ysf2_kh(int r){if (cbox_fs.SelectedItem.ToString() == "是") //含分数
            {input("(");randnum1(r);input_ysf();randnum1(r);input(")");input_ysf();randnum1(r);}else{input("(");randnum(r);input_ysf();randnum(r);input(")");input_ysf();randnum(r);}}public void input_ysf3(int r){if (cbox_fs.SelectedItem.ToString() == "是")  //含分数
            {randnum1(r);input_ysf();randnum1(r);input_ysf();randnum1(r);input_ysf();randnum1(r);}else{randnum(r);input_ysf();randnum(r);input_ysf();randnum(r);input_ysf();randnum(r);}}public void input_ysf3_kh1(int r)  //带括号形式1
        {if (cbox_fs.SelectedItem.ToString() == "是"){input("[");input("(");randnum1(r);input_ysf();randnum1(r);input(")");input_ysf();randnum1(r);input("]");input_ysf();randnum1(r);}else{input("[");input("(");randnum(r);input_ysf();randnum(r);input(")");input_ysf();randnum(r);input("]");input_ysf();randnum(r);}}public void input_ysf3_kh2(int r)  //带括号形式2
        {if (cbox_fs.SelectedItem.ToString() == "是"){randnum1(r);input_ysf();input("(");randnum1(r);input_ysf();randnum1(r);input(")");input_ysf();randnum1(r);}else{randnum(r);input_ysf();input("(");randnum(r);input_ysf();randnum(r);input(")");input_ysf();randnum(r);}}public void input_ysf3_kh3(int r)  //带括号形式3
        {if (cbox_fs.SelectedItem.ToString() == "是"){input("(");randnum1(r);input_ysf();randnum1(r);input(")");input_ysf();input("(");randnum1(r);input_ysf();randnum1(r);input(")");}else{input("(");randnum(r);input_ysf();randnum(r);input(")");input_ysf();input("(");randnum(r);input_ysf();randnum(r);input(")");}}public void randnum(int r) //对数进行随机,只能是整数
        {Random rd = new Random(GetRandomSeed());int num;do{num = rd.Next(r + 1);} while (num == 0); // 随机整数不为 0
input(num.ToString());}public void randnum1(int r) //对数进行随机,可为分数
        {int t = 0;Random rd = new Random(GetRandomSeed());t = rd.Next(2); //对零时变量t随机,结果为0,这个数为整数,结果为1则为分数if (t == 0){int num;do{num = rd.Next(r + 1);} while (num == 0); // 随机整数不为 0
input(num.ToString());}else{randnum2(r);}}public void randnum2(int r) //分数随机
        {Random rd = new Random(GetRandomSeed());int x, y; //x为分子,y为分母do{x = rd.Next(r + 1);} while (x == 0); //分子不为0do{y = rd.Next(r + 1);} while (y == 0 || y == x); //分母不为0,且不等于分子if (x > y) //如果分子比分母大,则对调分子分母位置
            {int t = x;x = y;y = t;}input(x.ToString());input("/");input(y.ToString());}public void input(string t){tbox_shuchu.AppendText(t);}private void btn_clc_Click(object sender, EventArgs e){tbox_shuchu.Clear();}}
}

程序执行截图:

转载于:https://www.cnblogs.com/SaltWu/p/5361650.html

Homework_4 四则运算 - C#版相关推荐

  1. 四则运算网页版--结对项目

    前言: 这次项目是用前后台分离,后台代码由servlet编写.项目部署于我的个人服务器. github仓库地址https://github.com/LeonP3ng/CalculateWeb.git ...

  2. 四则运算web版需求规格说明书

    目录 1引言... 4 1.1  目的... 4 1.2  背景... 4 1.3  术语... 4 1.4  预期读者与阅读建议... 5 1.5  参考资料... 6 1.6  需求描述约定... ...

  3. java 四则运算_四则运算————javaweb版

    1.设计思路: 定义一个类arithmetic,在该类中的定义相关成员,随机产生的题目以及答案用数组承接,在第一个jsp里面用户输入题目数量以及设置做题时间,将这两个数传到第二个jsp页面,在此页面定 ...

  4. 四则运算安卓版ver.mk2

    做了一点微小的变动....非常微小...不过美观点了就是...那就是----加背景! 变更后的部分代码: 1 <LinearLayout xmlns:android="http://s ...

  5. 【2017下集美大学软工1412班_助教博客】结对编程1——模块化

    作业要求 结对编程1-模块化 总成绩 计算方法: 百分数=总分/40*100 其中总分=个人作业+结对编程作业分数 个人项目成绩 (占原始总分的 20%) = ​ 每次作业成绩的累加,再把全班同学的最 ...

  6. 课堂结对作业:二维数组(4)

    结队成员:陈欣容.孙奇文 1.题目:四则运算web版:把程序变成一个网页程序,用户通过设定参数,就可以得到各种题目,并可实现在线答题并评判 四则运算web版的程序设计思想:之前的程序是可以用户自定义生 ...

  7. java文档注释加减乘除,java计算器加减乘除

    TOMCAT7.0, IE8 三.实验内容及步骤 1.创建一个 web 工程,在页面中实现加减乘除的运算操作,并实现运算结果的计算显示, 注意进行异常处理,运行效果如下图所示.... ,本章的仿 Wi ...

  8. 软件工程概论-合作作业02-四则运算网页答题

    题目:四则运算web版:把程序变成一个网页程序,用户通过设定参数,就可以得到各种题目,并可实现在线答题并评判 四则运算web版的程序设计思想:之前的程序是可以用户自定义生成任意个数四则运算题目的,这次 ...

  9. 四则运算《安卓版》04

    结对小伙伴:张勋   http://www.cnblogs.com/X-knight/ 下载地址:http://files.cnblogs.com/files/wangjianly/WangJian. ...

最新文章

  1. Chapter 1 快速搭建-服务的注册与发现(Eureka)
  2. 有计算机二级证书当兵有好处吗,大学生拿到这个证书可享受的福利,当兵有什么不一样?...
  3. Scala数组和Java集合List的互转
  4. “去除更多的鲜艳色彩和动态效果的搭配,精简用户使用步长,让软件更像是一件工具。(不排除以后更先进的吸引眼球的方式)“。
  5. 昨天订了一台FSC Lifebook S6220
  6. uva 610(tarjan的应用)
  7. perl学习之:函数总结
  8. 偏差与方差,欠拟合与过拟合
  9. 推荐专栏丨《DBA的奋斗路》
  10. 模仿QZONE挂图效果
  11. 上周热点回顾(5.8-5.14)
  12. C++ ACM程序设计大赛--练习1
  13. Python实现回文
  14. [poj3580]SuperMemo(splay终结题)
  15. strlen函数php中文,strlen函数介绍与使用方法详解
  16. linux文件权限数字754,linux555、644、666、755、777权限详解数字代表什么意思
  17. 《算法图解》读书笔记—像小说一样有趣的算法入门书
  18. Type B和Type A的区别
  19. Always young
  20. 二、四维拟合股市理论的时空哲学

热门文章

  1. Android 编程下代码之(QQ消息列表滑动删除)
  2. Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用...
  3. 使用com.sun.imageio.plugins.png.PNGMetadata读取图片的元数据
  4. commons-lang3-3.2.jar中的常用工具类的使用
  5. 【技术实验】表格存储Tablestore准实时同步数据到Elasticsearch
  6. 数据中心推动的10大企业存储新趋势
  7. 在 Shell 脚本里使用数组
  8. AngularJS内置指令
  9. Mongodb 添加删除分片与非分片表维护
  10. Python+Selenium自动化