学生实验报告
学号 :
系别 课程 名称 实验 名称 计算机科学与技术
专业 日期 : 2014-06-22
姓 名 学时数 2 程序设计基础 计算机科学班级 与技术(师) 课程 专业课 类型 模块化程序设计 实验目的: 理解和体会模块化程序化设计的思想; 积累大规模程序设计中函数设计的技巧; 积累模块化程序调试的经验。 实验要求: 实验后写实验报告。 1. 实验内容: 1、调试并运行教材174页例题7.11; 2、采用模块化程序设计方法编程实现教材143页小学生计算机辅助教学系统实验任务6. 7.11题 源程序: #include \#include \#include \#include \#define MAX_NUMBER 100 #define MIN_NUMBER 1 #define MAX_TIMES 10
int 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; /*用户对于是否继续猜数的回答*/ srand(time(NULL)); /*初始化随机种子*/ do{ number=MakeNumber(); /*/计算机生成一个随机数*/ GuessNumber(number); /*用户猜数字*/ printf(\提示是否继续*/ scanf(\前有一个空格*/ }while(reply=='Y'||reply=='y'); /*输入Y或y则程序继续*/ return 0; } void GuessNumber(const int number) { int guess; /*用户猜的数*/ int count=1; /*用户才的次数*/ int right=0; /*猜的结果对错与否*/ int ret; /*记录的返回值,即读入scanf()的数据项数*/ do{ printf(\ ret=scanf(\处理用户输入,判断是否有输入错误,是否在合法的数值范围内*/ while (ret!=1 ||!IsValidNum(guess)) /*清除输入缓冲中的错误数据*/ { printf(\ while(getchar()!='\\n'); printf(\ ret=scanf(\读入用户的猜数*/ } count++; /*记录用户猜的次数*/ right=IsRight(number,guess); /*判断用户猜的数是大还是小*/ }while(!right && count <=MAX_TIMES); if(right) /*若用户猜对了,则输出相应的提示信息*/ printf(\ else /*若超过MAX_TIMES次仍未猜对,输出相应的提示信息*/
printf(\} int MakeNumber(void) { int number; number=(rand()%(MAX_NUMBER-MIN_NUMBER+1))+MIN_NUMBER; assert(number >=MIN_NUMBER && number <=MAX_NUMBER); eturn number; } 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) { if (guess