• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#影院售票系统毕业设计(1)

C#影院售票系统毕业设计(1)

作者:乐智 字体:[增加 减小] 来源:互联网 时间:2017-05-28

乐智 通过本文主要向大家介绍了c站,c语言,欲情 c max,奔驰c200,85度c等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

 C#学习经历从基本语法结构到窗体再到面向对象终于走完了.NET初级程序员的道路,用了大概一天半的时间做完这个练手项目《影院售票系统》,先上效果截图一张

抽出时间做些这个对目前的我来说算不小的项目。

用到的知识点有:面向对象思想、TreeView、XML读取、File文件流、泛型集合,这里面对我来说难度最大的是面向对象与泛型集合的结合,看来学习一门编程语言的难点还是在设计思想上。

再来介绍一下项目需求:在影片列表中选择某个时段的一场电影,单击座位选择一个种类的电影票,并创建电影,计算价格并打印影票信息,然后该座位被置为红色表示已经售出。

影院每天更新放映列表,系统支持实时查看,包括电影放映场次时间、电影概况。

影院提供三类影票:普通票、赠票和学生票(赠票免费;学生票有折扣)

允许用户查看某场次座位的售出情况

支持购票,并允许用户选座

用户可以选择场次、影票类型及空闲座位进行购票,并打印电影票

系统可以保存销售情况,并允许对其进行恢复

一、问题分析

1.系统开发步骤

(1)明确需求

(2)设计类

(3)创建项目

(4)确定编码顺序

      1.主窗体

      2.查看新放映列表

      3.查看电影介绍

      4.查看影票票价

     5.查看放映厅座位

     6.购票和打印电影票

     7.继续购票

(5)测试

二、类的设计

 献上这9个类的代码,根据依赖编写类的顺序,不能完全按照上面顺序

1.Seat:保存影院的座位信息,主要属性如下

座位号(SeatNum):string类型

座位卖出状态颜色(Color):System.Drawing.Color类型

using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Drawing;
 
 namespace 影院售票系统
 {
 /// <summary>
 /// 保存影院的座位信息
 /// </summary>
 public class Seat
 {
 public Seat() { }
 public Seat(string seatNum,Color color) 
 {
 this.SeatNum = seatNum;
 this.Color = color;
 }
 private string _seatNum;
 /// <summary>
 /// 座位号
 /// </summary>
 public string SeatNum
 {
 get { return _seatNum; }
 set { _seatNum = value; }
 }
 private Color _color;
 /// <summary>
 /// 座位卖出状态颜色
 /// </summary>
 public Color Color
 {
 get { return _color; }
 set { _color = value; }
 }
 }
 }

</div>

2.Movie:电影类

电影名(MovieName):string类型

海报图片路径(Poster):string类型

导演名(Director):string类型

主演(Actor):string类型

电影类型(MovieType):MovieType自定义枚举类型

定价(Price):int类型

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

 namespace 影院售票系统
 {
 /// <summary>
 /// 电影类
 /// </summary>
 public class Movie
 {
 private string _movieName;
 /// <summary>
 /// 电影名
 /// </summary>
 public string MovieName
 {
 get { return _movieName; }
 set { _movieName = value; }
 }
 private string _poster;
 /// <summary>
 /// 海报图片名
 /// </summary>
 public string Poster
 {
 get { return _poster; }
 set { _poster = value; }
 }
 private string _director;
 /// <summary>
 /// 导演名
 /// </summary>
 public string Director
 {
 get { return _director; }
 set { _director = value; }
 }
 private string _actor;
 /// <summary>
 /// 主演
 /// </summary>
 public string Actor
 {
 get { return _actor; }
 set { _actor = value; }
 }
 
 private int _price;
 /// <summary>
 /// 定价
 /// </summary>
 public int Price
 {
 get { return _price; }
 set { _price = value; }
 }
 /// <summary>
 /// 电影类型
 /// </summary>
 public MovieType MovieType { get; set; }
 }
 /// <summary>
 /// 电影类型,1喜剧2战争3爱情
 /// </summary>
 public enum MovieType
 {
 /// <summary>
 /// 动作片
 /// </summary>
 Action = 0,
 /// <summary>
 /// 战争片
 /// </summary>
 War = 1,
 /// <summary>
 /// 爱情片
 /// </summary>
 Comedy = 2
 }
 }

</div>

3.Ticket:电影票父类,保存电影票信息

放映场次(ScheduleItem):ScheduleItem自定义类

所属座位对象(Seat):Seat自定义类型

票价(Price):int类型

计算票价的虚方法CalcPrice()

打印售票信息的虚方法Print()

显示当前售出票信息的虚方法Show() 

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using System.IO;
 
 namespace 影院售票系统
 {
 /// <summary>
 /// 电影票父类
 /// </summary>
 public class Ticket
 {
 public Ticket() { }
 public Ticket(ScheduleItem sch,Seat seat) 
 {
 this.ScheduItem = sch;
 this.Seat = seat;
 }
 private Seat _seat = new Seat();
 /// <summary>
 /// 所属座位
 /// </summary>
 public Seat Seat
 {
 get { return _seat; }
 set { _seat = value; }
 }
 
 private int _price;
 /// <summary>
 /// 票价
 /// </summary>
 public int Price
 {
 get { return _price; }
 set { _price = value; }
 }
 /// <summary>
 /// 放映场次
 /// </summary>
 public ScheduleItem ScheduItem { get; set; }
 /// <summary>
 /// 计算票价
 /// </summary>
 public virtual void CalcPrice()
 {
 this.Price = ScheduItem.Movie.Price;
 }
 /// <summary>
 /// 打印售票信息
 /// </summary>
 public virtual void Print()
 {
 string info = string.Format("************************************************\n\t青鸟影院\n------------------------------------------------\n电影名:\t{0}\n时间:\t{1}\n座位号:\t{2}\n价格:\t{3}\n************************************************", this.ScheduItem.Movie.MovieName, this.ScheduItem.Time, this.Seat.SeatNum, this.Price);
 MessageBox.Show(info);
 //存到文件中
 string fileName = this.ScheduItem.Time.Replace(":", "-")+" "+this.Seat.SeatNum+".txt";
 FileStream fs = new FileStream(fileName,FileMode.Create);
 StreamWriter sw = new StreamWriter(fs);
 sw.Write(info);
 sw.Close();
 fs.Close();
 }
 /// <summary>
 /// 显示当前售票信息
 /// </summary>
 public virtual void Show()
 {
 string info = string.Format("已售出!\n普通票!");
 MessageBox.Show(info);
 }
 }
 }

</div>

4.StudentTicket:学生票子类,继承父类Ticket

学生票的折扣(Discount):int类型

重写父类计算票价CalcPrice

重写父类打印售票信息的Print()

重写父类显示当前出票信息的Show()方法

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using System.IO;
 namespace 影院售票系统
 {
 /// <summary>
 /// 学生票
 /// </summary>
 public class StudentTicket : Ticket
 {
 public StudentTicket() { }
 public StudentTicket(ScheduleItem sch, Seat seat, int discount)
 : base(sch, seat)
 {
 this.Discount = discount;
 }
 private int _discount;
 /// <summary>
 /// 学生票的折扣
 /// </summary>
 public int Discount
 {
 get { return _discount; }




 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C# 检索不区分大小写并高亮显示实例详解
  • C#实现Base64处理的加密解密,编码解码示例
  • C# SqlHelper应用开发学习
  • C#多线程经典示例(吃苹果)
  • C#使用Windows Service的简单教程(创建、安装、卸载、调试)
  • C# 6.0 的知识梳理
  • C#向PPT文档插入图片以及导出图片的实例
  • C#使用Jquery zTree实现树状结构显示 异步数据加载
  • C#清理非托管对象实例分析
  • C#双缓冲技术实例详解

相关文章

  • 2017-05-28C# 排序算法之堆排序
  • 2017-05-28C#网络编程基础之进程和线程详解
  • 2017-05-28c#代码自动修改解决方案下任意文件实例
  • 2017-05-28深入分析C#中WinForm控件之Dock顺序调整的详解
  • 2017-05-28详解C#中==、Equals、ReferenceEquals的区别
  • 2017-05-28C#常见算法面试题小结
  • 2017-05-28C#实现漂亮的数字时钟效果
  • 2017-05-28C#通过重写Panel改变边框颜色与宽度的方法
  • 2017-05-28C#实现字体旋转的方法
  • 2017-05-28C# 泛型参数转换

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#中抽象方法与虚拟方法的区别
    • WinFrom中label背景透明的实现方法
    • c#中抽象类和接口的详细介绍
    • C#从windows剪贴板获取并显示文本内容的方法
    • c#实现16进制和字符串之间转换的代码
    • C#判断网站是否能访问或者断链的方法
    • C#敏感词过滤实现方法
    • 详细介绍C#之文件校验工具的开发及问题
    • c#检测usb设备拨插类库USBClassLibrary分享
    • C#创建线程带参数的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有