作者ric2k1 (Ric)
看板EE_DSnP
标题[情报] HW#7 的中文说明书
时间Sat Dec 6 10:42:31 2008
这个作业就是要从 standard input 读字串进去, 然後转换成 double 存起来.
题目首先要求你宣告一个 class Str2Double, 并宣告一个 member function
readValue() 从 standard input 读字串进去, 由於是从 standard input 直接读
字串, 所以不需要传参数, 而且在这个 function 里面就将字串转换成 double,
所以 class Str2Double 里面也不用有 data member 来存此字串.
此外, readValue() 这个 function 必须检查输入的字串是否为合理的浮点数,
比方说是否有多个小数点, 或是非数字的字元等等, 题目要求要产生的错误讯息,
请见题目说明档. 如果输入的字串是合法的, 那麽你应该可以判断他小数点以下
有几位数, 然後将这个位数存在 Str2Double::_precision 这个 data member 上,
好让 print() 这个 function 印出适当的位数.
在转换成 double 时, 要注意精确度的问题. 基本上你应该会有许多整数到浮点数
之间的转换, 以及浮点数本身的运算. 要注意的是如果做太多次浮点数运算,
你的误差会越来越大. 你可以跟 atof() 这个 standard lib 里面的 function
比对一下你的精确度, 但是不可以直接用它或是相关的 functions.
最後还有一个规定, 就是请不要增加 public member functions 以及任何 data
members. 不过如有需要请自行增加 private member functions.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.121.128.244
1F:推 alanalg:喔喔 还好同学有问 老师有PO 不然我就走错方向了 12/06 10:48
2F:推 georgemouse:不需要存字串? 是我搞错老师意思吗? 12/07 02:17
3F:推 georgemouse:不存字串怎麽转呀 @@ 12/07 02:19
4F:→ georgemouse:readValue() 里面还是得宣告一个string吧 @@ 12/07 02:26
5F:→ ric2k1:不需存成 data member, 但是当然要存成 local variable 啊 12/07 09:51
6F:推 stimim:不把string存成data member的话,要用谁呼叫atof??? 12/09 22:05
7F:→ stimim:(拿来和自己的转换比较用的) 12/09 22:05
8F:→ ric2k1:就用 local variable 啊! 12/09 22:52
9F:→ ric2k1:BTW, to call atof(), you may need atof(str.c_str()) 12/09 22:52