四则运算(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 }

if (window.name!="frSheet")
window.location.replace("../工作簿1.htm");
else
fnUpdateTabs();
//-->
<![endif]>
| 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 |
经过本次设计后发现自己对于这些所学到的知识依旧不能够灵活使用,但同时也学到了很多,比如psp表格的插入可以通过转换为html后通过引入源代码来插入,图片的插入也可以多样,网址插入或者是本地导入等等。

浙公网安备 33010602011771号