1. 求c语言,电影院售票管理系统的设计与实现的代码
#include<stdio.h>
#include<stdlib.h>
structcell
{
char*name;
inttime;
intseat;
intsaled;
}a,b,c,d;
intsel=0;
voidtitle();
voidsaleproc();
intsaleThread(structcell*ce,intdd);
voidtiupiaoproc();
inttiupiaoThread(structcell*ce);
voidcount();
intinit(structcell*ce,char*name,inttime,intseat)
{
ce->name=name;
ce->time=time;
ce->seat=seat;
ce->saled=0;
return1;
}
intsaleThread(structcell*ce,intdd)
{
if((ce->seat-ce->saled)>=dd)
{
ce->saled+=dd;
printf("售票成功!按ESC键返回主菜单 ");
fflush(stdin);
intcc=_getche();
return1;
}
else
{
printf("售票失败---余票不足!按ESC键返回主菜单 ");
fflush(stdin);
intcc=_getche();
return0;
}
}
voidsaleproc()
{
intf=1;
while(f)
{
system("cls");
printf("*********************************** ");
printf("** ");
printf("*厅影片时间余票* ");
printf("** ");
printf("*A%s%d:%d%3d* ",a.name,a.time/60,a.time%60,a.seat-a.saled);
printf("** ");
printf("*B%s%d:%d%3d* ",b.name,b.time/60,b.time%60,b.seat-b.saled);
printf("** ");
printf("*C%s%d:%d%3d* ",c.name,c.time/60,c.time%60,c.seat-c.saled);
printf("** ");
printf("*D%s%d:%d%3d* ",d.name,d.time/60,d.time%60,d.seat-d.saled);
printf("** ");
printf("*********************************** ");
printf("请选择放映厅(a,b,c,d)和要购的票数(按ESC键返回主菜单)(格式:a5): ");
fflush(stdin);
charcc;
intdd;
dd=_getche();
if(dd==27)
{
f=0;
break;
}
else
{
cc=(char)dd;
}
scanf("%d",&dd);
switch(cc)
{
case'a':
saleThread(&a,dd);
f=0;
break;
case'b':
saleThread(&b,dd);
f=0;
break;
case'c':
saleThread(&c,dd);
f=0;
break;
case'd':
saleThread(&d,dd);
f=0;
break;
default:
break;
}
}
title();
}
inttiupiaoThread(structcell*ce)
{
if(ce->saled==0)
{
printf("撞尼玛鬼了老子一张票都没卖,哪来的退票??? ");
fflush(stdin);
intcc=_getche();
return0;
}
ce->saled--;
printf("退票成功!按任意键返回主菜单 ");
fflush(stdin);
intcc=_getche();
return1;
}
voidtiupiaoproc()
{
intf=1;
while(f)
{
system("cls");
printf("*********************************** ");
printf("** ");
printf("*退票* ");
printf("** ");
printf("*A%-20s* ",a.name);
printf("** ");
printf("*B%-20s* ",b.name);
printf("** ");
printf("*C%-20s* ",c.name);
printf("** ");
printf("*D%-20s* ",d.name);
printf("** ");
printf("*********************************** ");
printf("请输入要退的厅(a,b,c,d): ");
charcc;
fflush(stdin);
scanf("%c",&cc);
if(cc=='')
{
f=0;
break;
}
switch(cc)
{
case'a':
tiupiaoThread(&a);
f=0;
break;
case'b':
tiupiaoThread(&b);
f=0;
break;
case'c':
tiupiaoThread(&c);
f=0;
break;
case'd':
tiupiaoThread(&d);
f=0;
break;
default:
break;
}
}
title();
}
voidcountproc()
{
intf=1;
while(f)
{
system("cls");
printf("*********************************** ");
printf("** ");
printf("*统计* ");
printf("** ");
printf("*A厅:余票%3d上座率%5.2f%%* ",a.seat-a.saled,(((float)a.saled/(float)a.seat)*100));
printf("** ");
printf("*B厅:余票%3d上座率%5.2f%%* ",b.seat-b.saled,(((float)b.saled/(float)b.seat)*100));
printf("** ");
printf("*C厅:余票%3d上座率%5.2f%%* ",c.seat-c.saled,(((float)c.saled/(float)c.seat)*100));
printf("** ");
printf("*D厅:余票%3d上座率%5.2f%%* ",d.seat-d.saled,(((float)d.saled/(float)d.seat)*100));
printf("** ");
printf("*********************************** ");
printf("按ESC键返回主菜单! ");
fflush(stdin);
intcc=_getche();
if(cc==27)
{
f=0;
break;
}
}
title();
}
voidtitle()
{
intf=1;
while(f)
{
system("cls");
printf("*********************************** ");
printf("** ");
printf("*欢迎光临牛B电影院* ");
printf("** ");
printf("*1.售票* ");
printf("** ");
printf("*2.退票* ");
printf("** ");
printf("*3.统计* ");
printf("** ");
printf("*4.退出* ");
printf("** ");
printf("*********************************** ");
printf("请选择:(1,2,3,4) ");
fflush(stdin);
scanf("%d",&sel);
getchar();
switch(sel)
{
case1:
saleproc();
f=0;
break;
case2:
tiupiaoproc();
f=0;
break;
case3:
countproc();
f=0;
break;
case4:
system("exit");
f=0;
break;
default:
break;
}
}
}
intmain(intargc,char*argv[])
{
init(&a,"钢铁侠3",18*60+30,150);
init(&b,"致青春",19*60+30,150);
init(&c,"姜戈",20*60+30,150);
init(&d,"生化危机4",20*60+20,100);
title();
return0;
}
2. 请问:在用计算机语言编写电影院订售票软件的时候主要涉及到那几个模块
我是做基于J2EE项目开发的。可以给你几点建议:
需求分析-->需详细需求-->概要设计-->详细设计-->编码-->测试--->迭代,详细如下:
中小型软件项目开发一般流程建议
一:编写目的
本文档的编写旨在探寻规范的软件开发流程、加快软件开发速度、提高软件开发质量、降低项目综合成本 。
IT界有一句格言:"You can do it right; you can do it fast; you can do it cheap. Pick two." 而我们要做的就是:提供优质服务、项目周期短、成本低廉
二:总体说明
项目从用户需求说明书的提出,到系统的第一个完整版本的交付使用经历了若干或复杂或简单的过程,但不管项目大小如何一般需要经历以下几个步骤:
1. 需求分析。
2. 撰写需求规格说明书
3. 总体设计
4. 详细设计
5. 编码实现
6. 测试、试运行、上线
7. 验收
8. 日常维护
9. (下一个版本的循环开发)
在以上各步骤中尤其重要的是系统分析和撰写需求规格说明书。当定义好《需求规格说明书》后需要用户签字确认,以此作为项目验收的依据,在中大型项目中尤其重要。
失败的项目原因很多但以下几点比较普遍:
(1)商务运作中为了拉住“单子”对客户的众多纷繁复杂的要求一味的妥协让步满口答应。项目开发计划、时间表等完全依照客 户意见,不以具体项目的客观事实为依据,不做认真细致严格的项目复杂度、项目工作量的评估。
(2) 不做细致的用户需求分析导致项目后期的需求变更较大不能按期完成项目。
三:项目开发经历的各阶段
在项目开发的各阶段时间比例方面,中小项目一般控制在
1: 40% 设计
2: 40% 编码
3: 20% 总体设计/试运行
3.1 需求分析阶段
研究客户需求,从中找出需求中模糊不清的地方,反复讨论确认。在不断的确认中,包括需求的总体认知、需求边界定义、目前技术条件下的可实现需求、用 户界面等。通过项目组内讨论、与客户(直接客户、间接客户)讨论等方式不断清晰客户真正的需求,从而撰写〈〈需求规格说明书〉〉,在取的客户认可后签字,以此做为项目开发 的第一个里程碑。在项目验收时以此作为验收的主要依据
在系统分析阶段与客户的沟通方式可以通过(1)项目静态图、项目静态界面DEMO(2) 系统用例图(例如:rose软件的用例图) 等方式与客户沟通。
本阶段要完成的工作有:
1.撰写项目需求分析报告
本报告主要目的是项目分析人员提出需求的疑难不清问题,为与客户有效、准确沟通准备必要的材料。
2.画用例图
描述系统各个不同用户类型与本系统及其他系统等的交互过程。
3.建立项目静态界面DEMO
使得用户在项目初期就可以看到项目上线实施后的使用界面和使用方法等
4. 做必要的技术预研等。
3.2撰写需求规格说明书
需求规格说明书的撰写主要目的是把客户天马行空、纷繁复杂、凭想象等的理想需求中变成在一定时间段、一定技术条件下可实现的需求。不然项目会很难满足客户的理想需求,永 远被客户的理想需求所限制,陷入一种非常被动的状态。
3.3总体设计
在完成项目需求规格说明书后,就进入项目总体设计的阶段。
在总体设计阶段需要完成的文档有:
1. 《项目总体设计---概要设计说明书》、
2. 《数据库设计报告》
3. 《项目总体开发时间表》
在此阶段应该建立项目的正式开发环境、项目测试环境、建立项目基本开发框架且导入项目管理配置工具中(例如:CVS、VSS等)等
在项目的以上阶段完成后,建议进行项目总体设计和总体开发准备情况的评审工作。在公司、集团专家组评审通过后本阶段结束,这算做项目的第二个里程碑。
在进行下一 阶段前,目前项目组可以对SCCB(软件变更控制委员会)提交的资料有:
1:《需求规格说明书》
2:《项目总体设计概要说明书》
3:《项目界面设 计说明书》(及界面DEMO)
4:《项目数据库设计说明书》等
5:《项目总体开发时间表》
3.4详细设计
在项目完成总体设计和搭建完毕开发环境后,就可以进行项目的详细设计。
在项目中建议详细设计由项目编写“后台”程序的资深人员编写。主要完成每个负责的业务模块 从界面到业务实现到数据库连接操作的主要步骤和数据库的实现SQL。最好在条件允许的情况下编写模块单元测试程序,在整个模块编码阶段完成后进行程序单元测试工作。(“测 试驱动”的开发理念)
详细设计目的是在不编写代码和少量代码的情况下,完成项目模块的模拟编程实现。
在详细设计阶段可以对项目某模块做准确的工作量统计,依此为依据整个项目比较准确的工作量就可以被统计出来。
3.5编码实现
(略)
3.6测试、试运行、上线
(略)
3. 国内影院售票系统概况
电影售票系统是经过广电总局认可,必须24小时联网的售票软件。牌照不是轻易可以拿到的,所以国内目前做影院票务系统的公司屈指可数。
专资办:国家电影行政主管部门授权的管理机构。
电影票务数据平台:对影院票务数据和影院票务管理系统进行管理的软件平台。
影院票务管理系统每天需要实时向电影票务数据平台上报实时售票记录、定时上报票务统计记录。因此,专资办的数据是目前国内唯一精准的电影票房数据来源。
影院隶属于院线,因此院线也会搭建本院线总部的数据平台,收集影院统计票房。
目前市场上获得“专资办”认证的票务管理软件只有7种,包括粤科(火凤凰)、华夏满天星、辰星(中鑫汇科)、中影博圣(火烈鸟)、沃思达(VISTA)、影合众新(鼎新)和M1905影院票务系统。
分析:
1、华夏满天星:“老资质”,界面管理、交互友好;服务性较为一般,近几年的市场发展竞争力削弱;
2、粤科(凤凰佳影):在功能完善程度、产品化程度、市场营销能力等方面,均有较好的表现,市场占有率在稳步提升,2015年初被阿里影业收购。万达全线采用。
3、中影博圣(火烈鸟):2015年引入了新投资,推出新版本,但市场反映一般。
4、辰星(中鑫汇科):国内唯一拥有安全票务服务并通过FIPS认证的影院票务服务企业,主要由大地影院自主使用,根据不同客户的需求进行了定制。2013规范后,辰星科技调整市场规划,票务系统市场化,目前CGV、奥斯卡、雅图等集团影院均采用该票务软件,其软件最为明显的优势为对集团影院管理及营销策略的支持。
5、鼎新:“后起之秀”,系统功能丰富但集团服务是弱项,目前主要通过网络售票服务获取技术服务收入,市场份额增长较快。在万达的后续采购中获胜,挤占火凤凰的市场比重。
6、M1905:处于市场探索阶段。
7、VISTA:拥有一套比较完善的组件库,可以比较快地为客户提供半定制化的服务。但由于其是唯一家国外公司产品,满足连锁集团影院、或小型独立影院的需求上尚需探讨,其价格过高也是业内众多影院望尘莫及。目前国内仅美嘉、卢米埃几家在用。
4. 电影院管理系统的系统功能概述
根据年票系统和团票系统的共同点,充分考虑成本、开发周期、功能扩展等要求,公司依据客户要求,开发出同时适用于团票、年票的管理系统。系统基于公网搭建的中心数据服务器与各影城销售终端间可实现安全的信息上载与下载,在各终端上可实现对电子团票载体的读写和顾客消费明细查询及兑换明细查询,在中心服务器上可实现总体分类统计查询。各种子功能模块程序应能够在微软公司Windows 98及更高版本操作系统环境下运行。
(一)后台管理:
1. 用户管理:
(1) 服务器端用户权限设置
服务器端设置系统管理员(全局最高权限,可对全局用户权限进行设置及调整)、统计人员(全局统计、查询、生成报表等权限)、操作员权限(对服务器数据进行备份、管理权限、制卡权限)
(2)客户端用户权限设置
客户端设置影院经理(本地最高权限,可对本地用户权限设置及调整、黑名单管理),本地统计(本地兑换统计、生成报表等权限)、顾客查询(插入IC卡后可对该顾客全局兑换明细进行查询)、销售员(本地兑换、续期)
2.卡管理
(1) 发卡(售卡)
a) 新制卡片:内置卡号编码,并以此作为卡片唯一身份识别标识。经影院终端售卡操作激活该卡,并自动将卡片编码信息录入数据库。
b) 旧卡片:旧卡收回后重新发给新客户使用,充值界面中设置此选项,用以标记该卡重新发卡时间,顾客再次查询消费明细时以该次发卡时间为起始时间进行查询。在中心数据服务器上仍保留此卡自第一次发卡后的所有数据记录。此卡自始至终卡号始终不发生改变。卡内最后一次兑换完成后,系统应自动记录其卡号,并标注其已被回收,查询时可以以此查看各家影城当日应回收的卡数量及对应卡号。
(2) 有效期
充值操作界面中设置卡有效期选项,系统自动默认有效期为充值当日起一年有效(可调整)。
(3)续期
卡片有效期到后通过续期界面可以对其有效期限重新进行调整(或在充值界面中进行调整)
(4) 黑名单
根据卡号可将指定卡片列入黑名单中,则该卡再次使用时售票界面将显示该卡已被列入黑名单无法进行消费,直至在黑名单管理中将该卡号去除后方可恢复正常使用。
3.统计查询
(1) 客户端统计查询
a) 顾客消费明细查询
顾客将卡插入读卡器后可以在该选项对其发卡后(使用二次发放的旧卡顾客从第二次发卡后进行统计)的所有消费明细进行列表查询(包括消费时间、消费地点、兑换次数、消费类型(影票、卖品)、所剩余额等项目)。
b) 本地统计查询
影城内具有相应权限的人员可以对本地所有用户的充值及消费明细进行列表查询(查询范围仅限本地消费或充值记录),查询条件可以按时间段、单日、卡号、号段、销售员、消费类型等进行明细列表查询,并自动进行数据统计,各种查询结果均可导出为Excel表格形式文件进行保存。
(2) 服务器端统计查询
服务器端具有相应权限的统计人员可以运行查询功能模块通过局域网对服务器数据进行调用实现统计查询功能,统计查询范围可以针对全局的消费及充值记录,查询条件可以按影城、单日、卡号、号段、销售员、消费类型等进行明细列表查询,并自动进行数据统计,各种查询结果均可导出为Excel表格形式文件进行保存。
4.前台销售管理
(1)登录
销售员开机运行前台客户端模块后,通过用户名、密码认证登录后将其最小化或隐藏,程序继续在后台运行,对相应读卡器端口进行数据监测。
(2) 兑换
兑换操作窗口界面简洁、易切换。顾客将卡片靠近读卡器后,后台程序自动监测到并读取卡内相应信息,同时自动弹出小型操作界面,显示当前卡号、剩余次数并可手工输入扣减次数,点击确认后通过读卡器对卡内数据进行读写,同时界面显示数据相应变化并将操作记录存储到本地数据库中。卡片从读卡器中取出后该兑换操作界面自动关闭或隐藏。
(3) 卡片管理
客户卡片靠近读卡器后弹出兑换界面,单击取消,则兑换界面不再出现;激活后台运行的客户端程序,选择卡管理菜单各选项进行相应操作。(详见1.2各项描述)
(4) 顾客查询
客户卡片靠近读卡器后弹出兑换界面,单击取消,则兑换界面不再出现;激活后台运行的客户端程序,选择统计查询菜单各选项进行相应操作。(详见1.3.1项描述)
5. 卡类型
(1)卡类型设置
服务器端可进行卡类型添加设置,制定单次金额,制卡时需选定卡类型,该卡在影城终端使用时可以识别出不同的卡类型。
(3) 卡类型管理
回收卡可以再次通过制卡更改其卡类型
(二)、数据
1. 数据通讯
(1) 局域网络通讯
中心数据服务器通过局域网与操作机之间通过局域网络进行数据调用及业务操作。
(3) 公共网络通讯
各影城客户终端通过公共互联网络与中心数据服务器实现数据上载与下载。
2. 数据存储
中心数据库将所有影城终端上载的操作记录、管理信息均存储到硬盘保存;各个影城终端设备仅存储本地操作记录、管理信息(以便本地数据查询的快捷),并不断自动从中心数据服务器上下载、更新本地客户信息库,同时不断上载自身新的操作记录、管理信息到中心服务器,实现所有影城终端与中心服务器随时可以同步更新数据。影院终端进行顾客信息查询操作时需要通过互联网对服务器数据进行访问方可实现。
(三)、安全性
1. 数据安全
(1) 中心数据库需具备本地自动备份功能和网络异地备份功能,定时对数据库进行备份,一旦发生服务器崩溃或病毒感染,可以立即通过恢复备份数据方式重新建立数据库。
(2)影城终端数据库如果发生崩溃现象,可以通过互联网从中心数据库下载加以恢复。
(3)如果发生中心数据库与终端数据库同时崩溃现象,可以通过读取卡片内的最后一次消费记录(包括:卡号、剩余次数、最后消费时间、地点)来重建本地数据库,并上载重建中心数据库,可将风险和损失降到最低。
2. 网络安全
(1) 中心数据服务器在保证通讯端口畅通的前提下,须安装防火墙、杀毒软件,避免被病毒感染或恶意攻击。
(2)互联网络传输、通讯数据加密,防止盗取。
(3) 影院终端机安装杀毒软件,防止病毒感染传播。
(四)硬件
1.影院终端
能与影院售票终端共用一台计算机,以减少建设成本同时方便售票人员操作。
2.中心服务器
中心数据服务器需要长期稳定运行,选择稳定服务器品牌及操作系统。
3.卡片、读卡器
卡片作为电子团体票的载体,在整个系统中扮演十分重要的角色,因此必须选择安全性、不易损坏、存储容量大、存储数据稳定、读写稳定的卡片。
4.网络搭建
影院终端尽可能沿用其现有局域网络,不另行增设网络设备。服务器端规划搭建新的局域网络,以保证服务器的安全和操作的方便性。也可以根据实际重新搭建网络。
(五)、电子团体票销售使用流程
1. 销售
电子团体票需以团购形式销售,单张充值次数不低于10次(也可以定义)。由公司与各影院之间约定各种不同卡类型单次结算价,此单价在卡类型设置时写入系统,并在统计报表中作为结算金额的依据。
制卡、充值功能在于公司服务器端,制卡时选择卡类型并写入相应次数,各影城销售人员购买时结算相应款项。待发卡(售卡)环节时卡片方可正式激活。
2. 影票兑换
各影城根据自身经营情况针对不同影片制定不用电子团体票兑换办法,并将办法在影城售票处公示,且通过影城咨询电话可供观众查询,小卖部消费时同样根据不同卡类型单次金额进行消费。
5. 大学C语言(c++)课程设计电影院售票管理系统
#include<iostream>
#include<iomanip>
#defineLEN20
#defineROW20
usingnamespacestd;
voidinitseat(chars[LEN][ROW])
{
inti,j;
for(i=0;i<LEN;i++)
{
for(j=0;j<ROW;j++)
{
s[i][j]='';
}
}
}
voidprintmenu()
{
cout<<" 1.查询座位 "<<"2.预定座位"<<endl;
cout<<" 3.打印电影票 "<<"4.显示所有位置"<<endl;
cout<<" 0.退出"<<endl;
}
voidprintseat(chars[LEN][ROW])
{
inti,j;
cout<<"";
for(i=0;i<ROW;i++)
cout<<setw(3)<<i+1;
cout<<endl;
for(i=0;i<LEN;i++)
{
cout<<setw(3)<<i+1<<".";
for(j=0;j<ROW;j++)
cout<<setw(3)<<s[i][j];
cout<<endl;
}
}
boolsearchfull(chars[LEN][ROW])
{
intl,r;
cout<<"您要查找的行数为:";
cin>>l;
cout<<"您要查找的列数为:";
cin>>r;
if(s[l-1][r-1]!='')
{
cout<<"您查找的座位已有人!!!"<<endl;
returnfalse;
}
else
{
cout<<"您查找的座位没有人!!!"<<endl;
returntrue;
}
}
boolprintticket(chars[LEN][ROW],intl,intr)
{
cout<<"电影名称:"<<"星际穿越"<<endl;
cout<<"座位:"<<l<<"排"<<r<<"列"<<endl;
cout<<"放映时间:"<<"2014年12月20日14:00"<<endl;
returntrue;
}
boolreservation(chars[LEN][ROW])
{
intl,r;
cout<<"您要预定的行数为:";
cin>>l;
cout<<"您要预定的列数为:";
cin>>r;
if(!(l<=LEN&&l>=0&&r<=ROW&&r>=0))
{
cout<<"您的输入不合法!!!"<<endl<<"预定失败!!!"<<endl;
returnfalse;
}
boolflag;
if(s[l-1][r-1]=='#')
flag=false;
else
flag=true;
if(flag==false)
{
cout<<"此座位已有人!!!"<<endl;
returnfalse;
}
s[l-1][r-1]='#';
printticket(s,l,r);
returntrue;
}
intmain()
{
charseat[LEN][ROW];
intflag,l,r;
initseat(seat);
printseat(seat);
printmenu();
while(cin>>flag,flag!=0)
{
switch(flag)
{
case1:searchfull(seat);break;
case2:reservation(seat);break;
case3:cout<<"请输入您要打印的行数:";cin>>l;
cout<<"请输入您要打印的行数:";cin>>r;
if(!(l<=LEN&&l>=0&&r<=ROW&&r>=0))
{
cout<<"您的输入不合法!!!"<<endl<<"预定失败!!!"<<endl;
break;
}
printticket(seat,l,r);
break;
case4:printseat(seat);
default:break;
}
printmenu();
}
return0;
}
6. 电影院管理系统的系统需求分析
(一)电影院线电子年票管理系统需求说明
1.定义:基于公网及影院局域网络建立的以IC卡为载体,且能够实现准实时数据交互及统计管理的电子年票管理软件。
2.产品描述
(1)系统属性
是一个在Windows98以上的操作系统平台下运行的院线电子年票管理系统,且1.0版本是C/S(客户端/服务器)架构设计,该网络版要求10M以上局域网及宽带广域网络。
(2)开发背景
解决各院线电子年票管理工作,方便各电影院线对电子年票进行快速有效的操作。
(3)拓扑结构
中心服务器——(公网连接准实时)——影院服务器——(局域网连接实时)——售票终端
(4)软件特点
系统操作人员要求具备普通Windows系统操作水平即可。系统维护人员必须具有数据库管理知识。
3.具体用途
1、解决电影院线电子年票管理上的工作。方便电影院线对电子年票进行快速有效的操作。
2、通过插入‘员工卡’或‘管理卡’并输入用户名和相应密码才能进入系统进行管理。根据用户选择售票员名称,时间段信息对相关信息进行统计,生成售票员汇总统计报表 IC卡操作管理可对系统中的卡进行初始话操作。
3、电子年票消费管理客队电子年票消费进行结帐处理,并改变卡内余额及本次消费记录信息,若打印复选框选择则打印小票。在插入卡后显示以前的消费记录,消费确认后则添加本次消费记录。如消费记录满则自动删除最先的一条消费记录,消费记录以时间作为排序条件。
4、影院营业信息管理可对人员信息、商品信息以及系统中应用性信息等进行设置。