电影票售票系统.docx
《电影票售票系统.docx》由会员分享,可在线阅读,更多相关《电影票售票系统.docx(18页珍藏版)》请在冰豆网上搜索。
电影票售票系统
电影票售票系统
————————————————————————————————作者:
————————————————————————————————日期:
电影票售票系统
一、课题内容和要求
某电影院共有n个观影厅,每个观影厅有若干个座位,座位根据不同位置具有不同价格,现在要求实现如下功能:
1)电影院为某个观影厅设置放映影片的时间和次数,并为不同时间段不同位置的座位设置不同的价格。
2)电影院向用户销售电影票,在销售时,向用户显示不同时间段不同位置的情况供用户选择。
3)按周统计每个电影厅或者每部电影的销售额。
(二)其它要求:
(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)学生可自动增加新功能模块(视情况可另外加分)
(4)写出课程设计报告,具体要求见相关说明文档
二、需求分析
#include//标准的输入输出流头文件
usingnamespacestd;//标识符的各种可见范围
#definenum2//方便程序段的定义和修改。
#defineseats3//电影院的座位数
#defineTIME3//早上中午晚上三个时间段
intpo[num][TIME];//放哪场电影
intas[num][seats][TIME];//价格
intqw[num][seats][TIME];//买了多少张票
voidssu()
{
intk,o;
for(k=0;k{
printf("请设置第%d个影厅早上放映了几部电影\n",k);
scanf("%d",&po[k][0]);
printf("请设置第%d个影厅中午放映了几部电影\n",k);
scanf("%d",&po[k][1]);
printf("请设置第%d个影厅晚上放映了几部电影\n",k);
scanf("%d",&po[k][2]);
}
for(k=0;k{
for(o=0;o{
printf("请输入第%d个电影厅第%d排桌位早上的票价\n",k,o);
scanf("%d",&as[k][o][0]);//输入函数
printf("请输入第%d个电影厅第%d排桌位中午的票价\n",k,o);
scanf("%d",&as[k][o][1]);
printf("请输入第%d个电影厅第%d排桌位晚上的票价\n",k,o);
scanf("%d",&as[k][o][2]);
}
}
}
intio,pos;
for(io=0;io{
printf("第%d个影厅早上,中午,晚上分别放映哪几部部电影\n",io);
printf("%d\t\t%d\t\t%d\n",po[io][0],po[io][1],po[io][2]);
}
for(io=0;io{
for(pos=0;pos{
printf("第%d个电影厅第%d排桌位早上,中午,晚上票价为\n",io,pos);
printf("%d\t\t%d\t\t%d\t\t\n",as[io][pos][0],as[io][pos][1],as[io][pos][2]);
}
}
printf("请输入您要的电影厅号(0-1),座位号(0-2)早上(0),中午
(1),晚上
(2)");
intk;
scanf("%d%d%d",&io,&pos,&k);
qw[io][pos][k]++;
getchar();//有一个int型的返回值,输入的字符被存放在键盘缓冲区中
}
charSHowOUT()
{
//system("cls");//清屏命令
printf("\n\n************欢迎进入电影售票管理系统**********\n\n");
printf("\n请选择操作选项:
\n\n");
printf("\t\t\t1.电影录入\n");
printf("\t\t\t2.电影销售\n");
printf("\t\t\t3.电影统计\n");
printf("\n\n*******************************************\n\n");
printf("输入z退出");
printf("\n请输入您的选项(1,2,3):
");
returngetchar();
}
voidmain()
{
while
(1)
{
charch=SHowOUT();
switch(ch)
{
case'1':
{
ssu();
}
case'2':
{
pw();
}
case'3':
{
puts("请输入您要统计的电影厅号和座位号");
inti,j;
scanf("%d%d",&i,&j);
printf("过去一周第%d个电影厅第%d排桌位早上,中午,晚上分别出售电影票数为\n",i,j);
printf("%d\t\t%d\t\t%d\t\t\n",qw[i][j][0],qw[i][j][1],qw[i][j][2]);
}
}
}
}
三、概要设计
主函数
运行程序时,需要先输入数据,根据需要在对数据进行简单操作。
录入时,每录入一个信息就会对现有信息进行插入排序。
录入电影时系统会分三个电影厅和早中晚三场和三种座位分别对应三个不同的价格
售票系统设计较为简单,主要是订票。
在订票的时候会提示选择哎哪个厅哪个位置哪个时段的电影票,系统会自动对售出的电影票进行存档记忆。
然后再统计数据当中可以查询到已售出的各类电影票的总量
四、详细设计
intio,pos;
for(io=0;io{
printf("第%d个影厅早上,中午,晚上分别放映哪几部部电影\n",io);
printf("%d\t\t%d\t\t%d\n",po[io][0],po[io][1],po[io][2]);
}
for(io=0;io{
for(pos=0;pos{
printf("第%d个电影厅第%d排桌位早上,中午,晚上票价为\n",io,pos);
printf("%d\t\t%d\t\t%d\t\t\n",as[io][pos][0],as[io][pos][1],as[io][pos][2]);
}
}
printf("请输入您要的电影厅号(0-1),座位号(0-2)早上(0),中午
(1),晚上
(2)");
intk;
scanf("%d%d%d",&io,&pos,&k);
qw[io][pos][k]++;
getchar();//有一个int型的返回值,输入的字符被存放在键盘缓冲区中
}
charSHowOUT()
{
//system("cls");//清屏命令
printf("\n\n************欢迎进入电影售票管理系统**********\n\n");
printf("\n请选择操作选项:
\n\n");
printf("\t\t\t1.电影录入\n");
printf("\t\t\t2.电影销售\n");
printf("\t\t\t3.电影统计\n");
printf("\n\n*******************************************\n\n");
printf("输入z退出");
printf("\n请输入您的选项(1,2,3):
");
returngetchar();
}
voidmain()
{
while
(1)
{
charch=SHowOUT();
switch(ch)
{
case'1':
{
ssu();
}
case'2':
{
pw();
}
case'3':
{
puts("请输入您要统计的电影厅号和座位号");
inti,j;
scanf("%d%d",&i,&j);
printf("过去一周第%d个电影厅第%d排桌位早上,中午,晚上分别出售电影票数为\n",i,j);
printf("%d\t\t%d\t\t%d\t\t\n",qw[i][j][0],qw[i][j][1],qw[i][j][2]);
}
}
}
}
五、测试数据及其结果分析
printf("\n\n************欢迎进入电影售票管理系统**********\n\n");
printf("\n请选择操作选项:
\n\n");
printf("\t\t\t1.电影录入\n");
printf("\t\t\t2.电影销售\n");
printf("\t\t\t3.电影统计\n");
printf("\n\n*******************************************\n\n");
printf("输入z退出");
printf("\n请输入您的选项(1,2,3):
");
returngetchar();
voidssu()
{
intk,o;
for(k=0;k{
printf("请设置第%d个影厅早上放映了几部电影\n",k);
scanf("%d",&po[k][0]);
printf("请设置第%d个影厅中午放映了几部电影\n",k);
scanf("%d",&po[k][1]);
printf("请设置第%d个影厅晚上放映了几部电影\n",k);
scanf("%d",&po[k][2]);
}
for(k=0;k{
for(o=0;o{
printf("请输入第%d个电影厅第%d排桌位早上的票价\n",k,o);
scanf("%d",&as[k][o][0]);//输入函数
printf("请输入第%d个电影厅第%d排桌位中午的票价\n",k,o);
scanf("%d",&as[k][o][1]);
printf("请输入第%d个电影厅第%d排桌位晚上的票价\n",k,o);
scanf("%d",&as[k][o][2]);
}
}
}
voidpw()
{
intio,pos;
for(io=0;io{
printf("第%d个影厅早上,中午,晚上分别放映哪几部部电影\n",io);
printf("%d\t\t%d\t\t%d\n",po[io][0],po[io][1],po[io][2]);
}
for(io=0;io{
for(pos=0;pos{
printf("第%d个电影厅第%d排桌位早上,中午,晚上票价为\n",io,pos);
printf("%d\t\t%d\t\t%d\t\t\n",as[io][pos][0],as[io][pos][1],as[io][pos][2]);
}
}
printf("请输入您要的电影厅号(0-1),座位号(0-2)早上(0),中午
(1),晚上
(2)");
intk;
scanf("%d%d%d",&io,&pos,&k);
qw[io][pos][k]++;
getchar();
voidmain()
{
while
(1)
{
charch=SHowOUT();
switch(ch)
{
case'1':
{
ssu();
}
case'2':
{
pw();
}
case'3':
{
puts("请输入您要统计的电影厅号和座位号");
inti,j;
scanf("%d%d",&i,&j);
printf("过去一周第%d个电影厅第%d排桌位早上,中午,晚上分别出售电影票数为\n",i,j);
printf("%d\t\t%d\t\t%d\t\t\n",qw[i][j][0],qw[i][j][1],qw[i][j][2]);
}
}
}
}
电影销售列表:
六、调试过程中的问题
问题:
在调试过程时经常会遇到一些类与类内嵌时有函数未定义的情况,明明已经定义过类了,但编译时显示类未定义,对象为定义,不能互相访问,还有的时候由于定义的标示符过多,导致会编写错误标示符,还有一些小错误,比如符号漏写等,这些错误都是很好看出来。
最难的错误应该是在嵌套过程中的逻辑问题,有的时候会调用错误函数,有的时候会很混乱,整个思路就乱了。
修改:
在嵌套时要注意有没有先定义对象到另一个类中,定义函数时,如果函数体短的函数直接定义为内联函数,这样不会有忘定义的现象产生。
在类与类嵌套时应该注意类前向引用声明。
七、课程设计总结
问题:
在调试过程时经常会遇到一些类与类内嵌时有函数未定义的情况,明明已经定义过类了,但编译时显示类未定义,对象为定义,不能互相访问,还有的时候由于定义的标示符过多,导致会编写错误标示符,还有一些小错误,比如符号漏写等,这些错误都是很好看出来。
最难的错误应该是在嵌套过程中的逻辑问题,有的时候会调用错误函数,有的时候会很混乱,整个思路就乱了。
修改:
在嵌套时要注意有没有先定义对象到另一个类中,定义函数时,如果函数体短的函数直接定义为内联函数,这样不会有忘定义的现象产生。
在类与类嵌套时应该注意类前向引用声明。
类与类的逻辑问题还是静下心来梳理一下自己的思路,这是我觉得最好的办法了。
一点小的收获能够让我看见更大的力量,感觉自己浑身充满着干劲,真的特别希望能够通过这次课程设计,促使自己将以前没有看过的书都看一遍、由此来使自己的C++水平更上一层楼!
这次的课程设计也让我看到了同学之间相互帮助的力量,我认为我们班进行的这次课程设计不仅仅是一次锻炼,还让我们见到了同学之间的相互帮助,当一个同学在处理一些问题遇到困难的时候,总会看到有一些其他会做的同学积极的去帮助他解决这些难题。
这次课程设计让我看到了一个团队的工作,团队需要个人,个人也离不开团队,大家都在努力发扬团结协作的精神,因为每个人都希望自己的课程设计这门课能够顺利的通过。
刚开始的时候,大家就已经做好了迎接挑战的准备,据我私下里了解,有些同学为了这次课程设计,从不熬夜的他们基本每天晚上研究到夜里一两点才睡,真的很敬佩这些同学的干劲。
其实在这个班级,C++这门课程还是有一定的区分度的,但好像起先就分配好了各自的任务,底子薄的同学先去自己编写一些自己能够写出的东西,而后请功底好的同学进行加工,将程序完善化。
关于每个程序要求做出来的界面,以及对每个题目的理解,大家都会经常表达自己的看法,往往会把一些某个人想不到的问题给提出来,减少了每个人为了解决一些常见的错误而绞尽脑汁而所用的时间,不论结果如何,大家都会经常聚在一起讨论各个方案的可行性。
在课程设计中只有一个人知道如何让程序正确、如何让程序完美是远远不够的,必须让每个人都知道,这样可以促进大家集体学习的积极性,也能够促使大家相互学习。
倘若每个人都只顾着自己的那一点点东东西,那恐怕最终不能通过这次课程设计使自己的知识有所长进,就连跟同学之间相互学习的那样一种乐趣他也体会不到吧!
所以说团结协作是我们成功的一项非常重要的保证。
而这次设计也正好锻炼我们这一点,这也是非常宝贵的。
现在差不多大家的程序都已经编好,我想,当大家现在回想,那两个星期每天都花大量的时间应该也会感觉是值得吧!
在这个过程中,我也曾经因为理论知识和实践能力的缺乏失落过,也曾经仿真成功而热情高涨。
生活就是这样,汗水预示着结果也见证着收获。
劳动是人类生存生活永恒不变的话题。
虽然这个题目或许对某些人来说只是一次的普通的课程设计,可是平心而论,也耗费了我不少的心血,这就让我不得不佩服我们班那些C++学的特别好的同学,真不知道他们是如何做到的,而我更佩服放入是那些专门搞软件开发的技术前辈,通过这次课程设计才知道编一个简单的系统需要消耗多大的气力,更别说那些成千上万行的大系统,直到现在我才意识到老一辈对我们社会的付出,为了人们的生活更美好,他们为我们社会所付出多少心血啊!
通过这次课程设计,我想说:
为完成这次课程设计我们确实很辛苦,但苦中仍有乐,和班级同学一起在同一个教室学习努力的日子,让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的学习,我感觉我和同学们之间的距离更加近了。
这个题目一直坚持做下来确实很累,但当我们每个人的程序运行都宣告成功的时候,当我们点击运行按钮,显示没有错误,当我们一句显示屏上的要求去验证任务书上所标明的功能,并且都能实现的时候,内心深处尽然有一种说不出的兴奋和激动。
这两个星期的种种艰辛在此时此刻都变成了最甜美的回忆!
对我而言,这不仅仅是一次课程设计,更多的给我带来的知识上的重大收获,精神上的丰收更加可喜。
它让我懂得了看书的重要性,让我明白团结合作的重要行,更让我知道了学无止境的道理。
通达学院程序设计报告
(2013/2014)学年第2学期
题目:
学生考勤系统
专业网络工程
学生姓名王阳
班级学号13002511
指导教师李养群
指导单位南京邮电大学通达学院
日期2014.12.18
评分细则
评分项
成绩
遵守机房规章制度(5分)
上机时的表现(5分)
学习态度(5分)
程序准备情况(5分)
程序设计能力(10分)
团队合作精神(5分)
课题功能实现情况(10分)
算法设计合理性(10分)
用户界面设计(10分)
报告书写认真程度(5分)
内容详实程度(10分)
文字表达熟练程度(10分)
回答问题准确度(10分)
评分等级
备注
评分等级有五种:
优秀、良好、中等、及格、不及格