-->
当前位置:首页 > 题库 > 正文内容

函数题:掷骰子 - C/C++ 类与抽象

Luz3年前 (2022-09-06)题库897
在公平的赌局中,一个六面骰子投掷的结果是随机且均匀分布的。请设计一个Dice类,使其可以被下述代码所使用,并产生期望的执行结果(具体数值除外)。


### 裁判测试程序样例:
c++
//Project - Dice
#include <iostream>
#include <cstdlib>
using namespace std;

//在此处定义Dice类

int main(){
srand(0);
auto d = Dice();

cout << "-------Roll dice for 1000 times------\n";
for (auto i=0;i<1000;i++){
auto r = d.rollDice();
if (i<10)
cout << r << ", ";
}
cout << "...\n";

cout << "------Statistics of rolling the dice------\n";
for (int i=1;i<=d.iSides;i++){
auto c = d.sideCount(i);
auto rc = d.rollCount();
cout << "Side " << i << ": " << c << " / " << rc
<< " = " << 100.0*c/rc << "%.\n";
}

return 0;
}


### 输入样例:
in


### 输出样例:
out
Done


重要说明:由于本题代码涉及到随机数,因此出题者无法设定固定的答案来评测答题者的程序。所以,出题者在后台设定了一个不同于题面的测试程序,该程序将会观察Dice类所得到的各种数据的一致性及随机性,如果正确,输出Done。

对于答题者而言,请依据上述样例进行本地测试,使得输出结果与下述样例类似即可(具体数值除外):

-------Roll dice for 1000 times------
3, 4, 5, 2, 6, 2, 2, 6, 5, 1, ...
------Statistics of rolling the dice------
Side 1: 158 / 1000 = 15.8%.
Side 2: 156 / 1000 = 15.6%.
Side 3: 161 / 1000 = 16.1%.
Side 4: 175 / 1000 = 17.5%.
Side 5: 165 / 1000 = 16.5%.
Side 6: 185 / 1000 = 18.5%.


请注意:函数题只需要提交相关代码片段,不要提交完整程序。

### 感觉不会?  那试着听听**免费的B站网课**
[简洁的C和C++ - 重庆大学在线课程](https://www.bilibili.com/video/BV1it411d7zx/)
[Python编程基础及应用 - 重庆大学在线课程](https://www.bilibili.com/video/BV1kt411R7uW/)
![image.png](~/6e79c9e3-cb7f-486d-ab78-36b5a8f655c0.png)










答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。