C 练习实例50-使用Dev-C++创建项目(圆形体体积计算器)

项目展示

 项目案例:圆形体体积计算器

 vol.h文件

#include <stdio.h>
#include <math.h>
#define PI 3.141592654
void cal(int sel);	//函数声明
double vol_ball(void);
double vol_cylind(void);
double vol_cone(void);

main.c文件

#include "vol.h"
int main(void) {
	int sel;
//	循环选择计算圆柱体的体积,直到输入非1~3的数字为止
	while(1){	//永久循环,通过循环体中break语句结束循环
		printf("1-计算球体体积\n");
		printf("2-计算圆柱体体积\n");
		printf("3-计算圆锥体体积\n");
		printf("其它-退出程序运算\n");
		printf("请输入计算命令:");
		scanf("%d",&sel);
		if(sel<1||sel>3)	//输入非1-3的数字,循环结束
			break;
		else				//输入1-3的数字,调用cal()
		 	cal(sel);
		
	}
	return 0;
}

主调函数.c文件

//常用圆形体体积计算器的主调函数
#include "vol.h"
void cal(int sel)
{
	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;
	}
}

圆柱体.c文件

/*计算圆柱体体积 V=PI*r*r*h */
#include "vol.h"
double vol_cylind()
{
	double h,r;
	printf("请输入圆柱体的底圆半径和高:");
	scanf("%lf %lf",&r,&h);
	return (PI*r*r*h);
}

圆锥体.c文件

/*计算圆锥体体积 V=h/3*PI*r*r */
#include "vol.h"
double vol_cone()
{
	double h,r;
	printf("请输入圆锥体的底圆半径和高:");
	scanf("%lf %lf",&r,&h);
	return (h/3.0*PI*r*r);
}

球体.c文件

/*计算球体体积 V=4/3*PI*r*r*r */
#include "vol.h"
double vol_ball()
{
	double r;
	printf("请输入球体的半径:");
	scanf("%lf",&r);
	return (4.0/3.0*PI*r*r*r);
}

运行测试 

1-计算球体体积
2-计算圆柱体体积
3-计算圆锥体体积
其它-退出程序运算
请输入计算命令:1
请输入球体的半径:1
球体体积为:4.19
1-计算球体体积
2-计算圆柱体体积
3-计算圆锥体体积
其它-退出程序运算
请输入计算命令:2
请输入圆柱体的底圆半径和高:1 1
圆柱体体积为:3.14
1-计算球体体积
2-计算圆柱体体积
3-计算圆锥体体积
其它-退出程序运算
请输入计算命令:3
请输入圆锥体的底圆半径和高:1 1
圆锥体体积为:1.05
1-计算球体体积
2-计算圆柱体体积
3-计算圆锥体体积
其它-退出程序运算
请输入计算命令:

 步骤

创建一个文件夹,用于存放C语言项目

 打开Dev-C++,文件->新建->项目

 选择console application(控制台应用),选择语言,输入项目名 ,然后点击确认

将项目保存到新建的文件夹里

创建好项目后,可以看到有一个main.c的文件,这是主函数文件,在这里输入你的主函数代码。同时我们需要写上:#include “vol.h”,用于调用头文件

#include "vol.h"
int main(void) {
	int sel;
//	循环选择计算圆柱体的体积,直到输入非1~3的数字为止
	while(1){	//永久循环,通过循环体中break语句结束循环
		printf("1-计算球体体积\n");
		printf("2-计算圆柱体体积\n");
		printf("3-计算圆锥体体积\n");
		printf("其它-退出程序运算\n");
		printf("请输入计算命令:");
		scanf("%d",&sel);
		if(sel<1||sel>3)	//输入非1-3的数字,循环结束
			break;
		else				//输入1-3的数字,调用cal()
		 	cal(sel);
		
	}
	return 0;
}

选中项目右键,New File,或者直接ctrl+N

创建一个为vol.h的库文件。这里放预处理命令和函数声明 

#include <stdio.h>
#include <math.h>
#define PI 3.141592654
void cal(int sel);	//函数声明
double vol_ball(void);
double vol_cylind(void);
double vol_cone(void);

之后编写相应的其它被调函数即可,同样开头需要:#include "vol.h".编写完之后编译运行即可。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/355091.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代理IP使用指南:风险与注意事项

在当今的数字化时代&#xff0c;使用在线代理IP已经成为一种常见的网络行为。然而&#xff0c;在使用这些代理IP时&#xff0c;我们需要注意一些风险和问题&#xff0c;以确保我们的网络安全和隐本私文。将探讨使用代理IP时需要注意的几个关键问题。 1、代理IP的安全性 使用代理…

【JavaLearn】#(29)Maven引入、Maven项目类型、Maven安装与配置、Maven项目的创建和使用、pom配置文件介绍

1. Maven引入 1.1 传统方式中项目jar包资源的问题 项目中的jar包资源&#xff08;如JDBC驱动包&#xff09;需要我们自己从网上下载&#xff0c;然后手动导入到项目中使用 –> 一旦jar包资源过多&#xff0c;容易造成遗漏&#xff0c;且不好管理 如果有两个项目&#xff0…

LabVIEW动态数据交换实现数据通信

LabVIEW动态数据交换实现数据通信 介绍了LabVIEW软件在驱动一般多功能接口卡中的应用。LabVIEW作为一种图形化编程平台&#xff0c;被广泛应用于自动测量系统、工业过程自动化等领域。利用LabVIEW驱动实验室中常用的多功能接口卡&#xff0c;以实现数据采集和分析。 系统主要…

C#算法(11)—求三个点构成圆的圆心坐标和半径

前言 我们在上位机开发领域也经常会碰到根据三个点求出圆的圆心、半径等信息的场景,本文就是详细的介绍如何根据三个点使用C#代码求出三点构成的圆的圆心坐标、圆半径、三点构成的圆弧的角度。 1、3点求圆分析 A、B、C三个点都是圆上的坐标点,过向量AB做中垂线,过向量AC做…

HCIP寒假第十次作业

第一步&#xff0c;给pc配置IP192.268.1.2-192.168.1.4 第二步&#xff0c;在三个交换机上划分vlan [sw1]vlan 3 [sw1]interface e0/0/2 [sw1-Ethernet0/0/2]port link-type access [sw1-Ethernet0/0/2]port default vlan 3 [sw2]vlan 2 lsw2]interface e0/0/2 [sw2…

【c++】构造函数和析构函数

1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数 默认成员函数&#xff1a;用户没有显式实现&#xff0c;编译器…

2024年第一篇博客

这是2024年的第一篇博客&#xff0c;2023年笔者经历了一连串的生活、工作、学习上的转折和调整&#xff0c;跌跌撞撞时光飞逝&#xff0c;转眼间就踏着元旦的钟声步入了2024年&#xff0c;前思后想、辗转反侧、犹豫再三不知道从哪里开始博客新的篇章&#xff0c;这个问题坦诚说…

【Spark系列3】RDD源码解析实战

本文主要讲 1、什么是RDD 2、RDD是如何从数据中构建 一、什么是RDD&#xff1f; RDD&#xff1a;弹性分布式数据集&#xff0c;Resillient Distributed Dataset的缩写。 个人理解&#xff1a;RDD是一个容错的、并行的数据结构&#xff0c;可以让用户显式的将数据存储到磁盘…

嵌入式Linux系统引导过程中的设备驱动加载

大家好&#xff0c;今天给大家介绍**嵌入式Linux系统引导过程中的设备驱动加载&#xff0c;**文章末尾附有分享大家一个资料包&#xff0c;差不多150多G。里面学习内容、面经、项目都比较新也比较全&#xff01;可进群免费领取。 **在嵌入式Linux系统的引导过程中&#xff0c…

杨占华主任:冠心病,中医好还是西医好

冠心病是一种慢性疾病&#xff0c;治疗时间相对较长&#xff0c;恢复缓慢。一般来说&#xff0c;冠心病患者也面临着巨大的心理压力。选择中药治疗好还是西药治疗好&#xff1f; 冠心病的西医治疗主要包括药物治疗、冠状动脉支架植入和冠状动脉搭桥术。 中医治疗冠心病的主要方…

Open CASCADE学习|读取STEP文件并显示

STEP文件是基于ISO 10303标准创建的三维模型数据交换文件&#xff0c;也称为产品模型数据交换标准&#xff08;Standard Exchange of Product data model&#xff09;。这种文件格式旨在提供一个不依赖具体系统的中性机制&#xff0c;实现产品数据的交换和共享。 STEP文件是一…

OJ_键盘输入问题

题干 c语言实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<vector> #include<map> using namespace std;int main() {//记录每个字母需要花费多少时间map<char, int> inputTime {{a,1},{b,2},{c,3},{d,1},{e,2},{f,3},{g,1},{h,2…

RK3568平台开发系列讲解(Linux系统篇)中断线程化

🚀返回专栏总目录 文章目录 一、什么是中断线程化二、中断线程化接口函数三、使用案例沉淀、分享、成长,让自己和他人都能有所收获!😄 一、什么是中断线程化 在Linux中,中断线程化(Interrupt Thread)是一种处理中断的方式,它允许将中断处理程序执行的部分移动到一个单…

C51 单片机学习(二):定时器与中断系统

参考 51单片机入门教程 1. 定时器 1.1 定时器定义 51 单片机的定时器属于单片机的内部资源&#xff0c;其电路的连接和运转均在单片机内部完成 C51 单片机学习&#xff08;一&#xff09;&#xff1a;基础外设 讲的都是单片机的 IO 口控制的外设 1.2 定时器作用 用于计时系…

Java算法---递归算法基础介绍

目录 一、递归算法 二、递归算法的典型例子 &#xff08;1&#xff09;阶乘 &#xff08;2&#xff09;二分查找 &#xff08;3&#xff09;冒泡排序 &#xff08;4&#xff09;插入排序 一、递归算法 计算机科学中&#xff0c;递归是一种解决计算问题的方法。其中解决方案…

yum指令——Linux的软件包管理器

. 个人主页&#xff1a;晓风飞 专栏&#xff1a;数据结构|Linux|C语言 路漫漫其修远兮&#xff0c;吾将上下而求索 文章目录 什么是软件包yum指令1.yum 是什么&#xff1f;2.Linux系统&#xff08;Centos&#xff09;的生态 3.yum的相关操作安装卸载yum的相关操作小结 软件源安…

Python判断语句——布尔类型和比较运算符

一、引言 在Python编程语言中&#xff0c;布尔类型和比较运算符是基础而又至关重要的概念。它们是构建逻辑和决策的核心要素&#xff0c;让程序能够理解“真”与“假”、以及各种数量和值之间的关系。理解并掌握这些概念&#xff0c;对于编写高效、准确的代码至关重要。在本文…

OpenHarmony—仅允许在表达式中使用typeof运算符

规则&#xff1a;arkts-no-type-query 级别&#xff1a;错误 ArkTS仅支持在表达式中使用typeof运算符&#xff0c;不允许使用typeof作为类型。 TypeScript let n1 42; let s1 foo; console.log(typeof n1); // number console.log(typeof s1); // string let n2: typeof …

【极数系列】Flink集成DataSource读取集合数据(07)

文章目录 01 引言02 简介概述03 基于集合读取数据3.1 集合创建数据流3.2 迭代器创建数据流3.3 给定对象创建数据流3.4 迭代并行器创建数据流3.5 基于时间间隔创建数据流3.6 自定义数据流 04 源码实战demo4.1 pom.xml依赖4.2 创建集合数据流作业4.3 运行结果日志 01 引言 源码地…

基于Python 爬虫的房地产数据可视化分析与实现

摘要&#xff1a; 过去&#xff0c;不管是翻阅书籍&#xff0c;还是通过手机&#xff0c;电脑等从互联网上手动点击搜索信息&#xff0c;视野受限&#xff0c;信息面太过于狭窄&#xff0c;且数据量大而杂乱&#xff0c;爆炸式信息的更新速度是快速且不定时的。要想手动获取到海…