电影院售票系统.docx
《电影院售票系统.docx》由会员分享,可在线阅读,更多相关《电影院售票系统.docx(22页珍藏版)》请在冰豆网上搜索。
![电影院售票系统.docx](https://file1.bdocx.com/fileroot1/2022-12/8/a34aac69-175a-4ae2-ba40-cf67dba7c3f1/a34aac69-175a-4ae2-ba40-cf67dba7c3f11.gif)
电影院售票系统
电影院售票系统
内蒙古科技大学
本科生课程设计说明书
题目:
C++课程设计
——电影院售票管理系统
学生姓名:
学号:
专业:
班级:
指导教师:
日期:
总体设计
接口设计
函数列表
函数名
函数格式
函数功能
Luru
Void
录入信息
Chaxunname
void
按姓名查询信息
Chaxuntime
void
按时间查询信息
Liulan
void
浏览信息
Shoupiao
void
售票
Tuipiao
int
退票
Show
void
显示信息
Tianjia
void
添加信息
详细设计
录入信息:
按提示输入信息,保存在类中定义的数组a[100]中。
查询信息:
通过调用类中chaxun()函数,选择以何种方式查询,通过输入查询电影的名或时间,查找到所查找的电影,最终输出。
浏览信息:
通过使用for语句,将存储的所有电影信息打印出来。
添加信息:
按提示输入信息,储存在数组中,最终电影的个数len加1。
售票与退票:
先选择需要进行的操作,选择完成时,按要求输入电影信息,如果没有查找到,就输出无信息,查找到函数内的n变量加1,并输出查到信息。
查找到信息之后将查到的电影播放时间与系统时间比较,如果小于系统时间,则已经播放完,无法进行售票或退票。
如果没有播放,则判定是否是会员,如果是会员,则计算输出会员价格,若不是会员,则输出原价。
课程设计总结:
这次课程设计难点是电影播放时间与系统时间的比较,这个问题我通过查阅资料认识到了头文字windows.h中的获取系统时间SYSTEMTIMEsys和GetLocalTime(&sys),最终解决了问题。
附录:
#include
#include
#include
#include
usingnamespacestd;
structbase
{
inttime_f;
inttime_s;
inttime_t;
inttime_y;
inttime_n;
intdatetime[5];
charname[20];
intchangci;
floatprice;
floatzhekou;
intzwnumber;
};
classfilm
{
public:
film()
{
};
~film()
{
};
voidluru();
voidksluru();
intzhengjia();
voidliulan();
voidchaxun();
voidshoupiao();
voidtuipiao();
voidchaxunname();
voidchaxuntime();
friendvoidshow(inti);
private:
basea[100];
intlen;
}fi;
voidshow(inti)
{
cout<<"<<<<<<}
voidfilm:
:
luru()
{
intm;
cout<<"请输入操作:
"<cout<<"1无数据状态录入信息"<cout<<"2有数据状态添加信息"<cin>>m;
switch(m)
{
case1:
system("Cls");
fi.ksluru();
break;
case2:
system("Cls");
len=fi.zhengjia();
break;
}
}
voidfilm:
:
ksluru()
{
charch;
for(inti=0;i<100;i++)
{
cout<<"输入日期:
"<cin>>fi.a[i].time_n>>fi.a[i].time_y>>fi.a[i].time_t;
cout<<"输入时间:
"<cin>>fi.a[i].time_s>>fi.a[i].time_f;
fi.a[i].datetime[0]=fi.a[i].time_n;
fi.a[i].datetime[1]=fi.a[i].time_y;
fi.a[i].datetime[2]=fi.a[i].time_t;
fi.a[i].datetime[3]=fi.a[i].time_s;
fi.a[i].datetime[4]=fi.a[i].time_f;
cout<<"场次:
"<cin>>fi.a[i].changci;
cout<<"电影名称:
"<cin>>fi.a[i].name;
cout<<"票价:
"<cin>>fi.a[i].price;
cout<<"会员折扣:
"<cin>>fi.a[i].zhekou;
cout<<"剩余座位:
"<cin>>fi.a[i].zwnumber;
len++;
cout<<"是否继续添加?
"<cin>>ch;
while
(1)
{
if(ch=='n'||ch=='N'||ch=='y'||ch=='Y')
break;
else
cout<<"请重新输入!
"<}
if(ch=='N'||ch=='n')
{
break;
}
}
}
intfilm:
:
zhengjia()
{
charch;
for(inti=fi.len;i<100-fi.len;i++)
{
cout<<"输入日期:
"<cin>>fi.a[i].time_n>>fi.a[i].time_y>>fi.a[i].time_t;
cout<<"输入时间:
"<cin>>fi.a[i].time_s>>fi.a[i].time_f;
cout<<"场次:
"<cin>>fi.a[i].changci;
cout<<"电影名称:
"<cin>>fi.a[i].name;
cout<<"票价:
"<cin>>fi.a[i].price;
cout<<"会员折扣:
"<cin>>fi.a[i].zhekou;
cout<<"剩余座位:
"<cin>>fi.a[i].zwnumber;
len++;
cout<<"是否继续添加?
"<cin>>ch;
while
(1)
{
if(ch=='n'||ch=='N'||ch=='y'||ch=='Y')
break;
else
cout<<"请重新输入!
"<}
if(ch=='N'||ch=='n')
{
break;
}
}
returnlen;
}
voidfilm:
:
liulan()
{
intch;
cout<<"\n\n\n\t\t\t\t显示模块\n\n\n"<cout<<"所有电影信息如下:
"<cout<<"日期\t时间\t场次\t电影名称\t票价\t折扣\t余票\t"<for(inti=0;i{
cout<<"<<<<<<}
cout<<"按任意键退出"<cin>>ch;
}
inttimecmp(inta[],intb[],intn)
{
inti,t;
for(i=0;i{
if(a[i]=b[i])
t++;
}
if(n==t)
return0;
else
return1;
}
voidfilm:
:
chaxunname()
{
intn=0;
charna[20];
cout<<"请输入查找影片:
"<cin>>na;
cout<<"日期\t时间\t场次\t电影名称\t票价\t折扣\t余票\t"<for(inti=0;i{
if(strcmp(na,a[i].name)==0)
{
show(i);
}
n++;
}
if(n==0)
{
cout<<"没有结果!
"<}
else
{
cout<<"查到结果!
"<}
}
voidfilm:
:
chaxuntime()
{
inttemp1,temp2,temp3,temp4,temp5,n=0;
charch;
while
(1)
{
cout<<"请输入查询时间:
"<cout<<"日期:
(年,月,日)";
cin>>temp1>>temp2>>temp3;
cout<<"时间:
(时,分)";
cin>>temp4>>temp5;
cout<<"日期\t时间\t场次\t电影名称\t票价\t折扣\t余票\t"<for(inti=0;i{
if((a[i].time_n==temp1)&&a[i].time_y==temp2&&a[i].time_t==temp3&&temp4==a[i].time_s&&a[i].time_f==temp5)
show(i);
n++;
}
if(n==0)
{
cout<<"没有结果!
";
}
else
{
cout<<"查到结果!
"<}
cout<<"是否继续查找?
"<cin>>ch;
while
(1)
{
if(ch=='n'||ch=='N'||ch=='y'||ch=='Y')
break;
else
cout<<"请重新输入!
"<}
if(ch=='N'||ch=='n')
{
break;
}
}
}
voidfilm:
:
chaxun()
{
intm;
charch;
cout<<"请输入查询方式:
"<cout<<"1按时间"<cout<<"2按电影名"<cin>>m;
switch(m)
{
case1:
system("Cls");
fi.chaxuntime();
break;
case2:
system("Cls");
fi.chaxunname();
break;
}
cout<<"按任意键退出!
"<cin>>ch;
}
voidfilm:
:
shoupiao()
{
SYSTEMTIMEsys;
GetLocalTime(&sys);
intn=0,c;
charna[20],x,ch;
cout<<"请输入购买影片:
"<cin>>na;
cout<<"输入购买场次:
"<cin>>c;
cout<<"日期\t时间\t场次\t电影名称\t票价\t折扣\t余票\t"<for(inti=0;i{
if(strcmp(na,a[i].name)==0&&(c==a[i].changci)&&a[i].zwnumber>0)
{
if(a[i].time_n{
cout<<"电影已播放"<}
else
{
n++;
show(i);
a[i].zwnumber--;
cout<<"是否为会员?
"<cin>>x;
if(x=='y'||x=='Y')
{
cout<<"您需要支付"<}
else
{
cout<<"您需要支付"<}
}
}
}
if(n==0)
{
cout<<"没有结果!
"<}
cout<<"按任意键退出!
"<cin>>ch;
}
voidfilm:
:
tuipiao()
{
SYSTEMTIMEsys;
GetLocalTime(&sys);
intn=0,c;
charna[20],x,ch;
cout<<"请输入退票影片:
"<cin>>na;
cout<<"请输入退票场次:
"<cin>>c;
cout<<"日期\t时间\t场次\t电影名称\t票价\t折扣\t余票\t"<for(inti=0;i{
if(strcmp(na,a[i].name)==0&&a[i].changci==c)
{
if(a[i].time_n{
cout<<"已播放完!
"<}
else
{
show(i);
a[i].zwnumber--;
cout<<"是否为会员?
"<cin>>x;
if(x=='y'||x=='Y')
{
cout<<"退回您"<}
else
{
cout<<"退回您"<}
n++;
}
}
}
if(n==0)
{
cout<<"没有结果!
"<}
cout<<"按任意键退出!
"<cin>>ch;
}
intmain()
{
intx,m,i=1;
while(i)
{
system("Cls");
cout<<"\n\n\n\t\t\t\t主界面\n\n\n"<cout<<"\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<cout<<"\t\t\t请输入需要的操作:
"<cout<<"\t\t\t1录入放映信息"<cout<<"\t\t\t2浏览放映信息"<cout<<"\t\t\t3查询电影"<cout<<"\t\t\t4售票和退票"<cout<<"\t\t\t5退出"<cout<<"\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<cin>>m;
switch(m)
{
case1:
system("Cls");
fi.luru();
break;
case2:
system("Cls");
fi.liulan();
break;
case3:
system("Cls");
fi.chaxun();
break;
case4:
system("Cls");
cout<<"请输入操作:
"<cout<<"1购票"<cout<<"2退票"<cin>>x;
switch(x)
{
case1:
fi.shoupiao();
break;
case2:
fi.tuipiao();
break;
}
break;
case5:
i=0;
break;
}
}
return0;
}