电影票售票系统一、课题内容和要求某电影院共有n个观影厅,每个观影厅有若干个座位,座位根据不同位置具有不同价格,现在要求实现如下功能:1)电影院为某个观影厅设置放映影片的时间和次数,并为不同时间段不同位置的座位设置不同的价格。2)电影院向用户销售电影票,在销售时,向用户显示不同时间段不同位置的情况供用户选择。3)按周统计每个电影厅或者每部电影的销售额。(二)其它要求:(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档二、需求分析#includeiostream//标准的输入输出流头文件usingnamespacestd;//标识符的各种可见范围#definenum2//方便程序段的定义和修改。#defineseats3//电影院的座位数#defineTIME3//早上中午晚上三个时间段intpo[num][TIME];//放哪场电影intas[num][seats][TIME];//价格intqw[num][seats][TIME];//买了多少张票voidssu(){intk,o;for(k=0;knum;++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;knum;++k){for(o=0;oseats;++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;ionum;++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;ionum;++io){for(pos=0;posseats;++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;ionum;++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;ionum;++io){for(pos=0;posseats;++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;knum;++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;knum;++k){for(o=0;oseats;++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;ionum;++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;ionum;++io){for(pos=0;posseats;++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]);}}}}电影销售列表:六、调试过程中的问题问题:在调试过程时经常会遇到一些类与类内嵌时有函数未定义的情况,明明已经定义过类了,但编译时显示类未定义,对象为定义,不能互相访问,还有的时候由于定义的标示符过多,导致会编写错误标示符,还有一些小错误,比如符号漏写等,这些错误都是很好看出来。最难的错误应该是在嵌套过程中的逻辑问题,有的时候会调用错误函数,有的时候会很混乱,整个思路就乱了。修改:在嵌套时要注意有没有先定义对象到另一个类中,定义函数时,如果函数体短的函数直接定义为内联函数,这样不会有忘定义的现象产生。在类与类嵌套时应该注意类前向引用声明。七、课程设计总结问题:在调试过程时经常会遇到一些类与类内嵌时有函数未定义的情况,明明已经定义过类了,但编译时显示类未定义,对象为定义,不能互相访问,还有的时候由于定义的标示符过多,导致会编写错误标示符,还有一些小错误,比如符号漏写等,这些错误都是很好看出来。最难的错误应该是在嵌套过程中的逻辑问题,有的时候会调用错误函数,有的时候会很混乱,整个思路就乱了。修改:在嵌套时要注意有没有先定义对象到另一个类中,定义函数时,如果函数体短的函数直接定义为内联函数,这样不会有忘定义的现象产生。在类与类嵌套时应该注意类前向引用声明。类与类的逻辑问题还是静