1. 火车票座位分配
  2. 1.1【问题描述】
    请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。假设一节车厢有 20 排、
    每一排 5 个座位。为方便起见,我们用 1 到 100 来给所有的座位编号,第一排是 1 到 5 号,第二排是 6 到
    10 号,依次类推,第 20 排是 96 到 100 号。购票时,一个人可能购一张或多张票,最多不超过 5 张。如果
    这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最
    小的几个空座位中(不考虑是否相邻)。
    1.2【基本要求】
    假设初始时车票全部未被购买,现在给了一些购票指令,请你处理这些指令。
    输入格式:输入的第一行包含一个整数 n(1 ≤ n ≤ 100),表示购票指令的数量。第二行包含 n
    个整数,每个整数 p 在 1 到 5 之间,表示要购买的票数,相邻的两个数之间使用一个空格分隔。
    输出格式:输出 n 行,每行对应一条指令的处理结果。对于购票指令 p,输出 p 张车票的编号,按从
    小到大排序。
    样例输入:
    4
    2 5 4 2
    样例输出:
    1 2
    6 7 8 9 10
    11 12 13 14
    3 4
    样例说明:
  1. 购 2 张票,得到座位 1、2。

  2. 购 5 张票,得到座位 6 至 10。

  3. 购 4 张票,得到座位 11 至 14。

  4. 购 2 张票,得到座位 3、4。
    代码如下:

package 火车票座位分配;
import java.util.Scanner;
/*** 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。* 假设一节车厢有20排,每一排 5个座位。为方便起见,我们用 1到100来给所有的座位编号,* 第一排是 1到 5号,第二排是 6到10号,依次类推,第 20排是96到100号。* 购票时,一个人可能购一张或多张票,最多不超过 5张。* 如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。* 否则应该安排在编号最小的几个空座位中(不考虑是否相邻)。* * @author jingbu**/
public class TicketTest {static int time=0;//定义一个静态变量,用来记录每一排座位的个数的变化public static void main(String[] args) {Scanner scanner=new Scanner(System.in);//输入购票指令的数量int a=scanner.nextInt();//只能购买1-100,不在此范围则报错if(a<1||a>100) {System.out.println("购票指令的数量出错");}//购票指令的数量对应的票的张数构成的数组int[] arr=new int[a];//初始化该数组for(int i=0;i<a;i++) {int x=scanner.nextInt();//票的张数只能为1-5,不在此范围则报错if(x>5||x<1) {System.out.println("购票张数出错");}else {arr[i]=x;}}//将车的座位定义为二维数组,没有购票为0,否则为1int seat[][]=new int[20][5];//初始化该二维数组for(int i=0;i<20;i++) {for(int j=0;j<5;j++) {seat[i][j]=0;}}        //座位分配算法int[] temp = new int[20];// 定义一个辅助数组,记录每排已购座位的个数//购票指令的数量决定最后输出的行数for(int i=0;i<a;i++) {//最后输出a行for(int j=0;j<20;j++) {if(arr[i]>5-temp[j]) {continue;}else if(arr[i]<=5-temp[j]) {int s=temp[j];for(int m=temp[j];m<s+arr[i];m++) {seat[j][m]=1;System.out.print((5*j+m+1)+" ");time++;temp[j]=time;      }System.out.println();/** for(int y=0;y<5;y++) { if(seat[j][y]==1) { System.out.print((5*j+s+1)+" "); }* } System.out.println();*/time=0;//将记录次数置0break;}}}/** for(int i=0;i<20;i++) { for(int j=0;j<5;j++) { if(seat[i][j]==1) {* System.out.print((5*i+j+1)+" "); } } System.out.println(); }*/}}


此题难点在于输出时同一行的座位为不同行输出,具体详细看座位分配算法部分。

课程设计实验--火车票座位分配相关推荐

  1. c语言课程设计实验报告模板,[C语言课程设计实验报告模板.doc

    [C语言课程设计实验报告模板 <程序设计基础> 课程设计报告 课程设计题目 通讯录管理系统 指导教师:____李 萍____ 班 级:__ 0903班_ _ __ 学生姓名:2009100 ...

  2. 大一c语言课程报告报书模板,C语言课程设计实验报模板.doc

    C语言课程设计实验报模板 <程序设计基础> 课程设计报告 课程设计题目 通讯录管理系统 指导教师:____李 萍____ 班 级:__ 0903班_ _ __ 学生姓名:200910033 ...

  3. 2019春第二次课程设计实验报告

    2019春第二次课程设计实验报告 一.实验项目名称: 贪吃蛇游戏编写: 二.实验项目功能描述: 这个实验主要是实现游戏的正常运行,实现的目标是对小蛇移动的控制, 同时对小蛇数据的保存,如何实现转弯的效 ...

  4. 2109春第一次课程设计实验报告

    2019春第一次课程设计实验报告 一.实验项目名称: 飞机游戏的编写 二.实验项目功能描述: 这个实验主要是实现游戏的正常运行,实现控制飞机的移动功能,增加其实用度, 同时还实现发射子弹和出现敌机的操 ...

  5. c语言图形时钟编程,C语言图形时钟课程设计实验报告.doc

    C语言图形时钟课程设计实验报告.doc 目录 1.系统功能要求 . 2. 数据结构设计及 说明 . 3.程序结构(画流程图) . 4.各模块的功能 . 5.试验结果(包括输入数据和输出结果) . 6. ...

  6. 2019春第一次课程设计实验报告

    2019春第一次课程设计实验报告 一.实验项目名称 反弹球消砖块 二 .实验项目功能描述 用c语言编写一个反弹球小游戏,可以自己改变游戏的各项数据,可以通过键盘的 "a",&quo ...

  7. c语言时钟报告,C语言图形时钟课程设计实验报告

    C语言图形时钟课程设计实验报告 目录1.系统功能要求.2. 数据结构设计及说明.3.程序结构(画流程图) .4.各模块的功能.5.试验结果(包括输入数据和输出结果) .6.体会.7.参考文献.8.附录 ...

  8. matlab数字图像处理课程设计报告,数字图像处理课程设计实验报告.doc

    数字图像处理课程设计实验报告 数字图像处理课程设计 题 目:数字图像处理及Huufman(或小波变换)编码仿真实现 学生姓名: 学 院:信息工程学院 系 别:电子信息工程系 专 业:电子信息工程 班 ...

  9. 湖北汽车工业学院c语言程序设计 汽车零部件采购管理程序,湖北汽车工业学院c语言课程设计实验报告(采购信息管理系统).docx...

    湖北汽车工业学院c语言课程设计实验报告(采购信息管理系统) C语言课程设计 商品销售信息管理系统 #include #include #include #include structproduct// ...

最新文章

  1. 廖雪峰团队最新研磨的实战宝典终终终终终终于免费了!
  2. android双击返回键退出程序的实现
  3. 机器学习实战 基于_机器学习实战:基于Scikit-Learn和TensorFlow—第四章笔记
  4. VirtualBox 安装ghost版windows XP
  5. cgi web页面传入命令
  6. python输入时间_一文搞懂python日期时间处理
  7. 查看android内置(webview)浏览器和系统浏览器内核信息
  8. springboot elementui vue商城微信小程序源码(毕设)开发讲解
  9. 计算机脚本模板,mv分镜头脚本范文mv的分镜头脚本格式.doc
  10. 雪花算法中的时间回拨问题解决方案
  11. 图片转码 webp 转 png、jpg
  12. 说一下软件测试行业的优缺点
  13. win7远程计算机设置路由器,win7路由器设置图解 win7路由器怎么设置
  14. fastadmin 后台开发实例技巧
  15. 大数据时代_如何构建国家地质基础数据更新体系
  16. 用Python实现美化照片———磨皮
  17. 从事家电行业17年,分享下我的购买心得:哪些品牌电器值得你购买
  18. 【调剂】2.28计算机考研其余调剂信息
  19. ICV:车规级激光雷达市场规模超7亿美元,补盲雷达有望2024年量产
  20. php寄生虫程序(附带asp,php劫持)

热门文章

  1. web.xml配置的详细说明
  2. 什么是5G?它能为我们带来什么样的便利?思维导图《5G时代》给你新认识
  3. 理想电流源与理想电压源
  4. 【c++篇】c++常见容器中list的模拟实现
  5. 计算机应用项目概述,计算机应用包括哪些项目?
  6. python:计算自己的bmi值
  7. UNITY 5.2.1 发行说明 中文版
  8. Matlab获取tif各格点经纬度
  9. Echars柱状图嵌套 居中对齐 柱子占比宽度由大到小嵌套包含 并用小箭头标记当前产出位置
  10. Person owns Dog...