1、C+课程设计题目小学生测验C+语言程序课程设计班级:11电信1班 姓名:谢远忠 学号:*指导老师:* 第一类题目 应用类:题目2:小学生测验面向小学12年级学生,随机选择两个整数和加减法形成算式要求学生解答。功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出12年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出050的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确
2、答案得5分,否则不得分;(5)总成绩90以上显示“SMART(优秀!)”,80-90显示“GOOD(良好!)”,70-80显示“OK(中等!)”,60-70显示“PASS(及格!)”,60以下“TRY AGAIN(不及格!重测!)”。.设计思路:由系统函数产生两个随机数a、b并计算两数之和为t ,显示两个随机数a、b的加减法运算,学生通过键盘输入答案num与t进行匹配,第1次匹配正确给10分;第2次匹配正确给7分;第3次匹配正确给5分,每道题至多3次输入机会,3次机会用尽后仍未匹配成功由系统输出正确答案t ,累计得分score并进入下一道题。以此类推,直至10道题答完止输出总得分score,判
3、断等级SMART、GOOD、OK、PASS还是TRY AGAIN。.流程图:.C+(含class类,面向对象)程序代码:#include#include #include /标准库头文件 class Display_biaoti /Display_biaoti标题类,标题显示public: Display_biaoti() cout=欢迎使用小学生整数50以内加减法测验评测系统=endlendl; cout*endl; cout* * *endl; cout* * 共10道题,每道题3次作答机会 * *endl; cout* *第1次作答正确10分;第2次作答正确7分;第3次作答正确5分;*
4、*endl; cout* * 三次作答不正确此题得分:0分,进入下一题 * *endl; cout* * *endl; cout*endl50) /如果产生随机数a、b之和大于50时 if(a25&b25) /a、b同时大于25时 a=a-25; b=b-25; /a、b同时减小25 if(a25) /仅是a大于25时 a=a-25; /a减小25 if(b25) /仅是b大于25时 b=b-25; /b减小25 Suijishu();/*/class Display_timu:public Suijishu /Display_timu题目类,对单一道题目显示给学生public: int i,
5、t; Display_timu() void xianshi() switch(n) case 0: /n为0、1、2时进行加法运算 case 1: case 2:cout#i题#endl;couta+b=; t=a+b; i+; break; case 3: /n为3、4、5时进行减法运算 case 4: case 5:cout#第i题#b)couta-b=; t=a-b; i+; else coutb-anum; /测试者输入答案num if (num=t) /答案正确时 cout正确!o(v)o好棒endl; else if (cnt3) /答案输入少于3次 cout答案不正确?在试试吧
6、!endl; cout你还有3-cnt次答题机会endl; +cnt; while(cnt=3&num!=t); /答案输入少于3次且输入答案不正确时继续输入(3次答题机会) if (num!=t) /3次为输入正确答案,由系统给出正确答案 cout答案不正确!正确答案是:t90) /如果总分大于90 cout优秀!80) /如果总分大于80 cout良好!70) /如果总分大于70 cout中等!=60) /如果总分大于60 cout及格!endl; /输出及格! else cout不及格!重测!endl; /低于60分时,输出不及格!重测! coutn; Display_zongping(
7、);/*/void main() int all_score=0; Display_biaoti aa; /定义Display_biaoti标题类对象aa,标题显示 srand(time(NULL); /srand函数是以现在系统时间作为时间种子产生随机数 int j; /定义整形j计数10道题 for(j=1;j11;j+) Suijishu bb; /定义随机数Suijishu类对象bb Display_timu cc; /定义Display_timu类对象cc cc.i=j; cc.xianshi(); /调用对象cc的方法xianshi() Ceshi dd; / 定义Ceshi类对象
8、dd dd.t=cc.t; /对象cc的数据t赋值给对象dd的数据t all_score+=dd.xunhuan(); /调用对象dd的方法xunhuan() cout-当前分数为all_scoreendl; /输出当前的得分 Display_zongping ee; /定义Display_zongping类对象ee ee.score=all_score; cout最后得分为ee.score ; ee.pandduan(); /调用对象ee的方法pandduan() .运行结果:(良好!)(优秀!)(不及格!重测!)(及格!)(中等!).C+(不含class类)程序代码:#include#in
9、clude #include /标准库头文件void main() int t, num, a,n, i, b; /定义变量t(系统正确答案),num(测试者输入答案),a(参与运算的数), /n(决定加法还是减法运算),i(题号),b(参与运算的另一个数) int score=0; /定义变量score存放得分 cout=欢迎使用小学生整数50以内加减法测验评测系统=endl; srand(time(NULL); /srand函数是以现在系统时间作为时间种子产生随机数 for(i=1;i50) /如果产生随机数a、b之和大于50时 if(a25&b25) /a、b同时大于25时 a=a-25
10、; b=b-25; /a、b同时减小25 if(a25) /仅是a大于25时 a=a-25; /a减小25 if(b25) /仅是b大于25时 b=b-25; /b减小25 switch(n) case 0: /n为0、1、2时进行加法运算 case 1: case 2:cout*第i题*endl;couta+b=; t=a+b; break; case 3: /n为3、4、5时进行减法运算 case 4: case 5:cout*第i题*b)couta-b=; t=a-b; else coutb-anum; /测试者输入答案num if (num=t) /答案正确时 cout正确!o(v)o
11、好棒endl; else if (cnt3) /答案输入少于3次 cout答案不正确?在试试吧!endl; cout你还有3-cnt次答题机会endl; +cnt; while(cnt=3&num!=t); /答案输入少于3次且输入答案不正确时继续输入(3次答题机会) if (num!=t) /3次为输入正确答案,由系统给出正确答案 cout答案不正确!正确答案是:tendl;switch (cnt) /累计答题得分情况 case 1:score+=10;break; /第1次答对得10分 case 2:score+=7;break; /第2次答对得7分 case 3:score+=5;break; /第3次答对得5分 cout-当前分数为scoreendl; /输出当前的得分 cout最后得分为score90) /如果总分大于90 coutSMART!80) /如果总分大于80 coutGOOD!70) /如果总分大于70 coutOK!=60) /如果总分大于60 coutPASS!endl; /输出PASS! else coutTRY AGAIN!endl; /低于60分时,输出TRY AGAIN! coutn;.运行结果:(SMART!) (GOOD!) (OK!) (PASS!) (TRY AGAIN!)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1