技术开发 频道

基于C# winfrom的水果店结账系统实现

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 }

  运行效果 如下

  ①结账

0
相关文章