实验十 编写大型程序
实验目的
- 熟悉二维数组做函数参数的方法
- 掌握使用工程组织多个程序文件的方法
- 掌握指针与数组的关系
实验条件:
PC 计算机,Windows7 或 Windows10 操作系统,Office2010 及以上版本,
Dev-C++5.11 及以上版本或 Code Blocks16.01 及以上版本。
实验内容
调试示例
圆形体体积计算器:设计一个常用原型体体积计算器,采用命令方式输入 1、 2、3,分别选择计算球体、圆柱体、圆锥体的体积,并输入计算所需的相应参数。
该计算器可支持多次反复计算,只要输入 1、2、3,即计算相应圆形体的体积;
如果输入其他数字,将结束计算。
本程序包含 5 个函数,调用结构如图 10.1 所示。
图 10.1
圆形体体积计算器函数调用结构
采用 3 个文件模块方式实现:lab1_main.c、lab1_cal.c、lab1_vol.c,其
中 lab1_vol.c 包含 3 个函数 vol_ball(),vol_cylind(),vol_cone()。
源程序
[文件 lab1_main.c]
#include
<stdio.h>
#include
<stdlib.h>
#include
<math.h>
main()
cal()
vol_ball()
vol_cylind()
vol_cone()
#include " lab1_cal.c";
//增加文件包含,连接相关函数
#include " lab1_vol.c";
//增加文件包含,连接相关函数
#define PI
3.14159
int main()
{
int sel;
/*循环选择计算圆形体的体积,输入非 1~3 的数字结束*/
while(1)
{
printf(" 1-计算球体体积");
printf(" 2-计算圆柱体体积");
printf(" 3-计算圆锥体体积");
printf(" 其他-退出程序");
printf(" 请输入计算命令");
//输入提示
scanf("%d", &sel);
if (sel<1|| sel>3)
{
break;
}
else
/*输入 1~3,调用 cal()*/
{
cal(sel);
}
}
return 0;
}
[文件 lab1_cal.c]
/常用圆形体体积计算器的主控函数/
void cal(int sel)
{
/*函数声明*/
double
vol_ball(void);
double
vol_cylind(void);
double
vol_cone(void);
switch
(sel)
{
case 1:
printf("球体体积为:%.2f\n",vol_ball() );
break;case 2:
printf("圆柱体体积为:%.2f\n",vol_cylind() );
break;
case 3:
printf("圆柱体体积为:%.2f\n",vol_cone() );
break;
}
}
[文件 lab1_vol.c]
/* 计算球体体积 V=4/3*PI*r*r*r
*/
double vol_ball()
{
double r;
printf("请输入球体半径");
scanf("%lf", &r);
return (4.0/3 * PI * r * r * r);
}
/* 计算圆柱体体积 V=PI*r*r*h
*/
double vol_cylind()
{
double r, h;
printf("请输入圆柱体底圆半径和高");
scanf("%lf %lf", &r, &h);
return (PI * r* r* h);
}
/* 计算圆锥体体积 V=PI*r*r*h
*/
double vol_cone()
{
double r, h;
printf("请输入圆锥体底圆半径和高");
scanf("%lf %lf", &r, &h);
return (PI * r* r* h / 3.0);
}
程序清单如下:
【文件 main.c】
#include
<stdio.h>
#include
<stdlib.h>
#include
<math.h>#include "ly1.h"
void cal(int sel);
int main()
{
int sel;
/*循环选择计算圆形体的体积,输入非 1~3 的数字结束*/
while(1)
{
printf(" 1-计算球体体积");
printf(" 2-计算圆柱体体积");
printf(" 3-计算圆锥体体积");
printf(" 其他-退出程序");
printf(" 请输入计算命令"); //输入提示
scanf("%d", &sel);
if (sel<1|| sel>3)
{
break;
}
else
/*输入 1~3,调用 cal()*/
{
cal(sel);
}
}
return 0;
}}
【文件 ly2.c】
#include<stdio.h>
#include "ly1.h"
double vol_ball()
{
double r;
printf("请输入球体半径");
scanf("%lf", &r);
return (4.0/3 * PI * r * r
* r);
}
/* 计算圆柱体体积 V=PI*r*r*h
*/
double vol_cylind()
{
double r, h;
printf("请输入圆柱体底圆半径和高");scanf("%lf
%lf", &r, &h);
return (PI * r* r* h);
}
/* 计算圆锥体体积 V=PI*r*r*h
*/
double vol_cone()
{
double r, h;
printf("请输入圆锥体底圆半径和高");
scanf("%lf %lf", &r, &h);
return (PI * r* r* h / 3.0);
}
【文件 ly1.c】
#include<stdio.h>
#include "ly1.h"
void cal(int sel)
{
/*函数声明*/
// vol_ball(void);
//double
vol_cylind(void);
//double
vol_cone(void);
switch (sel)
{
case 1:
printf("球体体积为:%.2f\n",vol_ball() );
break;
case 2:
printf("圆柱体体积为:%.2f\n",vol_cylind() );
break;
case 3:
printf("圆柱体体积为:%.2f\n",vol_cone() );
break;
}
}
【文件 ly.h】
#ifndef EXP_H
#define EXP_H
#define PI 3.14159
double vol_ball(void);
double vol_cylind(void);
double vol_cone(void);
#endif程序的项目管理如图一所示:
图一