四则运算练习器的实现文件
更新时间:2023-09-30 23:13:01 阅读量: 综合文库 文档下载
- 四则运算练习题100道推荐度:
- 相关推荐
//四则运算练习器的实现文件 #include
#include
//函数getch()定义在头文件conio.h中,他从键盘接收字符,但不回显在屏幕上 //此功能可应用于输入密码等 #include%using namespace std; char* student::getname() {
return name; }
void student::add(char n[20],char c[20]) {
for(int i=0;i<20;i++) {
name[i]=n[i]; code[i]=c[i]; }
jiaz=0;jiar=0;jial=0;jianz=0;jianr=0;jianl=0;
chengz=0;chengr=0;chengl=0;chuz=0;chur=0;chul=0; hunz=0;hunr=0;hunl=0; ofstream file;
file.open(\ if(!file)
{
cout<<\ system (\ exit(1); }
file.write((char*)&(*this),sizeof(*this)); file.close(); }
void student::addchengji(int yunsuan,int zong,int right) {
int n=all();
student s[n];
read(s,n);//将 文件中的数据写入数组s[n]中 for(int i=0;i 1 if(!strcmp(s[i].name,this->name)) { if(yunsuan==1) { s[i].jiaz=s[i].jiaz+zong; s[i].jiar=s[i].jiar+right; if(s[i].jiaz!=0) s[i].jial=static_cast if(yunsuan==2) { s[i].jianz=s[i].jianz+zong; s[i].jianr=s[i].jianr+right; if(s[i].jianz!=0) s[i].jianl=static_cast if(yunsuan==3) { s[i].chengz=s[i].chengz+zong; s[i].chengr=s[i].chengr+right; if(s[i].chengz!=0) s[i].chengl=static_cast if(yunsuan==4) { s[i].chuz=s[i].chuz+zong; s[i].chur=s[i].chur+right; if(s[i].chuz!=0) s[i].chul=static_cast if(yunsuan==5) { s[i].hunz=s[i].hunz+zong; s[i].hunr=s[i].hunr+right; if(s[i].hunz!=0) s[i].hunl=static_cast ofstream file2; file2.setf(ios::fixed); file2.setf(ios::showpoint); 2 file2.precision(2); //将更新后的数据重写入文件 file2.open(\ if(!file2) { cout<<\ system (\ exit(1); } for(int k=0;k { file2.write((char*)&s[k],sizeof(s[k])); } file2.close(); } int all() { cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2); ifstream file; file.open(\ if(!file) {//打不开说明文件不存在,即记录总数为0 return 0; /* cout<<\ system (\ exit(1);*/ } else { int zongshu=0; student s; while(!file.eof()) { file.read((char*)&s,sizeof(s)); zongshu++; } file.close(); return zongshu-1; } } 3 void chakan(int m,int n,double w) { system (\ //banquan(); cout<<\ *******************************************\\n\ cout<<\ 此次总做题数 正确题数 正确率 *\\n\ cout<<\ \ \ \ *\\n\ cout<<\ *******************************************\\n\ } void student::output() { cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2); cout<<\ \小朋友,你的以往战绩如下:\\n\ cout<<\ cout< cout< cout<<\ } bool namepanduan(char n[20]) { int renshu=all(); if(renshu==0) return 0; else { int xiangtong=0; student s[renshu]; 4 法法 运 算 read(s,renshu); for(int i=0;i if(strcmp(s[i].name,n)==0) { xiangtong=1; break;} } return xiangtong; } } void fenpaihangbang(int n) { int m=all(); student s1[m],s2[m],s3[m]; //将文件中的资料均读入s1,s2,s3中,已分别 read(s1,m); //按总做题数,正确题数,正确率排名 read(s2,m); read(s3,m); int zong[m],right[m]; double zhengquelu[m]; for(int i=0;i if(n==1) { zong[i]=s1[i].jiaz; right[i]=s2[i].jiar; zhengquelu[i]=s3[i].jial; } if(n==2) { zong[i]=s1[i].jianz; right[i]=s2[i].jianr; zhengquelu[i]=s3[i].jianl; } if(n==3) { zong[i]=s1[i].chengz; right[i]=s2[i].chengr; zhengquelu[i]=s3[i].chengl; } if(n==4) { zong[i]=s1[i].chuz; 5 switch(xuanze-48) { case 1: system (\ paihangbang();break;//进入排行榜菜单 case 2: system (\ s.output();break;//用户s以往战绩输出 case 3: system (\ lianximennu(s);//s进入练习菜单 case 4: system (\ cout<<\ Bye-bye!\\n\ default: system (\ cout<<\ 小朋友,输错了,再输吧\\n\控制数字 } }while((xuanze-48)!=4); } void paihangbang()//排行榜输出 { system (\ char choice; do { cout<<\输入你想查看的排行榜前面的数字:\\n\ cout<<\ cout<<\ 1:加法排行榜 *\\n\ cout<<\ 2:减法排行榜 *\\n\ cout<<\ 3:乘法排行榜 *\\n\ cout<<\ 4:除法法排行榜 *\\n\ cout<<\ 5:混合运算排行榜 *\\n\ cout<<\ 6:退出 *\\n\ cout<<\ do { shuru(choice); if(choice>='1'&&choice<='6') putch(choice); }while(choice<'1'||choice>'6'); switch(choice-48)//将字符数字转变为数字 { case 1:system (\ cout<<\加法排行榜如下:\\n\ 16 fenpaihangbang(1);break; case 2:system (\ cout<<\减法排行榜如下:\\n\ fenpaihangbang(2);break; case 3:system (\ cout<<\乘法排行榜如下:\\n\ fenpaihangbang(3);break; case 4:system (\ cout<<\除法排行榜如下:\\n\ fenpaihangbang(4);break; case 5:system (\ cout<<\混合运算排行榜如下:\\n\ fenpaihangbang(5);break; case 6:system (\ default:system (\ 小朋友,刚才输错了,再输一次吧!\\n\ } } while((choice-48)!=6); } void lianximennu(student s)//练习菜单输出 { system (\ banquan(); char xuan; cout<<\小朋友,以下是专项训练,请选择练习项目,祝你取得辉煌战绩!\\n\ do { // system (\ cout<<\输入你想进行的练习项目前面的数字:\\n\ cout<<\ **********************************************************\\n\ cout<<\ * 1:加法练习 *\\n\ cout<<\ * 2:减法练习 *\\n\ cout<<\ * 3:乘法练习 *\\n\ cout<<\ * 4:除法练习 *\\n\ cout<<\ * 5:混合练习 17 *\\n\ cout<<\ * 6:退出! *\\n\ cout<<\ **********************************************************\\n\ do { shuru(xuan); if(xuan>='1'&&xuan<='6') putch(xuan); }while(xuan<'1'||xuan>'6'); switch(xuan) { case '1':lianxi(1,s);break; case '2':lianxi(2,s);break; case '3':lianxi(3,s);break; case '4':lianxi(4,s);break; case '5':lianxi(5,s);break; case '6':cout<<\再见!\\n\ default:system (\选择有误,重选吧!\\n\ } }while(xuan!='6'); } void lianxi(int n,student s)//用户s进入练习,n值决定练习项目 { system (\ banquan(); //随机产生1到100的 a,b的值,key为正确答案,answer为学生的答案 int z=0,r=0; double l; cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2); //原程序此处健壮性不够,张鹏祥已于2010年4月做了改进 cout<<\要结束练习,请输入三个零:000\\n\ cout<<\除法就保留两位小数啊 \\n\ double key,answer; do { 18 long s=time(NULL); srand (s); int a,b; a=rand()?+1;b=rand()?+1; if(n==1) { cout<<\ \ key=a+b;//cout<<\ } if(n==2) { cout<<\ \ key=a-b;//cout<<\ } if(n==3) { cout<<\ \ key=a*b;//cout<<\ } if(n==4)//除法 { cout<<\ \ key=double(a)/b;//cout<<\ } //混合运算*************************************** if(n==5) { long s2=time(NULL); srand(s2); int suiji=rand()%4+1;//suiji为1到4的随机数,用以决定加减乘除 if(suiji==1) { cout<<\ \ key=a+b;//cout<<\ } if(suiji==2) { cout<<\ \ key=a-b; } if(suiji==3) 19 { cout<<\ \ key=a*b; } if(suiji==4) { cout<<\ \ key=double(a)/b;//cout<<\ } }//混合运算结束************************************ //此处用输入字符串的方式输入一个数字 string ans=\ cin>>ans; if(ans==\ answer=atof(ans.c_str()); //将数字字符串转换为实数 //atof函数的自变量只能是c字符串,因此使用 //string对象的成员函数c_str()转换为c字符串 //cin>>answer; z=z+1;//测验题计数 if(answer==key) r=r+1;//正确题计数 }while(1); if(z==0) { r=0;l=0; } if(z>0) l=double(r)/(z); // system (\ chakan(z,r,l);//显示此次练习成绩 s.addchengji(n,z,r);//将用户s此次练习成绩加入其个人账户上 } //以下这些函数均为细节设计,与程序构架无关 void shuru(char& a)//菜单的键盘输入控制,清除字母垃圾输入 { //char a; a=getch(); while(!isdigit(a)&&a!=13) { 20 cout< cout<<\小朋友,你敲的不是数字,重输吧!\\n\ a=getch(); //屏幕不显示输入内容 } } void xiaoguo()//增加趣味性的设计,并无实际用途 { system(\ for(int j=0;j<1;j++) { for(int i=10;i<70;i++) { cout< for(int i=50;i>20;i--) { cout< system (\ } void banquan()//版权声明 { cout<<\小学生四则运算练习系统 设计者:崔会令 } 2009/6/3\\n\21
正在阅读:
四则运算练习器的实现文件09-30
2016-2017学年人教版小学五年级上册数学教学计划及进度表04-21
2011级外科护理试题11-28
六年级度上学期体育教学计划12-31
苏教版六年级语文上册第二单元测试题10-03
2019最新版医务科个人年度工作总结103-14
防止电力生产事故的二十五项重点要求02-29
期权知识考试题库(带答案)06-03
学习贯彻《乡村基层组织宗教工作职责》情况汇报-总结报告模板12-29
SPSS学习系列3因子分析04-12
- 冀教版版五年级科学下册复习资料
- 微生物学复习提纲
- 2013—2014学年小学第二学期教研组工作总结
- 国有土地转让委托服务合同协议范本模板
- 我的固废说明书
- 企业管理诊断报告格式
- 东鼎雅苑施工组织设计
- 谈谈如何做好基层党支部书记工作
- 浮梁县环保局市级文明单位创建工作汇报
- 管理学基础知识
- 大学物理实验报告23 - PN结温度传感器特性1
- 计算机网络实践
- 酒桌上这四种情况下要坐牢,千万别不当回事……
- 国家康居示范工程建设技术要点
- 中国贴布行业市场调查研究报告(目录) - 图文
- 新课标下如何在高中物理教学中培养学生的创新能力初探
- 营养师冬季养生食谱每日一练(7月4日)
- 关注江西2017年第3期药品质量公告
- 建设海绵城市专题习题汇总
- 10万吨年环保净水剂建设项目报告书(2).pdf - 图文
- 练习器
- 四则运算
- 实现
- 文件
- 单片机课程设计多路抢答器 - 图文
- 如何解决TestNG Retry的问题
- 日本工业蓄电池标准
- 2005年细胞生物学试试题及答案 - 图文
- 2019-2020年五年级科学下册 我是怎样出生的4教案 苏教版
- 加快发展新郑旅游产业
- 2009—2010学年度上学期九年级物理期末考试质量分析
- 社区综合
- WireShark抓包工具使用流程 - 图文
- 心理沙龙活动策划书
- 土力学试卷及答案(b)
- 配套K122018-2019学年中考数学专题复习 平方差公式及其应用(含解析)
- 军事理论答案(江西高校出版社)(最新版)
- 马克思复习提纲-最终
- 綦江区瑞恩幼儿园工作手册(完整版)
- 刚性悬挂作业指导书(客专) - 图文
- 季氏将伐颛臾练习卷
- 爬架施工方案 - 图文
- 苏教版五年级数学下册第十单元《圆》填空题期末复习专项练习题
- 驾校申请报告