数学程序设计.doc_第1页
数学程序设计.doc_第2页
数学程序设计.doc_第3页
数学程序设计.doc_第4页
数学程序设计.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include /* 调用库函数 */ #include #include /* 调用库函数 */ # define SIZE 1 int Tha; /* 变量 表示第一个运算数 */ int Thb; /* 第二个运算数 */ int Tresult; /* 正确答案 */ int Qcount; /* 题目的个数 */ int Upnum; /* 升级的分数 */ int Tscore; char op; /* 运算符号 */ struct mathti int Tscore; /* 当前得分 */ int DG; /* 当前等级 */mathSIZE;TestTen() /* 出第一个级别题的函数 */ int Userda; /* 用户给出的答案 */ int temp; /* 临时变量,用于交换两个变量得值 */ op=rand()%4+1; /* 产生一个1-4之间的随机数,用于表示+ ,- , * , / */ switch(op) /* 判断运算符是什么 */ case 1: /* 加 的情况 */ Tha=rand()%10; /* 产生一个0-9之间的随机数 放在第一个运算数 Tha中 */ Thb=rand()%10; /* 产生一个0-9之间的随机数 放在第二个运算数 Thb中 */ Tresult=Tha+Thb;break; /* 计算出正确答案 放在 Tresult中 */ case 2: /* 减 的情况 */ Tha=rand()%10; Thb=rand()%10; if(ThaThb) /* 减不能的负 所以第一个运算数要比第二个大,如果小,则交换两变量的值 */ temp=Tha;Tha=Thb;Thb=temp; /* 交换 */ Tresult=Tha-Thb;break; /* 计算出正确答案 放在 Tresult中 */ case 3: /* 乘 的情况 */ Tha=rand()%10; Thb=rand()%10; Tresult=Tha*Thb;break; case 4: /* 除 的情况 */ do /* 循环 保证可以除尽 */ do /* 循环保证 除数不为 0 */ Tha=rand()%10; Thb=rand()%10; if(Tha=10) /* 不正确减分 */ math0.Tscore=math0.Tscore-10; printf(n错误! 现在你的分数为 : %d,math0.Tscore); /* 输出错误信息和 当前分数 */ printf(n 请再次输入答案 : ); /* 提示重新输入 */ scanf(%d,&Userda); /* 用户输入答案 */ math0.Tscore=math0.Tscore+10; /* 答对了 加分 */ printf(n 正确 ! 现在你的分数为 : %d,math0.Tscore); /* */ TestHun() /*出第二个级别题的函数*/ int Userda; int temp; op=rand()%4+1; switch (op) case 1: Tha=rand()%90+10; /* 产生 10-99 之间的随机数,即两位数 */ Thb=rand()%90+10; Tresult=Tha+Thb;break; case 2: Tha=rand()%90+10; Thb=rand()%90+10; if(ThaThb) temp=Tha;Tha=Thb;Thb=temp; Tresult=Tha-Thb;break; case 3: Tha=rand()%90+10; Thb=rand()%90+10; Tresult=Tha*Thb;break; case 4: do do Tha=rand()%90+10; Thb=rand()%90+10; if(Tha=10) math0.Tscore=math0.Tscore-10; printf(n错误! 现在你的分数是 : %d,math0.Tscore); if(math0.TscoreUpnum) /* 如果分数小于设定的分数则直接退出函数 */ return; printf(n 请再次输入答案 : ); scanf(%d,&Userda); math0.Tscore=math0.Tscore+10; printf(n 正确 ! 你的分数是 : %d,math0.Tscore); void main() int Leiji=0; /* 变量 , 存储 累计答题数目 */ srand(int)time(0); /* 保证每次运行程序 产生的随机数序列不相同的语句 */ /* 清屏 : 清除屏幕上上次运行的内容,重新开始运行程序 */ printf(n欢迎使用: 学好算数 n); printf(请输入要计算的问题个数n: ); /* 提示信息 :输入问题个数 */ scanf(%d,&Qcount); /* 用户输入问题个数 */ do printf(n 请输入晋级所需要的分数(答对一题得10分) : ); /* 提示信息 :输入升级分数(10的倍数 ) */ scanf(%d,&Upnum); /* 用户输入升级分数 */ if(Upnum10) /* 如果用户输入的升级分数 = 10 ! ); else if(Upnum%10!=0) /* 如果用户输入的升级分数不是10的倍数 :即 整除10 不等于0 */ printf(n Must Some Times of 10!(10 的倍数!); else if(Upnum(0.9*Qcount*10) /* 如果用户输入的升级分数(Qcount*10) /* 如果用户输入的升级分数总分 */ printf(n晋级分数必须不大于总分 ); else break; while(1); /* 不满足条件永远循环 */ printf(n ); printf(n ); printf(n开始测试:); printf(n ); printf(n ); printf(n 第一级别的测试 :); Begin1: printf(n ); printf(n 问题: %d,Leiji+1); /* 输出 题号 */ TestTen(); Leiji+; if(Leiji=Qcount) /* 如果做题个数 和 事先设定好的问题个数相同 则结束答题! */ printf(n ); printf(n n); printf(n 测试结束!n); printf(n n); printf(n 你的最终分数为: %d,math0.Tscore); if(math0.Tscore=Upnum) printf(n 你的最终的级别为: 第%d级别n,math0.DG=2); else printf(n 你的最终的级别为: 第%d级别n,math0.DG=1); return; if(math0.Tscore=Upnum) printf(n 你的最终的级别为 : 第%d级别n,math0.DG=2); else printf(n 你的最终的级别为: 第%d级别n,math0.DG=1); return; if(math0.TscoreUpnum) printf(n你降级了! 第一级别测试开始 : ); /* 从Level2答题过程中分数小于升级分数 降级到Level 1 继续答题 */ goto Begin1; else goto Begin2; void save()FILE *fp; if(fp=fopen(math_list,wb)=NULL) printf(file write errorn); return; if(fwrite(&math0,sizeof(struct mathti),1,fp)!=1) printf(file write errorn); if (fp=fopen(math_list,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论