Table是怎样炼成的:SaleReport Table的继承者

2023-12-14 00:58

本文主要是介绍Table是怎样炼成的:SaleReport Table的继承者,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

有了Table,我们对其继承,实现更符合业务要求的类

 1      /// <summary>
 2    /// 描述一个销售报表
 3    /// </summary>

 4      public   class  SaleReport : Table
 5      {
 6
 7        public SaleReport(string reportName)
 8            : base(reportName, new ColumnCollection())
 9        {
10
11            this.Columns.Add("序号"typeof(int), 0);
12            this.Columns.Add("姓名"typeof(string), null);
13            this.Columns.Add("商品名称"typeof(string), null);
14            this.Columns.Add("日期"typeof(DateTime), null);
15            this.Columns.Add("数量"typeof(double), null);
16        }

17
18        /// <summary>
19        /// 报表的名称
20        /// </summary>

21        public string Name
22        {
23            get
24            {
25                return this.Name;
26            }

27        }

28
29        /// <summary>
30        /// 加入数据
31        /// </summary>
32        /// <param name="staff"></param>
33        /// <param name="commodity"></param>
34        /// <param name="cash"></param>

35        public void AddRecord(string staff, string commodity, double cash)
36        {
37            Row row = this.NewRow();
38            row["序号"= this.Rows.Count + 1;
39            row["姓名"= staff;
40            row["商品名称"= commodity;
41            row["日期"= DateTime.Now;
42            row["数量"= cash;
43
44            this.Rows.Add(row);
45        }

46
47        /// <summary>
48        /// 移除数据
49        /// </summary>
50        /// <param name="index"></param>

51        public void RemoveAt(int index)
52        {
53            this.Rows.RemoveAt(index);
54        }

55
56        /// <summary>
57        /// 返回销售报表的销售金额
58        /// </summary>
59        /// <returns></returns>

60        public double GetTotal()
61        {
62            double cash = 0;
63            foreach (Row row in this.Rows)
64            {
65                cash += (double)row["数量"];
66            }

67            return cash;
68        }

69
70        /// <summary>
71        /// 返回销售报表的销售金额
72        /// </summary>
73        /// <param name="staff">销售员</param>
74        /// <returns></returns>

75        public double GetTotal(string staff)
76        {
77            double cash = 0;
78            foreach (Row row in this.Rows)
79            {
80                if ((string)row["姓名"== staff)
81                {
82                    cash += (double)row["数量"];
83                }

84            }

85            return cash;
86        }

87
88    }


SaleReport对外封装了对Table的处理细节,使用SaleReport的用户不会感觉到在使用Table类
 1             SaleReport report  =   new  SaleReport( " 销售台帐 " );
 2             report.AddRecord( " Alex " " Phone " 2600 );
 3             report.AddRecord( " Alex " " PC " 4560 );
 4             report.AddRecord( " Alex " " Table " 234 );
 5             report.AddRecord( " Sidney " " Phone " 2100 );
 6             report.AddRecord( " Sidney " " TV " 4500 );
 7             report.AddRecord( " Tom " " oven " 300 );
 8             report.AddRecord( " Leo " " oven " 240 );
 9
10             report.Print();


运行的结果是
序号    姓名    商品名称        日期    数量

1       Alex    Phone   2007-2-13 23:19:27      2600
2       Alex    PC      2007-2-13 23:19:27      4560
3       Alex    Table   2007-2-13 23:19:27      234
4       Sidney  Phone   2007-2-13 23:19:27      2100
5       Sidney  TV      2007-2-13 23:19:27      4500
6       Tom     oven    2007-2-13 23:19:27      300
7       Leo     oven    2007-2-13 23:19:27      240

这篇关于Table是怎样炼成的:SaleReport Table的继承者的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/490583

相关文章

MySQL的ALTER TABLE命令的使用解读

《MySQL的ALTERTABLE命令的使用解读》:本文主要介绍MySQL的ALTERTABLE命令的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、查看所建表的编China编程码格式2、修改表的编码格式3、修改列队数据类型4、添加列5、修改列的位置5.1、把列

Pandas透视表(Pivot Table)的具体使用

《Pandas透视表(PivotTable)的具体使用》透视表用于在数据分析和处理过程中进行数据重塑和汇总,本文就来介绍一下Pandas透视表(PivotTable)的具体使用,感兴趣的可以了解一下... 目录前言什么是透视表?使用步骤1. 引入必要的库2. 读取数据3. 创建透视表4. 查看透视表总结前言

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

十四、我们应当怎样做需求分析:子用例与扩展用例

用例模型作为UML中4+1视图中非常重要的一员,非常集中地体现了面向对象的分析与设计思想。用例模型将现实世界中连续的一个一个业务流程,按照场景划分到了一个一个的用例中。由于场景的出现,使得用例中的业务流程存在着高度的内聚性,从而成为了日后各种对象的雏形。同时,在用例分析中,又将那些存在于各个用例中的,相同或相近的业务操作提取出来,形成一个一个的子用例或扩展用例,又体现了面向对象设计中的复用性。现在

十三、我们应当怎样做需求分析:查询报表分析

在我以往的用例分析中,使用这样格式的用例模式,对于大多数业务操作流程来说是得心应手的,但对于有些功能来说总感觉不对劲。感觉不对劲的,就是那些查询、汇总与报表功能。对于这部分功能,需要我们描述的不是什么操作流程,而更重要的是那些数据项、数据来源、报表格式、数据链接,以及使用者、使用频率的说明。而这些,在以往的用例说明格式中统统都没有,怎么办呢?俗话说“东西是死的人是活的”,把我们的用例格式改改吧。

九、我们应当怎样做需求分析:功能角色分析与用例图

在我们进行一系列需求调研工作的同时,我们的需求分析工作也开始启动了。需求调研与需求分析工作应当是相辅相伴共同进行的。每次参加完需求调研回到公司,我们就应当对需求调研的成果进行一次需求分析。当下一次开始进行需求调研时,我们应当首先将上次需求分析的结果与客户进行确认,同时对需求分析中提出的疑问交给客户予以解答。这就是一个需求捕获->需求整理->需求验证->再需求捕获的过程。  但是,当我们经

八、我们应当怎样做需求调研:需求捕获(下)

前面我们讨论了,需求分析工作是一个迭代的过程:需求捕获->需求整理->需求验证->再需求捕获······需求捕获是这个迭代过程的开始,也是整个需求分析工作中最重要的部分。没有捕获哪来后面的整理与验证工作?但是,非常遗憾,按照我以往的经验,需求捕获是我们最薄弱的环节。前面我提到的许许多多项目开发的问题都可以归结为需求分析的问题,而许许多多需求分析的问题又都可以归结为需求捕获不完整的问题。需求捕获是整

七、我们应当怎样做需求调研:需求捕获(上)

前面我们讨论了,需求分析工作是一个迭代的过程:需求捕获->需求整理->需求验证->再需求捕获······需求捕获是这个迭代过程的开始,也是整个需求分析工作中最重要的部分。没有捕获哪来后面的整理与验证工作?但是,非常遗憾,按照我以往的经验,需求捕获是我们最薄弱的环节。前面我提到的许许多多项目开发的问题都可以归结为需求分析的问题,而许许多多需求分析的问题又都可以归结为需求捕获不完整的问题。需求捕获是整