C++编程基础二 26-习题5

 1 #pragma once
 2 #ifndef DRUG_H_
 3 #define DRUG_H_
 4 #include <string>
 5 using namespace std;
 6 
 7 enum Type
 8 {
 9     PlusHP,
10     PlusMP
11 };
12 
13 class Drug
14 {
15 private:
16     string name_;
17     Type type_;
18     int count_;
19     float buyPrice_;
20     float sellPrice_;
21     static constexpr float Ratio = 0.75;
22 public:
23     Drug(string name,Type type,int count ,float buyPrice);
24     Drug();
25     ~Drug();
26     void buyDrug(float &money, int num);
27     void sellDrug(float &money, int num);
28     void showDrug();
29     string showType();
30 };
31 
32 
33 #endif // !DRUG_H_
 1 #include "stdafx.h"
 2 #include "drug.h"
 3 #include <iostream>
 4 
 5 Drug::Drug()
 6 {
 7 }
 8 
 9 Drug::Drug(string name, Type type, int count, float buyPrice)
10 {
11     name_ = name;
12     type_=type;
13     count_=count;
14     buyPrice_ = buyPrice;
15     sellPrice_ = buyPrice * Ratio;
16 }
17 
18 Drug::~Drug()
19 {
20 }
21 
22 void Drug::buyDrug(float & money, int num)
23 {
24     if (num > 0)
25     {
26         if (buyPrice_*num <= money)
27         {
28             money -= buyPrice_ * num;
29             count_ += num;
30             cout << "购买成功!" << endl;
31         }
32         else
33         {
34             cout << "警告:您的钱不购买" << num << "个药物!" << endl;
35         }
36     }
37     else
38     {
39         cout << "警告:输入有误!" << endl;
40     }
41 }
42 
43 void Drug::sellDrug(float & money, int num)
44 {
45     if (num > 0)
46     {
47         if (num <= count_)
48         {
49             count_ -= num;
50             money += sellPrice_ * num;
51             cout << "卖出成功!" << endl;
52         }
53         else
54         {
55             cout << "警告:您没有" << num << "个药物可以卖出!" << endl;
56         }
57     }
58     else
59     {
60         cout << "警告:输入有误!" << endl;
61     }
62     
63 }
64 
65 void Drug::showDrug()
66 {
67     cout << "药物名称:" << name_ << "   数量:" << count_ << "   种类:" << type_ << "   买入价格:" << buyPrice_ << "   卖出价格" << sellPrice_<< endl;
68 }
69 
70 string Drug::showType()
71 {
72     if (type_ == 0)
73     {
74         return "PlusHP";
75     }
76     else
77     {
78         return "PlusMP";
79     }
80      
81 }
 1 // C++函数和类 26-习题5.cpp: 定义控制台应用程序的入口点。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include "drug.h"
 6 #include <iostream>
 7 //-------------------------习题5-----------------------------
 8 //完成程序:药品物资管理
 9 //要求:
10 //1.创建药品类来完成习题4中对药品相关的管理。
11 //2.利用对象数组来完成对不同种类药品的信息存储。
12 //3.使用*this指针。
13 //4.使用作用域为类的常量。
14 
15 int main()
16 {
17     const int size = 2;
18     Drug drug[size];
19     drug[0] = Drug("回血药水", PlusHP, 20, 100); //使用自定义构造函数初始化
20     drug[1] = Drug("回魔药水", PlusMP, 10, 150);
21     float totalMoney = 1000;
22 
23     cout << "1.购买回血药水/2.购买回魔药水/3.卖出回血药水/4.卖出回蓝药水/5.显示目前拥有的药水与金钱/6.退出" << endl;
24     cout << "请输入操作:" << endl;
25     int input = 0;
26     int number = 0;
27     while (cin >> input)
28     {
29         if (input == 1)
30         {
31             cout << "请输入购买的数量:" << endl;
32             if (cin >> number && number > 0)
33             {
34                 drug[0].buyDrug(totalMoney, number);
35                 cout << "请继续输入操作:" << endl;
36             }
37         }
38         else if (input == 2)
39         {
40             cout << "请输入购买的数量:" << endl;
41             if (cin >> number && number > 0)
42             {
43                 drug[1].buyDrug(totalMoney, number);
44                 cout << "请继续输入操作:" << endl;
45             }
46 
47         }
48         else if (input == 3)
49         {
50             cout << "请输入卖出的数量:" << endl;
51             if (cin >> number && number > 0)
52             {
53                 drug[0].sellDrug(totalMoney, number);
54                 cout << "请继续输入操作:" << endl;
55             }
56         }
57         else if (input == 4)
58         {
59             cout << "请输入卖出的数量:" << endl;
60             if (cin >> number && number > 0)
61             {
62                 drug[1].sellDrug(totalMoney, number);
63                 cout << "请继续输入操作:" << endl;
64             }
65         }
66         else if (input == 5)
67         {
68             cout << "目前拥有的药品:" << endl;
69             for (int i = 0; i < size; i++)
70             {
71                 cout << i + 1 << ":  " << endl;
72                 drug[i].showDrug();
73             }
74             cout << "拥有的金钱数: " << totalMoney << endl;
75             cout << "请继续输入操作:" << endl;
76         }
77         else if (input == 6)
78         {
79             break;
80         }
81         else
82         {
83             cout << "输入错误,请重新输入,或输入6退出!" << endl;
84         }
85 
86     }
87     return 0;
88 }

 

posted on 2018-07-22 00:03  uimodel  阅读(233)  评论(0编辑  收藏  举报

导航