114 //在结账按钮下 计算账单
115 private void btnTotal_Click(object sender, EventArgs e)
116 {
117 //遍历 泛型里所有的值 全部加起来
118 float tCost = 0;
119 foreach (float cost in TotalCost)
120 {
121 tCost += cost;
122 }
123 lstMenu.Items.Add("------------------------");
124 lstMenu.Items.Add("优惠前总价为:\t\t " + Math.Round(tCost,1) + "元"); //打印出总价(打折前的价格)
125 //调用Saving()方法 计算 总共节省的钱数
126 float totalSaving = Saving();
127 lstMenu.Items.Add("打折后最终您需要付款为\t " + Math.Round((tCost - totalSaving), 1) + "元");
128 129 }
130 // Saving()方法
131 float tSaving = 0;
132 public float Saving()
133 {
134 for (int i = 0; i <= intQuantity.Length - 1; i++)
135 { //当物品 购买数 >= 2的时候 才有优惠
136 if (intQuantity[i] >= 2)
137 { //这里 苹果和无花果 是不存在优惠的
138 if (productList[i].Name == "苹果" || productList[i].Name == "无花果")
139 lstMenu.Items.Add("您购买了" + productList[i].Name + " 一共" + intQuantity[i] + "斤"
140 + " 最近" + productList[i].Name + "无优惠");
141 else //否则其他水果 都有优惠
142 {
143 lstMenu.Items.Add("您购买了" + productList[i].Name + " 一共" + intQuantity[i] + "斤"
144 + " 优惠" + Math.Round(productList[i].save(intQuantity[i]), 1) + "元");
145 tSaving += productList[i].save(intQuantity[i]);
146 }
147 }
148 //当购买单项 水果 小于2斤的时候 是没有优惠享受的
149 else if (1 <= intQuantity[i] && intQuantity[i] < 2)
150 {
151 lstMenu.Items.Add("您购买了" + productList[i].Name + " 只有"
152 + intQuantity[i] + "斤" + " 没有优惠!");
153 }
154 }
155 //最终 打印出 所有物品节约的 总价
156 lstMenu.Items.Add("--------------------------------------");
157 lstMenu.Items.Add("所有水果一共优惠了\t " + tSaving + "元");
158 159 return tSaving;
160 }
161162 private void btnEmpty_Click(object sender, EventArgs e)
163 {
164 lstMenu.Items.Clear(); //清空list里面的所有项(表面清除)
165 TotalCost.Clear(); //清空泛型list里的所有项(从系统中移除)
166 tSaving = 0; //把之前节省的钱 全部清空
167 //清空的时候 要将打折省去的钱数 也清掉
168 //这里用的是 清空所有购买水果的数量 当水果数为0的时候 就没有打折省去的钱数了
169 for (int i = 0; i < intQuantity.Length; i++)
170 intQuantity[i] = 0;
171 }
172 173 //---这里删除单项 只做到了 总价里面减少 没做到从优惠里减少---//
174 private void btnDeleteOne_Click(object sender, EventArgs e)
175 {
176 //从listbox 里移除 购买项 (表面移除, 实际值需要从装载值的list泛型里移除)
177 lstMenu.Items.Remove(lstMenu.SelectedItem);
178 //SelectedIndex 是从0开始的索引 但实际你删除项的索引是大于0的整数
179 //从泛型list里 移除购买项
180 TotalCost.RemoveAt(lstMenu.SelectedIndex + 1);
181 }
182 }
183 }
115 private void btnTotal_Click(object sender, EventArgs e)
116 {
117 //遍历 泛型里所有的值 全部加起来
118 float tCost = 0;
119 foreach (float cost in TotalCost)
120 {
121 tCost += cost;
122 }
123 lstMenu.Items.Add("------------------------");
124 lstMenu.Items.Add("优惠前总价为:\t\t " + Math.Round(tCost,1) + "元"); //打印出总价(打折前的价格)
125 //调用Saving()方法 计算 总共节省的钱数
126 float totalSaving = Saving();
127 lstMenu.Items.Add("打折后最终您需要付款为\t " + Math.Round((tCost - totalSaving), 1) + "元");
128 129 }
130 // Saving()方法
131 float tSaving = 0;
132 public float Saving()
133 {
134 for (int i = 0; i <= intQuantity.Length - 1; i++)
135 { //当物品 购买数 >= 2的时候 才有优惠
136 if (intQuantity[i] >= 2)
137 { //这里 苹果和无花果 是不存在优惠的
138 if (productList[i].Name == "苹果" || productList[i].Name == "无花果")
139 lstMenu.Items.Add("您购买了" + productList[i].Name + " 一共" + intQuantity[i] + "斤"
140 + " 最近" + productList[i].Name + "无优惠");
141 else //否则其他水果 都有优惠
142 {
143 lstMenu.Items.Add("您购买了" + productList[i].Name + " 一共" + intQuantity[i] + "斤"
144 + " 优惠" + Math.Round(productList[i].save(intQuantity[i]), 1) + "元");
145 tSaving += productList[i].save(intQuantity[i]);
146 }
147 }
148 //当购买单项 水果 小于2斤的时候 是没有优惠享受的
149 else if (1 <= intQuantity[i] && intQuantity[i] < 2)
150 {
151 lstMenu.Items.Add("您购买了" + productList[i].Name + " 只有"
152 + intQuantity[i] + "斤" + " 没有优惠!");
153 }
154 }
155 //最终 打印出 所有物品节约的 总价
156 lstMenu.Items.Add("--------------------------------------");
157 lstMenu.Items.Add("所有水果一共优惠了\t " + tSaving + "元");
158 159 return tSaving;
160 }
161162 private void btnEmpty_Click(object sender, EventArgs e)
163 {
164 lstMenu.Items.Clear(); //清空list里面的所有项(表面清除)
165 TotalCost.Clear(); //清空泛型list里的所有项(从系统中移除)
166 tSaving = 0; //把之前节省的钱 全部清空
167 //清空的时候 要将打折省去的钱数 也清掉
168 //这里用的是 清空所有购买水果的数量 当水果数为0的时候 就没有打折省去的钱数了
169 for (int i = 0; i < intQuantity.Length; i++)
170 intQuantity[i] = 0;
171 }
172 173 //---这里删除单项 只做到了 总价里面减少 没做到从优惠里减少---//
174 private void btnDeleteOne_Click(object sender, EventArgs e)
175 {
176 //从listbox 里移除 购买项 (表面移除, 实际值需要从装载值的list泛型里移除)
177 lstMenu.Items.Remove(lstMenu.SelectedItem);
178 //SelectedIndex 是从0开始的索引 但实际你删除项的索引是大于0的整数
179 //从泛型list里 移除购买项
180 TotalCost.RemoveAt(lstMenu.SelectedIndex + 1);
181 }
182 }
183 }
运行效果 如下
①结账