C#简易商城收银系统v1.0(2-1)

C#简易商城收银系统v1.0(2-1)

  1. 当初:

    • 面向编程对象的好处及应用简单工厂模式(继承,多态)
  2. 现在:
    • 制作一个简易的收银窗体应用程序

可以参考之前的 计算器 随笔

创建窗体程序


客户端代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 商城收银软件
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        double total = 0.0d;//声明一个double变量,用total来计算总计
        private void button1_Click(object sender, EventArgs e)
        {
            double totalPrices = Convert.ToDouble(txtPrice.Text) * Convert.ToDouble(txtNum.Text);
total = total + totalPrices;//将每个商品合计计算出来
lbxList.Text = "单价:" + txtPrice.Text + "数量:" + txtNum.Text + "合计:" + totalPrices.ToString();  //显示信息
            lblResult.Text = total.ToString();//显示总计数
         }     }}

实现效果

现在增加一个打折功能

客户端代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 商城收银软件
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        double total = 0.0d;//声明一个double变量,用total来计算总计
        private void button1_Click(object sender, EventArgs e)
        {
            double totalPrices = 0d;
            switch (cbxType.SelectedIndex)
            {
                case 0:
                    totalPrices = Convert.ToDouble(txtPrice.Text) * Convert.ToDouble(txtNum.Text);
                    break;
                case 1:
                    totalPrices = Convert.ToDouble(txtPrice.Text) * Convert.ToDouble(txtNum.Text)*0.8;
                    break;
                case 2:
                    totalPrices = Convert.ToDouble(txtPrice.Text) * Convert.ToDouble(txtNum.Text)*0.7;
                    break;
                case 3:
                    totalPrices = Convert.ToDouble(txtPrice.Text) * Convert.ToDouble(txtNum.Text)*0.5;
                    break;
            }
            total = total + totalPrices;
            lbxList.Text = "单价:" + txtPrice.Text + "数量:" + txtNum.Text + " " + cbxType.SelectedItem + "合计:" + totalPrices.ToString();
            lblResult.Text = total.ToString();

        }
        private void Form1_Load(object sender, EventArgs e)
        {
            cbxType.Items.AddRange(new object[] { "正常收费", "打八折", "打七折", "打五折" });
            cbxType.SelectedIndex = 0;
        }}

总结

像Convert.ToDouble()很多这样重复的

打折的分支可以考虑重构

客户端实例化出来 只需要更改运算

可以尝试使用简单工厂实现

下一篇随笔就用简单工厂来实现商城收银系统v1.0

原文地址:https://www.cnblogs.com/zaohuojian/p/11494997.html

时间: 2024-10-05 05:06:08

C#简易商城收银系统v1.0(2-1)的相关文章

C#简易商城收银系统v1.1简单工厂实现(2-2)

C#简易商城收银系统v1.1简单工厂实现(2-2) 当初: C#简易商城收银系统v1.0 现在: 用之前的工厂模式对商城收银系统v1.0进行升级 可以参考之前的 C#简易商城收银系统v1.0 随笔 添加CashSuper类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 商城收银软件 { abs

ISkyShop B2B2C 商城系统V1.0正式版隆重发布

ISkyShop核心开发团队结合7年电商开发经验,历经1年多时间的设计研发,于2014年6月12日隆重推出ISkyShop B2B2C 商城系统V1.0,B2B2C商城系统是ISkyShop独立自主研发的 商城系统,系统运营模式为"平台自营+商户入驻",平台运营商既可以自营商品盈利,同时对所有入驻商城销售均收取比例佣金,入驻商户定期申请销售结算,方 便快捷,即平台运营商与入驻商户互利共赢,ISkyShop B2B2C 商城系统是国内唯一真正意义上的B2B2C系统. 系统主要特点有: 1

c#练习之超市收银系统

类的设计 第一种类:商品的类,父类是个抽象类: 第二种类:折扣的类,父类也是个抽象类 类图如下: 使用技能 用继承抽象类实现多态,用多态来实现工厂模式: 使用反射机制来实现构造实例的多态和工厂模式; 工厂模式可以增加系统的可扩展性; 使用Dictionary中的list集合来减少代码量; 源代码 仓库类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syste

超市无人自助收银系统

作者:李昊旻链接:https://www.zhihu.com/question/26571129/answer/33319341来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 科普一下,应该还有朋友不太熟悉无人自助收银系统.上个图,自助收银机大概是这个样子(网图): <img src="https://pic2.zhimg.com/00aa7c13eccec846bc403575c91ec23d_b.jpg" data-rawwidth=&

(三)设计模式之PHP项目应用(策略模式:商场收银系统)

1 策略模式简介 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模式让算法独立于使用它的客户而独立变化. 2 模式组成 1)抽象策略角色(Strategy): 策略类,通常由一个接口或者抽象类实现. 2)具体策略角色(ConcreteStrategy): 包装了相关的算法和行为. 3)环境角色(Context): 持有一个策略类的引用,最终给客户端调用. 3 模式核心思想 策略模式是一种定义一些列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是

C#设计模式——简单工厂模式实现:超市收银系统

一.超市收银系统: 在上一篇中简单介绍了简单工厂模式,在理论方面应该清楚了这是个什么东西用来处理什么情况和它的优缺点,现在来看看应用简单工厂模式的一个现实情境--超市收银系统.在现实生活中商品.仓库.超市.顾客就是一条链子,通过这条链子不论是顾客买商品或者是超市管理商品都得到非常方便的效果,超市也会有一些优惠的方案,这次我们就通过简单工厂模式来实现我们现实生活中超市收银的情况. 二.逻辑思路: 1.产品: 1-1.创建产品父类,产品有价格.名称.ID等公共属性. 1-2.创建各产品子类,继承于产

财务对账系统v1.0立项到结项的整体回顾

财务对账是一个琐碎而复杂的工作,极需要工作耐心和细心,还要求对账人员对对账系统要十分熟悉.本文笔者通过对财务对账系统v1.0从立项到结项的过程进行复盘,与大家讲述财务对账流程,对账的业务规则和相关的概念解释. 一.复盘目的 对财务对账系统v1.0从立项到结项的过程做一个整体回顾: 总结当前取得的成果和当前存在的一些问题. 二.系统概述 会计学对对账的定义是:为了保证账簿记录的真实性.完整性.准确性,在记账以后结账之前,定期或不定期地对有关数据进行检查.核对. 包含三个方面的核对工作,即账证核对.

美国千余商店收银系统遭攻击,致交易数据泄露。

美国千余商店收银系统遭攻击,致交易数据泄露.8月25日消息,美国土安全部表示,超过1000家美国企业正受到新一轮信息安全攻击.此次攻击瞄准了店内收银系统,恶意软件通常会攻击POS系统,当用户使用银行卡刷卡支付时窃取数据.近日,国际物流公司UPS表示公司的系统感染了POS恶意软件,可能导致去年1月至8月期间51家UPS门店的约10.5万条用户交易数据泄露.同时,7家POS系统提供商也确认,多家客户受到恶意软件的影响.过去一年中,已有多家零售商和其他公司遭遇了数据泄露事故,其中包括塔吉特.连锁百货商

地图标绘系统V1.0测试版(javascript)-GIS520社区

地图标绘系统V1.0测试版 (界面比较难看,之后再统一美化!) 演示地址:http://www.gis520.com/gis/plotdemo/index.html 查看可在菜单Map-->地图标绘系统V1.0