一、成员
郑会吉(D23181103)
刘奇(D22180806)
码云仓库地址:郑会吉/new四则运算1018
二、扩展功能
根据题目难度设定不同分值
2.1解题思路
每次产生的题目难度相当,包含简单、一般和困难三种难度,答对后分别得分5分、8分和10分,最后计算总的得分。
2.2工作过程
2.3代码实现
case 1: //+,-,2
start = clock();
srand((unsigned)time(NULL));
for (int i = 0; i < numberExercise; i++) {
difficulty = rand() % 3 + 1;
N = Difficulty(difficulty);
if (N == 100) {
score_all = score_all + 5;
}
else if (N == 1000) {
score_all = score_all + 8;
}
else {
score_all = score_all + 10;
}
a1 = rand() % N;
a2 = rand() % N;
mode = rand() % 2;
int N2 = 1;
a1 = rand() % N;
N2 = N - a1;
a2 = rand() % N2;
mode = rand() % 2;
switch (mode) //确定运算符
{
case 0:
cout << a1 << "+" << a2 << "=" << endl;
c = a1 + a2;
break;
case 1:
if (a1 < a2) //考虑题的难度,避免结果为负数;
{
int b1 = 0;
b1 = a1;
a1 = a2;
a2 = b1;
c = a1 - a2;
}
cout << a1 << "-" << a2 << "=" << endl;
break;
}
cout << "请输入答案:";
cin >> k;
if (k == c) {
cout << "恭喜你答对了,请再接再厉" << endl;
count = count + 1;
if (N == 100) {
score = score + 5;
}
else if (N == 1000) {
score = score + 8;
}
else {
score = score + 10;
}
}
else if (k != c) {
cout << "虽然答错了,但不要灰心哦,正确答案是" << c << endl;
}
now_time = clock() - start;
cout << "当前总用时" << now_time << endl;
if (now_time > 50000)
{
cout << "用时过长,休息一下吧!" << endl;
break;
}
}
correctrate = (count * 100) / numberExercise;
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
cout << "恭喜你做完了" << numberExercise << "道题目,做对了" << count << "道题目,正确率为 " << correctrate << "%,得分为" << score/score_all*100 <<" 一共耗时(s):" << duration << endl;
break;
三、评价
3.1可扩展性
代码易于扩展,可以方便地添加新的功能和特性。
3.2可维护性
本次项目的功能需求和软件设计简单,前期实现的代码严格按照文档编程,可维护性较好。