//ScheduleItem.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 青鸟影院
{
    [Serializable]
    /// <summary>
    /// 放映场次
    /// </summary>
    public class ScheduleItem
    {
        public ScheduleItem() { }
        public ScheduleItem(Movie movie,string time)
        {
            this.Movie = movie;
            this.Time = time;
        }

//电影
        public Movie Movie { get; set; }
        //放映时间
        public string Time { get; set; }
    }
}

//Seat.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;

namespace 青鸟影院
{
    [Serializable]
    /// <summary>
    /// 座位类
    /// </summary>
    public class Seat
    {
        public Seat() { }
        public Seat(string seatNum,Color color)
        {
            this.SeatNum = seatNum;
            this.Color = color;
        }

//座位号
        public string SeatNum { get; set; }
        //颜色
        public Color Color { get; set; }
    }
}

//StudentTicket.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace 青鸟影院
{
    [Serializable]
    /// <summary>
    /// 学生票
    /// </summary>
    public class StudentTicket:Ticket
    {
        public StudentTicket() { }
        public StudentTicket(ScheduleItem scheduleItem,Seat seat,double discount):base(scheduleItem,seat)
        {
            this.Discount = discount;
            this.Price = CalcPrice();
        }

//折扣
        public double Discount { get; set; }

/// <summary>
        /// 计算学生票价格
        /// </summary>
        /// <returns></returns>
        public override double CalcPrice()
        {
            return this.ScheduleItem.Movie.Price * this.Discount /10;
        }

/// <summary>
        /// 打印学生票
        /// </summary>
        public override void Print()
        {
            string path = (this.ScheduleItem.Time + " " + this.Seat.SeatNum).Replace(":", "-") + ".txt";
            using (FileStream fs = new FileStream(path, FileMode.Create))
            {
                using (StreamWriter sw = new StreamWriter(fs, Encoding.Default))
                {
                    sw.WriteLine("*******************************");
                    sw.WriteLine("      青鸟影院(学生票)         ");
                    sw.WriteLine("-------------------------------");
                    sw.WriteLine("电影名:" + ScheduleItem.Movie.MovieName);
                    sw.WriteLine("时间:" + this.ScheduleItem.Time);
                    sw.WriteLine("座位号:" + this.Seat.SeatNum);
                    sw.WriteLine("折扣:"+this.Discount);
                    sw.WriteLine("价格:" + this.Price);
                    sw.WriteLine("*******************************");
                }
            }
        }
    }
}

//Ticket.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace 青鸟影院
{
    [Serializable]
    /// <summary>
    /// 电影票父类
    /// </summary>
    public class Ticket
    {
        public Ticket() { }
        public Ticket(ScheduleItem scheduleItem,Seat seat)
        {
            this.ScheduleItem = scheduleItem;
            this.Seat = seat;
            this.Price = CalcPrice();
        }

//价格
        public double Price { get; set; }
        //放映场次
        public ScheduleItem ScheduleItem { get; set; }
        //座位
        public Seat Seat { get; set; }

/// <summary>
        /// 计算价格
        /// </summary>
        /// <returns></returns>
        public virtual double CalcPrice()
        {
            return this.ScheduleItem.Movie.Price;
        }

/// <summary>
        /// 打印电影票
        /// </summary>
        public virtual void Print()
        {
            string path = (this.ScheduleItem.Time + " " + this.Seat.SeatNum).Replace(":", "-") + ".txt";
            using (FileStream fs = new FileStream(path,FileMode.Create))
            {
                using (StreamWriter sw = new StreamWriter(fs,Encoding.Default))
                {
                    sw.WriteLine("*******************************");
                    sw.WriteLine("          青鸟影院             ");
                    sw.WriteLine("-------------------------------");
                    sw.WriteLine("电影名:"+ScheduleItem.Movie.MovieName);
                    sw.WriteLine("时间:"+this.ScheduleItem.Time);
                    sw.WriteLine("座位号:"+this.Seat.SeatNum);
                    sw.WriteLine("价格:"+this.Price);
                    sw.WriteLine("*******************************");
                }
            }
        }
    }
}

//TicketUtil.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 青鸟影院
{
    /// <summary>
    /// 创建电影票工具类
    /// 使用简单工厂模式创建票
    /// </summary>
    public class TicketUtil
    {
        public static Ticket CreateTicket(ScheduleItem item,Seat seat,string customerName,double discount,string type)
        {
            Ticket ticket = null;
            switch (type)
            {
                case "normal":
                    ticket = new Ticket(item, seat);
                    break;
                case "free":
                    ticket = new FreeTicket(customerName, item, seat);
                    break;
                case "student":
                    ticket = new StudentTicket(item, seat, discount);
                    break;
            }
            return ticket;
        }
    }
}

青鸟影院的最后一部分相关推荐

  1. 万条票房数据看2019春节档各地影院表现(附源码)

    点击上方 蓝色文字,选择置顶或星标 第一时间关注 Python 技术干货! 阅读文本大概需要 5 分钟. 今年春节档全国共有8部影片上映,对于影片的对比分析已经非常多,孰优孰劣,每个人心里都有一杆秤, ...

  2. 10193 条票房数据告诉你《流浪地球》领跑的电影档战果如何?

    作者 | 量化小白H 责编 | 郭芮 如何挑战百万年薪的人工智能! https://edu.csdn.net/topic/ai30?utm_source=csdn_bw 2019年的春节档已经过去了一 ...

  3. 【ASP.NET北大青鸟】-总结(二)

    上次博客知识简单的整理了一下ASP.NET的大体框架知识,通过后半部分视频的边学习边实践,对ASP.NET有了更深的理解.这次将更详细的总结对ASP.NET收获. [是什么] ASP.NET是.NET ...

  4. 喜报 | 大地影院集团签约神策数据,影院 + 数据化高光时刻开启

    近日,大地影院集团签约神策数据,未来神策数据将以第三方数据分析平台的形式助力大地影院集团,进一步加快影院产品和服务的创新与突破. 大地影院集团成立于 2006 年,是国内排名第二位的影院管理投资公司, ...

  5. java自动往数据库里插shuaku_x大x鸟的青鸟云课堂自动答题实现原理

    本帖最后由 zhimengya 于 2019-6-16 13:53 编辑 本教程仅供参考学习,如果有违规请管理大大及时删除!!! 我是"x大x鸟"的学员 快毕业了正头疼找工作的事情 ...

  6. SSM实现的影院订票系统-JAVA【数据库设计、源码、开题报告】

    1绪论 1.1项目开发背景及意义 随着互联网和电子商务的快速发展,网上购物已经成为了现代人生活的一种方式.如今,淘宝.天猫.京东商城.当当网.聚美优品等一系列的电子商务网站更是把网上购物推向了这个时代 ...

  7. 基于javafx和mysql的C/S版影院管理系统

    一年一度的软工课设再过两天就要结束了,在这里做一点总结. 感觉今年软工课设用上数据库之后确实相对于大一面向过程的c语言方便了不少.所以今年课设相对于大一比较简单,所以我大概提前一周就将整个项目完成了. ...

  8. springboot影院售票小程序毕业设计-附源码201532

    摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确 ...

  9. springboot影院售票小程序毕业设计源码111154

    摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确 ...

  10. 我在北大青鸟的工作经历

    我在北大青鸟的经历[原创] 我在北大青鸟的工作经历 说明: 1.由于不熟悉这里的发帖规则,所有的图片放在文章后面发.见谅! 2.本人非计算机.非工科专业,06年硕士毕业,08年2-3月底在北大青鸟总部 ...

最新文章

  1. Python找出序列中出现最多的元素
  2. seaborn使用violinplot函数可视化小提琴图、并在violinplot函数中设置inner参数来添加横线(inner=“stick“)显示数据的稠密程度
  3. 生产系统支撑终端故障处理的三个误区
  4. pandas如何保存在excel里面_【精选】Pandas一站式教程!
  5. bootstrap3中模态框的数据编辑使用方法
  6. RocketMq Consumer 最佳实践
  7. SQl 作业方面(转)
  8. org.springframework.uti包下的StringUtils的使用和org.apache.commons.lang包下StringUtils的使用
  9. 前端学习(3157):react-hello-react之一个简单的helloworld
  10. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)--里面有BUG,所以我转载改一下
  11. 苹果2021年WWDC大会可能继续采用线上方式举办
  12. linux系统下部署go语言环境
  13. 问题六十一:三次b样条(b-spline)曲线的控制点和曲线形状的对应——以回旋体的“基本曲线”为例(2)
  14. revit建筑样板_BIM技术在历史保护建筑中的具体应用(艾三维BIM分享)
  15. Java图形组件 OpenSwing
  16. 通用接口开放平台设计与实现——(1)开篇
  17. 【电路设计】Altium Designer 20 PCB设计
  18. 图像修复 : ICCV 2021 基于条件纹理和结构并行生成的图像修复【翻译】
  19. Spring基础笔记
  20. 在当当和亚马逊中搜书并输出最低价格

热门文章

  1. 超好用的文件转换神器!拿走不谢~
  2. c语言程序设计身高体重测评系统,C语言程序设计验.doc
  3. 产品设计必备干货:产品开发流程[完整版]
  4. BTC:关键阻力的突破会带来持续的积极情绪
  5. UbuntuSkills
  6. centos是什么linux操作系统,Linux 操作系统之CentOS的介绍
  7. MATLAB —— 低通滤波器设计与信号滤波
  8. 生产系统仿真软件,实现数字化工厂的利器!
  9. 锐捷自动定时启动,开机自动认证校园网 教程
  10. spring mvc 4.3.2 + mybatis 3.4.1 + mysql 5.7.14 +shiro 幼儿园收费系统 之 消息管理