Una idea aunque sea de un conejo.
Bueno yo lo enfocaría o me centraría en el tema de la venta de pasaje, el cual seria la opción que tendría un uso continuo o más frecuente, luego tendrías que ver el tema de los mantenimientos de horarios, buses, rutas, clientes y demás temas que servirá para que funcione el módulo principal de ventas de pasajes, ahora, en cuanto al tema visual de la venta de pasajes la ventana principal con una menú tipo ribbon o un clásico, cualquiera de los dos sirve para lo que se necesita para todas las opciones que giran en base a la venta de pasajes, luego en el form principal lo dividiría en 3 partes, la primera parte tendría un campo fecha donde se indicaría la fecha deseada del viaje al ingresarla en la parte inferior actualizaría una lista o un treeview con las rutas de esa fecha y en el nodo de cada ruta los horarios disponibles y cada horario con el tipo de servicio disponible, al picar en el horario deseado de la ruta en la sección 2 o división 2 de la pantalla que en este caso seria la sección central mostraría el diagrama del bus, no es necesario mostrar una foto del plano del bus, bastaría con la posición de los asientos cada uno mostrando su estado o información relevante del ocupante o pasajero, como edad y sexo hasta con color diferente para los ocupados como los libres en una distribución semejante a la que tiene el bus, al seleccionar uno de los asientos (obviamente el disponible), en la tercera sección o parte permitirá ingresar la información del pasajero para la emisión de su pasaje de viaje, a la vez que si es un pasajero nuevo permitir adicionarlo a la bd de clientes con sus datos principales, una vez llenado los datos del pasajero se procede a emitir el boleto de viaje, como tema de seguridad lo amarraría la emisión del documento a una liquidación relacionada con el usuario que la emite donde se indicaría la forma que fue pagado el pasaje en efectivo, con tarjeta u otro medio de pago lo cual al final del día o del turno tendría una liquidación del usuario con sus ventas y todo lo que tendría que rendir por su venta de pasajes. Ademas recuerda que hay cambios de asiento, o de servicio o fecha de viaje sobre ventas ya emitidas y debes considerar todas las contingencias del caso.
Bueno esa seria la forma de yo enfocarlo, ademas recuerda que hace un tiempo compartí una clase contenedora que permite mostrar objetos y que permite facilitar la visualización de mesas, habitaciones y en este caso la distribución de asientos en un bus, la clase se llama listbotones, tiene ejemplos de uso, y varios del grupo lo han usado.
Suerte en tu proyecto.