c语言课设电影院售票系统.docx

上传人:b****1 文档编号:2591938 上传时间:2023-05-04 格式:DOCX 页数:21 大小:240.41KB
下载 相关 举报
c语言课设电影院售票系统.docx_第1页
第1页 / 共21页
c语言课设电影院售票系统.docx_第2页
第2页 / 共21页
c语言课设电影院售票系统.docx_第3页
第3页 / 共21页
c语言课设电影院售票系统.docx_第4页
第4页 / 共21页
c语言课设电影院售票系统.docx_第5页
第5页 / 共21页
c语言课设电影院售票系统.docx_第6页
第6页 / 共21页
c语言课设电影院售票系统.docx_第7页
第7页 / 共21页
c语言课设电影院售票系统.docx_第8页
第8页 / 共21页
c语言课设电影院售票系统.docx_第9页
第9页 / 共21页
c语言课设电影院售票系统.docx_第10页
第10页 / 共21页
c语言课设电影院售票系统.docx_第11页
第11页 / 共21页
c语言课设电影院售票系统.docx_第12页
第12页 / 共21页
c语言课设电影院售票系统.docx_第13页
第13页 / 共21页
c语言课设电影院售票系统.docx_第14页
第14页 / 共21页
c语言课设电影院售票系统.docx_第15页
第15页 / 共21页
c语言课设电影院售票系统.docx_第16页
第16页 / 共21页
c语言课设电影院售票系统.docx_第17页
第17页 / 共21页
c语言课设电影院售票系统.docx_第18页
第18页 / 共21页
c语言课设电影院售票系统.docx_第19页
第19页 / 共21页
c语言课设电影院售票系统.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言课设电影院售票系统.docx

《c语言课设电影院售票系统.docx》由会员分享,可在线阅读,更多相关《c语言课设电影院售票系统.docx(21页珍藏版)》请在冰点文库上搜索。

c语言课设电影院售票系统.docx

c语言课设电影院售票系统

沈阳航空航天大学

课程设计

学号_4

班级_1534070203

姓名_李蕴琪__

指导教师孙玉霞

2015年9月21日

沈阳航空航天大学

课程设计任务书

学院:

自动化学院专业:

自动化班级:

1534070203

学号:

4题目:

电影院售票系统

一、课程设计时间

二、课程设计内容

用C语言编写软件完成以下任务:

某电影院共有A、B、C、D四个场次在放映,具体的数据如下:

场次电影名称放映时间座位数量已售票数

A钢铁侠318:

301500

B致青春19:

301500

C姜戈20:

001500

D生化危机420:

201000

请写程序模拟这个售票过程(电影开场10分钟内允许退票,时间函数见参考资料),将所有的信息保存到文件中。

三、课程设计要求

程序质量:

✧贯彻结构化的程序设计思想。

✧用户界面友好,功能明确,操作方便。

✧用户界面中的菜单至少应包括“售票”、“退票”、“统计满座率”、“退出”4项。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

课程设计说明书:

✧课程结束后,上交课程设计说明书和源程序。

课程设计说明书的内容参见提供的模板。

四、指导教师和学生签字

指导教师:

________学生签名:

________

五、成绩

六、教师评语

 

一、需求分析

根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。

该系统是一个较典型的售票操作系统,其使用者为工作人员和广大消费者,系统应该具有安全、稳定、功能齐全的特点。

1.安全性分析

该系统管理的数据直接对电影院的收入产生影响,数据量较大且是一种基础性数据,能够为电影院管理提供重要参考,该程序简洁明了,无赘余语句,增加了程序运行的安全性。

2.稳定性分析

指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。

3.主要功能分析

(1)显示售票系统:

这个程序可以模拟电影院售票系统,可以供顾客参考,另外这个系统简单明了,可以让顾客在选择看电影时更容易。

(2)显示满座率:

这个系统可以统计电影院的满座率,给管理人员提供了方便,可以更快的计算利润。

(3)显示退票系统:

这个程序可以模拟电影院退票系统,可以供顾客参考,另外这个系统方便快捷,可以让顾客在退票时更加容易方便。

二、设计分析

主要有四个功能模块,每个模块对应一个C语言自定义函数。

这些函数原型及其功能简述如下:

(1)添加票据信息函数:

将各个场次的电影名称、放映时间、总票数以及剩余票数添加到函数中,用户在进行买票时对当前数据进行参考,最后决定自己购买哪场电影,为顾客带来方便。

(2)售票函数:

在该功能模块中,顾客可根据提示信息,选择自己想要购买的电影票,选择适合自己的时间段,自己喜欢的电影以及购买的数量,同时,系统会根据当前票据信息对所买的票数进行判断,如不符合实际情况,会给出提示。

(3)退票函数:

在该功能模块中,顾客可根据提示信息,选择自己想要

退掉的电影票,选择退票的电影以及退票的数量,同时,

系统会根据当前票据信息及时间信息对所退的票据进行

判断,如不符合实际情况,会给出提示不予退票。

(4)计满座率函数:

该部分里,每场电影售出票时都会进行累加,得出总票数,用售出的票数除上总座位数,即可得出该场的满场率。

1.程序总体结构图(N-S框图)

打开文件movie_information.txt

if(fp==NULL)

图1文件读取程序图

关闭文件

读取至文件末尾

读取文件内容

“打开文件失败”

返回exit(0)

图2买票系统程序图

剩余座位数减一

卖票数加一

输入票数

输出此电影已播放

电影未播放

输出电影信息

输出无此电影

if(strcmp(inf[i].name,s)==0)

输入要观看的电影名称

输入想要退票的电影

if(strcmp(inf[i].name,s)==0)

是否

输输出电影信息

此电影未播出

电是否

影输出

无法输入票数

退票

座数加一

卖票数减一

图3退票系统程序图

图3主程序程序图

Stime()

Menu()

Read()

输入选项choice

Choice=1?

是否

buy_choice=2?

ticket()是否

quit_choice=3?

ticket()是否

manzuo()choice=4?

是否

exit(0)

三、主要界面截图

图1菜单界面

图2买票界面

图3退票界面

 

图4满座率界面

四、技术要点

(对本程序贡献较大的C语言知识点;重要算法的设计与实现)

1.结构体的应用:

定义了结构体用来描述电影票的放映时间、座位数量、已售票数、满场率、票价,具体定义如下:

structinf

{

charrate[20];

charname[20];

inttime_hour;

inttime_min;

intseat;

intsell;

所定义的结构体主要用于定义数组

2.部分函数的说明:

售票函数buy():

在该函数部分,加了一个判断语句,判断顾客所输入的

购买票数是否符合当前情况,若不符合,将给出相应的

提示具体程序如下:

printf("请输入你要观看的电影名称:

");

scanf("%s",s);

for(i=0;i

if(strcmp(inf[i].name,s)==0)

五、个人总结

通过一周课设,我的课程设计基本达到要求。

在这为期一星期的C程序课程设计中,让我学到了很多,了解到了自身的不足。

我深刻的体会到细心的重要性。

C语言程序设计是一个繁琐,需要投入很多的心思和精力的活。

有时它会因为一个标点符号,让所有的心血白费。

因而我们需要的不仅仅是平日知识的积累,还要养成良好的习惯,才能保证我们的路可以越走越远!

同时我也明白,当我们面临困难时,我们应该正面迎击!

让我增加了对c语言的兴趣和对程序的了解,同时增加了我的自信。

让我更熟练的编写程序和理解程序。

C语言程序也算是对我们耐心的考验,只有不懈的追求,才能迎向胜利的曙光!

六、参考文献

1谭浩强.C程序设计.北京:

清华大学出版社,2005

2刘成等.C语言程序设计实验指导与习题集.北京:

中国铁道出版社,2006

七、源程序

#include

#include

#include

#include

#include

#include

structinf

{

charrate[20];

charname[20];

inttime_hour;

inttime_min;

intseat;

intsell;

}inf[10];

charn[20];

intp;

structtm*ptr;

voidmenu()

{

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;i<10;i++)

{

if(inf[i].rate=='\0')

break;

}

printf("读取成功!

\n");

fclose(fp);

}

voidbaocun()

{

inti;

FILE*fp;

fp=fopen("file08.txt","w");

if(fp==NULL)

{

printf("文件打开失败!

");

exit(0);

}

for(i=0;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;

chars[20];

printf("请输入你要观看的电影名称:

");

scanf("%s",s);

for(i=0;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;

}

else

printf("此电影在今日%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;i

if(strcmp(inf[i].name,s)==0)

{

printf("退票成功!

\n退票后的电影信息如下:

\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+m,inf[i].sell-m);

}

baocun();

}

voidmanzuo()

{

inti;

doublem;

for(i=0;i

{

m=inf[i].sell*1.0/(inf[i].seat+inf[i].sell)*1.0;

printf("电影%s的满座率为%f:

",inf[i].name,m);

}

}

voidmain()

{

intchoice;

stime();

menu();

read();

system("colorf5");

while

(1)

{

printf("\n输入你要选择的选项:

");

scanf("%d",&choice);

switch(choice)

{

case1:

buy_ticket();break;

case2:

quit_ticket();break;

case3:

manzuo();break;

case4:

exit(0);break;

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2