C++课程设计报告Word格式文档下载.docx

上传人:b****3 文档编号:15745026 上传时间:2022-11-15 格式:DOCX 页数:7 大小:43.75KB
下载 相关 举报
C++课程设计报告Word格式文档下载.docx_第1页
第1页 / 共7页
C++课程设计报告Word格式文档下载.docx_第2页
第2页 / 共7页
C++课程设计报告Word格式文档下载.docx_第3页
第3页 / 共7页
C++课程设计报告Word格式文档下载.docx_第4页
第4页 / 共7页
C++课程设计报告Word格式文档下载.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

C++课程设计报告Word格式文档下载.docx

《C++课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告Word格式文档下载.docx(7页珍藏版)》请在冰豆网上搜索。

C++课程设计报告Word格式文档下载.docx

usingnamespacestd;

//计算式数量

intconstNum=20;

//计算式中最大数

intconstMaxNum=100;

//每题分数

intconstPerMark=5;

//计算结果最大值

intconstMaxResult=100;

//计算结果最小值

intconstMinResult=0;

enumenum_1{Add,Subtract,Multiply,Divide};

classenump{

public:

charenum_2(enum_1op);

intResult(intleft,intright,enum_1op);

boolcheck(intleft,intright,enum_1op);

voidgetFormula(int*left,int*right,enum_1op);

enum_1op;

//操作符左值

intleft[Num];

//操作符右值

intright[Num];

//用户输入计算结果

intresult[Num],result_error[Num][4];

//操作符+-*/

enum_1oper[Num];

//正确答案个数

floatanswerRight;

};

//将枚举类型转换为字符类型,以便输出。

charenump:

:

enum_2(enum_1op)

{

switch(op)

{

caseAdd:

return'

+'

;

caseSubtract:

-'

caseMultiply:

x'

caseDivide:

/'

}

'

}

//计算生成表达式的正确结果。

intenump:

Result(intleft,intright,enum_1op)

returnleft+right;

returnleft-right;

returnleft*right;

returnleft/right;

return0;

//检查生成计算式的正确与否。

其中减法结果不能为负数,除法结果不能为小数。

boolenump:

check(intleft,intright,enum_1op)

returntrue;

if(left<

right)

returnfalse;

if(right==0)

if(double(left/right)!

=double(double(left)/double(right)))

//依据给定操作符,生成符合条件的表达式。

voidenump:

getFormula(int*left,int*right,enum_1op)

//srand(time(NULL));

for(;

*left=1+rand()%MaxNum;

//得出1到100其中的一个整数

*right=1+rand()%MaxNum;

if(check(*left,*right,op)&

&

Result(*left,*right,op)<

=MaxResult&

Result(*left,*right,op)>

=MinResult)

break;

intmain()

enumpp;

p.answerRight=0;

intk=0,h=0;

cout<

<

"

100以内的算术题"

endl<

endl;

//随机种子

srand(time(NULL));

//根据系统时间设置随机数种子

//开始生成计算表达式。

for(inti=0;

i<

Num;

i++)

//操作符

p.oper[i]=enum_1(rand()%4);

//取得区间[0,4)的整数,从而得到不同符号

p.getFormula(&

p.left[i],&

p.right[i],p.oper[i]);

生成计算式完成,开始答题!

//输出表达式,让用户答题

for(intj=0;

j<

j++)

//输出表达式

第"

j+1<

题:

\n"

p.left[j]<

'

p.enum_2(p.oper[j])<

p.right[j]<

"

="

//获取用户答案

cin>

>

p.result[j];

//比对用户答案是否正确,正确输出right,answerRigth加一,否则输出notcorrect。

if(p.result[j]==p.Result(p.left[j],p.right[j],p.oper[j]))

答案正确。

p.answerRight++;

cout<

当前得分"

p.answerRight*PerMark<

else

{p.result_error[k][0]=p.left[j];

p.result_error[k][1]=p.enum_2(p.oper[j]);

p.result_error[k][2]=p.right[j];

p.result_error[k][3]=p.result[j];

k++;

h++;

答案错误。

//全部答题完毕,输出正确答案个数及得分。

---------------------------------------------------------------------"

终止答题,共"

Num<

题,每题"

PerMark<

分,答对"

p.answerRight<

题,得分:

<

分。

正确率"

p.answerRight/Num*100<

%"

错误的题目:

for(intm=0;

m<

h;

m++)

{if(p.result_error[m][1]==47)

cout<

p.result_error[m][0]<

/"

p.result_error[m][2]<

p.result_error[m][3]<

(错误)"

elseif(p.result_error[m][1]==120)

x"

elseif(p.result_error[m][1]==43)

+"

else

-"

//屏幕停止。

getch();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1