/*四则运算生成要求: 1、题目避免重复 2、可定制(数量/打印方式) 3、可以控制下列参数 是否有乘除法 是否有括号· 数值范围 加减有无负数 除法有无余数设计思想:题目避免重复用数组,每次输出时与之前输出的比较是否相等。 输出数量由循环决定。 打印方式用if else 语句:可以直接输出,也可以输出到txt文件当中。 是否有乘除法,加减有无负数,除法有无余数都用if else语句。 正负数可以在每个数之前加一个运算符号:负号用“-”,正号用“ ”空格表示。 判断余数用z=x%y语句,判断z是否为0。 括号输出的考虑比较不周全,还不能达到随机随意添加括号。数字最多10个,符号最多9个, 创建符号的数组,如果符号数是奇数,则在没俩个数字之间添加括号;如果符号数是偶数,则第 一个数字不考虑,剩下的奇数个符号考虑与之前相同。*/#include#include #include #include using namespace std;int main(){ ofstream outfile; int i, a, b, c, d, e, f, g, l, m, o,x, y, z; int number, pcc, pccs, numf, pjj, pys, scfs; //pcc判断乘除,pccs判断随机数,numf数值范围,pf判断有无负数,pys判断有无余数,scfs输出方式 char fh1, fh2; //fh符号正负 int pdkh,pdkhs; //pdkh判断是否有括号,pdkhs括号随机数 int szgs, fhgs; //szgs数字个数,fhgs符号个数 int szsz[20]; //szsz数字数组,fhsz符号数组 char fh[4] = { '+', '-', '*', '/' }, fhsz[10]; cout << "请输入要打印的数量:"; cin >> number; cout << "请输入打印方式: 1、直接输出 2、输入到txt文件 :"; cin >> scfs; cout << "请输入数值范围:0-"; cin >> numf; cout << "是否有括号: 1、有 2、无 :"; cin >> pdkh; cout << "加减有无负数: 1、有 2、无 :"; cin >> pjj; cout << "是否有乘除法: 1、有 2、无 :"; cin >> pcc; if (pcc == 1) { cout << "除法有无余数: 1、有 2、无 :"; cin >> pys; } srand((unsigned)time(NULL));//时间种子,每次出现随机数不同 if (pdkh == 1) //判断是否有括号 { pdkhs = 3; } if (pdkh == 2) { pdkhs = 2; } if (pcc == 1) //判断是否有乘除 { pccs = 4; } if (pcc == 2) { pccs = 2; } for (i = 0; i < number; i++) { a = rand() % numf; b = rand() % numf; e = rand() % numf; f = rand() % numf; if (pjj == 1) { l = rand() % 2; m = rand() % 2; if (l == 0) //加减有负数时,随机生成正负号 { fh1 = '-'; } if (l == 1) { fh1 = ' '; } if (m == 0) { fh2 = '-'; } if (m == 1) { fh2 = ' '; } } else { fh1 = fh2 = ' '; } if (scfs == 1) //判断输出方式为直接输出 { switch (d = rand() % pdkhs) { case 0: //整数 { switch (c = rand() % pccs) { case 0:cout << fh1 << a << "+" << fh2 << b << "=" << endl; break; case 1:cout << fh1 << a << "-" << fh2 << b << "=" << endl; break; case 2:cout << a << "×" << b << "=" << endl; break; case 3: { if (pys == 2) { while (b == 0) { b = rand() % numf; } o = a%b; while (o != 0) { b = rand() % numf; while (b == 0) { a = rand() % numf; b = rand() % numf; } o = a%b; } } else { while (b == 0) { b = rand() % numf; } } cout << a << "÷" << b << "=" << endl; }break; } }break; case 1://真分数 { while (a == 0 || b == 0 || a >= b) { a = rand() % numf; b = rand() % numf; } while (e == 0 || f == 0 || e >= f) { e = rand() % numf; f = rand() % numf; } switch (g = rand() % pccs) { case 0: cout << fh1 << a << "/" << b << "+" << fh2 << e << "/" << f << "=" << endl; break; case 1: cout << fh1 << a << "/" << b << "-" << fh2 << e << "/" << f << "=" << endl; break; case 2: cout << a << "/" << b << "×" << e << "/" << f << "=" << endl; break; case 3: cout << a << "/" << b << "÷" << e << "/" << f << "=" << endl; }break; }break; case 2: { szgs = 3 + rand() % 8; //有括号时,数字和符号数组 fhgs = szgs - 1; for (y = 0; y < szgs; y++) { szsz[y] = rand() % numf; } for (y = 0; y < fhgs; y++) { x = rand() % 4; fhsz[y] = fh[x]; } fhsz[fhgs] = '='; switch (z=fhgs % 2) { case 0: { cout << szsz[0]; cout << fhsz[0]; for (y = 1; y < fhgs; y++) { cout << "("; cout << szsz[y]; cout << fhsz[y]; cout << szsz[y + 1]; cout << ")"; cout << fhsz[y + 1]; y = y + 1; }cout<
周活动总结表
姓名:王春帆 日期:2016/03/12
| 听课 | 编写程序 | 阅读课本 |
|
|
| 日总结 |
周日3.6 |
|
|
|
|
|
|
|
周一 | 100 |
| 30 |
|
|
| 130 |
周二 |
|
|
|
|
|
|
|
周三 |
|
|
|
|
|
|
|
周四 | 100 | 60 |
|
|
|
| 160 |
周五 |
|
| 30 |
|
|
| 30 |
周六 |
| 450 |
|
|
|
| 450 |
周总结 | 200 | 510 | 60 |
|
|
| 770 |
时间记录日志
学生:王春帆 日期:3/12/2016
教师:王建民 课程:软件工程
日期 | 开始 时间 | 结束时间 | 中断时间 | 净时间 | 活动 | 备注 | C | U |
3/7 | 14:00 | 15:50 | 10 | 100 | 上课 | 理论学时 |
|
|
| 19:00 | 19:30 |
| 30 | 看书 | 《构建之法》 |
|
|
3/10 | 14:00 | 15:50 | 10 | 100 | 上课 | 理论学时 |
|
|
| 20:00 | 21:00 |
| 60 | 编写程序 | 四则运算2 |
|
|
3/11 | 19:00 | 19:30 |
| 30 | 看课件 | 上课所讲 |
|
|
3/12 | 9:00 | 12:00 |
| 180 | 编写程序 | 四则运算2 |
|
|
| 13:00 | 15:00 |
| 120 | 编写程序 | 四则运算2 |
|
|
| 15:30 | 18:00 |
| 150 | 编写程序 | 四则运算2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
缺陷记录日志
学生:王春帆
日期:3/12/2016
教员:先生王
程序号:四则运算2
日期 | 编号 | 类型 | 引入阶段 | 排除阶段 | 修复时间 |
3/12 | 1 |
| 生成 | 错误列表 | 5min |
| 描述 | Char类型的赋值方式错误,应该用char a=’-’ 小括号 | |||
| 2 |
| 生成 | 调试 | 10min |
| 描述 | a/b 中b可能为0 | |||
| 3 |
| 生成 | 错误列表 | 1min |
| 描述 | If else 语句的括号错误 | |||
| 4 |
| 执行 | 修改代码 | 10min |
| 描述 | 输出到文件中只有一道运算题,输出方式需要修改 | |||
|
|
|
|
|
|