两个大学实验题,你会做吗?

实验题目

一、实验目的

编写一些简单的测试用程序,作为后续黑盒测试、白盒测试和单元测试的样本。

二、实验题目

1、三角形判断;

2、计算给定日期的后一天日期。

三、实验环境

操作系统:Windows;

编程环境:Eclipse。

【注】 对编程语言和开发环境不做严格限制,但是因为单元测试会针对JUnit讲解,因此建议使用Java语言,Eclipse开发环境。

四、实验内容

1、三角形判断

问题描述:程序接受三个0~200之间的整数a、b、c作为输入参数,代表三角形的三个边;超出范围的输入给出错误提示;根据数值判断三角形所属类型:非三角形、一般三角形、直角三角形、等腰三角形、等边三角形。

附加要求:为便于后面进行单元测试,判别算法最好与输入输出部分独立设计。

2、计算给定日期的后一天日期

问题描述:程序接受三个整数y、m、d作为输入参数,分别代表年、月、日;输入日期范围为1700年1月1日至2100年12月31日,超出范围或无效的输入给出错误提示;根据输入计算指定日期的后一天日期,输出后一天的年、月、日。

附加要求:为便于后面进行单元测试,判别算法最好与输入输出部分独立设计。

  1. 三角形判断
package testunit;
import java.util.Arrays;
import java.util.Scanner;
/**
 * @author 程序源代码
 * @date 20190912 
 * 功能:三角形判断
 *
 */
public class Sanjiaoxing {
 public static int[] side;//定义变量
 public static void main(String[] args) {
 side = new int[3];
 Scanner input = new Scanner(System.in);
 try {
 //输入三个变量值,即三角形的三个边值a/b/c
 side[0] = input.nextInt();
 side[1] = input.nextInt();
 side[2] = input.nextInt();
 Arrays.sort(side);
 // 调用判断值大小规则
 SideF(side[0], side[1], side[2]);
 // 调用判断三角形规则
 triangle(side[0], side[1], side[2]);
 } catch (IllegalArgumentException e) {
 e.getMessage();
 e.printStackTrace();
 } catch (Exception e) {
 e.printStackTrace();
 } finally {
 input.close();
 }
 }
 // 调用判断值大小规则
 public static void SideF(int a, int b, int c)throws Exception {
 //判断a值
 if ((a>=200) || (a<=0)) {
 System.out.println("side[0]:值不合法");
 }else {
 throw new IllegalArgumentException("side值不合法");
 }
 //判断b值
 if ((b>=200) || (b<=0)) {
 System.out.println("side[1]:值不合法");
 }else {
 throw new IllegalArgumentException("side值不合法");
 }
 //判断c值
 if ((c>=200) || (c<=0)) {
 System.out.println("side[2]:值不合法");
 }else {
 throw new IllegalArgumentException("side值不合法");
 }
 }
 // 调用判断三角形规则
 public static void triangle(int a, int b, int c) throws Exception {
 // 判断是否可以构成三角形(两边之和大于第三边:a+b>c;两边之差小于第三边:c-a<a)
 if ((a + b > c) && (a - b < c)) {
 //直角三角形
 if(a*a==b*b+c*c || b*b==a*a+c*c || c*c==a*a+b*b){
 System.out.println("判定为:直角三角形");
 }
 //等边三角形
 if(a==b||b==c||a==c){
 System.out.println("判定为:等边三角形");
 }
 //一般三角形
 System.out.println("判定为:一般三角形");
 } else {
 throw new IllegalArgumentException("判定为:非三角形");
 }
 }
}
  1. 计算给定日期的后一天日期
package testunit;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
//计算给定日期的后一天日期
public class S2 {
  public void getDay() {
         String day = "2018-03-19";
         Calendar c = Calendar.getInstance();
         Date date = null;
         try {
             date = new SimpleDateFormat("yy-MM-dd").parse(day);
         } catch (ParseException e) {
             e.printStackTrace();
         }
         c.setTime(date);
         int day1 = c.get(Calendar.DATE);
         c.set(Calendar.DATE, day1 - 1);
   String dayAfter = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
         System.out.println(dayAfter);
     }
}
  1. 免责声明

写作说明】以上内容分享给喜欢编程,有梦想的程序员,希望能帮助到你们。以上文章属于此公众号原创所有,如需转载请注明出处。

免责申明】本公众平台不是广告商,也没有为其他三方网站或者个人做广告宣传。此分享的源代码和文章是小编在项目中、学习中整理的一些认为不错的项目。用户产生的一些自愿下载或者付费行为。与平台没有直接关系

本文分享自微信公众号 - 程序源代码(itcode)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT码农

sublime Text 3添加在浏览器中打开功能

Sublime Text 3 编写的 HTML 文件如何在浏览器中打开?可以在 HTML 文件中右键点击 Open in Browser 选项,这种方式经常出...

34320
来自专栏BAT的乌托邦

【小家java】java8新特性之---lambda表达式的的原理

本文着眼于lambda表达式的原理部分,至于基本使用层面,本章不做讨论,因为使用起来还是蛮简单的。

10540
来自专栏chenchenchen

Navicat连接MySQL时弹出:1045:Access denied for user ‘root’@’localhost’

错误原因: 当登录MySQL数据库出现 Error 1045 错误时,表明你输入的用户名或密码错误被拒绝访问了;MySQL服务搭建后,默认root用户是不能进行...

2.3K30
来自专栏BAT的乌托邦

【小家java】使用volatile关键字来实现内存可见性、实现轻量级锁

volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重...

9130
来自专栏BAT的乌托邦

【小家java】java8新特性(简述十大新特性) 饱受赞誉

截止稿前,java10都已经发布了,现在我们来讨论一下java8(2014年3月发布)。 本文的讨论,只是一个简述,更加具体的,各位可以参照各自的专题讲解

10130
来自专栏BAT的乌托邦

【小家java】java7新特性(简述八大新特性) 不温不火

编译器在编译时先做处理: ①case仅仅有一种情况。直接转成if。 ②假设仅仅有一个case和default,则直接转换为if…else…。 ③有多个ca...

8010
来自专栏BAT的乌托邦

熟练使用IDEA的断点调试(Breakpoint),大大提升你调试代码的效率(行断点、属性断点、异常断点、条件断点、远程debug...)【享学Java】

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

54640
来自专栏BAT的乌托邦

【小家java】类中静态代码块、构造代码块、静态变量、成员变量执行顺序和继承逻辑

诚如各位所知,java的三大特性:封装、继承、多态。其中继承,是java中最有学问的一点也是最相对来说最难理解的一些东西,本文针对于此,做一些实例分析,希望能够...

13520
来自专栏好好学java的技术栈

15 张 Vim 速查表奉上,帮你提高N倍效率!

去年上半年开始全面使用linux进行开发和娱乐了,现在已经回不去windows了。

6640
来自专栏chenchenchen

IDEA插件

生成各种ignore文件,一键创建git ignore文件的模板,免得自己去写,如下图。

30830

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励