技术开发 频道

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

  主窗体类代码 frmFruitShopping.cs

  1 using System;
  
2 using System.Collections.Generic;
  
3 using System.ComponentModel;
  
4 using System.Data;
  
5 using System.Drawing;
  
6 using System.Linq;
  
7 using System.Text;
  
8 using System.Windows.Forms;
  
9 using System.IO; 
10
11 namespace 水果店结账系统
12 {
13     public partial class frmFruitShopping : Form
14     {
15         // new 一个泛型list 里面装载了 ProductAttribute的构造函数
16         List<ProductAttribute> productList;
17         public frmFruitShopping()
18         {
19             InitializeComponent();
20             //在窗体加载的时候 触发它
21             productList = new List<ProductAttribute>();
22             string strRead; //创建一个字符串 用来接受读取的数据
23             // 创建FileStream文件流 可以用来读取任何文件 其内部读取格式是 最原始的字节
24             FileStream fs = File.OpenRead("fruits.txt");
25             //通过流读取来读取fs文件里的东西,并将 文字格式设置为默认的ANSI编码
26             StreamReader sr = new StreamReader(fs, Encoding.Default);
27             //用while循环来 一行行读取  如果读到的内容不为空 则进入循环 否则不读
28             while ((strRead = sr.ReadLine()) != null)
29             {
30                 //这里用到了个字符串分割 每行都有几个参数 通过'-' 隔开 分割后存到一个数组里
31                 string[] part = strRead.Split('-');
32                 //new一个 构造方法来装载 这些参数
33                 ProductAttribute pa = new ProductAttribute(part[0], (float)Convert.ToDouble(part[1]),
34                     Convert.ToInt32(part[2]), Convert.ToInt32(part[3]));
35                 //将 装载的参数 存到 一个装有数据结构的泛型list中
36                 productList.Add(pa);
37             }
38             sr.Close(); //当读取完数据后 关闭读取器 节省内存
39         }
40         //用一个浮点型的list泛型 来装载 所有的开销
41         List<float> TotalCost = new List<float>();
42         //定义一个 可以容纳12个整数的整型数组 用于装载 每样产品的点击数
43         int[] intQuantity = new int[12];
44         //printCost() 方法 用于记录按钮点击数(即每样物品的购买数) 以及在listbox中打印出 购买物品和价格
45         //同时把 购买的物品 添加到 泛型list里 方便后期计算总价
46         public void printCost(int i)
47         {
48             intQuantity[i]++;
49             lstMenu.Items.Add("您购买了\t" + productList[i].Name + "\t " + productList[i].Price + "元/斤");
50             TotalCost.Add(productList[i].Price);
51         }
52
53         //每个按钮下 都调用了一个 printCost();方法
54         //传入的整型参数 是购物品在泛型里的位置 同时也是 intQuantity的索引位置
55         private void btnApple_Click(object sender, EventArgs e)
56         {
57             printCost(0);
58         }
59
60         private void btnOrange_Click(object sender, EventArgs e)
61         {
62             printCost(1);
63         }
64
65         private void btnPear_Click(object sender, EventArgs e)
66         {
67             printCost(2);
68         }
69
70         private void btnbanana_Click(object sender, EventArgs e)
71         {
72             printCost(3);
73         }
74
75         private void btnHawthorn_Click(object sender, EventArgs e)
76         {
77             printCost(4);
78         }
79
80         private void btnHoneyPeach_Click(object sender, EventArgs e)
81         {
82             printCost(5);
83         }
84
85         private void btnCoconut_Click(object sender, EventArgs e)
86         {
87             printCost(6);
88         }
89
90         private void btnFig_Click(object sender, EventArgs e)
91         {
92             printCost(7);
93         }
94
95         private void btnGrape_Click(object sender, EventArgs e)
96         {
97             printCost(8);
98         }
99
100         private void btnLitchi_Click(object sender, EventArgs e)
101         {
102             printCost(9);
103         }
104
105         private void btnPlum_Click(object sender, EventArgs e)
106         {
107             printCost(10);
108         }
109
110         private void btnPomelo_Click(object sender, EventArgs e)
111         {
112             printCost(11);
113         }
0
相关文章