电影院售票系统文档格式.docx
- 文档编号:6700336
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:18
- 大小:146.98KB
电影院售票系统文档格式.docx
《电影院售票系统文档格式.docx》由会员分享,可在线阅读,更多相关《电影院售票系统文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
编程时采取模块化设计思想,设计主函数,通过主函数选择调用各子函数以实现该系统的各种功能。
然后设计相应的子函数来执行系统的各种功能,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
1、经过对程序设计题目的分析可知,整个程序的设计实现大致分为5个模块,其中每一个模块对应一个函数,他们的功能分别是查询当前的电影及售票数、售票、退票、统计满座率、退出。
在这些函数当中,后4个函数的实现严格按照题目的要求,而前面的2个函数属于附加功能。
2、增强了程序的实用性,使系统用户界面友好、功能明确、操作方便,应采取直接用printf函数的方式在界面上输出可供用户选择的菜单。
据此应该能够很好成要求。
1、售票,对顾客出售各票
2、退票,对顾客需要票进行处理,十分钟内可退票。
二、设计分析
主要有5个功能模块,每个模块对应一个C语言自定义函数。
这些函数原型及其功能简述如下:
1、程序总体结构图(传统流程图或N-S框图)
图1
2、主要功能模块框图(传统流程图或N-S框图)
(1)查询当前的电影及售票数
图2
(2)售票
图3
(3)退票
图4
三、主要界面截图
图1程序主界面
图2查询当前电影
图3售票
图4退票
四、技术要点
(对本程序贡献较大的C语言知识点;
重要算法的设计与实现)
1、结构体的应用
定义了结构体用来描述电影院的场次、放映时间、座位数量以及已售票数。
具体的定义如下QC[K]={{"
A"
500,0,0},
{"
B"
C"
D"
};
所定义的结构体主要用于定义数组。
2、售票系统sell
voidsell()/*售票*/
{
inti,m;
charb[15];
{
printf("
\n\n**********售票**********\n"
);
场次座位数量已售票数\n"
for(i=0;
i<
K;
i++)/*利用循环语句输出票的信息*/
%4s%10s%10d%8d%13s\n"
QC[i].NO,QC[i].time,QC[i].total,QC[i].sell,QC[i].leave);
}
请选择场次(例如:
A):
\n"
scanf("
%s"
b);
/*输入的值给b*/
需要买的张数(例如:
5):
%d"
&
m);
/*输入的值给m*/
i++)
if(strcmp(QC[i].NO,b)==0)/*对QC[i].NO和b进行比较*/
QC[i].sell=QC[i].sell+m;
******买票成功!
******\n"
i++)/*利用循环语句输出票的信息*/
writetofile();
}
其中应用了结构体内容。
结构体类型也是属于一种构造类型数据,它将不同类型的数据项组织成一个组合项,这些组合项中的数据项是互相联系的。
3、退票系统leave
voidleave()/*退票*/
\n\n**********目前票务情况**********\n"
请选择要退票的场次(例如:
请输入要退的张数(例如:
3):
/*输入的值给m*/
if(strcmp(QC[i].NO,b)==0)/*对QC[i].NO和b进行比较*/if(QC[i].sell-m>
=0)/*判断能否退票*/
QC[i].sell=QC[i].sell-m;
******退票成功!
\n\n**********退票**********\n"
五、个人总结
这次课程设计基本上含盖了大学一年纪学习到的C语言知识点,课设题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。
这次课设使我了解我编程思想和编程技巧,也认识了软件生命周期的各个环境,包括构思、设计、编写、调试、文档化和修订。
编程的风格也很重要,只关心程序运行的结果,而对程序代码的结构的良好丝毫不在意。
这是非常不可取的,如果我希望将来从事编程工作,在这一点上该引起足够的重视。
这是严谨的态度,很重要。
做课设不仅让我修补了以前学习的漏洞,也让我知道一个道理:
编程需要兴趣和实际动手。
创新思维也至关重要,这不仅让我们写出精简的代码,也有助于开发出高效的程序。
这次程序的设计基本完成了题目的要求,只有一项是关于如何在时间到达后不能继续售票问题没有解决,我于是想到查询当前时间来解决。
最后我要感谢帮助过我的同学和老师,让我能够在有限的时间内完成题目。
六、参考文献
1谭浩强.C程序设计.北京:
清华大学出版社,2005
2刘成等.C语言程序设计实验指导与习题集.北京:
中国铁道出版社,2006.
七、源程序
#include<
stdio.h>
stdlib.h>
string.h>
conio.h>
time.h>
#defineK4/*起用宏定义变量K*/
structrecord/*定义结构体类型变量*/
charNO[10];
inttotal;
intsell;
charleave[10];
}QC[K]={/*用QC[K]表示*//*给数组QC[K]赋值*/
};
FILE*fp;
voidsearch();
voidsell();
voidtongji();
voidleave();
intmenu();
voidwritetofile();
voidreadfromfile();
intmenu()/*定义菜单*/
intc;
1.查询当前的电影及售票数\n"
2.售票\n"
3.退票\n"
4.统计满座率\n"
5.退出\n"
do
请选择(1-5)!
:
"
c);
/*把输入的值赋给c*/
if(c<
1||c>
5)
printf("
\n*******错误!
********\n"
while(c<
5);
return(c);
voidmain()
{
readfromfile();
for(;
;
)
switch(menu())
{
case1:
search();
break;
case2:
sell();
break;
case3:
leave();
case4:
tongji();
case5:
exit(0);
voidsearch()/*查询当前的电影及售票数*/{
inti;
\n\n**********查询当前的电影及售票数**********\n"
%4s%10d%8d%13s\n"
QC[i].NO,QC[i].total,QC[i].sell,QC[i].leave);
\n"
{if(strcmp(QC[i].NO,b)<
=0)
elseprintf("
******买票失败!
if(strcmp(QC[i].NO,b)==0)/*对QC[i].NO和b进行比较*/
{if(QC[i].sell-m>
******退票失败!
voidtongji()
readfromfile();
/*打开文件*/
floatm;
for(i=0;
m=1.0*QC[i].sell/QC[i].total;
printf("
场次%s满座率%f\n"
QC[i].NO,m);
voidreadfromfile()//从文件导入
intnum;
if((fp=fopen("
paoshuai.txt"
"
rb"
))==NULL)
printf("
\n\t\t文件不存在"
if((fp=fopen("
wb"
{
printf("
\n\t\t建立失败"
exit(0);
}
else
getch();
return;
exit(0);
fseek(fp,0,2);
/*文件位置指针移动到文件末尾*/
if(ftell(fp)>
0)/*文件不为空*/
rewind(fp);
/*文件位置指针移动到文件开始位置*/
for(num=0;
!
feof(fp)&
&
fread(&
QC[num],sizeof(structrecord),1,fp);
num++);
return;
getch();
return;
}
voidwritetofile()//写入文件
if((fp=fopen("
))==NULL)
\n\t\t文件打开失败"
}
for(i=0;
4;
i++)
if(fwrite(&
QC[i],sizeof(structrecord),1,fp)!
=1)
{
\n\t\t写入文件错误!
}
fclose(fp);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电影院 售票 系统