PS:这是昨天编写的随机生成四则运算式2的代码:http://www.cnblogs.com/wsqJohn/p/5264448.html 做了一些改进。

补:在上一次的运行中并没有加入真分数参与的运算,创建一个子函数string create_num()来随机生成一个数,大大简便了代码的复杂度。


 // 按要求随机生成四则运算  王世强 2015/3/12
#include<fstream>
#include<iostream>
#include<stdlib.h>
#include<iomanip>
#include<time.h>
#include<cmath>
#include<string>
#include<stdio.h>
using namespace std;
#define random() (rand()%100000) //符号生成
char create_symbol(int n)
{
int n1,j;
char symbol[];
if(n==)
{
n1=;
}
else if(n=)
{
n1=;
}
j=random()%n1;
if(j==) symbol[]='+';
else if(j==) symbol[]='-';
else if(j==) symbol[]='*';
else symbol[]='/';
return symbol[];
}
//把数字转换成字符串型
string int_string(int number)
{
char str[];
itoa(number,str,);
string str_=str;
return str_;
}
//真分数合成一个字符串
string combination1(string str1,string str2,char k)
{
string equation;
equation=str1+k+str2;
return equation;
}
//新生成一个数
string create_num(int proper_fs,int range)
{
int num,num1,num2,fs;
string str_num,str_num1,str_num2;
num=random()%range+;
str_num=int_string(num);
if(proper_fs==)
{
fs=random()%;
if(fs==)//判断是否生成真分数
{
for(;;)
{
num1=random()%range+;
num2=random()%range+;
if(num1<num2) break;
}
str_num1=int_string(num1);
str_num2=int_string(num2);
str_num=combination1(str_num1,str_num2,'/');
}
}
return str_num;
}
//运算式转换成一个字符串
string combination(string str1,string str2,char k)
{
string equation;
equation=str1+' '+k+' '+str2;
return equation;
}
//主函数
int main()
{
srand((int)time(NULL)); //设置时间种子 ,使得程序每次运行的结果都不同
int num1,num2,num3,num4,count,n,change,amount,shuchu,range,j,repeat=,bracket,proper_fs;
string str_num1,str_num2,temp;
cout<<"有无乘除法?1有,0没有:"<<endl;
cin>>n;
cout<<"是否有括号?1有,0没有:"<<endl;
cin>>bracket;
cout<<"是否有真分数?1有,0没有:"<<endl;
cin>>proper_fs;
cout<<"题目是否在文件中输出?1是,0不是:"<<endl;
cin>>shuchu;
cout<<"请输入数字范围:"<<endl;
cin>>range;
cout<<"请输入出题数量:"<<endl;
cin>>amount;
string Equation[amount];
char symbol;
ofstream fout;
if(shuchu==)
{
fout.open("fl.txt");
fout<<生成的<<amount<<"道四则运算题如下:"<<endl;
}
else
{
cout<<生成的<<amount<<"道四则运算题如下:"<<endl;
}
for(int i=;i<amount;i++)
{
count=random()%+;
str_num1=create_num(proper_fs,range);
str_num2=create_num(proper_fs,range);
symbol=create_symbol(n);
Equation[i]=combination(str_num1,str_num2,symbol);
if(count>)
{
for(count;count>;count--)
{
symbol=create_symbol(n);
str_num1=Equation[i];
if(bracket==)
{
change=random()%;
if(change==)
{
str_num1='('+str_num1+')';
}
}
symbol=create_symbol(n);
str_num2=create_num(proper_fs,range);
change=random()%;
if(change==)
{
temp=str_num1;
str_num1=str_num2;
str_num2=temp;
}
Equation[i]=combination(str_num1,str_num2,symbol);
}
}
//判断是否重复
for(j=;j<i;j++)
{
if(Equation[j]==Equation[i])
{
i=i-;
repeat=;
break;
}
}
if(repeat!=)//若不重复,则输出
{
if(shuchu==)
{
fout<<Equation[i]<<"="<<endl;
}
else
{
cout<<Equation[i]<<"="<<endl;
}
} }
if(shuchu==)
{
fout.close();
}
}
 

实验结果截图:

  

文件输出时:

总结:原本昨天就把程序写完提交了,但是,想想还可以改进,就又忍不住修改了一下,争取做到更好!

项目计划总结:

日期&&任务 听课 编写程序 阅读相关书籍 网上查找资料   日总计
周一 2 4 2 2 10
周二   3    1 4
周三          
周四 2 2     4
周五   5  1 1 7
周六    4     4
周日     2   2
周总计 4 18 5 4 31

时间记录日志:

日期 开始时间 结束时间 中断时间 净时间 活动 备注
3/7 14:00 15:50 10 100 听课 软件工程上课
  16:00 18:20   140 编写程序 编写老师布置的作业
  19:00 21:00  10 110 阅读书籍 《构建之法》
  21:00 24:00 20 160 网上查找资料,编程 作业2,讨论问题
3/8 16:00 18:00  10 110 查资料,编写程序 作业2
  21:00 21:50   50 阅读书籍 《构建之法》
3/9            
3/10 14:00 15:50  10 100 听课 软件工程上课
  19:00 21:20  20 100 查资料,编写程序 休息,聊天,作业2
3/11 8:00 10:05  5 120 写博客 发表本周博客
  16:10 18:30  10 140 修改程序,写博客  测试程序,发表博客
  19:00 19:40   40 阅读书籍 《构建之法》
  19:45 21:45 10 110 写博客,修改程序 休息,聊天,发表博客
3/12 15:20 19:50  30 240 修改程序,写博客 休息,谈论问题,修改,发表博客
3/13 19:00 19:30   30 阅读书籍 计划阅读《梦断代码》

缺陷记录日志:

日期 编号 类型 引入阶段 排除阶段 修复时间 修复缺陷
3/11之前 1 ... ... ... ...  
  描述:之前的忘了统计,下次注意!
3/12 2 20 编码 编译 15min  
  描述:修改累赘部分,采用了调用函数来新生成一个数。

随机生成四则运算式2-NEW+PSP项目计划(补充没有真分数的情况)的更多相关文章

  1. java 自动生成四则运算式

    本篇文章将要介绍一个“自动生成四则运算式”的java程序,在没有阅读<构建之法>之前,我已经通过一个类的形式实现了要求的功能,但是当阅读完成<构建之法>之后,我意识到自己所写程 ...

  2. (幼儿园毕业)Javascript小学级随机生成四则运算

    软件工程第二次结对作业四则运算自动生成器网页版 一.题目要求 本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题. ...

  3. 用Java随机生成四则运算

    代码链接:https://github.com/devilwjy/Code.Demo 需求分析: 1.程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符 ...

  4. 结对作业——随机生成四则运算(Core 第7组)

    结对作业 ——随机生成四则运算(core第7组) 吕佳玲 PB16060145 涂涵越 PB16060282 GITHUB地址 https://github.com/hytu99/homework_2 ...

  5. 随机生成长度为len的密码,且包括大写、小写英文字母和数字

    一道华三面试题,随机生成长度为len的密码,且包括大写.小写英文字母和数字,主要Random类的使用,random.nextInt(len)表示生成[0,len)整数.具体实现见下面代码,已经很详细了 ...

  6. Java随机生成18位身份证号

    package com.ihome.data; import java.text.SimpleDateFormat; import java.util.Calendar; import java.ut ...

  7. js 随机生成姓名、手机号、身份证号、银行卡号

    开发测试的时候,经常需要填写姓名.手机号.身份证号.银行卡号,既要符合格式要求.又不能重复.大家会到网上搜各种生成器.能不能自己写一个简单的生成器呢.下面是随机生成姓名.手机号.身份证号.银行卡号的j ...

  8. php随机生成验证码代码

    <?php session_start(); //产生一个随机的字符串验证码 $checkcode=""; for ($i=0;$i<4;$i++){ $checkco ...

  9. python 随机生成固定长度的字串

    from random import Random#随机生成4到20位的用户名def random_username(): username = '' chars = 'AaBbCcDdEeFfGgH ...

随机推荐

  1. Linux基础练习题(五)

    1.创建一个10G分区,并格式为ext4文件系统: (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl: [root@bj-1-142 ~]# ...

  2. docker故障问题修复

    systemctl start docker启动 systemctl restart docker重启 执行 vi /etc/sysconfig/selinux , 把 selinux 属性值改为di ...

  3. python的requests模块爬取网页内容

    注意:处理需要用户名密码认证的网站,需要auth字段. # -*- coding:utf-8 -*- import requests headers = { "User-Agent" ...

  4. [project X] tiny210(s5pv210)上电启动流程(BL0-BL2)

    建议参考文档: S5PV210-iROM-ApplicationNote-Preliminary-20091126 S5PV210_UM_REV1.1 项目介绍参考 [project X] tiny2 ...

  5. 《PHP基础全面总结》系列分享专栏

    <PHP基础全面总结>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201777.html 文章 PHP基础之运算符的使用方法 P ...

  6. 【Mac】解决「另一个活跃的 Homebrew 进程正在进行中」问题

    问题描述 在安装 tesseract 的语言包时,由于网络下载速度太慢,我按下 ctrl + z 退出了安装,当再次输入安装命令时,系统报错如下: 解决方法 使用以下命令删除 homebrew 进程锁 ...

  7. PTA基础编程题目集6-4求自定类型元素的平均 (函数题)

    6-4 求自定类型元素的平均 (10 分)  本题要求实现一个函数,求N个集合元素S[]的平均值,其中集合元素的类型为自定义的ElementType. 函数接口定义: ElementType Aver ...

  8. go 网络请求篇

    ---恢复内容开始--- 今天特意找了下go的网络请求篇,get请求是ok的,post请求一直不下来,搜索了下,代码都差不多,无法拿到post数据,先整理一篇,亲测可用. 针对post ,先来说下po ...

  9. 转 关于window10安装jdk,配置环境变量,javac不是内部或外部命令,也不是可运行的程序 或批处理文件的细节问题。

    今日拿到一台新的window10笔记本电脑,非常熟练的安装了JDK(因为在学校经常给同学安装JDK - -)但是发现java java -version命令都可以使用,唯独javac命令出现不是内部或 ...

  10. 20155213 2016-2017-2 《Java程序设计》第一周学习总结

    20155213 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 了解JVM.JRE与JDK,并下载.安装.测试JDK JVM JVM是Java Virtua ...