计算长方形、三角形、圆形的面积和周长

news2024/7/6 19:06:35

系统设计框图
在这里插入图片描述
图形模块的 概要设计(设计数据结构和接口):
数据结构:
float 表示面积和周长

长方形的数据(一般typedef都是定义在对应模块的头文件中
typedef struct{
float width;
float height;
}Rect_st;

三角形的数据
typedef struct{
float bottom;
float height;
}Triangle_st;

圆形的数据
typedef struct{
float ridus;
}Circle_st;

接口设计(外部接口,使用extern定义在对应模块的头文件中):
//设置长方形的长、宽
void setRectAtribute(Rect_st* pRect);
//长方形周长
float getRectGirth(const Rect_st* pRect);
//长方形面积
float getRectArea(const Rect_st* pRect);

//设置三角形的底、高
void setTriangleAtribute(Triangle_st* pTriangle);
//三角形周长
float getTriangleGirth(const Triangle_st* pTriangle);
//三角形面积
float getTriangleArea(const Triangle_st* pTriangle);

//设置圆的半径
void setCircleAtribute(Circle_st* pCircle);
//圆的周长
float getCircleGirth(const Circle_st* pCircle);
//圆的面积
float getCircleArea(const Circle_st* pCircle);

详细设计(设计每一个接口函数的具体算法和流程,接口函数的实现要放在对应的源文件中):
长方形的周长:
2 * (pRect->width + pRect->height)
长方形面积:
pRect->width * pRect->height

二期项目:
所有的图形计算,需要进行密码验证,验证通过,才能计算出正确的面积。否则返回0。
用户验证模块的概要设计(设计数据结构和接口):
数据结构(变量的定义 一定要在源文件中定义,声明在头文件中):
对于变量的设计,能用局部就用局部,不能用的,用内部变量,实在不行的再用外部变量
char password[6];(不能为局部变量,设计为静态static的全局变量比较合理,作用范围只在password.c中)
设置密码:
设计外部函数(接口函数):
void setPassword(char* password);
bool checkPassword(); //返回true代表密码验证OK,返回false密码验证失败

详细设计:
setPassword算法和流程
判断必须是6位,如果是,将用户设置的密码保存到char password[6];

checkPassword算法和流程
判断参数inpass和password[6]是不是相同,相同返回true,失败返回false。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三菱GX Works2梯形图程序分段显示设置的具体方法示例

三菱GX Works2梯形图程序分段显示设置的具体方法示例 大家平时在使用GX Works2进行梯形图程序编辑时,默认是一整段在一起,程序步数较多时查看起来不是那么方便,下面就和大家分享如何通过声明编辑来实现程序分段显示。 具体方法可参考以下内容: 如下图所示,打开GX Works2编…

数据结构与算法(一):基础数据结构 算法概念、数组、链表、栈、队列

判断一个数是否是2的N次方? N & (N-1) 0 (N > 0)算题: 力扣 https://leetcode.cn/POJ http://poj.org/ 算法 算法概念 算法代表: 高效率和低存储 内存占用小、CPU占用小、运算速度快 算法的高效率与低存储:内存 C…

Oracle 定时任务job实际应用

Oracle 定时任务job实际应用 一、Oracle定时任务简介二、dbms_job涉及到的知识点三、初始化相关参数job_queue_processes四、实际创建一个定时任务(一分钟执行一次),实现定时一分钟往表中插入数据4.1 创建需要定时插入数据的目标表4.2 创建定…

如何为Google Play的应用制作宣传视频

在用户打开我们的应用页面时,最先看到的是宣传视频,这是吸引潜在用户注意力的绝好机会,所以这对于 Google Play 来说是一件大事。 宣传视频和屏幕截图一起,都是引导用户去使用我们应用程序的第一步,能够让他们一打开应…

sibelius西贝柳斯2023中文版是什么打谱软件?如何下载

Sibelius是一款专业的音乐制谱软件,被广泛用于各类音乐创作、教育、表演等领域。通过Sibelius,用户可以快速、准确地制作各种类型的音乐谱面,同时支持多种音乐符号和效果的编辑、自定义和输出,可谓是音乐领域的必备工具之一。Sibe…

SQL Server tempdb 闩锁争用

当你反复创建和删除 TempDb 对象(临时表、表变量等)时,你可能会在 tempdb 中看到页面的闩锁争用。当你注意到tempdb 上的 PAGELATCH_* 争用(sysprocesses 中的等待资源以 2: 开头)时,请检查闩锁等待是否在 …

【语音之家】AI产业沙龙 —— 三星语言智能团队ICASSP2023论文分享会

由CCF语音对话与听觉专委会 、中国人工智能产业发展联盟(AIIA)评估组、三星电子中国研究院、语音之家、希尔贝壳共同主办的【语音之家】AI产业沙龙——三星语言智能团队ICASSP2023论文分享会,将于2023年4月25日18:30-20:20线上直播。 沙龙简介…

ERP系统有哪些功能模块?

一、ERP系统是什么 现在市面上的管理软件有很多,不少企业都会去选择一些操作简单便捷的软件,优化工作流程,提高工作效率,其中ERP系统就是常见的一种,ERP是企业资源计划(Enterprise Resource Planning)的简称&#xff…

深入了解Lock同步锁的优化

大家好,我是易安。 今天我们来简单谈谈在JDK1.5之后,Java提供的Lock同步锁。 相对于需要JVM隐式获取和释放锁的Synchronized同步锁,Lock同步锁(以下简称Lock锁)需要的是显示获取和释放锁,这就为获取和释放锁…

防止机械/移动硬盘休眠 - NoSleepHD

防止机械/移动硬盘休眠 - NoSleepHD 前言解决方案计算机硬盘移动硬盘 前言 机械硬盘休眠后唤醒需要一定时间,且频繁的启动和停止并不有利于硬盘的寿命,因此可根据自身需求防止机械硬盘休眠,下文以Win10系统为例介绍解决方案。 值得一提的是…

Java核心技术 卷1-总结-9

Java核心技术 卷1-总结-9 使用异常机制的技巧为什么要使用泛型程序设计定义简单泛型类泛型方法类型变量的限定 泛型类型的继承规则 使用异常机制的技巧 1.异常处理不能代替简单的测试。 使用异常的基本规则是:只在异常情况下使用异常机制。 2.不要过分地细化异常。…

第三章(3):深入理解Spacy库基本使用方法

第三章(3):深入理解Spacy库基本使用方法 本章主要介绍了Spacy库的基本使用方法,包括安装、加载语言模型、分句、分词、词性标注、停用词识别、命名实体识别、依存分析和词性还原等内容。重点介绍了每个步骤的具体实现方式和应用场…

【TortoiseGit】安装和配置

转自 【TortoiseGit】TortoiseGit安装和配置详细说明_No8g攻城狮的博客-CSDN博客 一、TortoiseGit 简介 TortoiseGit 是基于 TortoiseSVN 的 Git 版本的 Windows Shell 界面。它是开源的,可以完全使用免费软件构建。 TortoiseGit 支持你执行常规任务,…

出道即封神的ChatGPT,现在怎么样了?ChatGPT想干掉测试人员,做梦去吧

从互联网的普及到智能手机,都让广袤的世界触手而及,如今身在浪潮中的我们,已深知其力。 前阵子爆火的ChatGPT,不少人保持观望态度。现如今,国内关于ChatGPT的各大社群讨论,似乎沉寂了不少,现在…

Mosquitto vs NanoMQ | 2023 MQTT Broker 对比

引言 Mosquitto 和 NanoMQ 都是用 C/C 开发的快速轻量的开源 MQTT Broker,完全支持 MQTT 3.1.1 和 5.0。 虽然 Mosquitto 和 NanoMQ 都具有轻量级和低资源消耗的特点,但它们的架构设计却截然不同。Mosquitto 采用单线程模式,而 NanoMQ 则基…

数据结构:单向链表(无头非循环)

朋友们、伙计们,我们又见面了,本期来给大家解读一下数据结构方面有关链表的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C语言专栏:C语言:从入门到…

【云原生】prometheus监控告警之安装部署alertmanager实战

前言 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉 💕 座右铭: 先努力成长自己,再帮助更多的人 &#xff0c…

Python基础知识:绝对/相对路径等

1 Python处理相对/绝对路径 由于本人在导入数据时,十分喜欢相对路径(在数据的上一级文件中,新建文件夹保存处理整个代码处理过程),因此,将首先简单介绍下Python中相对/绝对路径的处理。 1.1 绝对路径 一…

状态压缩DP-蒙德里安的梦想

题意 求把 NM 的棋盘分割成若干个 12 的长方形,有多少种方案。 例如当 N2,M4 时,共有 5 种方案。当 N2,M3 时,共有 3 种方案。 如下图所示: 输入格式 输入包含多组测试用例。 每组测试用例占一行&#xff0…

Jupyter notebook安装教程

文章目录 前言一、安装步骤1、安装 Python 编译器2、安装 jupyter3、运行 Jupyter notebook 二、 更改打开文件位置和快捷启动方式1、更改打开文件位置2、创建快捷启动方式 前言 Jupyter Notebook 是以网页的形式打开,可以在网页页面中直接编写代码和运行代码&…