C#总结项目《影院售票系统》编写总结完结篇
回顾:昨天总结了影院售票系统核心部分-售票,整个项目也就完成了2/3了,需求中也要求了对销售信息的保存,今天就继续总结销售信息的保存以及加载销售信息。
分析:退出程序时将已售出票集合中的对象循环写入到文本文件中,读取时循环读入并加入到已售出票集合中,下面看具体实现
public void Save()
{
//保存的文件
FileStream fs = new FileStream("soldTickets.txt", FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fs, Encoding.Default);
for (int i = ; i < cinema.SoldTickets.Count; i++)
{
//创建售出票对象
Ticket ticket = cinema.SoldTickets[i];
//票的类型
string type = "";
//票的折扣
int discount = ;
//赠送者的名字
string name = "";
//用is判断属于哪个类,并根据类设置类型
if (cinema.SoldTickets[i] is StudentTicket)
{
type = "stu";
discount = ((StudentTicket)cinema.SoldTickets[i]).Discount;
}
else if (cinema.SoldTickets[i] is FreeTicket)
{
type = "free";
name = ((FreeTicket)cinema.SoldTickets[i]).CustomerName;
}
else
{
type = "normal";
}
//将信息写入文本文件0.电影名1.场次2.座位号3.票价4.折扣5.类型6.赠送者
string info = string.Format("{0}|{1}|{2}|{3}|{4}|{5}|{6}", cinema.SoldTickets[i].ScheduItem.Movie.MovieName, cinema.SoldTickets[i].ScheduItem.Time, cinema.SoldTickets[i].Seat.SeatNum, cinema.SoldTickets[i].Price, discount, type, name);
sw.WriteLine(info);
}
sw.WriteLine("The End");
sw.Close();
fs.Close();
MessageBox.Show("保存成功!");
}
保存数据到文件
读取数据
public void LoadLis()
{
StreamReader reader = new StreamReader("soldTickets.txt", Encoding.Default);
//一行一行的读取,先预读一行给while判断用
string line = reader.ReadLine();
//保存分割好的数据的数组
string[] pv;
Ticket ticket = null;
//当是The End时结束读取
while (line.Trim() != "The End")
{
pv = line.Split('|');
//读取文本信息
string index = pv[];
//创建票对象
ticket = TicketUtil.CreateTicket(cinema.Schedule.Items[index], cinema.Seats[pv[]], int.Parse(pv[]), pv[], pv[]);
//加入到售出票集合
cinema.SoldTickets.Add(ticket);
line = reader.ReadLine();
}
reader.Close();
}
加载上次记录
到这,整个项目的需求就算是做完了,做一下总结和心得
对项目的业务必然要了解透彻
项目的架构从大处着手,先骨架,然后血肉,最后皮毛;将大项问题分解成若干小问题,有条不紊,才不会做着做着蒙圈。
项目总结完了(总算是完了(⊙o⊙)…)在以后的项目中再接再厉吧,也希望这些分享能帮助到一些朋友,当然总结出来也是对自己的帮助O(∩_∩)O哈!
C#总结项目《影院售票系统》编写总结完结篇的更多相关文章
- C#总结项目《影院售票系统》编写总结一
C#学习经历从基本语法结构到窗体再到面向对象终于走完了.NET初级程序员的道路,做为品德优良好学生更不能落下课程的总结项目-某某鸟<影院售票系统>.用了大概一天半的时间做完这个练手项目,先 ...
- C#编写影院售票系统(A project with a higher amount of gold )
项目需求: 影院售票系统 1.基础设施 放映厅 座位集合 2.一个海报------------>放映计划 3.售票设置----------->观影 领域模型:程序中提炼出的实体 4.从电影 ...
- C#编写影院售票系统(A project with a higher amount of gold )(2:相关代码)
此篇文章为项目代码,,,需要项目需求 ,思路分析与窗体效果请访问:http://www.cnblogs.com/lsy131479/p/8367304.html 项目类图: 影院类: using Sy ...
- 「影院售票系统」 · Java Swing + MySQL JDBC开发
目录 文档说明: 一.语言和环境 二.实现功能 三.数据库设计 四.具体要求及推荐实现步骤 五.注意事项 六.评分标准 实现代码: 一.数据库: 二.Java Swing: com.ynavc.Bea ...
- C#总结项目《影院售票系统》编写总结三
昨天总结了动态绘制控件.票类型的切换以及数据在窗体中的展现.今天继续总结,自己喜欢的就去做吧,让别人说去吧,省的自己再留下什么后悔遗憾,噢耶,加油! 今天总结项目中最核心的部分--购票.座位颜色状态的 ...
- C#总结项目《影院售票系统》编写总结二
昨天发布了总结项目的第一篇,需求分析以及类的搭建,今天继续更新,动态绘制控件.票类型的切换以及数据在窗体中的展现. 先从简单的开始,票类型的切换. 分析: 1.当点击普通票时 学生折扣和赠送者是禁用的 ...
- 《MySQL数据操作与查询》- 综合项目 - 航空售票系统
Mysql & SqlServer综合项目需求 1.系统整体功能 系统需支持以下功能: 维护客户信息.航班信息和票务信息 支持客户按多种条件组合查询航班信息和票务信息 支持客户根据票务信息订购 ...
- 努力做一个优秀的programmer [ C# 影院售票系统]
Cinema.cs类 [Serializable] // 电影院类 public class Cinema { public Cinema() { //二进制 SoldTickets = new Li ...
- 浅谈C#中一种类插件系统编写的简单方法(插件间、插件宿主间本身不需要通信)
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 三年多前还在上研时,用C#+反射机制写过插件系统,后来又用M ...
随机推荐
- 二分查找里的upper bound与lower bound的实现与分析
1. 问题引入 最近参选了学堂在线的课程数据结构(2015秋).课程由清华大学的邓俊辉老师主讲,在完成课后作业时,遇到了这样一个题目范围查询.在这个题目中,我需要解决这样一个子问题:给定了一组已经排好 ...
- 零散的笔记:jquery中的事件
1.替代mouseover和mouseout的事件 jquery的mouseover和mouseout事件在移到子页面时也会触发,这在移到一级菜单弹出二级菜单,移到二级菜单时一级菜单也要显示时,这两个 ...
- os mac apache+php+mysql环境配置
1.启用系统自带的apache 服务 打开终端(terminal) #sudo apachectl start #sudo vi /etc/apache2/httpd.conf 修改 LoadModu ...
- exit() die return 的区别
rutrun 会返回一个值,或不返回值 只是当前函数内return后面的语句将不会执行,后面的其它语句继续执行exit()可以返回值,也可以不返回值直接终止程序 函数输出一条消息,并退出当前脚本. 会 ...
- Python自动化运维之19、Paramiko模块和堡垒机实战
paramiko模块 paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实 ...
- Python列表和字典的方法总结
列表方法: 方法 说明 append( item ) 在列表末尾插入(item ) count( element ) 返回element在列表中出现的次数 extend( newlist ) 将new ...
- codevs 1153 道路游戏
传送门 题目描述 Description 小新正在玩一个简单的电脑游戏.游戏中有一条环形马路,马路上有n 个机器人工厂,两个相邻机器人工厂之间由一小段马路连接.小新以某个机器人工厂为起点,按顺时针 ...
- 转:NoSQL更适合担当云数据库吗
在过去几十年,关系型数据库管理系统一直是数据管理的主要模型,随着Web应用数据规模的显著增长,NoSQL系统逐渐引起关注.领域专家Sherif Sakr分析指出,NoSQL具备的优势(能够水平扩展数据 ...
- Matlab 数理统计
1.离散随机分布 超几何分布:M:产品总数;K:次品数;N:抽样数. hygepdf(X, M,K,N):计算超几何分布的密度. 例:hygepdf(1,10,1,3),执行结果为ans=0.3000 ...
- C51 库函数(2)
3.2 STDIO.H:一般I/O函数 C51编译器包含字符I/O函数,它们通过处理器的串行接口操作,为支持其它I/O机制,只需修改getkey()和putchar()函数,其它所有I/O支持函数依赖 ...