c课程设计题目小学生测验
更新时间:2023-04-09 23:06:01 阅读量: 实用文档 文档下载
c课程设计题目小学生
测验
Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#
《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以下“TRY AGAIN (不及格!重测!)”。
I.设计思路:
由系统函数产生两个随机数a、b并计算两数之和为t ,显示两个随机数a、b的加减法运算,学生通过键盘输入答案num与t进行匹配,第1次匹配正确给10分;第2次匹配正确给7分;第3次匹配正确给5分,每道题至多3次输入机会,3次机会用尽后仍未匹配成功由系统输出正确答案t ,累计得分score并进入下一道题。以此类推,直至10道题答完止输出总得分score,判断等级SMART、GOOD、OK、PASS还是TRY AGAIN。
II.流程图:
III.C++(含class类,面向对象)程序代码:
#include
#include
#include
class Display_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(){} }; /******************************************************************************************/ class Suijishu //Suijishu[随机数]类,产生两个运算数 { public: int a,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(){} }; /*******************************************************************************************/ class Display_timu:public Suijishu //Display_timu[题目]类,对单一道题目显示给学生 { public: int i,t; Display_timu() { } void xianshi() { switch(n) { case 0: //n为0、1、2时进行加法运算 case 1: case 2:cout<<"##########"< ##########"< break; case 3: //n为3、4、5时进行减法运算 case 4: case 5:cout<<"##########第"< if(a>b){cout< else {cout<break; } } ~Display_timu(){} }; /********************************************************************************/ class Ceshi:public Display_timu { public: int num,cnt,score; //测试者输入答案次数cnt Ceshi() { cnt=1; score=0; } int xunhuan() { 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) //累计答题得分情况 { case 1:score+=10;break; //第1次答对得10分 case 2:score+=7;break; //第2次答对得7分 case 3:score+=5;break; //第3次答对得5分 } return score; } ~Ceshi(){} }; /********************************************************************************/ class Display_zongping:public Ceshi //Display_zongping[总评]类,对答完10道题给出总评 { public: int score; Display_zongping() { } void pandduan() { if (score>90) //如果总分大于90 { cout<<"优秀!"< } else if (score>80) //如果总分大于80 { cout<<"良好!"< } else if (score>70) //如果总分大于70 { cout<<"中等!"< } else if (score>=60) //如果总分大于60 { cout<<"及格!"< } else cout<<"不及格!重测!"< cout<<"\n"; } ~Display_zongping(){} }; /********************************************************************************/ void main() { int all_score=0; Display_biaoti aa; //定义Display_biaoti[标题]类对象aa,标题显示 srand(time(NULL)); //srand函数是以现在系统时间作为时间种子产生随机数 int j; //定义整形j计数10道题 for(j=1;j<11;j++) { Suijishu bb; //定义随机数Suijishu类对象bb Display_timu cc; //定义Display_timu类对象cc cc.i=j; cc.xianshi(); //调用对象cc的方法xianshi() Ceshi dd; // 定义Ceshi类对象dd dd.t=cc.t; //对象cc的数据t赋值给对象dd的数据t all_score+=dd.xunhuan(); //调用对象dd的方法xunhuan() cout<<"-------------------------当前分数为"< Display_zongping ee; //定义Display_zongping类对象ee ee.score=all_score; cout<<"最后得分为"< ee.pandduan(); //调用对象ee的方法pandduan() } IV.运行结果: ①(良好!) ②(优秀!) ③(不及格!重测!) ④(及格!) ⑤(中等!) IV.C++(不含class类)程序代码: #include #include #include void main() { int t, num, a,n, i, b; //定义变量t(系统正确答案),num(测试者输入答案),a(参与运算的数), //n(决定加法还是减法运算),i(题号),b(参与运算的另一个数) int score=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) { case 0: //n为0、1、2时进行加法运算 case 1: case 2:cout<<"*********第"<t=a+b; break; case 3: //n为3、4、5时进行减法运算 case 4: case 5:cout<<"*********第"< if(a>b){cout< else {cout<break; goto loop; } int cnt=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) //累计答题得分情况 { case 1:score+=10;break; //第1次答对得10分 case 2:score+=7;break; //第2次答对得7分 case 3:score+=5;break; //第3次答对得5分 } cout<<"-------------------------当前分数为"< } cout<<"最后得分为"< if (score>90) //如果总分大于90 { cout<<"SMART!"< } else if (score>80) //如果总分大于80 { cout<<"GOOD!"< } else if (score>70) //如果总分大于70 { cout<<"OK!"< } else if (score>=60) //如果总分大于60 { cout<<"PASS!"< } else cout<<"TRY AGAIN!"< cout<<"\n"; } VI.运行结果: ①(SMART!) ②(GOOD!) ③(OK!) ④(PASS!) ⑤(TRY AGAIN!)
正在阅读:
c课程设计题目小学生测验04-09
第三方检测工作管理办法03-19
ME60维护手册04-29
单片机控制的液晶显示器的设计及实现06-08
自我介绍作文350字07-13
揭牌仪式主持人串词02-07
长方形和正方形的周长练习与答案-人教版数学三年级上第七章长方形和正方形第2节09-03
《改革开放》教学反思10-25
构造复习题12.4 - 图文10-19
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 测验
- 小学生
- 题目
- 课程
- 设计
- 如何编写高质量的VB代码
- 说说知识产权对企业的重要性
- Intermediate Accounting 6e Spiceland Chap019_answer
- 长江有色金属现货交易市场信息化平台解决方案1213
- 2022年南华大学深圳市第二人民医院306临床医学综合能力(西医)[专
- 移植不同剂量脐带间充质干细胞提高老年痴呆大鼠学习记忆能力的比
- 如何理解“再现典型环境中的典型人物”
- 《马诉冤屈》文言文翻译
- 人教部编语文六年级下册第1单元第一单元练习题含答案(一)
- 实用C语言scanf函数应用问题解答
- 2022-2022年高三高考模拟卷(三)理科数学 含答案
- 2014年2季度上市公司行业分类结果
- 生态水晶石项目可行性研究报告(技术工艺+设备选型+财务方案+厂区
- 办公室礼仪培训目的
- 智能制造论新形势下的生产企业管理——刘名发
- 湘教版八年级地理下册《新疆维吾尔自治区的地理概况与区域
- 2022高三物理一轮复习教学案(39)实验:机械能及其守恒定律
- 毕业典礼教师代表发言
- 基督教讲章有主旳道路讲章
- 服务营销与酒店服务质量管理集成体系