【需求描述】

1.使用C++语言编写程序。

2.三角形的三边长度为整数且限制在1~100之间。

3.有良好的排错机制。(程序不接受非数字字符等)

4.友好的交互提示。(输入错误提示,是否继续提示等)

【开发环境】

1.windows10

2.Dev-C++ 5.1.0

【程序源码】

#include <iostream>
#include <limits>
#include <sstream>using namespace std; class Triangle{
private:int length_a,length_b,length_c;
public:Triangle(int a,int b,int c){length_a=a;length_b=b;length_c=c;}~Triangle(){}//测试单边长度是否在要求范围 bool lengthtest(int tlen) {if(tlen>=1&&tlen<=100){return true;}else{return false;}}/*校验三边长度是否合法的方法*/ bool lengthCheck(){ /*判断三边的值是否在要求的范围*/if(lengthtest(length_a)){if(lengthtest(length_b)){if(lengthtest(length_c)){return true;}}}return false;}//  校验三边长度是否可以组成三角形bool composeCheck(){if(length_a+length_b>length_c){if(length_b+length_c>length_a){if(length_a+length_c>length_b){return true;}}}return false;}//判断三角形的类型int TypeCheck(){if(length_a==length_b||length_a==length_c||length_b==length_c){if(length_a==length_b&&length_b==length_c){return 3;}return 2;}return 1;
}};
int main() {int a,b,c;if(!isdigit(a)){} A:for(int i=1;i<=3;i++) {cout<<"请输入三角形第"<<i<<"边的长度[1,100]:";int num;while( !(cin>>num) || cin.peek()!='\n' ){cin.clear();cin.ignore( numeric_limits<streamsize>::max(), '\n' ); cout << "输入有误,请重新输入有效数字[1,100]:" << endl;}if(i==1){a=num;}else if(i==2){b=num;}else{c=num;}} Triangle triangle(a,b,c);if(!triangle.lengthCheck()){cout<<"输入的三边长度超出范围,请重新输入:"<<endl;  triangle.~Triangle();goto A; }if(triangle.composeCheck())   {int temp = triangle.TypeCheck();switch(temp){case 1:cout<<"该三角形是一个普通三角形"<<endl;break;case 2:cout<<"该三角形是一个等腰三角形"<<endl;break;case 3:cout<<"该三角形是一个等边三角形"<<endl;break;default:break;}    }else{cout<<"输入的三边无法组成三角形。"<<endl; }cout<<"是否继续?请选择[Y/N]:";char d;cin>>d;if(d==89||d==121) {triangle.~Triangle();goto A;}system("pause");return 0;
}

【运行测试效果】

【改进意见】

本次实验由于受到需求束缚,无法拓展更多功能,正常情况下,可以有以下改进:

1.三角形类型判断应该可以更加丰富:普通、等腰锐角三角形,普通、等腰钝角三角形,普通、等腰直角三角形。

2.支持输入小数作为边长。

3.不强制性三边数据都要输入,但有提示输入数据不完整以及重输措施。

C++编写程序:输入三角形的三边,判断三角形的类型。相关推荐

  1. java语言编程三角形图形_编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用......

    导航:网站首页 > 编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用... 编程题:编写程序输入三角形的3条边长,计算并输出... 求助 ...

  2. python表示三个数升序_编写程序,输入三个数,然后以升序显示_学小易找答案

    [简答题]按照软件开发的顺序,实现下列程序: 计算三角形面积的公式为:s = (side1 + side2 + side3) / 2,area = (s - side1)(s - side2)(s - ...

  3. python输入半径求圆的面积、保留三位小数_编写程序,输入圆的半径,求该圆的面积与周长(保留三位小数)。 /* 程序功能:输入圆的半径,计算圆的面积与周长*/_学小易找答案...

    [编程题]从字符串中删除指定的字符.同一字母的大小写按不同字符处理. 例如:若程序执行时,输入字符串为: turbo c and Borland c++ ,从键盘上输入字符: n ,则输出后变为: t ...

  4. python求1到n的奇数和_编写程序。输入任意整数n,计算1到n的奇数和。C语言编写程序 输入整数N 显...

    编写程序.输入任意整数n,计算1到n的奇数和. C语言编写程序 输入整数N 显 www.zhiqu.org 时间: 2020-11-23 解题思路:循环判断1到N的每一个数: 若除以2是结果为整数,也 ...

  5. c语言编写程序,输入正整数n,计算0到n以内所有奇数的和,c语言输入正整数n,计算1~n中的奇数和以及偶数和并输出....

    用C语言编写程序,输入一个正整数n(1 #include"stdio.h"intmain(){\x09inti,j,n;\x09inta[12];\x09intmin,mx;\x0 ...

  6. c语言编写一个程序计算某年某月有几天,c语言编写程序,输入某年某月,求该月的天数...

    c语言编写程序,输入某年某月,求该月的天数 #包括 voidmain() { 年.月.日: 请输入当前日期(年月以空格分隔): ': 中国年月 而(月=0 | |月12) { cout '输入时间有误 ...

  7. java源程序求圆的周长和面积_编写程序,输入圆的半径,求出圆的周长和面积. PI=3.14...

    C语言程序 编写函数,求圆面积的值,主函数输入半径,并在主函数中调它. #includemain(){\x09floatS(floatr);\x09floatr;\x09printf("in ...

  8. 编写程序输入一个5x5的矩阵,将最大元素与中心元素交换,并按行列对齐输出。...

    编写程序输入一个5x5的矩阵,将最大元素与中心元素交换,并按行列对齐输出. 题目描述 编写程序输入一个5x5的矩阵,将最大元素与中心元素交换,并按行列对齐输出. 输入描述 编写程序输入一个5x5的矩阵 ...

  9. c语言中输入n一个整数存入一维数组,编写程序输入n个整数到一维数组(先输入数据的个数n,再输入n个数据),然后以输入的顺序输出这些数。...

    满意答案 王毛毛00000 2014.05.25 采纳率:58%    等级:7 已帮助:613人 首先声明:我是来被骗的!因为根据经验绝大部分的一级头衔的人都是想到问题才注册百度的,别人回答了基本不 ...

  10. 用PHP编写圆的半径和周长,在C++中编写程序输入半径计算圆的周长和面积

    现在计算机语言应用是很多的,如果你使用电脑又会使用计算机语言那就是更加的吃香了,今天我们就来说说C语言,在C++中编写程序输入半径计算圆的周长和面积. 工具/材料 电脑.VC++软件 我们首先要下载安 ...

最新文章

  1. 基于SSH的在线音乐点评网站-java在线音乐点评网站
  2. 概念理解#1 第一类公民(First-class Citizen)
  3. 修改win10 默认网卡 --其实就是改网卡接口跃点
  4. wxWidgets 的打印演示
  5. Spring(1)—初识
  6. 洛谷 P1090 合并果子
  7. Machine Learning——Homework1
  8. Smarty自学笔记
  9. token 自动续期的方案
  10. openwrt 使用自定义 DNS
  11. wechat-0010,微信公众号,接入微信公众平台
  12. 30.一张图理解EOS是什么
  13. Latex beamer 制作 PPT
  14. Bloomberg彭博终端函数和EXCEL插件
  15. 让你不再害怕指针——C指针详解(经典,非常详细)
  16. 变分自编码器(VAE,Variational Auto-Encoder)
  17. 中国移动飞信免费发短信API接口(第三方 Fetion API)
  18. Linux下防御ARP欺骗
  19. 谈谈JS 的图片压缩
  20. 第八章软件项目质量管理

热门文章

  1. 5. http://kb.cnblogs.com/page/90838/
  2. 27. Location reload() 方法
  3. centos java进程号_centos中分析java占用大量CPU资源的原因
  4. js中的 toUpperCase()中开头的u和c一定要大些
  5. CSS-行内框、行框、行高
  6. JavaWeb将图片显示在浏览器中
  7. WIN7下的ORACLE精简版客户端(ORACLE Instant Client)安装与配置指南
  8. Flask开发系列之初体验
  9. yarn依赖管理工具,和fis3构建工具 gulp详细用法
  10. Spring Struts2 整合