好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 wjd2002 于 2023-11-10 09:51 编辑
采用命令行模式运行,实现摄氏度/华氏温度互转功能:
1、摄氏度转为华氏温度
2、华氏温度转为摄氏度
3、退出程序
-------------------------
仅供参考:
界面
源码如下:
use std::fmt::Error;
use std::io::stdin;
use std::num::ParseIntError;
fn c2f<'a>(mut showText: &'a str, mut showText2: &'a str, mut result: f64) -> (&'a str, &'a str, f64) {
while true {
println!("请输入摄氏度数值:\n ");
let mut val = "".to_string();
stdin().read_line(&mut val).expect("输入错误.");
if val.trim() != "".to_string() {
println!("输入摄氏度数值为:{} \n", val);
showText = "华氏温度";
showText2 = "℉";
let v: f64 = val.trim().parse().unwrap();
result = v * 1.8 + 32.0;
//println!("{} {} {} ", showText, showText2, result);
return (showText, showText2, result);
//break;
} else {
c2f(showText, showText2, result);
}
}
("", "", 0.0)
}
fn f2c<'a>(mut showText: &'a str, mut showText2: &'a str, mut result: f64) -> (&'a str, &'a str, f64) {
while true {
println!("请输入华氏温度数值:\n ");
let mut val = "".to_string();
stdin().read_line(&mut val).expect("输入错误.");
if (val.trim() != "".to_string())
{
println!("输入的华氏温度数值为:{} \n", val);
showText = "摄氏温度";
showText2 = "℃";
let v: f64 = val.trim().parse().unwrap();
result = (v - 32.0) / 1.8;
return (showText, showText2, result);
}else {
f2c(showText, showText2, result);
}
}
("", "", 0.0)
}
fn main() {
println!("欢迎使用温标转换程序, 来自wjd2002\n");
let state = true;
while state {
println!("请选择温度计算公式,输入对应的数字:\n ");
println!("1、摄氏度转为华氏温度\n ");
println!("2、华氏温度转为摄氏度\n ");
println!("3、退出程序\n ");
println!("请输入对应的数字:\n ");
let mut value = String::new();
stdin().read_line(&mut value).expect("Failed to read line.");
let mut result = 0.0;
let mut showText = "";
let mut showText2 = "";
let mut value_num: i32 = value.trim().parse().unwrap();
if value_num == 1 {
(showText, showText2, result) = c2f(showText, showText2, result);
} else if (value_num == 2)
{
(showText, showText2, result) = f2c(showText, showText2, result);
} else if (value_num == 3)
{
std::process::exit(0);
} else {
println!("[{}] 输入错误,请输入对应的数字:\n ", value);
}
println!("{0}的计算结果:{1:.2}{2} \n", showText, result, showText2);
println!("====================\n ");
println!("按任意键继续.....\n ");
stdin().read_line(&mut value).expect("错误");
}
}
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|