四则运算练习器的实现文件
更新时间: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
Chinese customs中国习俗06-06
我和书作文600字07-16
两化融合-系统技术实现方案模版03-28
形容心情的诗句11-24
东华理工大学 物理练习试卷答案 机械波08-05
职校期末作业考核03-15
生日礼物作文600字07-05
命题说话03-08
生猪行业市场现状及前景分析11-03
- 《江苏省环境水质(地表水)自动监测预警系统运行管理办法(试行)》
- 安乐死合法化辩论赛立论稿(浙大新生赛)
- 公共科目模拟试卷公务员考试资料
- 我国固定资产投资FAI对GDP的影响
- 大学生创新创业训练计划项目申请书大创项目申报表
- 完美版—单片机控制步进电机
- 2013资阳中考化学试题
- 18.两位数减一位数退位(397道)
- 工程量计算规则
- 二年级操行评语(下)
- 第3章 流程控制语句
- 浅基桥墩加固技术
- 课题研究的主要方法
- 5100软件说明书 - 图文
- 车间技术员年终总结
- 关于印发《中铁建工集团开展项目管理实验室活动方案》的通知
- 经典诵读结题报告
- 地下水动力学习题答案
- 2018年全国各地高考数学模拟试题平面解析几何试题汇编(含答案解
- 街道办事处主任2018年度述职述廉报告
- 练习器
- 四则运算
- 实现
- 文件
- 单片机课程设计多路抢答器 - 图文
- 如何解决TestNG Retry的问题
- 日本工业蓄电池标准
- 2005年细胞生物学试试题及答案 - 图文
- 2019-2020年五年级科学下册 我是怎样出生的4教案 苏教版
- 加快发展新郑旅游产业
- 2009—2010学年度上学期九年级物理期末考试质量分析
- 社区综合
- WireShark抓包工具使用流程 - 图文
- 心理沙龙活动策划书
- 土力学试卷及答案(b)
- 配套K122018-2019学年中考数学专题复习 平方差公式及其应用(含解析)
- 军事理论答案(江西高校出版社)(最新版)
- 马克思复习提纲-最终
- 綦江区瑞恩幼儿园工作手册(完整版)
- 刚性悬挂作业指导书(客专) - 图文
- 季氏将伐颛臾练习卷
- 爬架施工方案 - 图文
- 苏教版五年级数学下册第十单元《圆》填空题期末复习专项练习题
- 驾校申请报告