四则运算(c++)

软件工程导论 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19
作业要求 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11376
作业目标 编写一个能够自动生成四则运算题目的程序
学号 3190704209
  1 #include<iostream>
  2 #include<string>
  3 #include<stdlib.h>
  4 #include<time.h>
  5 using namespace std;
  6 int suiji2(int min,int max)
  7 {
  8   int b=-1;
  9    b=rand(); 
 10    if(b>max||b<min)
 11    {
 12       b%=max;//保证b<99
 13       b+=max;//防止余数为负
 14       b%=max;
 15       b+=1;//使得到的数在1~99之间
 16    }
 17    return b;
 18 }
 19 void main()
 20 {
 21   
 22   int a[100],b=5,c=1;
 23   string str="+-/*";
 24   while(1)                          //总循环可以无限生成题目
 25   {
 26      c=1; 
 27      //输入生成题目的条件
 28      cout<<"一共出几道题:";
 29      cin>>b;
 30      cout<<"是否有乘除法(1,0):";
 31      cin>>a[98];
 32      if(a[98]==0)
 33      {
 34        str="+-+-";
 35       }
 36      cout<<"最多几个数(10个数之间):";
 37      cin>>a[97];
 38      cout<<"数值范围:\n最大值:";
 39      cin>>a[96];
 40      cout<<"最小值:";
 41      cin>>a[95];
 42      cout<<"加减有无负数(1或0)(如果输入1则默认俩则加减运算):";
 43      cin>>a[94];
 44     if(a[98]==1)//如果前面输入了不包括乘除法则此条件无意义
 45     {
 46          cout<<"乘除有无余数(1或0)(如果输入1则默认俩则乘除运算):";
 47          cin>>a[93];
 48     }
 49      //结束输入生成题目的条件
 50     while(b--)                            //循环一次生成一道题
 51     {
 52           int num=suiji2(3,a[97]);cout<<endl;
 53           int i=0,j=0;
 54           while(i<=num*3)                  // 初始化数组
 55           {
 56               a[i]=suiji2(a[95],a[96]);
 57                 i++;
 58           }
 59           while(j<=num*3)
 60           {
 61               a[j]%=4;//运算符
 62               a[j+1]%=2;//括号
 63               if(a[j+1]==1)
 64             {
 65                 a[j+4]=-1;
 66             }
 67             j+=3;
 68           }
 69           cout<<"";
 70           if(a[94]==1||a[93]==1)
 71         {
 72           num=2;
 73           }   
 74 
 75       cout<<"No."<<c++<<":";   //题目计数器
 76       if(num==2)              //2则运算
 77       {
 78        
 79           if(a[94]==1&&a[3]==1)
 80           { 
 81               if(a[2]<a[5])
 82              {
 83                  cout<<a[5]<<str[a[3]]<<a[2];
 84              }
 85               else
 86                   cout<<a[2]<<str[a[3]]<<a[5];
 87           }
 88          else if(a[3]==2&&a[93]==1)
 89          {
 90               if(a[2]%a[5]!=0)
 91              {
 92                  cout<<a[2]-(a[2]%a[5])<<str[a[3]]<<a[5];
 93              }
 94               else
 95                   cout<<a[2]<<str[a[3]]<<a[5];
 96           }
 97          else cout<<a[2]<<str[a[3]]<<a[5];
 98 
 99       }
100       else                           //多则运算
101       {
102         j=1; 
103         while(j<=num*3)
104         {
105         
106           if(a[j]==1&&j<num*3-3&&a[j+2]!=2&&a[j+2]!=3)cout<<"(";
107           cout<<a[j+1];
108           if(a[j-3]==1&&j>3&&a[j-1]!=2&&a[j-1]!=3)cout<<")";
109           if(j<(num*3-3))cout<<str[a[j+2]];
110           j+=3;
111         }
112       }
113       cout<<"="<<endl;
114   }
115   }
116 }

<head> <meta http-equiv=Content-Type content="text/html; charset=gb2312"> <meta name=ProgId content=Excel.Sheet> <meta name=Generator content="Microsoft Excel 15"> <link id=Main-File rel=Main-File href="../工作簿1.htm"> <link rel=File-List href=filelist.xml> <link rel=Stylesheet href=stylesheet.css> <style> <!--table {mso-displayed-decimal-separator:"\."; mso-displayed-thousand-separator:"\,";} @page {margin:.75in .7in .75in .7in; mso-header-margin:.3in; mso-footer-margin:.3in;} ruby {ruby-align:left;} rt {color:windowtext; font-size:9.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:等线; mso-generic-font-family:auto; mso-font-charset:134; mso-char-type:none; display:none;} --> </style> <![if !supportTabStrip]><script language="JavaScript"> <!-- function fnUpdateTabs() { if (parent.window.g_iIEVer>=4) { if (parent.document.readyState=="complete" && parent.frames['frTabs'].document.readyState=="complete") parent.fnSetActiveSheet(0); else window.setTimeout("fnUpdateTabs();",150); } }

if (window.name!="frSheet")
window.location.replace("../工作簿1.htm");
else
fnUpdateTabs();
//-->

<![endif]>

</head>
psp 任务内容 计划完成需要的时间(h) 实际完成需要的时间(h)
Planning 计划 0.2 0.2
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 0.2 0.2
Development 开发 30 34
Analysis 需求分析(包括学习新技术) 3 5
Design  Spec 生成设计文档 0.2 0.3
Design  Review 设计复审 0.2 0.4
Coding Standard 代码规范 0.2 0.3
Design 具体设计 5 4
Coding  具体编码 10 9
Code Review 代码复审 2 1.8
Test 测试(自我测试,修改代码,提交修改) 0.2 0.3
Reporting 报告 2 1.2
Test Report 测试报告 0.2 0.2
Size Measurement 计算工作量 0.2 0.3
Postmortem&Process Improvement Plan 事后总结,并提出过程改进计划 0.2 0.1
</body>

经过本次设计后发现自己对于这些所学到的知识依旧不能够灵活使用,但同时也学到了很多,比如psp表格的插入可以通过转换为html后通过引入源代码来插入,图片的插入也可以多样,网址插入或者是本地导入等等。

posted @ 2020-10-27 23:58  编程不易  阅读(902)  评论(0)    收藏  举报