第一篇:公交车管理系统整体解决方案
公交车管理系统整体解决方案
公交车管理系统能够时刻监测公交出行路线和运行状态,公交行驶路径轨迹一目了然,车辆业务管理系统帮您快速解决车辆难题。智百盛公交车管理系统界面设计简洁、美观、其人性化的管理可以使用户轻易上手,是协助各公交公司合理和优化管理的好帮手。
公交车管理系统是一款适用于公交公司的管理软件,它包括档案管理(车辆档案、驾驶员档案、供商信息)、维修管理(车辆维修、车辆维修费用)、配件管理(配件信息、配件入库、配件库存)、事故管理(交通事故登记、期间事故数统计、期间赔偿金额统计)、提醒功能(强险提醒、年检提醒、一级保养提醒、二级保养提醒、驾驶员证件有效提醒、从业资格证有效提醒、驾驶员年审提醒、从业资格证年审提醒)。
一、公交车管理系统之车辆管理
1、车辆登记:对车辆信息进行登记,包括登记编号、车牌、车属单位、所属路线、年审上牌时间、保险信息等资料的登记。
2、轮胎管理:对轮胎的使用情况进行登记。此模块为单独模块,与配件采购、配件库存、维修没有任何关联。
3、规费登记:比如行驶证年审、二级维护、营运证年审、GPS费等,费用项目支持自定义,用户可要求实际情况进行自定义设置。
4、保险处理:对车辆保险到期进行处理。选择车牌号后会自动带入原保单号、投保时间以及保险到期时间。
5、维修登记:对车辆维修进行登记。维修可以分为内部维修与外部维修,外部维修需指定维修地点(维修厂),以便进行应付已付计算,内部维修会从配件库存中减掉。
6、配件采购:对配件采购进行入库登记。保存后,配件库存会自动更新。
7、配件库存:对配件即时库存进行查询。
二、公交车管理系统之业务管理
1、线路管理:对运营线路资料进行设置,包括线路的名称,单程耗油量、公里数、提成等。
2、排班管理:对车辆、司机、乘务员、出场时间、站点等进行排班。
3、回车登记:车辆每天回来后进行的登记,包括收入、用油量、公里数等情况。
4、排班情况表:检查排班情况。
6、车辆状况:车辆的状态分为三种,分别是“可用”、“出车”、“维修”。车辆的状态会根据出车登记、维修登记、回车报账自动跳转,也可以由操作人员手工改变其状态。
三、公交车管理系统之油卡管理
1、加油登记:对车辆加油进行登记。
2、加油卡管理:对加油卡进行管理。包括办理加油卡、设置预警金额、记录当前余额等。
3、加油卡充值:对加油卡进行充值登记,可以到其他支出里进行登记。
四、公交车管理系统之安全管理
1、安全教育登记:对驾驶员安全教育管理。此模块连接到智百盛驾驶员安全培训平台,公交车公司可通过此平台对驾驶员进行安全教育培训。
2、车辆违章登记:对车辆违章进行登记管理。用于记录车辆违章信息,包括车牌号码、驾驶员、罚款金额、违章扣分、违章地点等。
3、车辆事故登记:对车辆事故进行登记管理。用于记录车辆事故信息,包括车牌号码、驾驶员、事故责任、事故伤亡、报案编号、保险理赔等。
五、公交车管理系统之费用管理
1、其他支出:企业日常经营中的除了出车费用、固定费用、工资以外的其它费用支出。系统支持用户自定义费用项目,例如:房租、办公费用等。
2、其他收入:企业日常经营中的经营外收入。系统支持用户自定义费用项目,例如:租车、废旧品变卖等。
3、公交车管理系统之工资管理:
1)请假登记:用于驾驶员请假登记。包括请假项目、天数、扣款金额等。2)加班登记:用于驾驶员加班登记。包括加班天数、加班金额等。3)驾驶员工资设置:用于设置驾驶员的工资构成表,比如出车提成比例、基本工资、补助、奖励等。
4)驾驶员工资结算:生成员工工资结算表。
六、公交车管理系统之应收应付管理
1、应付配件采购结算:对应付配件采购费用进行结算登记。
2、应付加油结算:对应付加油费用进行结算登记。
3、应付维修结算:对应付维修费用进行结算登记。
4、应付结算单:对应付结算单据进行统计查询。
第二篇:公交车调度系统解决方案
[公交车调度系统解决方案] 联系电话:***
联系QQ:100816410
一、需求分析
随着我国国民经济的飞速发展,城市建设日新月异,城市交通问题日益严重,已成为严重影响许多大中城市发展的重点问题之一。由公共交通客运量大、相对投资少、占有资源少、效率高、污染相对较少、人均占用道路少等优点。近年来,各地政府领导及交通管理部门都大国发展公共交通,改善城市交通。然而要想使得城市公交发展步入快车道,就迫切需要建设一个符合公交系统实际应用的智能化调度管理系统,通过技术集成,形成新的系统概念和系统功能,提高交通和管理部门的管理水平,向管理要效益,要资源。针对行业管理难题,制定了一套完整的公交车的GPS解决方案,可以实时记录车辆状态信息,包含车辆的具体位置,行驶方向,行驶速度,停车时间,停车地点,历史信息回放,里程统计等功能。GPS系统已经率先为汽车租赁行业的科学化管理进行实践,实现了与多种现代化技术手段的有机结合,很好地解决了制约我国汽车租赁业发展的难题。公交车辆管理调度的特点是:
高精度定位车辆的具体位置、行驶方向、行驶速度——规避租车风险
轨迹回放:可调阅被控车辆历史行程、轨迹记录——有效分析行车路线远程控制车辆:特殊情况下通过监控中心对被控车辆远程进行断油断电、锁车——保障汽车安全
对系统响应要求灵活、及时
车辆信息统一管理:车辆资料有序存档、方便查询
我们提出既满足GPS监控系统的需求,又无必要建设和维护一个大型的系统,而且对功能的要求相对简单、实用的方案。
二、系统概念
GPS车辆监控调度系统是集全球卫星定位系统(GPS)、地理信息系统(GIS)以及无线通信技术于一体的软、硬件综合系统。主要由三部分组成:监控中心软件系统、无线数据链路和GPS车载终端。可对移动车辆进行统一集中管理和实时监控调度指挥。GPS车辆监控调度系统利用电脑通过INTERNET,监控范围可以随着目标移动、放大、缩小,使目标始终保持在屏幕上,实现多窗口、多车辆、多屏幕同时追踪;GPS满足了车辆的安全、快捷、准确的需求,提高了车辆服务能力、人员利用率、规范科学化管理水平及降低车辆的油耗、人员成本。
三、方案特点
系统利用GPS导航定位技术、GSM移动通信技术、GIS地理信息技术和计算机及网络技术,成功地为构造了一个可以覆盖全国的多层次的GPS车辆监控服务的系统,利用电脑通过INTERNET,监控范围可以随着目标移动、放大、缩小,使目标始终保持在屏幕上,实现多窗口、多车辆、多屏幕同时追踪;GPS满足了车辆的安全、快捷、准确的需求,提高了车辆服务能力、人员利用率、规范科学化管理水平及降低人员成本。
四、系统功能简介
车辆定位查询
GPS卫星定位管理系统建立起了租赁公司与移动资产之间迅速、准确、有效的信息传递通道。租赁公司可以随时掌握移动资产状态。同时,可以根据需要对车辆进行远程控制。隐秘跟踪式GPS卫星监控车载终端,安装此终端的车辆或设备将连续发送工作信号和位置信息到管理中心。
越界报警
租赁公司可以设定租赁车辆或设备的运行界限,当车辆或设备超出界限时,将自动向监控中心发出 车辆越界报警,中心将自动对车辆进行实时跟踪。紧急报警
当油罐车辆遇劫时,可触发隐蔽式的报警按钮向中心报警,总控中心在地图上将对该移动目标进行相应的色彩及图标的突出显示并以声、光报警提醒值班员注意,同时在屏幕上显示出该移动目标的用户资料,包括车辆信息(车辆编号、车牌号、车型、颜色、发动机号)、驾驶员信息(司机名、驾驶证号、行驶证号、联系电话)、联系方式(所属单位、负责人、电话)、车辆状态(车辆位置、方向、速度、时间)等信息,帮助值班员进行警情处理。能提供警情受理记录窗,供值班员记录受理情况。
超速报警
为确保行车安全,监控中心可以提示司机注意行车安全,控制行车速度,从而降低事故风险。
轨迹记录/回放
系统可将被监控车辆或设备的运行轨迹自动记录下来,选定某车某时间段的位置记录进行轨迹回放,为事后的分析或处理纠纷提供可靠的证据。
车辆信息统一管理
建立各类数据系统,包括:用户数据管理系统、车载终端管理系统、协助单位管理系统、值班员管理系统、警情管理系统、录音管理系统等,并进行存储,可提供查询、回放、打印等功能。
五、系统效应
统一调度:提高车辆管理效率
超速报警:确保行车安全
定位跟踪、实时监控,有效规避风险
消除隐患,降低风险系数
远程遥控,断油断电,保证行车安全
轨迹记录/回放,协助事后追车,降低公司损失
第三篇:公交车管理系统
燕山大学课程设计说明书
名称:操作系统OS
题目:公交车上司机与售货员协调工作模拟
班级:07级计算机 开发小组:三剑客 课题负责人:张浩
课题组成员:张浩 李康 张晓玉
姓名
学号
班级
自评成绩 张
浩
070104010121 07应用2班
A 李
康
070104010113 07软件3班
B 张晓玉
070104010131 07软件3班
B
开发日期:2010年1月11日-15日
1概述
计算机操作系统是计算机系统中最不可缺少的,最常用的软件,也是核心的,最接近于计算机硬件的软件。其特点是内容繁多,概念抽象,因此造成理解困难,掌握不易。本软件的主要目的是通过直观的演示,使学生能够感性的明白掌握多道程序及其进程同步和互斥的程序设计的基本方法。
1.1基本功能
利用多线程同步技术模拟公交车系统,实现司机与售票员的同步与互斥关系,即开车时不允许开门,开门时不允许开车,实现每个乘客一个线程同步互斥的上下车。每站随即生成上下车人数,上下车线程实行,先下后上原则。到终点站后,可以统计本次出车的载客人数。
1.2开发计划
第一步,进行问题分析,确定需要解决的问题; 第二步,进行整体构思与框架设计;
第三步,查阅资料,分析所需要设计的程序算法; 第四步,进行各种算法及各个细节编码的详细设计; 第五步,进行代码调试,修改程序中的错误; 第六步,整理总结书写报告,进行答辩。
1.3人员分工
张浩:分析构架,核心代码编写;
李康:用户界面设计,辅助代码编写,调试; 张晓玉:功能测试、书写实验报告。
1.4 开发环境及开发工具
本程序是以在windows XP下用Netbeans和 jdk搭建的平台上,以Java作为开发语言进行编写的。
使用的开发工具:netbeans.NetBeans平台直接提供了应用程序的常见需求,如菜单、文档管理和设置。“NetBeans”构建应用程序是指,仅提供 NetBeans平台尚不包含的应用程序部分,而不是从头开始编写应用程序。在开发周期结束时,可以将应用程序与 NetBeans平台捆绑在一起,从而节省了很多时间和精力,并且构建的应用程序稳定可靠。
使用的开发语言:java.Java是一种简单的、面向对象的、分布式的、解释的、键壮的、安全的、结构的中立的、可移植的、性能很优异的多线程的、动态的语言。其特点主要有:平台无关性、健壮性、面向对象、安全性、分布式。
1.5使用的基本概念和原理
多道程序:用户所提交的作业都先存放在外存中并排成一个队列,成为“后备队列”;然后,由作业调度程序按一定的算法由后被队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
进程:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
线程:操作系统用来调度、分派的最小单位。同步和互斥:
临界段:临界段对象通过提供所有线程必须共享的对象来控制线程。只有拥有临界段对象的线程才可以访问保护资源(进行临界区操作)。在另一个线程可以获取对象的访问权。用户应用程序可能会使用临界对象来阻止两个线程同时访问共享的资源发文件等。
互斥量:互斥量的工作方式和临界段非常相似,其区别在于互斥量不
公保护一个进程内的资源共享,而且还保护系统中进程之间的共享资源。它是通过为互斥量提供一个“互斥量名”来进行进程间资源共享协调的。
事件:事件对象用于给线程传递信号,指示线程中特定的操作可以开始或结束。除非线程已经收到了这个事件信号,否则它将一直处于挂起状态。当事件对象进入其信号状态时,正在等待该事件的线程就可以开始执行。例如,一个应用程序可以通过事件来通知线程它需要的数据已经准备好。经常利用事件进行线程之间的通信。
信号量:信号量与互斥相似,但是互斥只允许在同一时刻一个线程访问它的数据,而信号量允许多个线程在同一时刻访问它的数据。WIN32 不知道哪一个线程拥有信号量,它只保证信号量使用的资源计数正确的设置。
2需求分析
协调司机和售票员以及乘客在运行与开关门以及上下车时的关系,实现同步互斥,避免发生不必要的冲突,节省了时间空间资源。本程序显示上下车人数,并显示车上总人数,使车内人数不超过总座位数。最终,利用统计功能,显示此次公交车运行的各种参数:车次、总站数、总载客数。
3总体设计
基本的技术路线:面向对象;
软件的总体结构:分为可视化界面以及后台数据执行;
内部模块关系:司机类与售票员类同步互斥,上车类与下车类同步互斥;
总体流程:停车-开门-下车-上车-关门-开车;
需要创建的进程线程:主窗口线程、司机线程、售票员线程、上车乘客线程、下车乘客线程。
流程图如下:
4详细设计
Wait(),notify(),实现进程的等待和唤醒。
BusJFrame()创建主窗口,Driver()和Conductor()分别创建司机和售票
员线程,PassengerOn()创建上车线程,PassengerOff()创建下称线程。
确定要设计的过程、构件、类、对象、函数和它们的参数,要给出具体的名称和参数及其解释。
由Driver类调用BusState类的stopCar()和runCar()方法,由Conductor类调用BusState类的openDoor()和closeDoor()方法,实现同步互斥。
由PassengerOn类调用Seat类的takeOn()和hasOn()方法,由PassengerOff类调用Seat类的takeOff()和hasOff()方法,实现上下车线程的同步和互斥
5编码设计
5.1开发环境的设置和建立
首先安装JDK,如下图:
然后安装Netbeans,并关联JDK:
5.2程序设计过程只需要注意的事项
实现同步互斥的方法应成对出现,防止出现死锁状态;互斥信号应定义清晰,以用于互斥方法的实现;线程的创建和指针传递清晰明确,用于线程之间的交互。
5.3关键构件和插件的使用
Netbeans的使用与一般编程软件接近,但是它包含了很多强大的插件,利用其中的插件我们可以简单的实现很多复杂的功能,例如在本次试验中
恶我们程序的可视化窗口的建立就是利用如下组建实现的。
5.4主要程序的代码设计及注释
BusState类主要源代码: public class BusState {
public static boolean doorClosed=false;
public static boolean busStopped=true;
//获取输出框指针
private static JTextArea bSay;
public static void getBusSay(JTextArea b)
{
bSay=b;
}//获取输出框指针
public synchronized void stopBus()
{
busStopped=true;
bSay.setText(“车已停”);
this.notify();
}
public synchronized void runBus()throws InterruptedException
{
while(!doorClosed)
{
this.wait();
busStopped=false;
}
}
public synchronized void closeDoor()
{
doorClosed=true;
bSay.setText(“门已关”);
this.notify();
}
public synchronized void openDoor()throws InterruptedException
{
while(!busStopped)
{
this.wait();
doorClosed=false;
}
}
} package ysu;
import java.util.logging.Level;import java.util.logging.Logger;
Conductor类的主要源代码: public class Conductor extends Thread{
//获取主窗口指针
private static BusJFrame bj;
public static void getBusJFrame(BusJFrame b)
{
bj=b;
}
//获取BusState类的指针
private static BusState bState;
public static void getBusState(BusState b)
{
bState=b;
}
//获得一个Driver进程类的指针
private static Driver dr;
public static void getDriver(Driver d)
{
dr=d;
}
//用于创建On和Off类
private void createOn()
{
Thread a=new PassengerOn();
a.start();
}
private void createOff()
{
Thread b=new PassengerOff();
b.start();
}
private boolean timeToQuit=false;
private int station=0;
public static boolean finish=false;
public void run()
{
while(!timeToQuit)
{
try {
bState.openDoor();
bj.busSay.setText(“门已开”);
Thread.sleep(1000);
bj.busSay.setText(null);
bj.conductorSay.setText(“请抓紧时间上下车”);
Thread.sleep(2000);
bj.conductorSay.setText(null);
bj.busSay.setText(“开始上下车”);
Thread.sleep(2000);
bj.busSay.setText(null);
Seat.doorAvailable=true;
if(Seat.willOn>(Seat.seatRemain+Seat.willOff))
{
Seat.canOn=Seat.seatRemain+Seat.willOff;
}else
{
Seat.canOn=Seat.willOn;
}
//统计本次出车载客人次数
Seat.totalPassenger=Seat.totalPassenger+Seat.canOn;
//创建上下车乘客的进程
for(int i=0;i { 坐下班客车“); createOff();} for(int i=0;i createOn();} if(Seat.canOn==0&&Seat.willOff==0){ finish=true;}else { finish=false;//等待上下车完成 } while(!finish){Thread.sleep(100);} if(Seat.canOn bj.busSay.setText(”很抱歉n本车已满n欢迎乘 Thread.sleep(2000);} Seat.doorAvailable=false;Seat.hasOn=0;//清零,防止出现累加 Seat.hasOff=0; bj.busSay.setText(“上下车完毕”); bj.seatRemain.setText(“"+Seat.seatRemain); bj.seatUsed.setText(”“+Seat.seatUsed); station++; if(station>Seat.totalStation) { timeToQuit=true; Driver.timeToQuit=true; break; } Thread.sleep(2000); bj.busSay.setText(null); bj.conductorSay.setText(”关门了“); Thread.sleep(2000); bj.conductorSay.setText(null); bState.closeDoor(); Thread.sleep(1000); } catch(InterruptedException ex){ Logger.getLogger(Conductor.class.getName()).log(Level.SEVERE, null, ex); } try { Thread.sleep(200); } catch(InterruptedException ex){ Logger.getLogger(Conductor.class.getName()).log(Level.SEVERE, null, ex); } } bj.conductorSay.setText(”终点站到了n谢谢乘坐本车n再见“); bj.willOff.setText(”“+0); bj.willOn.setText(”“+0); BusJFrame.sumrizeAvailable=true; dr.stop(); } } /* * To change this template, choose Tools | Templates * and open the template in the editor.*/ package ysu;import java.util.logging.Level;import java.util.logging.Logger;Driver类主要源代码: public class Driver extends Thread{ //获取主窗口指针 private static BusJFrame bj; public static void getBusJFrame(BusJFrame b) { bj=b; } //获取BusState类的指针 private static BusState bState; public static void getBusState(BusState b) { bState=b; }//获取BusState类的指针 public static boolean timeToQuit=false; public void run() { while(!timeToQuit) { try { bState.runBus(); Thread.sleep(1000); bj.driverSay.setText(”出发“); 已有的人 人数 bj.nowNextSation.setText(”下一站“);bj.nextStation.setText(”第“+(++Seat.nextStation)+”站“);int a=(int)(Math.random()*10);//下车人数不能多于车上if(Seat.seatUsed Seat.willOff=Seat.seatUsed;}else { Seat.willOff=a;} //提前创建下一站要下车的人数 if(Seat.nextStation==Seat.totalStation){ Seat.willOn=0; Seat.willOff=Seat.seatUsed;}else { Seat.willOn=(int)(Math.random()*10);//生成上车的} bj.willOff.setText(”“+Seat.willOff);bj.willOn.setText(”“+Seat.willOn);bj.busSay.setText(null);Thread.sleep(2000);bj.driverSay.setText(null); bj.busSay.setText(”客车行驶中“); Thread.sleep(3000); bj.busSay.setText(null); bj.driverSay.setText(”到站了“); bj.nowNextSation.setText(”本站“); Thread.sleep(1000); bj.driverSay.setText(null); bj.busSay.setText(”车已停“); Thread.sleep(1000); bState.stopBus(); Thread.sleep(1000); } catch(InterruptedException ex){ Logger.getLogger(Driver.class.getName()).log(Level.SEVERE, null, ex); } } } } Seat类的主要源代码: /* * To change this template, choose Tools | Templates * and open the template in the editor.*/ package ysu;/** * * @author Administrator */ public class Seat { public static int totalStation=4; public static int totalPassenger=0; public static int totalSeat=30; public static int stationName=10; public static int busName=30; public static int seatTotal=30; public static int seatRemain=30; public static int seatUsed=0; public static int willOff=0; public static int willOn=0; public static int canOn=0; public static int hasOn=0; public static int hasOff=0; public static int nextStation=0; public static boolean doorAvailable=true; public static void reset() { totalStation=12; totalPassenger=0; totalSeat=30; stationName=0; busName=30; seatTotal=30; seatRemain=30; seatUsed=0; willOff=0; willOn=0; canOn=0; hasOn=0; hasOff=0; nextStation=0; doorAvailable=true; } public synchronized void takeOn()throws InterruptedException { while(!doorAvailable||hasOff { this.wait(); } doorAvailable=false; hasOn++; seatUsed++; seatRemain--; } public synchronized void takeOff()throws InterruptedException { while(!doorAvailable) { this.wait(); } doorAvailable=false; hasOff++; seatUsed--; seatRemain++; } public synchronized void hasOff() { doorAvailable=true; this.notifyAll(); if(Seat.hasOff==Seat.willOff&&Seat.canOn==0) { Conductor.finish=true; } } public synchronized void hasOn() { doorAvailable=true; this.notifyAll(); if(Seat.hasOn==Seat.canOn) { Conductor.finish=true; } } } PassengerOn类的主要源代码如下: /* * To change this template, choose Tools | Templates * and open the template in the editor.*/ package ysu;import java.util.logging.Level;import java.util.logging.Logger;/** * * @author Administrator */ public class PassengerOn extends Thread{ //获得Seat类的指针 private static Seat seat; public static void getSeat(Seat s) { seat=s; } //获取主窗口指针 private static BusJFrame bj; public static void getBusJFrame(BusJFrame b) { bj=b; } @Override public void run() { try { Thread.sleep(100); } catch(InterruptedException ex){ Logger.getLogger(PassengerOn.class.getName()).log(Level.SEVERE, ex); } try { seat.takeOn(); } catch(InterruptedException ex){ Logger.getLogger(PassengerOn.class.getName()).log(Level.SEVERE, ex); } bj.busSay.append(”第“+Seat.hasOn+”人已经上车n“); bj.seatUsed.setText(”“+Seat.seatUsed); bj.seatRemain.setText(”“+Seat.seatRemain); bj.willOn.setText(”“+(Seat.canOn-Seat.hasOn)); bj.willOff.setText(”“+(Seat.willOff-Seat.hasOff)); try { Thread.sleep(2000); } catch(InterruptedException ex){ Logger.getLogger(PassengerOn.class.getName()).log(Level.SEVERE, ex); null,null, null,} seat.hasOn(); } } PassengerOff类的主要源代码如下: /* * To change this template, choose Tools | Templates * and open the template in the editor.*/ package ysu;import java.util.logging.Level;import java.util.logging.Logger;/** * * @author Administrator */ public class PassengerOff extends Thread{ //获得Seat类的指针 private static Seat seat; public static void getSeat(Seat s) { seat=s; } //获取主窗口指针 private static BusJFrame bj; public static void getBusJFrame(BusJFrame b) { bj=b; } @Override public void run() { try { Thread.sleep(100); } catch(InterruptedException ex){ Logger.getLogger(PassengerOff.class.getName()).log(Level.SEVERE, ex); } try { seat.takeOff(); } catch(InterruptedException ex){ Logger.getLogger(PassengerOff.class.getName()).log(Level.SEVERE, ex); } bj.busSay.append(”第“+Seat.hasOff+”人已经下车n“); bj.seatUsed.setText(”“+Seat.seatUsed); bj.seatRemain.setText(”“+Seat.seatRemain); bj.willOn.setText(”“+(Seat.canOn-Seat.hasOn)); bj.willOff.setText(”"+(Seat.willOff-Seat.hasOff)); try { Thread.sleep(2000); } catch(InterruptedException ex){ Logger.getLogger(PassengerOff.class.getName()).log(Level.SEVERE, ex); } seat.hasOff(); } } null,null, null,5.5解决的技术难点、经常犯的错误 理清司机与售票员之间的同步互斥关系和用于实现互斥的变量和放法,理清上下车乘客的同步互斥关系的变量与方法,确定司机、售票员、上下车乘客同步互斥变量; 出现的错误有:互斥变量的使用,设计的位置不当,实现同步互斥的方法位置不当,最初的逻辑构架关系不对,以上错误经认真斟酌、校验,均已解决。 6测试 在已经安装JDK的操作系统中双击可执行文件,进入公交车模拟系统,可以根据菜单或者快捷键进行操作。 点击开始,系统中显示客车次、总站台数等等,如图: 上下车人员按先下后上进行上下车,如图: 当到达终点站时,车上乘客必须全部下车,不允许上车操作,如图: 当到达终点站,进行下车完毕后,点击统计,可以查看本次出车载客人次,如图: 点击退出即可退出公交车模拟系统。 7.总结 突出特地:简单、易操作。完整地表示了行车与开门的同步互斥,下车与上车的同步互斥。 经验、教训和感受: 总体说来,这次OS课程设计是一次很有趣味的历程。实验期间安装了Netbeans并参考了一些基础书籍,对Netbeans的基本操作和特性有了必须的了解,为课设的开展打下了一个最简陋的基础。实验题目涵盖面较广,需要广泛的查阅资料,以及开动脑筋独立解决种种问题。Netbeans并不是易于使用的系统,因此在实验过程中也自然的遇到了许许多多“稀奇古怪”的问题,同时又在解决与理解问题中对这个系统一个个精妙的强大的设计感叹不已。 与其他同学的交流也是这次课设中有意思的地方。本班解决生产者消 费者问题和公交车模拟问题的同学几乎各占一半,于是在讨论的过程中也对不同的设计风发之间的差异有了更深的认识。从同学那里获得帮助,帮助别人解决问题,自己都受益匪浅,也在这样的氛围中越来越感觉到应用编程与开发的乐趣。 在完成的源代码中还存在相当多的不足,例如图形显示的Bug,忽略文件属性控制等等。需要在以后的学习与工作中更加努力的改进。这次的OS课程设计,也为我们提供了一个锻炼与审视自身能力的机会,意义匪浅。 8.参考文献 Netbeans-JAVA桌面、WEB与企业级程序开发详解 吴亚峰 王鑫磊著 人民邮电出版社 JAVA语言程序设计 郎波 著 清华大学出版社 绩效管理整体解决方案 绩效管理是人力资源管理的核心,成功实施绩效管理,不但能帮助企业提高管理效率,帮助管理者提升管理水平,更能提升HR管理部门的地位,提升HR经理的价值,实现HR经理的角色转换,从高级办事员到战略伙伴伙伴。 可以说,绩效管理是HR经理的二次创业,是HR经理发起的一场战斗和管理革命。要想在这场战斗中胜出,HR经理除了要具备工作的热情和积极性,更要有说服力的管理方案用来支持自己。 一、绩效管理的目标 绩效管理的目标是企业战略目标的辅助,通过有效的目标分解和逐步逐层的落实帮助企业实现预定的战略。在此基础上,理顺企业的管理流程,规范管理手段,提升管理者的管理水平,提高员工的自我管理能力,使员工成为自我绩效的专家,使管理者从繁忙的管理活动中摆脱出来,更多地做好规划与发展的工作。 HR经理就是要通过有效的绩效管理达到这些目标,有效整合企业的人力资源,使绩效管理成为为我所用的工具,以此提高自己的地位,实现从高级办事员到战略合作伙伴的角色转换。 二、绩效管理的方案 拟订一份切实有效的绩效管理方案对绩效管理的实施起着至关重要的重要的作用。没有方案,想到什么做什么,管理层要求什么做什么,注定很难成功。只有主动出击,才能占据主动,才能前瞻性、战略地做好绩效管理。 因此,在实施绩效管理之前,HR经理必须坐下来,认真细致地研究绩效管理的理论、方法、流程,出具一份漂亮的绩效管理方案。 什么是绩效管理 做绩效管理,首先要弄清楚什么是绩效管理,只有让经理和员工都明白什么是绩效管理,他们才会愿意参与和执行,愿意为此而改变。 绩效管理是员工和经理就绩效问题所进行的双向沟通的一个过程。在这个过程中,经理与员工在沟通的基础上,帮助员工定立绩效发展目标,通过过程的持续沟通,对员工的绩效能力进行辅导,帮助员工不断实现绩效目标。在此基础上,作为一段时间绩效的总结,经理通过科学的手段和工具对员工的绩效进行考核,确立员工的绩效等级,找出员工绩效的不足,进而制定相应的改进计划,帮助员工改进绩效提高中的缺陷和不足,使员工朝更高的绩效目标迈进。 绩效管理的流程 一个完整的绩效管理过程应包括以下五个组成部分: 设定绩效目标; 经理与员工保持持续不断的沟通; 记录员工的绩效表现,形成必要的文档记录; 年终的绩效评估; 绩效管理系统的诊断和提高。 绩效管理中的角色分配 实施绩效管理,就是要让企业中的每一个员工都在其中扮演一个角色,承担一些责任,这个必须明确,否则,流于形式将不可避免。 通常,一个组织有四个层面的角色,总经理、HR经理、直线经理和员工,根据每个人的分工不同,每个人的绩效角色也有所不同。 总经理:提供赞助和支持,推动绩效管理向深入开展; HR经理:设计绩效管理实施方案,提供有关绩效管理的咨询,组织绩效管理的实施; 直线经理:执行绩效管理方案,对员工的绩效进行辅导沟通;帮助员工提高绩效。 员工:绩效管理的主人,拥有绩效并产生绩效; 取得总经理的支持 绩效管理是企业的重要管理改革,其一举一动都牵动整个企业,总经理的态度和支持的力度在很大程度上决定着绩效管理实施的成败。 因此,绩效管理方案必须首先获得总经理的支持,HR经理必须与总经理达成一致,并请总经理参与其中,给予持续的关心和推动,使绩效管理方案得到逐步的落实。 培训直线经理 组织直线经理参加有关绩效管理的培训和研讨,赋予他们相关的知识、技巧和能力,使他们真正掌握绩效管理的要义和方法,真正喜欢并愿意参与 直线经理如何落实绩效管理 在绩效管理中,直线管理者才是实施的主体,起着桥梁的作用,上对公司的绩效管理体系负责,下对下属员工的绩效提高负责。如果,直线管理者不能转变观念,不能很好地理解和执行,再好的绩效体系,再好的绩效政策都只能是水中花,镜中月,只能与“鸡肋”无异。 所以,在实施绩效管理之前,首先要团结直线管理者这个主体,统一他们的思想,使之真正发挥绩效管理者的角色,承担自己应该承担的责任,做自己应该做的工作,让直线管理者真正动起来。 只有直线管理者真正按自己的分工真正动起来了,绩效管理才能按预想的方向前进,才能真正实现落地,得到有效实施。 根据绩效管理的流程,直线经理需要做以下四个方面的工作,扮演四种角色,进而使企业的绩效管理方案落到实处。 主要有以下四个角色:1.合作伙伴2.辅导员3.记录员4.公证员 一)合作伙伴 管理者与员工的绩效合作伙伴的关系是绩效管理的一个创新,也是一个亮点,它将管理者与员工的关系统一到绩效上来。 在绩效的问题上,管理者与员工的目标是一致的,管理者的工作通过员工完成,管理者的绩效则通过员工的绩效体现,所以,员工绩效的提高即是管理者绩效的提高,员工的进步即是管理者的进步。 绩效使管理者与员工真正站到了同一条船上,风险共担,利益共享,共同进步,共同发展。 鉴于这个前提,管理者就有责任、有义务与员工就工作任务、绩效目标等前瞻性的问题进行提前的沟通,在双方充分理解和认同公司远景规划与战略目标的基础上,对公司的经营目标进行分解,结合员工的职务说明书与特点,共同指定员工的绩效目标。 在这里,帮助员工,与员工一起为其制定绩效目标已不再是一份额外的负担,也不是浪费时间的活动,而是管理者的自愿,因为管理者与员工是绩效合作伙伴,为员工制定绩效目标的同时就是管理者为自己制定绩效目标,对员工负责,同时就是管理者对自己负责。 通常,管理者与员工应就如下问题达成一致: 员工应该做什么工作? 工作应该做得多好? 为什么做这些工作? 什么时候应该完成这些工作? 为完成这些工作,要得到哪些支持,需要哪些提高哪些知识、技能,得到什么样的培训? 自己能为员工提供什么样的支持与帮助,需要为员工扫清哪些障碍? 通过这些工作,管理者与员工达成一致目标,更加便于员工有的放矢的工作,更加便于自己的管理。为后续的绩效管理开了一个好头,可能开始有一点麻烦,万事开头难,但好的开始是成功的一半,绩效目标是一个良好的开端。 二)辅导员 绩效目标制定以后,管理者要做的工作就是如何帮助员工实现目标的问题。 在员工实现目标的过程中,管理者应做好辅导员,与员工保持及时、真诚的沟通,持续不断地辅导员工业绩的提升。业绩辅导的过程就是管理者管理的过程,在这个过程中,沟通是至关重要的关键。 绩效目标往往略高于员工的实际能力,员工需要跳一跳才能够得着,所以难免在实现的过程中出现困难,出现障碍和挫折。另外,由于市场环境的千变万化,企业的经营方针,经营策略也会出现不可预料的调整,随之变化的是员工绩效目标的调整。所有的这些都需要管理者与员工一起,管理者帮助员工改进业绩,提升水平。 这个时候,管理者就要发挥自己的作用和影响力,努力帮助员工排除障碍,提供帮助,与员工做好沟通,不断辅导员工改进和提高业绩。帮助员工获得完成工作所必须的知识、经验和技能,使绩效目标朝积 沟通包括正面的沟通和负面的沟通。 在员工表现优秀的时候给予及时的表扬和鼓励,以扩大正面行为所带来的积极影响,强化员工的积极表现,给员工一个认可工作的机会。在员工表现不佳,没有完成工作的时候,也应及时真诚地予以指出,以提醒员工需要改正和调整。这个时候,管理者不能假设员工自己知道而一味姑息,一味不管不问,不管不问的最终结果只能是害了员工,于自己绩效的提高和职业生涯的发展也无益。 需要注意的是,沟通不是仅仅在开始,也不是仅仅在结束,而是贯穿于绩效管理的整个始终,需要持续不断地进行。因此,业绩的辅导也是贯穿整个绩效目标达成的始终。这对管理者来说,可能是一个挑战,可能不太愿意做。但习惯成自然。帮助下属改进业绩应是现代管理者的一个修养,一个职业的道德,当然它更是一种责任,一个优秀的管理者首先是一个负责任的人,所以,贵在坚持。 三)记录员 绩效管理的一个很重要的原则就是没有意外,即在年终考核时,管理者与员工不应该对一些问题的看法和判断出现意外。一切都应是顺理成章的,管理者与员工对绩效考核的结果的看法应该是一致的。争吵是令管理者比较头疼的一个问题,也是许多的管理者回避绩效,回避考核与反馈的一个重要原因。为什么回出现争吵?因为缺乏有说服力的真凭实据。试问,不做记录,有哪一个管理者可以清楚说出一个员工一年总共缺勤多少次,都是在哪一天,什么原因造成的?恐怕没有,因为没有,员工才敢于理直气壮地和你争论,和你据理力争。 为了避免这种情况的出现,为了使绩效管理变的更加自然和谐,管理者有必要花点时间,花点心思,认真当好记录员,记录下有关员工绩效表现的细节,形成绩效管理的文档,以作为年终考核的依据,确保绩效考核有理有据,公平公正,没有意外发生。 做好记录的最好的办法就是走出办公室,到能够观察到员工工作的地方进行观察记录。当然,观察以不影响员工的工作为佳。记录的文档一定是切身观察所得,不能是道听途说,道听途说只能引起更大的争论。 这样一年下来,管理者就可以掌握员工的全部资料,做到心中不慌了,考核也更加的公平公正。 四)公证员 绩效管理的一个较为重要也是备受员工关注的环节就是绩效考核。 绩效考核是一段时间(通常是一年)绩效管理的一个总结,总结绩效管理中员工的表现,好的方面,需要改进的地方,管理者需要综合各个方面给员工的绩效表现做出评价。同时,绩效考核也是公司薪酬管理、培训发展的一个重要依据。所以,公平、公正显得至关重要。 绩效管理中的绩效考核已不再是暗箱操作,也不需要。管理者不仅仅是考官,更应该是站在第三者的角度看待员工的考核,作为公证员公证员工的考核。 管理者之所以可以作为公证员来进行考核,主要是因为前面三个角色铺垫的结果。在前面工作的基础上,员工的考核已不需要管理者费心,可以说是员工自己决定了自己的考核结果。员工工作做的怎么样在绩效目标、平时的沟通、管理者的记录里都得到了很好的体现,是这些因素决定了员工的绩效考核评价的高低,而非管理者,管理者只须保证其公平与公正即可。 所以管理者在绩效考核中应扮演公证员的角色。 做公证员似乎是轻松的,但却是前面的努力的结果,是一直的努力才使得管理者可以坦然面对本来很烦人的考核,可以泰然处之,轻松应对。这也是绩效管理所追求的目标,让一切成为自然,让员工成为自己的绩效专家。 三、绩效管理的实现—项目管理 仅仅达成共识,完成培训是不够的,如何有效实施才是关键。根据绩效管理的经验,成立绩效管理项目,组建管理团队非常重要。 绩效管理团队应由总经理、HR经理、直线经理组成,总经理任项目经理,负责项目的推动的落实,HR经理任项目组长,负责项目的组织和实施,提供方案和咨询,直线经理具体负责项目的落实。一)研究立项 研究立项主要有两个大的方面需要考虑:一是出具完整、易于理解的项目计划书;二是将计划书说给总经理听,与总经理在立项的可能性和实施的办法上达成一致。HR经理首先就上述问题理出清晰的思路,认真研究立项的可行性,持续不断地与总经理保持绩效的沟通,使总经理认识到绩效管理的好处,弄懂绩效管理的思路和流程,取得企业总经理的支持,并让总经理参与其中,任项目经理。 这个工作可能需要很长的时间,因为短时间理解绩效管理的方方面面也是不太现实的。所以,HR经理应有耐心和信心,不断地与总经理举行绩效会谈,让总经理认可绩效管理并愿意提供支持。最好能主动出击,提供更多更好的工作思路,攻下总经理这个堡垒,占领绩效管理的高地。 有了总经理的支持,绩效管理就是成功了一大半。二)组建绩效管理团队 直线经理是绩效管理实施的主体和中坚力量,在绩效管理的实施中举足轻重,没有他们的支持,再好的绩效管理方案,也只能流于形式,得不到有效的实施。 所以,团结各直线经理是HR经理的又一个艰巨的任务。 HR经理在推销绩效概念之初就应吸引他们加入进来,立项之后,他们更是当仁不让的主力。 吸引他们的加入进来组成绩效管理团队应是立项之后最为重要的事情。 成立团队之后,依据绩效管理的流程和理念给予每个人一个角色,赋予每个人相关的权限和责任,给予每个人一份职责明确的工作说明书,确立他们的工作目标和努力方向。 这个工作往往容易被忽视和省略,希望能够引起足够的重视,认真进行规划和运作。三)培训管理团队 管理团队的意识、观念和能力是进行运作的基础,所以,管理团队的培训又是一个极为重要的项目。 HR经理可以根据企业的实际,或者团队的自我研讨会,或者请管理顾问公司进行绩效管理理念、方法和技巧的宣贯,目的是赋予每个直线管理者的绩效管理理念和能力,使他们掌握必备的方法和技巧,以保证他们推动绩效的力度。 四)确立绩效管理的目标任务 战略地看待绩效问题,绩效管理的根本目的是赋予企业每个员工绩效的自我管理能力,改善管理者的管理方式,提升企业的管理的水平。 从这个观点出发,企业的绩效管理不能急功近利,而应眼光放长远,以一年为一个周期,三年一个阶段,不断检查调整,完善提高。 在绩效管理的目标任务上,管理团队应达成一致,慢慢来,不应被眼前的困难所限制,眼光长远,使之逐渐收到成效。 五)设计绩效管理的流程 依据绩效管理的理念,设计系统化全过程的绩效管理理念,用以直到管理团队的工作,使之顺畅自然。 一定要将绩效提高到管理的层次,使之成为经理和员工对话的过程,而不要只做考核。六)项目的实施 七)项目的检查评价 在项目开始实施后,企业应根据企业的实际,采用PDCA循环的方法进行不断的检查评定,不断地进行总结和提高,使之不断地完善和发展。 四、不是结束 绩效管理没有结束,只有不断地完善和提高,持续不断地推动企业的管理向高水平、高效率发展。 http://www.xiexiebang.com/ 食堂管理系统解决方案 一、系统简介 食堂管理在后勤工作中占有很大比重,尤其是大型院校,拥有多个校区,餐厅分布分散,在统一协调管理上难度很大。传统模式下,食堂管理工作繁琐,需要大量的人力作为支撑,且在处理各种订单时容易出现错误与疏漏。 食堂管理系统采用先进的计算机以及云计算技术,能够精细化管控物流采供的全过程,帮助食堂实现信息化管理。网上协同办理物料的请购、采购、收发存、财务收支等事务;在线联网审批业务单据;智能核算成本和效益;向管理层动态反馈营业实况,用科学准确完备的数据支撑决策、指挥和调度工作;部门间高效协同提高管理效能;用精细化管理提升食堂效益。 二、系统功能 高校食堂管理系统依靠自身强大的功能优势,能够做到业务流程规范化、资源损耗最小化、成本核算及时标准化。同时,系统利用大量数据,科学地加以分析同时生成图表,如对食堂损耗率的分析、库存的分析、食材价格的分析比较等,较好的堵塞了管理漏洞。分析数 http://www.xiexiebang.com/ 据对食堂管理工作具有重要的指导意义,能够帮助管理者制定更科学的规划。 1、食堂管理 食堂管理员根据食堂所需物品下订单给采购部门和库房,在物品到货后进行验收和入库。其应用包括食堂订货、食堂验货、验收入、班组日配出库、班组库配出库等。 2、库房管理 库房管理员根据库存情况给采购部门下采购单,货到后验货和入库,并对食堂调拨单中的物品进行调拨出库。具体功能应用包括调拨出库、库房采购、验收入库、调拨入库、库房验货、消耗出库、库存查询、申请退货等。 3、采购管理 对食堂和库房的订单进行价格和数量的调整,生成送货单。包括:采购配送、调拨配送、部门订单、受理退货、查看送货单、采购物品、退货更正等。 4、菜谱管理 食堂管理系统可以按日或月对食堂成本进行核算,并可对单菜进行成本核算。应用子模 http://www.xiexiebang.com/ 块包括:成本词典、菜谱基础维护、单菜成本、菜谱计划、单菜成本统计、菜谱维护、单菜成品核算、菜谱执行、菜谱执行查询、食堂日核算查询、食堂月核算查询。 5、单据跟踪 系统可以对各种单据进行跟踪和查询。包含订单跟踪、采购单跟踪、在途物品统计、送货单跟踪、调拨单跟踪。 6、采购信息 登记和查看物品价格,如物品单价对比、信息录入、物品单价波动等。 7、监督功能 包括日常管理等功能,如食品加工管理、食品卫生检查、餐具消毒管理、菜谱留样管理、餐厅卫生检查、餐厅管理等。 8、查询功能 包括统计查询、中心总帐、领导查询等。查询功能从多个角度和维度对餐饮管理中的数据进行汇总统计分析,为管理层、决策层提供全面的数据,及时了解数据信息,实现科学管理和决策。 三、系统特点 1、食堂管理系统针对食堂进出货物流可快速制单。 2、系统能够满足多食堂、多部门、多岗位业务快速协同,流程清晰,制单方便。 3、业务单据在线审批,精细化管控确保管理的成本效益性最佳 4、动态反馈、主动推送营业统计,系统能够生成科学、准确的分析报告,辅助决策指挥和日常调度工作 5、食堂管理系统软件支持多分校多食堂分布,协同营业,更能全面管控。 6、系统能够起到快速灵活配置岗位、权限、用户和业务参数的作用。 http://www.xiexiebang.com/ 7、食堂管理系统采用B/S构架,程序和数据都只部署在服务器上,安全维护、自动备份数据。 8、功能强、操作简单,容易引入,部署见效快,对操作者计算机能力要求低。第四篇:绩效管理整体解决方案
第五篇:食堂管理系统解决方案