摄氏度转华氏度

/*   
  * Copyright (c) 2011, 烟台大学计算机学院   
  * All rights reserved.   
  * 文件名称:test.cpp   
  * 作    者:刘卫丽    
  * 完成日期:2012 年10 月13日   
  * 版 本 号:v1.0   
  *   
  * 输入描述:摄氏度的值  
  * 问题描述:摄氏度转华氏度 
  * 程序输出:华氏度的值  
  * 问题分析:略  
  * 算法设计:略   
  */     

#include<iostream>
using namespace std; 
int main() 
{
	double c;
	double f;
	cout<<"输入摄氏度的值:";
	cin >>c;
	f=c*9/5+32;
    cout<<c<<"摄氏度的值是:"<<f<<"华氏度.";
	return 0;
}


运行结果:

心得体会:亲,这太难了

该程序允许用户比较摄氏和氏温度的相等性。具体要求如下: 建立一个Temperature类,它有两个实例变量:一个是温度值(float);另一个是温度的计量单位(char),即取值 ’C’ 或 ’F’,C表示Celsius(摄氏温度)、F表示Fahrenheit(氏温度)。这个类还应有2 个构造方法: 给每一个实例变量设置缺省值,即温度值为0、计量单位为C(摄氏); 通过两个参数分别给两个实例变量赋初值。 这个类应包括: 两个存取方法:一个返回用摄氏计量的温度、另一个返回氏温度。摄氏和氏温度的换公式如下: degreesC = 5 * (degreesF - 32)/9 degreesF = (9* (degreesC)/5) + 32 三个改变对象属性的方法:一个设置温度值、一个设置计量单位(’F’或’C’)、另一个同时设置温度值和计量单位。 三个比较方法:一个用来是否两个温度相等;一个方法用来测试比较一个温度大于另一个温度;一个方法用来测试比较一个温度小于另一个温度。 最后写一个测试程序(main方法),测试Temperature类中的所有方法。要确保使用到所用的构造方法;要测试每一个比较方法,并确保至少有一个真(true)一个假(false)的结果。例如测试:0.0 degrees C = 32.0 degrees F -40.0 degrees C = - 40.0 degrees F -100.0 degrees C = 212.0 degrees F 请注意:必须保证输入的数据是有效的。所有非法的输入字符都应产生相应的错误信息并提示用户重新输入正确的数据。
在Java中实现摄氏度华氏度,可利用公式°F = (9/5) * °C + 32 进行换。以下是几种不同实现方式的代码示例: ### 方式一:基础控制台输入输出实现 ```java import java.util.Scanner; public class Convert { public static void main(String[] args) { double degree; // 摄氏度华氏度 System.out.print("输入摄氏度:"); Scanner doubledegree = new Scanner(System.in); degree = doubledegree.nextDouble(); double fahrenheit = (9 / 5.0) * degree + 32; // 输出结果保留两位 System.out.printf("对应的华氏度是:%.2f℉\n", fahrenheit); // 释放内存 doubledegree.close(); } } ``` ### 方式二:封装成工具类方法实现 ```java import java.math.BigDecimal; public class Util { public static void main(String[] args) { System.out.println("摄氏度 华氏度: " + centigrade2Fahrenheit(10, 1)); } /** * <p>华氏度 = 32 + 摄氏度 × 1.8。</p> * @param degree 需要换的温度 * @param scale 保留的小数位 * @return */ public static double centigrade2Fahrenheit(double degree, int scale) { double d = 32 + degree * 1.8; return new BigDecimal(d).setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue(); } } ``` ### 方式三:面向对象类实现 ```java package com.mingrisoft.oop; import java.util.Scanner; public class TemperatureConverter { public double toFahrenheit(double centigrade) { double fahrenheit = 1.8 * centigrade + 32; return fahrenheit; } public static void main(String[] args) { System.out.println("请输入要换的温度(单位:摄氏度)"); Scanner in = new Scanner(System.in); double centigrade = in.nextDouble(); TemperatureConverter tc = new TemperatureConverter(); double fahrenheit = tc.toFahrenheit(centigrade); System.out.println("换完成的温度(单位:华氏度):" + fahrenheit); } } ``` ### 方式四:循环批量换输出实现 ```java import java.util.Scanner; public class Exercise0304 { public static void main(String[] args) { for (int i = 31; i <= 40; i++) { int a = i; System.out.println(a + "°C " + selsiusToFahrenheit(a) + "°F" + "\n"); } } public static double selsiusToFahrenheit(double celsius) { double c = ((9.0 / 5) * celsius + 32); return c; } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值