【C++】如何使用类?C++如何设定输出小数位数?C++如何不让输出科学计数法?C++如何设定数字输出格式?

举报
王博Kings 发表于 2020/12/30 01:45:21 2020/12/30
【摘要】 目录 以一个股票为例 如何使用类?注意看usestock00.cpp代码 usestock00.cpp stock00.h stock00.cpp C++如何设定数字输出格式?看stock00.cpp这个show_pre()函数 函数解读 程序运行结果   以一个股票为例 stock00.cpp 是stock00.h类函数实现usestock00.cp...

目录

以一个股票为例

如何使用类?注意看usestock00.cpp代码

usestock00.cpp

stock00.h

stock00.cpp

C++如何设定数字输出格式?看stock00.cpp这个show_pre()函数

函数解读

程序运行结果


 

以一个股票为例

  • stock00.cpp 是stock00.h类函数实现
  • usestock00.cpp就是主函数

如何使用类?注意看usestock00.cpp代码

usestock00.cpp


  
  1. //uesstock00.cpp -- 客户端程序
  2. //记得和stock00.cpp stock00.h编译
  3. #include<iostream>
  4. #include"stock00.h"
  5. int main()
  6. {
  7. Stock one;
  8. one.acquire("BWM", 12, 25.12);
  9. one.show();
  10. one.show_pre();
  11. one.buy(15, 18.125);
  12. one.show();
  13. one.show_pre();
  14. one.sell(400, 20.00);
  15. one.show();
  16. one.show_pre();
  17. one.buy(300000, 40.125);
  18. one.show();
  19. one.show_pre();
  20. one.sell(300000, 0.125);
  21. one.show();
  22. one.show_pre();
  23. }

stock00.h


  
  1. // stock00.h -- Stock class interface
  2. // 版本 00 类的声明
  3. #ifndef STOCK00_H_
  4. #define STOCK00_H_
  5. #include<string>
  6. class Stock
  7. {
  8. public:
  9. void acquire(const std::string & co, long n, double pr);
  10. void buy(long num, double price);
  11. void sell(long num, double price);
  12. void update(double price);
  13. void show();
  14. void show_pre();
  15. private:
  16. std::string company;
  17. long shares; //股票数量
  18. double share_val; // 每股的价格
  19. double total_val; //股票的总价格
  20. void set_tot()
  21. {
  22. total_val = shares*share_val;
  23. }
  24. };
  25. #endif

stock00.cpp


  
  1. // stock00.cpp -- 对类stock00.h进行函数描述
  2. // 版本还是00
  3. #include<iostream>
  4. #include"stock00.h"
  5. void Stock::acquire(const std::string & co, long n, double pr)
  6. {
  7. company = co;
  8. if (n < 0)
  9. {
  10. std::cout << "股票数量不能设置为0; "
  11. << company << " shares set to 0. \n";
  12. shares = 0;
  13. }
  14. else
  15. {
  16. shares = n;
  17. }
  18. share_val = pr;
  19. set_tot();
  20. }
  21. void Stock::buy(long num, double price)
  22. {
  23. if (num < 0)
  24. {
  25. std::cout << "股票购买数量不能是负数。" << "交易被终止了!!\n";
  26. }
  27. else
  28. {
  29. shares += num;
  30. share_val = price;
  31. set_tot();
  32. }
  33. }
  34. void Stock::sell(long num, double price)
  35. {
  36. using std::cout;
  37. if (num < 0)
  38. {
  39. cout << "股票不能卖负数,你脑筋有问题?" << "中断交易了";
  40. }
  41. else if (num>shares)
  42. {
  43. cout << "你自己有几个股票不清楚吗?你能卖比自己持有还多的股票吗?!" << "交易终止!!!";
  44. }
  45. else
  46. {
  47. shares -= num;
  48. share_val = price;
  49. set_tot();
  50. }
  51. }
  52. void Stock::update(double price)
  53. {
  54. share_val = price;
  55. set_tot();
  56. }
  57. void Stock::show()
  58. {
  59. std::cout << "Company: " << company
  60. << " Shares: " << shares << "\n"
  61. << " Share Price: $ " << share_val
  62. << "Total Worth: $" << total_val << "\n";
  63. }
  64. // 设置输出的数字格式
  65. void Stock::show_pre()
  66. {
  67. using std::cout;
  68. using std::ios_base;
  69. //设置格式为#.###
  70. ios_base::fmtflags orig = cout.setf(ios_base::fixed, ios_base::floatfield);
  71. std::streamsize prec = cout.precision(3);
  72. cout << "Company: " << company
  73. << " Shares: " << shares << '\n';
  74. cout << " Share Price: $ " << share_val;
  75. //设置格式为#.##
  76. cout.precision(2);
  77. cout << " Total Worth: $" << total_val << '\n';
  78. //重新恢复原来的格式
  79. cout.setf(orig, ios_base::floatfield);
  80. cout.precision(prec);
  81. }

C++如何设定数字输出格式?看stock00.cpp这个show_pre()函数


  
  1. // 设置输出的数字格式
  2. void Stock::show_pre()
  3. {
  4. using std::cout;
  5. using std::ios_base;
  6. //设置格式为#.###
  7. ios_base::fmtflags orig = cout.setf(ios_base::fixed, ios_base::floatfield);
  8. std::streamsize prec = cout.precision(3);
  9. cout << "Company: " << company
  10. << " Shares: " << shares << '\n';
  11. cout << " Share Price: $ " << share_val;
  12. //设置格式为#.##
  13. cout.precision(2);
  14. cout << " Total Worth: $" << total_val << '\n';
  15. //重新恢复原来的格式
  16. cout.setf(orig, ios_base::floatfield);
  17. cout.precision(prec);
  18. }

函数解读

使用ios_base设定了小数点后三位显示

然后又设定小数点后2位显示

然后最后恢复默认设置

程序运行结果

 

文章来源: kings.blog.csdn.net,作者:人工智能博士,版权归原作者所有,如需转载,请联系作者。

原文链接:kings.blog.csdn.net/article/details/98063650

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。