C语言试验报告7-模块化程序设计_第1页
C语言试验报告7-模块化程序设计_第2页
C语言试验报告7-模块化程序设计_第3页
C语言试验报告7-模块化程序设计_第4页
C语言试验报告7-模块化程序设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、学生实验报告学号:日期:2014-06-22系别计算机科专业 学与技术专业计算机科学 与技术(师)班级姓名课程 名称程序设计基础程型 课类专业课学时数2实验 名称模块化程序设计实验目的:理解和体会模块化程序化设计的思想; 积累大规模程序设计中函数设计的技巧; 积累模块化程序调试的经验。实验要求:实验后写实验报告。1.实验内容:1、调试并运行教材174页例题7.11;2、采用模块化程序设计方法编程实现教材143页小学生计算机辅助教学系 统实验任务6.7.11 题源程序:#include stdio.h#include time.h#include stdlib.h#include assert.

2、hdefine MAX_NUMBER 100define MIN_NUMBER 1define MAX_TIMES 10int MakeNumber(void);/*函数功能:计算机生成一个随机数*/void GuessNumber(const int number); /*函数功能:用户猜数字*/int IsValidNumber(const int number);int IsRight(const int number,const int guess);int main() (int number;/*计算机生成的随机数*/char reply;/*用户对于是否继续猜数的回答*/sran

3、d(time(NULL);/*初始化随机种子*/do(number=MakeNumber(); /*/计算机生成一个随机数*/GuessNumber(number); /*用户猜数字*/printf(Do you want to continue(Y/N or y/n)?); /*提示是否继续*/scanf(%c”,&reply); /*%c 前有一个空格*/while(reply=Y|reply=y); /*输入 Y 或 y 则程序继续*/ return 0;)void GuessNumber(const int number)(intguess;/*用户猜的数*/intcount=1;/*

4、用户才的次数*/intright=0;/*猜的结果对错与否*/int ret;/*记录的返回值,即读入scanf()的数据项数*/do(printf(Try %d:,count);ret=scanf(%d,&guess);/*处理用户输入,判断是否有输入错误,是否在合 法的数值范围内*/while (ret! = 1 |!IsValidNum(guess)/*清除输入缓冲中的错误数据*/(printf(Input error!n:);while(getchar()!=n);printf(Try %d:,count);ret=scanf(%d,&guess);/*读入用户的猜数*/)count+

5、;/*记录用户猜的次数*/right=IsRight(number,guess);/*判断用户猜的数是大还是小*/while(!right & count =MIN_NUMBER & number =MIN_NUMBER & number =MAX_NUMBER) return 1;elsereturn 0;) int IsRight(const int number,const int guess)(if (guessnumber) /*若猜大了,输出相应的提示信息*/(printf(Wrong!Too big!n);return 0;else return 1;| 图I运行结果:c * I

6、:Debu gexp7xe同llry l:a Input error! :Try 1:53 Wrongtloo small! Try 2:80 WrongtToo small! Try 3:0 Wrongfloo small? Try 4:50 Wrongfloo small! Try 5:55 WrontToo small! Try E:H6 WrongtToo small! Try 7:57 WrongfToo smallf Try 8:58 Wrongfloo small! Try 9:80 WronsrlToo sma.ll! Try 10:90 Cong-patulaions! ou

7、J re so coo 1! Do you uant to continue?Pi?ess any key to continue2,辅助教学系统:#include stdio.h#include time.h#include stdlib.h/*函数功能:随机产生四则运算中的其中一种*/int Question(int answer) (int num1,num2,num3;srand(time(NULL);num1=rand()% 10+1;num2=rand()% 10+1;num3=rand()% 4+1;if(num3=1)(printf(%d+%d=?n,num1,num2);an

8、swer=num1+num2;/*力口法运算*/)else if(num3=2)(printf(%d-%d=?n,num1,num2);answer=num1-num2;/*减法运算*/)else if(num3=3)(printf(%d*%d=?n,num1,num2);answer=num1*num2;/*乘法运算*/) else(printf(%d/%d=?n,num1,num2);answer=num1/num2;/*除法运算,按取余计算*/)return answer;)/*函数功能:当用户计算正确时系统随机给出四种评语中的其中一种*/int RightRemarks(int m)(

9、srand(time(NULL);m=rand()% 4+1;/*获取1-4之间的随机数设计四种评语*/switch (m)(:printf(Very good!n);break;:printf(Excellent!n);break;:printf(Nice work!n);break;:printf(Keep up the good work!n); break;)return m;)/*函数功能:当用户计算错误时系统自动给出四种评语中的其中一种*/int (WrongRemarks(int n)int (WrongRemarks(int n)srand(time(NULL);n=rand(

10、)% 4+1;/*srand(time(NULL);n=rand()% 4+1;/*获取1-4之间的随机数设计四种评语*/switch (n)(:printf(No.Please try again.n);break;:printf(Wrong.Try once more.n);break;:printf(Dont give up!n);break;:printf(Not correct keep trying.n);break;return n;main() (int int intresult,x,z;counter=0, counter1=0,counter2=0,score=0; n,

11、m;float rate=0; do(do(result=Question(z) scanf(%d,&x); counter+;main() (int int intresult,x,z;counter=0, counter1=0,counter2=0,score=0; n,m;float rate=0; do(do(result=Question(z) scanf(%d,&x); counter+;if(result=x) (/*调用函数*/*学生从键盘输入自己的计算结果*/counter1+; m=RightRemarks(m);) else (counter2+;n=WrongRemarks(n)/*计算正确次数增量*/ /*调用函数*/*计算错误次数*/if(counter=10) printf(Test over!n

温馨提示

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

最新文档

评论

0/150

提交评论