当前位置:文档之家› C语言实验报告7——模块化程序设计

C语言实验报告7——模块化程序设计

}
int IsValidNum(const int number)
{
if (number >=MIN_NUMBER && number <=MAX_NUMBER)
return 1;
else
return 0;
}
int IsRight(const int number,const int guess)
{
#define MAX_NUMBER 100
#define MIN_NUMBER 1
#define MAX_TIMES 10
int MakeNumber(void); /*函数功能:计算机生成一个随机数*/
void GuessNumber(const int number); /*函数功能:用户猜数字*/
if (guess<number) /*若猜小了,输出相应的提示信息*/
{
printf("Wrong!Too small!\n");
return 0;
}
else if (guess>number) /*若猜大了,输出相应的提示信息*/
{
printf("Wrong!Too big!\n");
return 0;
int ret; /*记录的返回值,即读入scanf()的数据项数*/
do{
printf("Try %d:",count);
ret=scanf("%d",&guess);/*处理用户输入,判断是否有输入错误,是否在合法的数值范围内*/
while (ret!=1 ||!IsValidNum(guess)) /*清除输入缓冲中的错误数据*/
}while(!right && count <=MAX_TIMES);
if(right) /*若用户猜对了,则输出相应的提示信息*/
printf("Congratulaions! You're so cool!\n");
else /*若超过MAX_TIMES次仍未猜对,输出相应的提示信息*/
printf("Mission failed after %d attempts.\n",MAX_TIMES);
{
printf("%d-%d=?\n",num1,num2);
answer=num1-num2; /*减法运算*/
}
else if(num3=d=?\n",num1,num2);
answer=num1*num2; /*乘法运算*/
}
else
{
printf("%d/%d=?\n",num1,num2);
学生实验报告
学号 :日期 :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.h"
answer=num1/num2; /*除法运算,按取余计算*/
}
return answer;
}
/*函数功能:当用户计算正确时系统随机给出四种评语中的其中一种*/
int RightRemarks(int m)
{
srand(time(NULL));
m=rand()% 4+1; /*获取1-4之间的随机数设计四种评语*/
break;
case 2 :
printf("Wrong.Try once more.\n");
break;
case 3 :
printf("Don't give up!\n");
break;
case 4 :
printf("Not correct keep trying.\n");
break;
}
return n;
{
printf("Input error!\n:");
while(getchar()!='\n');
printf("Try %d:",count);
ret=scanf("%d",&guess); /*读入用户的猜数*/
}
count++; /*记录用户猜的次数*/
right=IsRight(number,guess); /*判断用户猜的数是大还是小*/
switch (m)
{
case 1 :
printf("Very good!\n");
break;
case 2 :
printf("Excellent!\n");
break;
case 3 :
printf("Nice work!\n");
break;
case 4 :
printf("Keep up the good work!\n");
}while (rate<0.75);
}
运行结果:
实验总结:
通过本节实验,应用模块化的程序设计调试了课本上的一个猜数游戏和编写了了课后试验的小学生辅助教学系统,体会到模块化程序设计的优点,条理清晰,意识到要完成较大规模的程序设计,必须掌握好模块化程序设计方法,,只有自己在学习过程中慢慢领悟理解,才能取得进步,我要在学习过程中严格要求自己,努力学习专业知识。
do{
number=MakeNumber(); /*/计算机生成一个随机数*/
GuessNumber(number); /*用户猜数字*/
printf("Do you want to continue(Y/N or y/n)?"); /*提示是否继续*/
scanf("%c",&reply); /*%c前有一个空格*/
}
int MakeNumber(void)
{
int number;
number=(rand()%(MAX_NUMBER-MIN_NUMBER+1))+MIN_NUMBER;
assert(number >=MIN_NUMBER && number <=MAX_NUMBER);
eturn number;
srand(time(NULL));
num1=rand()% 10+1;
num2=rand()% 10+1;
num3=rand()% 4+1;
if(num3==1)
{
printf("%d+%d=?\n",num1,num2);
answer=num1+num2; /*加法运算*/
}
else if(num3==2)
int IsValidNumber(const int number);
int IsRight(const int number,const int guess);
int main()
{
int number; /*计算机生成的随机数*/
char reply; /*用户对于是否继续猜数的回答*/
srand(time(NULL)); /*初始化随机种子*/
}
else return 1;
}
运行结果:
2,辅助教学系统:
#include "stdio.h"
#include "time.h"
#include "stdlib.h"
/*函数功能:随机产生四则运算中的其中一种*/
int Question(int answer)
{
int num1,num2,num3;
} while (counter<10);
score=10*counter1; /*学生所得分数*/
rate=score/100.0;/*正确率*/
printf("your score is %d\n",score);
printf("rate of question is %f\n",rate);
if(rate>=0.75) break;
}
main()
{
int result,x,z;
int counter=0, counter1=0,counter2=0,score=0;
int n,m;
float rate=0;
do{
do{
result=Question(z); /*调用函数*/
scanf("%d",&x); /*学生从键盘输入自己的计算结果*/
break;
}
return m;
}
相关主题