您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > c语言课设电影院售票系统
沈阳航空航天大学课程设计学号_153407020324班级_1534070203姓名_李蕴琪__指导教师孙玉霞2015年9月21日沈阳航空航天大学课程设计任务书学院:自动化学院专业:自动化班级:1534070203学号:153407020324题目:电影院售票系统一、课程设计时间二、课程设计内容用C语言编写软件完成以下任务:某电影院共有A、B、C、D四个场次在放映,具体的数据如下:场次电影名称放映时间座位数量已售票数A钢铁侠318:301500B致青春19:301500C姜戈20:001500D生化危机420:201000请写程序模拟这个售票过程(电影开场10分钟内允许退票,时间函数见参考资料),将所有的信息保存到文件中。三、课程设计要求程序质量:贯彻结构化的程序设计思想。用户界面友好,功能明确,操作方便。用户界面中的菜单至少应包括“售票”、“退票”、“统计满座率”、“退出”4项。代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字指导教师:________学生签名:________五、成绩六、教师评语沈阳航空航天大学设计用纸I目录一、需求分析.....................................................2二、设计分析.....................................................3三、主要界面截图.............................................8四、技术要点....................................................10五、个人总结....................................................11六、参考文献....................................................12七、源程序........................................................12沈阳航空航天大学设计用纸2一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。该系统是一个较典型的售票操作系统,其使用者为工作人员和广大消费者,系统应该具有安全、稳定、功能齐全的特点。1.安全性分析该系统管理的数据直接对电影院的收入产生影响,数据量较大且是一种基础性数据,能够为电影院管理提供重要参考,该程序简洁明了,无赘余语句,增加了程序运行的安全性。2.稳定性分析指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。3.主要功能分析(1)显示售票系统:这个程序可以模拟电影院售票系统,可以供顾客参考,另外这个系统简单明了,可以让顾客在选择看电影时更容易。(2)显示满座率:这个系统可以统计电影院的满座率,沈阳航空航天大学设计用纸3给管理人员提供了方便,可以更快的计算利润。(3)显示退票系统:这个程序可以模拟电影院退票系统,可以供顾客参考,另外这个系统方便快捷,可以让顾客在退票时更加容易方便。二、设计分析主要有四个功能模块,每个模块对应一个C语言自定义函数。这些函数原型及其功能简述如下:(1)添加票据信息函数:将各个场次的电影名称、放映时间、总票数以及剩余票数添加到函数中,用户在进行买票时对当前数据进行参考,最后决定自己购买哪场电影,为顾客带来方便。(2)售票函数:在该功能模块中,顾客可根据提示信息,选择自己想要购买的电影票,选择适合自己的时间段,自己喜欢的电影以及购买的数量,同时,系统会根据当前票据信息对所买的票数进行判断,如不符合实际情况,会给出提示。(3)退票函数:在该功能模块中,顾客可根据提示信息,选择自己想要沈阳航空航天大学设计用纸4退掉的电影票,选择退票的电影以及退票的数量,同时,系统会根据当前票据信息及时间信息对所退的票据进行判断,如不符合实际情况,会给出提示不予退票。(4)计满座率函数:该部分里,每场电影售出票时都会进行累加,得出总票数,用售出的票数除上总座位数,即可得出该场的满场率。1.程序总体结构图(N-S框图)打开文件movie_information.txt是if(fp==NULL)否“打开文件失败”返回exit(0)读取文件内容读取至文件末尾关闭文件图1文件读取程序图沈阳航空航天大学设计用纸5输入要观看的电影名称if(strcmp(inf[i].name,s)==0)是否输出无此电影输出电影信息电影未播放否是输出此电影已播放输入票数剩余座位数减一卖票数加一图2买票系统程序图沈阳航空航天大学设计用纸6输入想要退票的电影if(strcmp(inf[i].name,s)==0)是否输输出电影信息出无此电影未播出电是否影输出无法输入票数退票座数加一卖票数减一图3退票系统程序图沈阳航空航天大学设计用纸7Stime()Menu()Read()输入选项choiceChoice=1?是否buy_choice=2?ticket()是否quit_choice=3?ticket()是否manzuo()choice=4?是否exit(0)图3主程序程序图沈阳航空航天大学设计用纸8三、主要界面截图图1菜单界面图2买票界面沈阳航空航天大学设计用纸9图3退票界面图4满座率界面沈阳航空航天大学设计用纸10四、技术要点(对本程序贡献较大的C语言知识点;重要算法的设计与实现)1.结构体的应用:定义了结构体用来描述电影票的放映时间、座位数量、已售票数、满场率、票价,具体定义如下:structinf{charrate[20];charname[20];inttime_hour;inttime_min;intseat;intsell;所定义的结构体主要用于定义数组2.部分函数的说明:售票函数buy():在该函数部分,加了一个判断语句,判断顾客所输入的沈阳航空航天大学设计用纸11购买票数是否符合当前情况,若不符合,将给出相应的提示具体程序如下:printf(请输入你要观看的电影名称:);scanf(%s,s);for(i=0;ip;i++)if(strcmp(inf[i].name,s)==0)五、个人总结通过一周课设,我的课程设计基本达到要求。在这为期一星期的C程序课程设计中,让我学到了很多,了解到了自身的不足。我深刻的体会到细心的重要性。C语言程序设计是一个繁琐,需要投入很多的心思和精力的活。有时它会因为一个标点符号,让所有的心血白费。因而我们需要的不仅仅是平日知识的积累,还要养成良好的习惯,才能保证我们的路可以越走越远!同时我也明白,当我们面临困难时,我们应该正面迎击!让我增加了对c语言的兴趣和对程序的了解,同时增加了我的自信。让我更熟练的编写程序和理解程序。C语言程序也沈阳航空航天大学设计用纸12算是对我们耐心的考验,只有不懈的追求,才能迎向胜利的曙光!六、参考文献1谭浩强.C程序设计.北京:清华大学出版社,20052刘成等.C语言程序设计实验指导与习题集.北京:中国铁道出版社,2006七、源程序#includestdio.h#includemalloc.h#includestring.h#includeconio.h#includestdlib.h#includetime.hstructinf{charrate[20];charname[20];inttime_hour;inttime_min;intseat;intsell;}inf[10];charn[20];intp;structtm*ptr;voidmenu()沈阳航空航天大学设计用纸13{printf(*******************menu******************\n);printf(*1买票\n\r);printf(*2退票\n\r);printf(*3满座率\n\r);printf(*4退出\n\r);printf(*****************************************\n);}voidread(){inti,re;FILE*fp;fp=fopen(movie_information.txt,r);if(fp==NULL){printf(文件打开失败!);exit(0);}for(i=0;;i++){re=fscanf(fp,%s%s%d%d%d%d\n,inf[i].rate,inf[i].name,&inf[i].time_hour,&inf[i].time_min,&inf[i].seat,&inf[i].sell);if(re==EOF)break;}p=i;for(i=0;i10;i++){if(inf[i].rate=='\0')break;}printf(读取成功!\n);fclose(fp);}voidbaocun(){inti;沈阳航空航天大学设计用纸14FILE*fp;fp=fopen(file08.txt,w);if(fp==NULL){printf(文件打开失败!);exit(0);}for(i=0;ip;i++){fprintf(fp,%s%s%d%d%d%d\n,inf[i].rate,inf[i].name,&inf[i].time_hour,&inf[i].time_min,&inf[i].seat,&inf[i].sell);}printf(数据保存完毕!\n);fclose(fp);}voidstime(){time_tit;it=time(NULL);ptr=localtime(&it);printf(现在的时间是%4d年%02d月%02d日%d:%d:%d\n,ptr-tm_year+1900,ptr-tm_mon+1,ptr-tm_mday,ptr-tm_hour,ptr-tm_min,ptr-tm_sec);}intminate(intq,intp)//将时间全部转换为分钟{inttime_sum;time_sum=60*q+p;returntime_sum;}voidbuy_ticket(){inti,a;沈阳航空航天大学设计用纸15chars[20];printf(请输入你要观看的电影名称:);scanf(%s,s);for(i=0;ip;i++)if(strcmp(inf[i].name,s)==0){printf(您想要观看的电影信息如下:\n);printf(%s%s%d:%d%d%d\n,inf[i].rate,inf[i].name,inf[i].time_hour,inf[i].time_min,inf[i].seat,inf[i].sell);if(minate(inf[i].time_hour,inf[i].time_min)minate(ptr-tm_hour,ptr-tm_min)){printf(请输入你要购买的票数:);scanf(%d,&a);inf[i].seat-=a;inf[i].sell+=a;}elseprintf(此电影在今日%d:%d已经开始播放,已经无票\n,inf[i].time_hour,inf[i].time_min);}baocun();}voidquit_ticket(){inti,m;chars[20];printf(请输入你退票电影名称:);scanf(%s,s);printf(请输入你要退票的数目:);scanf(%d,&m);for(i=0;ip;i++)if(strcmp(inf[i].name,s)==0){printf(退票成功!\n退票后的电影信息如下:\n);沈阳航空航天大学设计用纸16printf(%s%s%d:%d%d%d\n,inf[i].rate,inf[i].name,inf[i]
本文标题:c语言课设电影院售票系统
链接地址:https://www.777doc.com/doc-2058786 .html