实验报告范例

更新时间:2023-10-21 23:39:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实 验 报 告

课程名称 程序设计基础 实验项目 实验仪器

实验五 函数的简单应用 计算机

系 别 专 业

计算机学院 软件工程

班级/学号 软工0901/2009011260 学生姓名 蒋玉茹 实验日期 2009/12/15 成 绩 指导教师 蒋玉茹

函数的简单应用 一、实验目的

1.掌握函数的定义、函数的说明和调用。

2.掌握函数的参数及其传递方式,函数值的正确返回。 二、实验内容

编写一个自动出题程序,该程序可以给出任意两个数的+、-、×、/运算式子,当用户输入运算结果时,程序可以判断正误。当用户做完十道题目之后,程序给出最终的统计结果。

三、程序的总体设计

因为本程序要求运用函数实现,因此设计了四个用户自定义函数,分别为:加法、减法、乘法、除法。这四个自定义函数和主函数之间的调用关系参见图1:

主函数加法减法乘法除法

图1 自动出题程序的模块结构图

为了完成这个程序还需要利用系统提供的函数:scanf、printf、srand、rand四个函数。

对各个函数功能的说明: 1. main主函数

功能:负责程序与用户的接口部分,即数据的输入和输出;负责程序的主要逻辑;负责随机生成两个随机数和一个运算符号。 2. 加法

功能:计算两个数相加的结果 输入:两个数 输出:两个数的和 3. 减法

功能:计算两个数相减的结果 输入:两个数 输出:两个数的差 4. 乘法

功能:计算两个数相乘的结果 输入:两个数 输出:两个数的乘积 5. 除法

功能:计算两个数相除的结果 输入:两个数 输出:两个数的商 四、每个函数的详细设计

1.main函数

begininti,j,x;x=0x<10生成第一个随机数j生成第二个随机数I生成运算符op生成运算式子、接收用户输入、判断正误x++printf(\你答对了%d个题\

当然大家也可以画非常详细的流程图,比如:

begininti,j,x;x=0x<10j=rand();j<1||j>100i=rand();i<1||i>100op=rand();op<1||op>=5op=1printf(\);ed==add(i,j)op=2printf(\%d=\printf(\ed==jian(i,j)op=3printf(\;printf(\ed==cheng(i,j)printf(\break;op=4printf(\;printf(\ed==chu(i,j)printf(\break;printf(\break;printf(\printf(\break;x++printf(\你答对了%d个题\结束

注:这个流程图似乎太复杂了。我们更倾向于将程序中的部分代码段用文字描述其功能,而不是在流程图中将每条语句都画出来。因为这样才能体现流程图的意义:它是详细设计的辅助工具而不是代码的反转,它能帮助我们理清详细设计的思路。

2.加法等自定义函数的流程图,如图2:

加法 减法 乘法 除法开始开始开始开始计算两个数的和将和返回主调函数计算两个数的差将差返回主调函数计算两个数的乘积将积返回主调函数计算两个数的商将商返回主调函数结束

结束结束结束

图2 加法、减法、乘法、除法的程序流程图

四、源代码

#include #include #include int add(int x,int y) { }

int z; z=x+y; return(z);

int jian(int x,int y) { }

int cheng(int x,int y)

int z; z=x-y; return(z);

{ int z; z=x*y; return(z);

}

int chu(int x,int y) { int z; z=x/y; return(z);

}

void main() { int i,j,x; int op; int ed; int z=0;

srand((unsigned)(time(NULL))); for(x=0;x<10;x++) {

do { j=rand();

}

while(j<1||j>100); do { i=rand();

}

while(i<1||i>100); do { op=rand(); }

while(op<1||op>=5);

switch(op) { case 1:

printf(\ scanf(\

if(ed==add(i,j))

{

printf(\ z+=1;

} else

printf(\

break;

case 2:

printf(\ scanf(\ if(ed==jian(i,j)) {

printf(\ z+=1;

} else

printf(\

break;

case 3:

printf(\ scanf(\ if(ed==cheng(i,j)) {

printf(\ z+=1;

} else

printf(\

break;

case 4:

printf(\ scanf(\ if(ed==chu(i,j)) {

printf(\ z+=1;

} else

printf(\

五、运行过程

NO0:5-65=60 ERROR!

NO1:97/32=2 ERROR!

NO2:26/15=1 RIGHT!

NO3:7-77=70 ERROR!

NO4:4-48=40 ERROR!

NO5:60*95=5700 RIGHT!

NO6:21*12=100 ERROR!

NO7:19/29=0 RIGHT!

NO8:34+82=116 RIGHT!

break;

}

}

printf(\你答对了%d个题\

}

NO9:77/74=1 RIGHT!

你答对了5个题Press any key to continue

注:阴影部分为用户输入,其余为系统显示

六、实验心得体会

本次实验学习了如何自定义函数,如何调用函数的C语言知识;学习了关于函数调用的模块结构图的绘制方法;掌握了实参向形参的单向值传递过程和函数的返回值的意义。

在实验中遇到的主要问题是对随机函数的理解和运用。Srand是系统定义的函数,作为程序员,如果能够熟知系统定义的函数并且适当的运用将得到事半功倍的效果。

程序遗留问题:如何让减法的结果为整数;如何让相除的两个数可以整除。

本文来源:https://www.bwwdw.com/article/83gf.html

Top