影院项目的内容信息

---恢复内容开始---

一:影院的基本框架

需要的类图:

二:实现效果:

绑定treeview,解析xml

 实现绑定TreeView: public void Bingding()
        {
            items = new Schedule();
            items.LoadItem();
            cinema.Schedule = items;
            string name = null;
            TreeNode tr = null;
            foreach (KeyValuePair<string, Scheduleltem> item in cinema.Schedule.items)
            {
                if (name != item.Value.Movie.MovieName)
                {

                    tr = new TreeNode();
                    tr.Text = item.Value.Movie.MovieName;
                    tvMovies.Nodes.Add(tr);

                }
                tr.Nodes.Add(item.Key);
                name = item.Value.Movie.MovieName;
            }
 解析xml: public void LoadItem()
        {

            XmlDocument doc = new XmlDocument();
            doc.Load("ShowList.xml");
            XmlNode root = doc.DocumentElement;
            foreach (XmlNode item in root.ChildNodes)
            {
                Movie Movie = new Movie();
                 Movie.MovieName = item["Name"].InnerText;
                 Movie.Poster = item["Poster"].InnerText;
                 Movie.Director = item["Director"].InnerText;
                 Movie.Price =Convert.ToInt32( item["Price"].InnerText);
                 Movie.Actor = item["Actor"].InnerText;
                 Movie.MovieType = MovieType.Action;
                 foreach (XmlNode item1 in item["Schedule"].ChildNodes)
                 {
                     Scheduleltem sch = new Scheduleltem();
                     sch.Movie = Movie;
                     sch.Time = item1.InnerText;
                     items.Add(sch.Time, sch);

                 }

点击时间将影片的信息进行传值

            TreeNode node = tvMovies.SelectedNode;
            if (node == null) return;
            if (node.Level != 1) return;
            key = node.Text;
            if (tvMovies.SelectedNode.Level > 0)
            {
                this.lblMovieName.Text = cinema.Schedule.items[key].Movie.MovieName;

                this.lblDirector.Text = cinema.Schedule.items[key].Movie.Director;
                this.lblActor.Text = cinema.Schedule.items[key].Movie.Actor;
                this.lblPrice.Text = cinema.Schedule.items[key].Movie.Price.ToString();
                this.lblTime.Text = cinema.Schedule.items[key].Time;
                this.lblType.Text = cinema.Schedule.items[key].Movie.MovieType.ToString();
                this.picMovie.Image = Image.FromFile(cinema.Schedule.items[key].Movie.Poster);
                this.lblCalcPrice.Text = "";

遍历座位的方法:

 private void initseats()
        {
            Label label;
            Seat seat;
            int num = 5;//定义列
            int num1 = 7;//定义行
            for (int i = 0; i < num1; i++)
            {
                for (int j = 0; j < num; j++)
                {
                    Label lab = new Label();
                    lab.BackColor = Color.Yellow;
                    lab.Font = new System.Drawing.Font("宋体", 14.25F);
                    lab.Size = new System.Drawing.Size(50, 20);
                    //坐位号
                    lab.Text = (j + 1).ToString() + "-" + (1 + i).ToString();
                    //字体居中
                    lab.TextAlign = ContentAlignment.MiddleCenter;
                    //设置位置
                    lab.Location = new Point(40 + (i * 90), 50 + (j * 60));
                    //所有的标签都绑定到同一事件
                    lab.Click += new System.EventHandler(lblSeat_Click);
                    tpCinema.Controls.Add(lab);
                    tpCinema.Controls.Add(lab);
                    //实例化一个座位
                   seat = new Seat((j+1).ToString()+"-"+(i+1).ToString(),Color.Yellow);
                    //保存座位的集合
                    cinema.Seats.Add(seat.SeatNum,seat);
                    lab.Click += lab_Click;
                    labels.Add(lab.Text,lab);
                }
            }

        }注意:用的方法写的 要记住调用方法

选择不同的票的方法是:有些的方法是禁用的 即为显示的为不能写的列表

        private void rdoFree_CheckedChanged(object sender, EventArgs e)
        {
            if (rdoNormal.Checked == true)
            {
                this.label12.Enabled = false;
                this.label13.Enabled = false;
                this.cmbDisCount.Enabled = false;
                this.txtCustomer.Enabled = false;
                this.cmbDisCount.SelectedIndex = -1;
            }
            else if (rdoFree.Checked == true)
            {
                this.label12.Enabled = false;
                this.cmbDisCount.Enabled = false;
                this.txtCustomer.Enabled = true;
                this.label13.Enabled = true;
                this.cmbDisCount.SelectedIndex = -1;
            }
            else if (rdoStudent.Checked == true)
            {
                this.label13.Enabled = false;
                this.txtCustomer.Enabled = false;
                this.label12.Enabled = true;
                this.cmbDisCount.Enabled = true;
                this.cmbDisCount.SelectedIndex = 0;
            }

        }

              

                      

在选中座位时,既有座位的时候点击保存,退出程序,再一次点击购票,点击继续销售,返回你当初订电影票的时候所选中的电影票,就会发现上次所选中的票依然还在,  点击获取新放映列表的时候会重新订票 依然不显示已经订票的结果 会重新刷列表

点击保存的时候会显示是否刷新保存当前的内容

 private void tsmiSave_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("是否保存当前销售状态?", "操作提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.Yes)
            {
                //退出时序列化Cinema对象
                cinema.laod();
            }

        }

原文地址:https://www.cnblogs.com/3020815dzq/p/8365996.html

时间: 2024-11-02 16:39:11

影院项目的内容信息的相关文章

测试报告应包含的内容信息

注意: 1.要有明确的结论 2.每条结论都建立在事实,数据上 3.测试报告的结果应尽可能图文结合方式展示出来 4.客观填写,在结尾给予一定的建议 测试报告应包含的内容信息 总结简单为: 首页 引言(目的.背景.缩略语.参考文献) 测试概要(测试方法/范围.测试环境/工具) 测试结果与缺陷分析(测试资源消耗.功能.性能) 测试结论与建议(项目概况.测试时间.测试情况.结论性能汇总) 附录(缺陷统计/云测平台报告附录) 详细说明: 首页 — 报告名称(软件名称+版本号+用户端类型(android,i

在同一个页面上要使用多个百度分享,控件人分享的内容信息

在同一个页面上要使用多个百度分享,控件人分享的内容信息, 需要在分享前做一个小操作. "onBeforeClick":function(cmd,config){  return { "bdUrl": $("#shareContent_url").val(), "bdText": $("#shareContent_text").val(), "bdDesc":$("#shareC

MediaInfo用来分析视频和音频文件的编码和内容信息的超好用工具

转载:http://blog.csdn.net/ameyume/article/details/6718705 MediaInfo简介 MediaInfo 用来分析视频和音频文件的编码和内容信息. MediaInfo 是自由软件 (免费使用.免费获得源代码,许可协议:GNU GPL/LGPL) 下载地址: windows版: http://mediainfo.sourceforge.net/zh-CN ubuntu版: http://mediainfo.sourceforge.net/zh-CN

ThinkPHP项目CMS内容管理系统开发视频教程【20课】(3.02GB)

ThinkPHP背景介绍:     ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业级应用开发而诞生的.拥有众多的优秀功能和特性,经历了三年多发展的同时,在社区团队的积极参与下,在易用性.扩展性和性能方面不断优化和改进,众多的典型案例确保可以稳定用于商业以及门户级的开发.教程目录:第1讲ThinkPHP搭建CMS项目设计01.rmvb 123.2MB第2讲ThinkPHP搭建CMS项目设计02.rmv

WSDL项目---添加头信息和附件

用于底层协议的SOAP请求是HTTP,可以添加两个自定义HTTP头(例如用于身份验证或会话)和附件. 让我们看一下这两个. 1. 自定义HTTP标头 直接添加自定义HTTP头: 我们已经添加了自定义内容类型头将覆盖标准的内容类型用于SOAP请求(“text / xml;charset = utf - 8”). 发送请求,查看器显示原始的请求 当然你可以根据需要添加任意数量的头信息,可以包含扩展属性值. 相应的响应标签显示了所有HTTP头信息: 2. 附件和内联文件 SoapUI支持以下技术处理文

取得文件夹内容信息

翻译自MSDN 2005 -> Win32 和 COM 开发 -> User Interface -> Windows User Experience -> Windows Shell -> Shell Programmer's Guide -> Shell Basics -> Shell Basics: Programming the Shell -> Getting Information About the Contents of a Folder G

团队项目选题——地铁信息查询

项目选题:地铁信息查询 [问题描述] 当今的北京,地铁已经成为绝大多数人出行的首选.截至2014年1月,北京地铁共有17条运营线路.组成覆盖北京市11个市辖区,拥有231座运营车站.总长467千米运营线路的轨道交通系统,工作日均客流约1000万人次,峰值日客运量1155.92万人次.目前,北京地铁票价由原来的2元通票变为浮动票价,具体的票价计算方式见下表: 表 1 地铁票价计算表 里程(公里) 票价(元) 0~6 3 6~12 4 12~22 5 22~32 6 32~52 7 52~72 8

android 项目中log信息的正确处理

我们在做项目中,调试程序的时候一般是debug或者打log,特别是看一些json数据之类的,都喜欢打log看看,但是在项目上线时log信息一定不能被打印出来,大家可以平时下载一些做的烂的app,连接eclipse有时候都可以看到一些请求的url或者返回的数据,这要是碰到一些技术好的人,是吧 干些啥事,你懂的,下面写一个log类,平时在项目中用到的,就是一个工具类, public class LogUitl { private static final boolean IS_OPEN = true

Python实战-天气预报项目-获取天气信息

天气预报首先需要的就是天气信息,可以从中国天气网的Wap网站上获取,因为Wap网站页面简单,便于抓取内容.网址是:http://wap.weather.com.cn/wap/,默认是北京的天气预报,可以更换城市.某城市的天气预报对应的网址是http://wap.weather.com.cn/wap/weather/city_code.shtml,其中city_code是城市代码.以南京市为例,南京的城市代码是101190101,所以对应的天气预报网址就是http://wap.weather.co