C语言课程设计电影院座位分配 (1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电影院座位分配

一、目的

通过课程设计,加深对《C语言程序设计》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用(时间函数、绘图函数以及文件的读写操作函数等);复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。

学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。

二、需求分析

(1)输入的形式和输入值的范围:以数字字符的形式输入0~2,选择是电脑自动分配还是用户输入希望的座位号。若是用户自己选择,则还需要输入座位号1~12。

(2)输出形式:首先要输出座位的排列形式,其次是所分配的座位号或者自己希望的座位号。

(3)程序所能达到的功能:程序应该显示可用座位的分配图,并用‘x’来标记一个已分配的座位。程序提示用户运用两种方式来选择座位号,一是电脑自动分配,那么就产生一个随机数(要保证该位置未被订出去);二是用户输入希望的座位号,当用户输入自己选中的座位号后,程序对可用座位分布图进行更新。程序应该一直执行下去,直到所有座位都被预订,或者用户表示程序应该终止。如果用户指定的一个座位被预订,程序应该指出该座位不可用,要求用户重新选择。

(4)列出初步的测试计划:按照程序的输出形式分别测试两种方法分配座位的正确性,并多次测试,考虑多种可能出现的结果。

三、概要设计

1.本程序包含五个模块:

(1)主程序模块:

main()

{

定义字符类型的变量choose和整型变量i,j及数组Seat[8][12]

并初始化用switch语句实现以那种方式进行座位分配;

对要用到的下面四个函数进行函数声明:

void menu();

void assign(int seat[8][12]);

int myfree(int seat[8][12]);

void position(int seat[8][12]);}

(2)座位显示模块:用循环语句控制座位的输出方式,并按照要求显示在屏幕上达到一目了然的效果.

(3)菜单界面模块:输出图形菜单界面,可以选择分配座位的方式.

(4)电脑自动分配座位的模块:达到电脑自动分配的功能.

(5)用户自选座位的模块:达到用户自己选择自己希望座位的功能.

主程序调用其他四个模块

2、模块图

四、详细设计

依照座位的分布方式定义一个二维数组并初始化:

int seat[8][12]={

{4,2,1,3,5},

{6,4,2,1,3,5},

{6,4,2,1,3,5,7},

{8,6,4,2,1,3,5,7},

{8,6,4,2,1,3,5,7,9},

{10,8,6,4,2,1,3,5,7,9},

{10,8,6,4,2,1,3,5,7,9,11},

{12,10,8,6,4,2,1,3,5,7,9,11},

};

用下面语句实现分配座位的方式:

switch(choose)

{case'1':assign(seat);break;

case'2':myfree(seat);break;

}

座位显示函数:以数组的形式输出。

void position(int seat[8][12])

菜单显示函数:

void menu()

电脑自动分配座位函数:

void assign(int seat[8][12])

randomize(); /* 随机初始化种子数,确保产生的随机数不同;*/ x=random(8); /* 产生[0, 7]间的整型随机数,赋值给x;*/

y=random(12); /* 产生[0, 11]间的整型随机数,赋值给y;*/

用户自己选座位的函数

int myfree(int seat[8][12])

printf("\nplease input the seat'row and number:\n\n");

printf("row:"); /*输入座位的行号*/ scanf("%d",&x);

printf("\n\nnumber:"); /*输入座位的列号*/ scanf("%d",&y);

整个程序的流程图如下:

main()函数

position()函数

assign()函数

myfree()函数

五、调试分析

该程序的关键是弄清楚各种选择座位的方法,原理。首先要保证机选和人选的正确性,这样一来也就不会浪费许多时间去修改程序的错误。我整个程序没有分开写,导致后来我花了好多时间去修改整理。

我觉得这个程序最难的地方就是要用X代替已经被分配出去的位置,并且显示在屏幕上。这一点让我改了很多地方,最后通过令被选的座位号为0,输出的座位号为X才达到目的,

该程序设计用到了do-while语句,for循环语句以及case语句来实现该程序的功能,这些语句也是我们所学的最基础的东西,但是在编程的过程中非常有用.

六、测试结果

程序输入完后运行成功,显示如图(1)下:

第一次调试:选择1、电脑自动分配座位,得到结果如图(2)所示:

第二次调试:按任意键后得到如图(3),可以看到被选的座位已被x代替.

选择2、用户自己选择座位,得到结果如图(4)所示:

相关文档
最新文档