C++课程设计题目2小学生测验要点.docx

上传人:b****1 文档编号:2370761 上传时间:2023-05-03 格式:DOCX 页数:24 大小:528.78KB
下载 相关 举报
C++课程设计题目2小学生测验要点.docx_第1页
第1页 / 共24页
C++课程设计题目2小学生测验要点.docx_第2页
第2页 / 共24页
C++课程设计题目2小学生测验要点.docx_第3页
第3页 / 共24页
C++课程设计题目2小学生测验要点.docx_第4页
第4页 / 共24页
C++课程设计题目2小学生测验要点.docx_第5页
第5页 / 共24页
C++课程设计题目2小学生测验要点.docx_第6页
第6页 / 共24页
C++课程设计题目2小学生测验要点.docx_第7页
第7页 / 共24页
C++课程设计题目2小学生测验要点.docx_第8页
第8页 / 共24页
C++课程设计题目2小学生测验要点.docx_第9页
第9页 / 共24页
C++课程设计题目2小学生测验要点.docx_第10页
第10页 / 共24页
C++课程设计题目2小学生测验要点.docx_第11页
第11页 / 共24页
C++课程设计题目2小学生测验要点.docx_第12页
第12页 / 共24页
C++课程设计题目2小学生测验要点.docx_第13页
第13页 / 共24页
C++课程设计题目2小学生测验要点.docx_第14页
第14页 / 共24页
C++课程设计题目2小学生测验要点.docx_第15页
第15页 / 共24页
C++课程设计题目2小学生测验要点.docx_第16页
第16页 / 共24页
C++课程设计题目2小学生测验要点.docx_第17页
第17页 / 共24页
C++课程设计题目2小学生测验要点.docx_第18页
第18页 / 共24页
C++课程设计题目2小学生测验要点.docx_第19页
第19页 / 共24页
C++课程设计题目2小学生测验要点.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++课程设计题目2小学生测验要点.docx

《C++课程设计题目2小学生测验要点.docx》由会员分享,可在线阅读,更多相关《C++课程设计题目2小学生测验要点.docx(24页珍藏版)》请在冰点文库上搜索。

C++课程设计题目2小学生测验要点.docx

C++课程设计题目2小学生测验要点

《C++语言程序课程设计》

班级:

11电信1班姓名:

谢远忠学号:

110703***

指导老师:

胡珏

第一类题目应用类:

题目2:

小学生测验

面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。

功能要求:

(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;

(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;

(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;

(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;

(5)总成绩90以上显示“SMART(优秀!

)”,80-90显示“GOOD(良好!

)”,70-80显示“OK(中等!

)”,60-70显示“PASS(及格!

)”,60以下“TRYAGAIN(不及格!

重测!

)”。

 

.设计思路:

由系统函数产生两个随机数a、b并计算两数之和为t,显示两个随机数a、b的加减法运算,学生通过键盘输入答案num与t进行匹配,第1次匹配正确给10分;第2次匹配正确给7分;第3次匹配正确给5分,每道题至多3次输入机会,3次机会用尽后仍未匹配成功由系统输出正确答案t,累计得分score并进入下一道题。

以此类推,直至10道题答完止输出总得分score,判断等级SMART、GOOD、OK、PASS还是TRYAGAIN。

 

.流程图:

 

.C++(含class类,面向对象)程序代码:

#include

#include

#include//标准库头文件

classDisplay_biaoti//Display_biaoti[标题]类,标题显示

{

public:

Display_biaoti()

{

cout<<"===============欢迎使用小学生整数50以内加减法测验评测系统==============="<

cout<<"*************************************************************************"<

cout<<"***********************************************************************"<

cout<<"**共10道题,每道题3次作答机会**"<

cout<<"**第1次作答正确——10分;第2次作答正确——7分;第3次作答正确——5分;**"<

cout<<"**三次作答不正确——此题得分:

0分,进入下一题**"<

cout<<"***********************************************************************"<

cout<<"*************************************************************************"<

}

~Display_biaoti(){}

};

/******************************************************************************************/

classSuijishu//Suijishu[随机数]类,产生两个运算数

{

public:

inta,b,n,t;

Suijishu()

{

a=rand()%50;//rand()是一个随机函数,a=rand()%50是在0-50内取随机值赋给a

b=rand()%50;//b=rand()%50是在0-50内取随机值赋给b

n=rand()%6;//n的范围大些出现加法和减法的概率就越接近(加法:

减法=5:

5),故n取6

if((n==0||n==1||n==2)&&(a+b)>50)//如果产生随机数a、b之和大于50时

{if(a>25&&b>25)//a、b同时大于25时

{a=a-25;

b=b-25;}//a、b同时减小25

if(a>25)//仅是a大于25时

a=a-25;//a减小25

if(b>25)//仅是b大于25时

b=b-25;}//b减小25

}

~Suijishu(){}

};

/*******************************************************************************************/

classDisplay_timu:

publicSuijishu//Display_timu[题目]类,对单一道题目显示给学生

{

public:

inti,t;

Display_timu()

{

}

voidxianshi()

{

switch(n)

{

case0:

//n为0、1、2时进行加法运算

case1:

case2:

cout<<"##########"<

t=a+b;i++;

break;

case3:

//n为3、4、5时进行减法运算

case4:

case5:

cout<<"##########第"<

if(a>b){cout<

else{cout<

break;

}

}

~Display_timu(){}

};

/********************************************************************************/

classCeshi:

publicDisplay_timu

{

public:

intnum,cnt,score;//测试者输入答案次数cnt

Ceshi()

{

cnt=1;

score=0;

}

intxunhuan()

{

do

{

cin>>num;//测试者输入答案num

if(num==t)//答案正确时

{

cout<<"正确!

o(≧v≦)o~~好棒~"<

}

else

{

if(cnt<3)//答案输入少于3次

cout<<"答案不正确?

在试试吧!

"<

cout<<"你还有"<<3-cnt<<"次答题机会"<

++cnt;

}

}while(cnt<=3&&num!

=t);//答案输入少于3次且输入答案不正确时继续输入(3次答题机会)

if(num!

=t)//3次为输入正确答案,由系统给出正确答案

cout<<"答案不正确!

正确答案是:

"<

switch(cnt)//累计答题得分情况

{

case1:

score+=10;break;//第1次答对得10分

case2:

score+=7;break;//第2次答对得7分

case3:

score+=5;break;//第3次答对得5分

}

returnscore;

}

~Ceshi(){}

};

/********************************************************************************/

classDisplay_zongping:

publicCeshi//Display_zongping[总评]类,对答完10道题给出总评

{

public:

intscore;

Display_zongping()

{

}

voidpandduan()

{

if(score>90)//如果总分大于90

{

cout<<"优秀!

"<

}

elseif(score>80)//如果总分大于80

{

cout<<"良好!

"<

}

elseif(score>70)//如果总分大于70

{

cout<<"中等!

"<

}

elseif(score>=60)//如果总分大于60

{

cout<<"及格!

"<

}

elsecout<<"不及格!

重测!

"<

重测!

cout<<"\n";

}

~Display_zongping(){}

};

/********************************************************************************/

voidmain()

{

intall_score=0;

Display_biaotiaa;//定义Display_biaoti[标题]类对象aa,标题显示

srand(time(NULL));//srand函数是以现在系统时间作为时间种子产生随机数

intj;//定义整形j计数10道题

for(j=1;j<11;j++)

{

Suijishubb;//定义随机数Suijishu类对象bb

Display_timucc;//定义Display_timu类对象cc

cc.i=j;

cc.xianshi();//调用对象cc的方法xianshi()

Ceshidd;//定义Ceshi类对象dd

dd.t=cc.t;//对象cc的数据t赋值给对象dd的数据t

all_score+=dd.xunhuan();//调用对象dd的方法xunhuan()

cout<<"-------------------------当前分数为"<

}

Display_zongpingee;//定义Display_zongping类对象ee

ee.score=all_score;

cout<<"最后得分为"<

ee.pandduan();//调用对象ee的方法pandduan()

}

.运行结果:

(良好!

(优秀!

(不及格!

重测!

(及格!

(中等!

 

.C++(不含class类)程序代码:

#include

#include

#include//标准库头文件

voidmain()

{

intt,num,a,n,i,b;//定义变量t(系统正确答案),num(测试者输入答案),a(参与运算的数),

//n(决定加法还是减法运算),i(题号),b(参与运算的另一个数)

intscore=0;//定义变量score存放得分

cout<<"==============欢迎使用小学生整数50以内加减法测验评测系统=============="<

srand(time(NULL));//srand函数是以现在系统时间作为时间种子产生随机数

for(i=1;i<=10;i++)

{

loop:

a=rand()%50;//rand()是一个随机函数,a=rand()%50是在0-50内取随机值赋给a

b=rand()%50;//b=rand()%50是在0-50内取随机值赋给b

n=rand()%6;//n的范围大些出现加法和减法的概率就越接近(加法:

减法=5:

5),故n取6

if((n==0||n==1||n==2)&&(a+b)>50)//如果产生随机数a、b之和大于50时

{if(a>25&&b>25)//a、b同时大于25时

{a=a-25;

b=b-25;}//a、b同时减小25

if(a>25)//仅是a大于25时

a=a-25;//a减小25

if(b>25)//仅是b大于25时

b=b-25;}//b减小25

switch(n)

{

case0:

//n为0、1、2时进行加法运算

case1:

case2:

cout<<"*********第"<

t=a+b;

break;

case3:

//n为3、4、5时进行减法运算

case4:

case5:

cout<<"*********第"<

if(a>b){cout<

else{cout<

break;

gotoloop;

}

intcnt=1;//测试者输入答案次数cnt

do

{

cin>>num;//测试者输入答案num

if(num==t)//答案正确时

{

cout<<"正确!

o(≧v≦)o~~好棒~"<

}

else

{

if(cnt<3)//答案输入少于3次

cout<<"答案不正确?

在试试吧!

"<

cout<<"你还有"<<3-cnt<<"次答题机会"<

++cnt;

}

}while(cnt<=3&&num!

=t);//答案输入少于3次且输入答案不正确时继续输入(3次答题机会)

if(num!

=t)//3次为输入正确答案,由系统给出正确答案

cout<<"答案不正确!

正确答案是:

"<

switch(cnt)//累计答题得分情况

{

case1:

score+=10;break;//第1次答对得10分

case2:

score+=7;break;//第2次答对得7分

case3:

score+=5;break;//第3次答对得5分

}

cout<<"-------------------------当前分数为"<

}

cout<<"最后得分为"<

if(score>90)//如果总分大于90

{

cout<<"SMART!

"<

}

elseif(score>80)//如果总分大于80

{

cout<<"GOOD!

"<

}

elseif(score>70)//如果总分大于70

{

cout<<"OK!

"<

}

elseif(score>=60)//如果总分大于60

{

cout<<"PASS!

"<

}

elsecout<<"TRYAGAIN!

"<

cout<<"\n";

}

.运行结果:

(SMART!

 

(GOOD!

 

(OK!

 

(PASS!

 

(TRYAGAIN!

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2