编写一个程序安排一架飞机上的座位。假设一架飞机上有20个头等舱座位(共5排,每排4个座位并被一个通道分隔),另有180个经济舱位置(共30排,每排6个座位,被一个通道从中分隔)。程序需要完成3个功能:增加乘客,显示座位安排情况,退出系统。在增加乘客时,要求输入客舱的等级和结伴旅行的人数(头等舱为1至2人,经济舱为1至3人),此外,还可以输入对座位的要求(头等舱可选靠窗或靠通道),经济舱可选靠窗、中间或靠通道)。然后,为乘客分配合适的位置。如果没有符合要求的座位,则给出相应信息。用户界面可以使文本方式或者图形方式。利用CRC卡片设计类和类中的方法,同时给出UML图并实现该程序。扩展功能:1)减少乘客;2)能够对两个乘客的座位进行调整。
说一下主要思路:
定义两个二维数组:
int tdc[5][4]; //用来存放头等舱的座位的使用情况
int jjc[30][6];//用来存放经济舱的作为的使用情况
如果座位被占用,就把对应的座位的值设为1。
(1)显示
显示时,先显示头等舱,输出坐标两个座位信息后,输出空格(表示通道),然后再输出右边两个座位。
显示经济舱是,先显示左边3个座位信息,然后输出空格(表示通道),然后再输出右边3个座位,为了保持整齐,头等舱座位在输出通道时,可以多打印几个空格,以便与经济舱座位对齐。
(2)查找可用座位
就是数组的遍历。1个乘客的情况下很简单,根据要求找符合条件的即可。
两个或者3个乘客的,首先查找有没有3个连续座位的情况,如有有,就分配连续座位。如果没有,查找是否有两个连续座位,剩下的1个就跟1个乘客的情况一样处理。如果没有2个连续座位,3个乘客就单独处理。
请问你用什么 GUI 库或者图形工具? 你的思路是什么?