小型信息管理系统

2024-06-09

小型信息管理系统(通用8篇)

小型信息管理系统 篇1

中小型企业信息化管理

“企业不上信息化是等死,上了信息化是找死。”这是业界流传甚广的一句话。很多决策者在踌躇,徘徊。

企业不上信息化就是等死:

国家在大力的倡导信息化建设,这是国家经济发展的趋势,为什么你要看报纸看新闻,你需要了解的是国家的政策,国家的指向。

上了信息化就是找死:

信息化是让企业通过现有的信息技术提高信息资源的管理和利用水平。从而提高工作效率。它起到的作用是提高信息资源的管理和利用水平,这不是说你有电脑,有软件就可以,它只起到辅助提高的作用,而真正的基础是你应该有一套成熟的管理体制。

如果你的管理体制都有问题,那上了信息化只是让你多花了钱去运行维护你的硬件设备和管理软件。想要企业有良好的发展,你需要建立并完善一套管理体制,想要企业高效的运行,你需要一套适合自己的管理软件。

而在选择软件上,我们需要的不是最贵的,而是最适合你的。技术人员的配置,经济的承受能力,也就是根据公司的规模来选择。但针对于中小型企业,我们有心而无力。那么,到底怎样找到又实用,又高性价比的管理软件,为公司量身订制的管理软件价格是不是都很昂贵呢?深圳市卓旺科技有限公司长期致力于企业管理

软件的咨询、营销、实施、服务及开发于一体的管理信息化供应商和服务商。为中小企业提供专业的:财务管理、供应链管理、生产制造管理、业务模块管理、跟单管理等解决方案。

人力资源部每天都在整理厚厚的文件。

销售部每天都在忙碌于做报表,每天的工作进程以及每一周的报表。虽然忙碌,但工作效率如何?

作为一名管理者,你是否已经疲于应对那些厚厚的工作报表,你是否对那些客户资料焦头烂额。你是不是一直在想有种东西让工作变得轻松。

光普公司拥有一支定期接受厂家培训、经验丰富的高素质技术团队,能及时有效的为客户提供完善的应用解决方案、专业化的售前咨询、售中指导、售后服务。光普公司的全体员工愿与各界朋友携手共创美好明天,为推动我国条码应用及信息技术管理应用的发展而努力!

小型信息管理系统 篇2

随着计算机技术和信息技术的不断发展, 管理信息系统的运用越来越广泛。很多企事业单位都寻找专业软件开发商开发了本单位的大型管理信息系统, 这些管理信息系统既有专用的业务管理信息系统, 也有相对比较通用的办公管理信息系统。但也有一些单位业务量虽小, 但存在一定特殊性, 无法将其他系统拿来直接使用, 开发大型系统则压力较大也没有必要, 因此, 可以采取委托系统内人员进行自行研发的方式进行[1,2]。下面笔者将以开发某小型器材管理信息系统的过程为例, 介绍小型器材管理的开发过程。

1 系统功能分析

该器材管理信息系统虽然涉及器材种类较少, 但器材管理基本环节都应具备, 通过用户需求调研, 发现其业务需求主要有入库管理、出库管理和年度汇总等功能。根据需求, 本系统应具备以下功能:

1.1 入出库管理

能实现器材的入库和出库操作, 主要包括入出库通知和入出库确认。入出库管理过程中需要打印5 联入库单 (出库单) , 且单据为自定义大小240mm×140mm。

1.2 查询统计

主要包括器材查询、入库信息查询、出库信息查询和年度汇总等功能。器材查询主要实现对器材的查询定位, 考虑到系统中器材种类较少, 查询条件相对简单, 主要为器材名称、型号和库存数;入库 (出库) 信息查询主要实现入库 (出库) 信息按单号、名称、型号、时间或供货 (接收) 单位进行查询;年度汇总主要实现按器材进行年度汇总, 主要包括上年底库存数、上年底库存金额、本年收入数、本年收入金额、本年发付数、本年发付金额、本年底库存数和本年底库存金额等信息, 并能实现A4 纸打印。

1.3 系统维护

系统维护主要包括用户注册、密码修改, 器材目录维护, 系统备份与恢复等功能。通过设置用户密码和对数据进行备份与恢复, 可以有效屏蔽非授权用户的各种操作, 有效的保证了数据库的正确性和安全性;通过对器材目录进行更新, 可以对数据库中的器材基础信息进行动态更新, 有效保证数据库的完整性和正确性。

2 数据库设计

根据系统功能分析, 共设计3 张静态表和6 张动态表。静态表分别是:用户信息、器材目录、单位信息。动态表具体如下:

2.1 临时入库信息

用于保存入库通知信息, 器材入库后该部分信息转入入库信息表。包含字段:UID (自动增长, 主键) 、入库单号、供货单位、收货单位、合同号、发票号、运输方式、运单号、制单人、制单日期、器材ID (与器材信息表对应) 、出厂日期、单价、应收数量、应收金额、备注、通知否。

2.2 入库信息。

用于保存器材已入库的相关信息。包含字段:入库ID (自动增长, 主键) 、临时入库UID (与临时入库信息对应) 、入库单号、供货单位、收货单位、合同号、发票号、运输方式、运单号、制单人、制单日期、器材ID、出厂日期、单价、应收数量、应收金额、实收数量、实收金额、入库日期、备注。

2.3 临时出库信息

用于保存出库通知信息, 器材出库后该部分信息转入出库信息表。包含字段:UID (自动增长, 主键) 、出库单号、库存批次 (与批次信息表对应) 、发物单位、领物单位、发物原因、制单人、制单日期、器材ID、应发数量、备注、通知否。

2.4 出库信息

用于保存器材已出库的相关信息。包含字段:出库ID (自动增长, 主键) 、临时出库UID (与临时出库信息对应) 、出库单号、库存批次、发物单位、领物单位、发物原因、制单人、制单日期、器材ID、应发数量、实发数量、出库日期、备注。

2.5 批次信息

用于保存各批次器材信息。包含字段:批次ID (自动增长, 主键) 、入库ID (与入库信息表对应) 、入库单号、供货单位、存货单位、器材ID、出厂日期、单价、实收数量、实收金额、入库日期、已发数量、库存数、待发数量、备注。设计此表, 主要源于同一器材不同批次价格可能不同, 有批次信息表后, 所有出库操作都根据此表进行, 便于年度汇总信息的进行。

2.6 年度汇总信息

用于保存年度器材汇总信息。包含字段:年度、器材ID、器材名称、器材型号、计量单位、原有数、原有金额、增加数、增加金额、减少数、减少金额、结存数、结存金额。

3 系统实现

基于该小型器材管理信息系统数据量小、功能简单、单机使用的实际需求, 选择C# 与Access作为开发工具, 采用C/S体系结构, 进行开发本系统[3,4,5,6,7,8,9,10]。在系统实现过程中主要出现并解决了以下几个难点问题。

3.1 水晶报表载入慢

在入库管理、出库管理和年度汇总等三个功能模块, 笔者采用了水晶报表进行报表设计, 水晶报表功能强大, 能够快速实现报表设计, 便于报表的输出和打印[11,12,13,14]。但在运行时发现系统第一次载入报表非常慢, 经常需要20秒~30秒才能呈现报表内容, 但后面再打开报表则速度非常快。这种糟糕的体验是无法获得用户满意的。经调试发现, 其首次载入慢的原因主要是因为处理报表的Set Data Source () 方法时非常慢;但只要Set Data Source () 方法首次处理完成后, 更换数据重新再次处理时则速度很快。针对这种情况, 笔者设计使用多线程方式在系统加载主窗体的同时将Set Data Source () 方法在后台进行初次处理。此方法虽然并未从根本上解决水晶报表载入慢的问题, 但其将载入操作提前处理, 可以使用户操作体验正常。下面是Program.cs中的相关代码。

3.2 年度汇总

年度汇总模块主要难点在于汇总数据的获得。系统在载入时自动判断上一年度的汇总信息是否存在, 若不存在, 则强制生成其汇总信息;若生成数据过程出现中断或故障, 可以通过年度汇总模块手动生成年度汇总信息。整个生成过程主要基于器材信息表、年度汇总信息表、入库信息表、出库信息表和批次信息表数据进行, 由系统控制, 分步骤对数据库进行处理。图1 为生成年度汇总信息的过程。

3.3 器材目录维护

笔者参与过部分中大型管理信息系统的设计与实现, 也对其器材目维护模块如何实现进行过研究。对于器材种类多、数量大的系统, 其器材目录维护往往采用“平时增改、定期删减”的模式进行, 即日常工作中由专人负责处理大家提交的增加、修改器材信息的要求, 并及时生成更新盘下发各单位进行更新;对于逐渐退出使用的器材则定期 (5年~8 年) 进行删减, 并下发更新盘统一更新, 更新后被删减部分器材的所有历史记录不再进行保留。基于本系统单机操作、器材数量少的考虑, 经与用户协商, 对于本系统器材目录的维护, 我们采用“可修改、不删减、可屏蔽”的模式进行, 即随时可以对器材进行信息修改;对不使用的器材信息不删减, 但可以选择不启用进行屏蔽, 使其在日常管理中不显示不操作, 其历史信息则可以继续存放在数据库中备查。器材信息更新前重点核查两项内容: (1) 型号必须唯一; (2) 若该器材有库存、两年内有收发记录、或有准备入库信息, 则该器材必须启用, 不能屏蔽。下面器材目录维护主要代码。

4 结束语

使用C# 和Access设计了一个小型的器材管理信息系统, 系统实现了器材的入出库管理和年度汇总, 提高了器材管理的准确性和工作效率。在系统配置和使用过程中也发现了一些不足, (1) 部分打印机对自定义页面不支持, 打印出现偏差, 经过多次调试后最终以更换打印机结束; (2) Access数据库数据统计汇总功能弱, 不支持触发器和存储过程, 导致大量数据处理过程需要在C# 中编程实现, 不利于保持数据的安全和稳定。

摘要:基于C#和Access数据库, 本文分析了小型器材管理系统的功能需求, 进行了系统数据库设计, 重点阐述了系统的实现技术, 实现器材信息管理。

中小型酒店管理信息系统设计 篇3

关键词:中小型酒店;计算机管理信息系统;数据库管理系统

中图分类号:TP39文献标识码:A文章编号:1671-864X(2015)11-0204-01

我国酒店业发展非常迅速,中小型酒店之间的竞争也非常激烈,这也要求酒店管理者不断提高内部管理水平和服务质量标准,才能提高自身的市场竞争力。计算机管理系统的引入给宾馆和酒店带来了极大的便利,本文对中小型酒店信息管理系统的设计进行了简要的介绍。

一、对中小型酒店管理信息系统进行设计的必要性

中小型酒店有着较大的规模扩展空间,在扩大规模的过程中需要不断增加服务功能和收入支出的环节,要保障营业支出的准确性和合理性与营业收入的完整性和安全性,就需要设计一套完善的管理信息系统。对中小型酒店管理信息系统进行设计是非常有必要的,能够对酒店的发展产生深远的影响[1]。

(一)进一步提高系统的信息处理能力。

在中小型酒店的日常管理工作中,各种账务、客人信息、客房信息等数据都需要通过管理信息系统来进行处理,通过对管理信息系统进行科学的设计,能够使数据处理的准确性和速度得到提高,从而提高酒店内部管理的水平。

(二)提高酒店管理者决策的准确性。

面对越来越激烈的行业竞争,酒店管理者必须做出正确的决策,这就需要充分发挥酒店信息管理系统的对比和统计功能,为酒店管理者提供必要的数据支持,使其能够对自身的经营状况和市场信息进行及时的了解,及时调整经营策略,作出正确的决策。

(三)进一步提高劳动效率。

通过对酒店管理信息系统进行科学的设计,能够使酒店的管理工作更加规范,减少账务差错、提高工作效率、增加服务种类、树立酒店良好的社会形象。这样也可以进一步精简酒店机构和人员,减轻工作人员的作业强度。

(四)提高酒店经济效益。

当前很多中小型酒店为了进一步提高经济效益,往往将住宿和餐饮组合起来,满足客户的多方面需求。这样增加了酒店接待客人的数量和比例,但是也增加了管理的难度。通过对酒店管理信息系统进行科学的设计,能够使消费和客人之间能够直接对应,为客人提供更好的综合性服务。

二、中小型酒店管理信息系统的设计理念

在对中小型酒店管理信息系统进行设计时,要注意尽量使图形化界面更加简洁和美观,并且保障系统的安全性,避免由于系统漏洞而造成的经济损失。对于数据集的结果可以使用map类来进行检索和保存。为了对代码进行进一步的优化还可以使用数据绑定技术。要保障数据库的配置正确,才能正式运行系统。为了提高系统的时空效率,要尽量使用简单明了的算法。在对登录模块设计时应该增强其安全性[2]。

要保障整个酒店的系统界面功能齐全、操作便利、美观友好、安全性强,并且具备中小酒店中常用的结算、定菜、点菜等基本功能。与此同时,还要将销售存根数据库和菜谱数据库建立起来。这样一来管理者能够对酒店的经营销售情况进行便利的查询,并且进一步完善系统的安全性和易用性。在设计时要考虑到中小酒店的柜台收银人员的计算机水平有限,因此要尽量对系统界面进行简化,提高其操作的便利性,避免操作过于复杂而产生操作失误。

三、中小型酒店管理信息系统的主要模块和技术要点

中小型酒店管理信息系统应该包括以下几个主要模块:系统界面设计、数据库设计、帮助模块、结算模块、点菜订单模块、菜谱管理模块、登录管理模块。各个具体的功能模块共同组成了整个软件系统。在登录失败或者未登陆的情况下,只能使用4个功能模块:退出、关于、帮助、登录。在值班人员输入正确的口令密码之后,才能使用其他的功能模块。这是为了保障中小型酒店管理信息系统的安全性,避免系统数据被人为篡改。

以系统功能的设计要求为根据,充分考虑到Visual C++的编程特点,本设计系统将中小型酒店管理信息系统设计为两个部分,分别为前台和后台,并且开发和分解了几个比较小的功能模块。前台系统包括定菜管理、菜单管理和口令管理,后台系统包括数据库管理和数据库连接。这种设计方案能够使整个开发过程具有更强的条理性,而且留有余地。在中小酒店的发展中,为了适应酒店发展的需要可以非常便利的修改模块的功能,或者在该系统中添加新的功能模块,对系统进行升级。

在中小型酒店管理信息系统的设计中运用到了以下几种关键技术。①结算模块。值班员先将折扣率和桌号输入到对话框中,系统将折扣率的输入限制在0.1到1.0之间,使用相应的函数来对单击结算按钮事件进行处理。代码对折扣率和桌号信息进行读取之后,程序会将这两个信息传送给CDlgJS对话框对象,然后将指定桌号的订餐信息读取出来,OnInitDialog会根据折扣率计算出最后的金额。完成结算之后单击保存,就可以将记录加入到结算表之中,将已经结算过的订餐信息删除掉。②点菜模块。在该模块中可以将客户点的菜项逐个输入,并可以自由的修改和删除,最后点击提交按钮,将其保存到数据库中。将桌号输入到主号编辑框里,根据菜谱的编号在编号框内进行选择。这样客户报出编号之后值班员就能迅速找到客户所要的菜,出错率有所降低,服务效率也得到了提高,CDlgDC:OnInitDialog( )能够包含所有的菜谱号。③菜谱管理模块。读取的数据记录主要是通过一个列表框控件来进行显示,该控件可以在CDlgViewCP::OnInitDialog( )中进行初始化,值班员选中其中的某一行之后可以由程序进行处理,并且在列表框中进行显示,通过相应的函数实现菜谱管理功能[3]。

四、结语

实践证明该套中小型酒店管理信息系统设计非常适合中小型酒店的管理,符合中小型酒店对管理信息系统的相关要求,具有较高的安全性和易用性,在实践中取得了良好的应用效果。

参考文献:

[1]金岩.公寓管理系统的设计及应用[J].才智.2011(07)

[2]王敬东.酒店管理系统的设计与实现[J].黑龙江科技信息.2012(28)

小型信息管理系统 篇4

大部分中小型网站的管理者通常都会有这样的问题,那就是本来想做什么事情可是,手里并没有那么多资金和来完成这些,只能作罢。所以小的网站资金少的问题,直接限制了网站通过百度竞价和其他的推广渠道获得流量的机会,所以造成了大多数的网站管理者都会因此选择保守或者说是经济的SEO来增加自己的人气和流量,肯定有很多SEO从业者在羡慕大网站的丰富资源,有那么多丰富资源可以利用。可是你们真的了解SEO这个行业吗?我们做SEO的人都很明白这样的一个道理:大型的网站注重的都是非常注重网站内部的SEO,而中小型的网站要进行网络优化则需要统筹整个全局。所以SEO对中小型的网站要求的高度要比大型网站的高得多。如果我们做网站优化的还仅仅把眼睛盯在文章原创加上链接的低等水平,那么就说明我们在退步,这是不行的,这样的话早晚有一天我们会在时代的列车上掉下去!对中小型网站的SEO优化,是要讲究一定的策略的。这就是我们一开始就在说的,策略对中小型网站的优化非常重要!

首先在关键词方面,关键词的拓展,一直都是十分重要的一件事情。要想获得SEO流量我们就必须有大量的关键词作支撑,定位主关键词,但是在定位之后,千万别就跟着主关键词走了,因为这个主关键词并不一定是我们想象中的那个VIP,我们对他付出有重点的多科室,我们并不能就简简单单的希望它能够给我们带来多少流量,那是靠不住的。而大量的长尾关键词在这个时候往往会给我们带来许多意想不到的惊喜。在获取关键词上的策略就是这样的几点。

围绕着网站的主打品牌进行深度挖掘,比如什么地板之类的就围绕这个地板品牌说一些质量啦、型号啦、美观度啦之类的词,因为这些描述的关键词本身就是一个十分完美的长尾关键词。

另一种策略就是,大量的组合,围绕一个主题,进行衍生,对衍生出来的词进行选择,选择一些好一点的词,这样的方法很多时候会让我们找到我们怎么想都想不到的好词汇来!而借树开花的方式在这个方面也是一个非常好的选择。在这个时代里各种各样的新闻是层出不穷的,什么像现在非常流行的文章姚笛绯闻,其实好多事情就可以拉着这些热点进行,如果进行合适的优化,那么它给我们的流量就是十分可观的。

SEO从业者都知道,关键词是SEO的核心,内容站内链接站外链接,各种用户体验等等所有的SEO工作都会围绕着关键词来进行,可以这样说SEO关键词才是真正的核心。很多从事SEO的人为了能够获得好的排名一般会想尽办法堆砌关键词,可是现在百度算法一变再变的情况下,如果谁还敢这样做,那么被降权的不是你又会是谁?!其实说起来网站的关键词分布应该是一件非常简单的事情,只要在网站标题、文章标题、文字内容中、图片Alt标签、超链接这几个点上合理的融入关键词,就可以起到很好的效果。

而链接的认知方面,大多数从事SEO的人在分析关键词的竞争程度地时候,都会不明不白的进入一个不好的境地。都会认为百度的指数搜索的结果页面越多这样的关键词就越难获得排名,可是这样的观点是不科学的。因为大多数情况下网站首页的链接比其他的内页来还是相当有优势的。

基于java小型超市管理系统 篇5

public class Mytest { static int sign=0;//goodname数组第一个空下标号

static int sign1=0;//cname数组第一个空下标号

static String[] cpass=new String[20];//存放售货员名称

static String[] cname=new String[20];//存放售货员登入密码

static String[] goodname=new String[20];//存放商品名称

static double[] goodprice=new double[20];//存放商品价格

static int[] goodout=new int[20];//存放商品销售量

static int[] goodnum=new int[20];//存放商品数量

public static void main(String[] args)throws Exception { cname[0]=“ZhouTian”;//初始的售货员名称

cpass[0]=“723”;//初始的售货员密码 createArrays();readArrays(“goodname”);//将文件中的内容读入到相应的数组里

readArrays(“goodprice”);readArrays(“goodnum”);readArrays(“cname”);readArrays(“cpass”);readArrays(“goodout”);menu();//登入之后加载的主菜单

} /** * 加载登入菜单

*/ private static void menu(){

Scanner scan = new Scanner(System.in);

System.out.println(“ttt欢迎使用商超购物管理系统 n”);

System.out.println(“tttt1.登录系统n”);

System.out.println(“tttt2.退出 ”);

System.out.println(“*************************************************”);

System.out.println(“请选择,输入数字: ”);

int a = scan.nextInt();

switch(a){

case 0:

System.out.println(“退出!”);//按0不登入

case 1:

System.out.println(“请输入用户名:”);// 查找售货员姓名是否存在,与所对应的密码是否匹配

String name = scan.next();

System.out.println(“请输入密码:”);

String pass = scan.next();

int flage = 0;

int ff = 0;

for(int i = 0;i < cname.length;i++){

if(name.equals(cname[i])){

flage = 1;//售货员的名称匹配flage=1;

ff = i;

break;

}

}

if(flage == 1){//名称匹配之后再匹配密码

if(pass.equals(cpass[ff])){

loadmenu1();//密码也匹配之后再允许登入

} else {

System.out.println(“密码错误!”);

}

} else {

System.out.println(“该用户名不具有权限”);

}

break;

case 2:

System.out.println(“谢谢您的使用!”);

break;

default:

break;

} }

/** * ,创建文件,将数组信息存入到各文件中, */ static void createArrays(){

BufferedWriter bw = null;

try {

File file1 = new File(“d:gname.txt”);

if(!file1.exists()){

bw

=

new

BufferedWriter(new FileWriter(“d:gname.txt”));

String content1 = strToString(goodname);//数组内容转换成字符串

bw.write(content1);//写入

bw.close();

}

File file2 = new File(“d:gprice.txt”);

if(!file2.exists()){

bw

=

new

BufferedWriter(new FileWriter(“d:gprice.txt”));

String content2 = doubleToString(goodprice);//数组内容转换成字符串

bw.write(content2);//写入

bw.close();

}

File file3 = new File(“d:gnum.txt”);

if(!file3.exists()){

bw

=

new

BufferedWriter(new FileWriter(“d:gnum.txt”));

String content3 = intToString(goodnum);//数组内容转换成字符串

bw.write(content3);//写入

bw.close();

}

File file4 = new File(“d:cname.txt”);

if(!file4.exists()){

bw

=

new

BufferedWriter(new FileWriter(“d:cname.txt”));

String content4 = strToString(cname);//数组内容转换成字符串

bw.write(content4);//写入

bw.close();

}

File file5 = new File(“d:cpass.txt”);

if(!file5.exists()){

bw

=

new

BufferedWriter(new FileWriter(“d:cpass.txt”));

String content5 = strToString(cpass);//数组内容转换成字符串

bw.write(content5);//写入

bw.close();

}

File file6 = new File(“d:gout.txt”);

if(!file6.exists()){

bw

=

new

BufferedWriter(new FileWriter(“d:gout.txt”));

String content5 = intToString(goodout);//数组内容转换成字符串

bw.write(content5);//写入

bw.close();

}

} catch(IOException e){

e.printStackTrace();

}

}

/** * 登入之后加载商超购物管理系统

*/ static void loadmenu1(){

System.out.println(“欢迎进入商超购物管理系统!”);

System.out.println(“tttt商超购物管理系统”);

System.out

.println(“********************************************************************************”);

System.out.println(“tttt1.商品维护”);

System.out.println(“tttt2.前台收银”);

System.out.println(“tttt3.商品管理”);

System.out.println(“tttt4.退出”);

System.out.println(“********************************************************************************”);

System.out.println(“请选择,输入数字或按0退出:”);

Scanner scan = new Scanner(System.in);

int a = scan.nextInt();

switch(a){

case 0:

System.out.println(“谢谢您的使用!”);

break;

case 1:

System.out.println(“执行显示商品维护菜单”);

loadmenu2();

break;

case 2:

System.out.println(“执行前台收银”);

loadmenu6();

break;

case 3:

System.out.println(“执行商品管理”);

loadmenu7();

break;

default:

break;

} } /* * 在商超购物管理系统中按1键时 */ static void loadmenu2(){

System.out.println(“tttt商超购物管理系统 商品维护”);

System.out

.println(“********************************************************************************”);

System.out.println(“tttt1.添加商品t”);

System.out.println(“tttt2.更改商品t”);

System.out.println(“tttt3.删除商品t”);

System.out.println(“tttt4.显示所有商品t”);

System.out.println(“tttt5.查询商品t”);

System.out

.println(“********************************************************************************”);

System.out.println(“请选择,输入数字或按0返回上一级菜单:”);

Scanner scan = new Scanner(System.in);

int b = scan.nextInt();

switch(b){

case 0:

loadmenu1();

break;

case 1:

addgoods();

break;

case 2:

System.out.println(“执行更改商品操作”);

loadmenu3();// 修改商品

break;

case 3:

System.out.println(“执行商品删除操作”);

loadmenu4();// 商品删除

break;

case 4:

System.out.println(“显示所有商品”);

System.out.println(“商品名称ttt” + “商品价格ttt” + “商品数量ttt”

+ “备注”);

showgoods();

break;

case 5:

System.out.println(“执行查询商品操作”);

loadmenu5();

break;

default:

break;

} } /* * 在商超购物管理系统中按2键时

*/ static void loadmenu6(){

System.out.println(“tttt商超购物管理系统 前台收银”);

System.out

.println(“********************************************************************************”);

System.out.println(“tttt1.购物结算”);

Scanner scan = new Scanner(System.in);

int ch = scan.nextInt();

switch(ch){

case 0:

loadmenu1();

break;

case 1:

pay();

break;

default:

break;

}

} /* * 在商超购物管理系统中按3键时

*/ static void loadmenu7(){

Scanner scan = new Scanner(System.in);

System.out.println(“ttt商超购物管理系统 商品管理”);

System.out

.println(“********************************************************************************”);

System.out.println(“tttt1.库存查询”);

System.out.println(“tttt2.已出售商品”);

System.out.println(“tttt3.售货员管理”);

System.out.println(“请选择,输入数字或按0返回上一级菜单:”);

int ch = scan.nextInt();

switch(ch){

case 0: loadmenu1();

break;

case 1:

System.out.println(“执行库存查询操作:”);

kusear();

break;

case 2:

System.out.println(“执行已出售商品查询操作”);

besold();

break;

case 3:

System.out.println(“执行售货员管理操作”);

salesman();

break;

default:

break;

}

} /* * 对售货员信息的增添,修改 */ static void salesman()

{

Scanner scan = new Scanner(System.in);

System.out.println(“

1、添加售货员”);

System.out.println(“

2、修改售货员信息”);

System.out.println(“请选择,输入数字或按0返回上一级菜单:”);

int b = scan.nextInt();

switch(b){

case 0:

loadmenu7();//返回上一级

break;

case 1:

addsale();//选择1键,添加售货员

break;

case 2:

modifysale();//更改售货员的信息

break;

default:

break;

} } /* 添加售货员 * */ static void addsale(){

Scanner scan = new Scanner(System.in);

String f;

// sign1 = sign1 + 1;

do {

System.out.println(“添加售货员姓名:”);

String addname = scan.next();

add(cname, addname, sign1);//将新信息添加到相应数组中

System.out.println(“添加售货员登陆密码:”);

String addpass = scan.next();

add(cpass, addpass, sign1);//将新信息添加到相应数组中

// writeArray();

sign1++;//新信息添加后数组下标加1

writeArray();

System.out.println(“是否继续(y/n)”);

f = scan.next();

// writeArray();

} while(f.equals(“y”));

salesman();} /* * 更改售货员的信息 */ static void modifysale(){

String f;

Scanner scan = new Scanner(System.in);

System.out.println(“输入更改员工名称:”);

String newname = scan.next();

int k = searmember(newname);//查询需要改的售货员的信息,并返回其在数组中的下标

if(k >= 0){//判断售货员是否存在

System.out.println(“员工姓名” + “ttt密码”);

System.out.println(cname[k] + “ttt” + cpass[k]);

System.out.println(“选择您要更改的内容:”);

System.out.println(“

1、更改员工姓名:”);

System.out.println(“

2、更改登录密码:”);

int kk = scan.nextInt();

switch(kk){

case 1:

System.out.println(“请输入已更改员工姓名:”);

String newnname = scan.next();

cname[k] = newnname;

writeArray();

System.out.println(“是否继续(y/n)”);

f = scan.next();

if(f.equals(“y”)){

modifysale();

} else {

salesman();

}

break;

case 2:

System.out.println(“请输入已更改密码:”);

String newpass = scan.next();

cpass[k] = newpass;

writeArray();

System.out.println(“是否继续(y/n)”);

// System.out.println(“是否继续(y/n)”);

f = scan.next();

if(f.equals(“y”)){

modifysale();

}

salesman();

break;

default:

break;

}

} } /* * 查询ename姓名的售货员在数组中的下标 */ static int searmember(String ename){

for(int i = 0;i < cname.length;i++){

if(cname[i].equals(ename)){

return i;

}

}

return-1;// 不存在时

} /* * 查询已出售的商品信息 */ static void besold()

{

System.out.println(“商品名称ttt” + “商品价格ttt” + “商品数量ttt” + “备注”);

for(int i = 0;i < goodout.length;i++){

if(goodout[i]!= 0){

System.out.println(goodname[i] + “ttt” + goodprice[i]

+ “ttt” + goodout[i]);

}

}

loadmenu7();} /* * 查询库存中售的商品信息

*/ static void kusear(){

Scanner scan = new Scanner(System.in);

String f;

do {

System.out.println(“输入要查询的商品名称:”);

String sname = scan.next();

int t = ndimsear(sname);//按确切的商品名称进行查询,即非模糊查询,找出商品名称信息的下标

if(t >= 0){

System.out.println(“商品名称ttt” + “商品价格ttt” + “商品数量ttt”

+ “备注”);

System.out.println(goodname[t] + “ttt” + goodprice[t]

+ “ttt” + goodnum[t] + “ttt”);//按下标输出商品相应的信息

} else {

System.out.println(“没有此商品”);

}

System.out.println(“是否继续(y/n)”);

f = scan.next();

} while(f.equals(“y”));

loadmenu7();

} /* * 按确切的商品名称进行查询,即非模糊查询,找出商品名称信息的下标

*/ static int ndimsear(String s){

for(int i = 0;i < goodname.length;i++){

if(goodname[i].equals(s)){

return i;

}

}

return-1;//没查询到时

}

/* * 商品结算

*/ static void pay(){

Scanner scan = new Scanner(System.in);

double sum = 0;

String f;

do {

dimsearch1();//按关键字进行模糊查询,查找可能需要的商品

System.out.println(“请选择商品:”);

String bnam = scan.next();//按查询到的相关商品中选择要购买的商品

System.out.println(“请输入购买数量:”);

int bnum = scan.nextInt();

int fl = seargood(bnam);

System.out.println(bnam + “ttt” + goodprice[fl] + “ttt”

+ “购买数量” + bnum + “ttt” + bnum * goodprice[fl]);

goodnum[fl] = goodnum[fl]sum));

writeArray();//将对数组的更改写入到文件中

loadmenu1();//结束购买返回

} /* * 查找商品返回下标 */ static int seargood(String bbnam){

for(int i = 0;i <= goodname.length;i++){

if(goodname[i].equals(bbnam)){

return i;

}

}

return-1;}

/* * 对商品进行各种查找

*/

static void loadmenu5(){

Scanner scan = new Scanner(System.in);

System.out.println(“

1、按商品数量升序查询”);

System.out.println(“

2、按商品价格升序查询”);

System.out.println(“

3、输入关键字查询商品”);

System.out.println(“请选择,输入数字或按0返回上一级菜单:”);

int choice = scan.nextInt();

switch(choice){

case 0:

loadmenu2();//返回上一级

break;

case 1:

numshenxu();//按商品数量升序进行查找

break;

case 2:

priceshenxu();//按商品价格升序进行查找

break;

case 3:

dimsearch();//按商品的关键字进行查找

break;

default:

break;

}

}

static void dimsearch1(){

int[] k;

Scanner scan = new Scanner(System.in);

System.out.println(“输入商品关键字:”);

String sear = scan.next();

k = Arrays.copyOf(index(sear), index(sear).length);

System.out.println(“商品名称ttt” + “商品价格ttt” + “商品数量ttt” + “备注”);

if(k!= null){

for(int i = 0;i < k.length;i++){

System.out.println(goodname[k[i]] + “ttt” goodprice[k[i]]

+ “ttt” + goodnum[k[i]] + “ttt”);

}

}

} /* * 按商品的关键字进行查找

*/ static void dimsearch()

+ {

String f;

do {

int[] k;

Scanner scan = new Scanner(System.in);

System.out.println(“输入商品关键字:”);

String sear = scan.next();

k = Arrays.copyOf(index(sear), index(sear).length);

System.out.println(“商品名称ttt” + “商品价格ttt” + “商品数量ttt”

+ “备注”);

if(k!= null){

for(int i = 0;i < k.length;i++){

System.out.println(goodname[k[i]] + “ttt”

+ goodnum[k[i]]

+ “ttt”);

}

goodprice[k[i]]

+

“ttt”

+

}

System.out.println(“是否继续(y/n)”);

f = scan.next();} while(f.equals(“y”));loadmenu2();} static int[] index(String ss){ int countt = 0;int counttt = 0;for(int i = 0;i < goodname.length;i++){

if(goodname[i].indexOf(ss)>= 0){

countt++;

} } int[] location = new int[countt];for(int i = 0;i < goodname.length;i++){

if(goodname[i].indexOf(ss)>= 0){

location[counttt] = i;

counttt++;

}

}

return location;} /* * 按商品数量升序进行查找

*/ static void numshenxu(){

int[] newnum = Arrays.copyOf(goodnum, goodnum.length);

double[]

newprice

=

Arrays.copyOf(goodprice, goodprice.length);

String[] goodname.length);

for(int i = 0;i < newnum.lengthi1;i++){

for(int j = 0;j < newprice.length1;j++){

if(newprice[j] < newprice[j + 1]){

int temp = newnum[j];

newnum[j] = newnum[j + 1];

newnum[j + 1] = temp;

double temp1 = newprice[j];

newprice[j] = newprice[j + 1];

newprice[j + 1] = temp1;

String temp2 = newname[j];

newname[j] = newname[j + 1];

newname[j + 1] = temp2;//相应的下标在不同的数

newname

=

Arrays.copyOf(goodname, 组里进行挑换,商品的信息才能保持一致

}

}

}

System.out.println(“商品名称ttt” + “商品价格ttt” + “商品数量ttt” + “备注”);

for(int k = 0;k < newnum.length;k++){

if(newprice[k]!= 0){

System.out.println(newname[k] + “ttt” + newprice[k]

+ “ttt” + newnum[k] + “ttt”);

}

}

loadmenu5();} /* *更改商品信息的操作

*/ static void loadmenu3(){

Scanner scan = new Scanner(System.in);

System.out.println(“输入更改商品名称:”);

String nam = scan.next();

int b = showflage(nam);

print(b);

System.out.println(“选择您要更改的内容:”);

System.out.println(“

1、更改商品名称::”);

System.out.println(“

2、更改商品价格:”);

System.out.println(“

3、更改商品数量:”);

int ch = scan.nextInt();

switch(ch){

case 0:

break;

case 1:

int counnt = 0;

String f = “y”;

while(f.equals(“y”)){

if(counnt!= 0){

// Scanner scan = new Scanner(System.in);

System.out.println(“输入更改商品名称:”);

nam = scan.next();

b = showflage(nam);//查找需要更改商品的下标

print(b);//输出这个商品的各种信息

}

System.out.println(“请输入已更改商品名称”);

String cname = scan.next();

goodname[b] = cname;//更改名称

System.out.println(“是否继续(y/n)”);

f = scan.next();

counnt++;

writeArray();

}

loadmenu2();

break;

case 2:

counnt = 0;

f = “y”;

while(f.equals(“y”)){

if(counnt!= 0){

// Scanner scan = new Scanner(System.in);

System.out.println(“输入更改商品名称”);

nam = scan.next();

b = showflage(nam);

print(b);

}

System.out.println(“请输入已更改商品价格”);

double cprice = scan.nextDouble();

goodprice[b] = cprice;//新价格写入数组

System.out.println(“是否继续(y/n)”);

f = scan.next();

counnt++;

writeArray();

}

loadmenu2();

break;

case 3:

counnt = 0;

f = “y”;

while(f.equals(“y”)){

if(counnt!= 0){

// Scanner scan = new Scanner(System.in);

System.out.println(“输入更改商品名称”);

nam = scan.next();

b = showflage(nam);

print(b);

}

System.out.println(“请输入已更改商品数量”);

int cnum = scan.nextInt();

goodnum[b] = cnum;

counnt++;

writeArray();

System.out.println(“是否继续(y/n)”);

f = scan.next();

}

loadmenu2();

break;

default:

break;

}

} /* * 查询nama这个商品在goodname中的下标

*/ static int showflage(String nama){

int flag = 0;

for(int i = 0;i < goodname.length;i++){

if(goodname[i].equals(nama)){

flag = i;

break;

}

}

return flag;}

static void print(int b){

System.out.println(“商品名称 tt” + “商品价格 tt” + “商品数量 tt” + “备注”);

System.out.println(goodname[b] + “tt” + goodprice[b] + “tt”

+ goodnum[b] + “ tt”);

} /* * 删除商品菜单

*/ static void loadmenu4(){

String f;

int d;

do {

Scanner scan = new Scanner(System.in);

System.out.println(“请输入要删除的商品名称:

String dname = scan.next();

d = showflage(dname);

delete(d);

System.out.println(”是否继续(y/n)“);

f = scan.next();

writeArray();//删除之后重新写入文件

} while(f.equals(”y“));

loadmenu2();}

”);/* * 删除商品 */ static void delete(int dd){

for(int i = dd;i < goodname.length1] = null;

goodprice[goodprice.length1] = 0;

} /* * 查询所有商品

*/ static void showgoods(){

int i = 0;

while(goodprice[i]!= 0){

System.out.print(goodname[i] +

“ttt” goodprice[i] + “ttt”

+

+ goodnum[i] + “ttt”);

if(goodnum[i] < 10){

System.out.println(“ttt*该商品已不足10件!”);

}

System.out.println();

i++;

}

loadmenu2();

} /* * 商品添加操作 */ static void addgoods(){

System.out.println(“执行添加商品操作:t”);

String a;

do {

Scanner scan = new Scanner(System.in);

System.out.println(“输入商品名称:”);

String na = scan.next();

add(goodname, na, sign);

System.out.println(“输入添加商品价格:”);

double pr = scan.nextDouble();

add(goodprice, pr, sign);

System.out.println(“输入添加商品数量:”);

int c = scan.nextInt();

add(goodnum, c, sign);

sign++;

System.out.println(“是否继续(y/n)”);

a = scan.next();

writeArray();

} while(a.equals(“y”));

loadmenu2();

} /* * 将数组信息写入到相应的文件里,启动程序时就要调用这个函数 */ static void writeArray(){

BufferedWriter bw = null;

try {

bw

=

new

BufferedWriter(new FileWriter(“d:gname.txt”));

String content1 = strToString(goodname);

bw.write(content1);

bw.close();

bw

=

new

BufferedWriter(new FileWriter(“d:gprice.txt”));

String content2 = doubleToString(goodprice);

bw.write(content2);

bw.close();

bw

=

new

BufferedWriter(new FileWriter(“d:gnum.txt”));

String content3 = intToString(goodnum);

bw.write(content3);

bw.close();

bw = new BufferedWriter(new FileWriter(“d:cname.txt”));

String content4 = strToString(cname);

bw.write(content4);

bw.close();

bw

=

new

BufferedWriter(new FileWriter(“d:cpass.txt”));

String content5 = strToString(cpass);

bw.write(content5);

bw.close();

bw

=

new

BufferedWriter(new FileWriter(“d:gout.txt”));

String content6 = intToString(goodout);

bw.write(content6);

bw.close();

} catch(IOException e){

e.printStackTrace();

} } /* * 添加商品名称 */ static void add(String[] aa, String n, int b){

if(b == aa.length){

aa =(String[])Arrays.copyOf(aa, aa.length * 2);

}

aa[b] = n;} /* * 添加商品价格

*/ static void add(double[] aa, double pr, int b){

if(b == aa.length){

aa =(double[])Arrays.copyOf(aa, aa.length * 2);

}

aa[b] = pr;} /* * 添加商品数量

*/ static void add(int[] aa, int cc, int b){

if(b == aa.length){

aa =(int[])Arrays.copyOf(aa, aa.length * 2);

}

aa[b] = cc;

}

/** * 从文件中读取信息到相应的数组里

*/ static void readArrays(String name)throws Exception {

BufferedReader br = null;

try {

if(“goodname”.equals(name)){

br

=

new

BufferedReader(new FileReader(“d:gname.txt”));

String content1 = br.readLine();

String[] arr = strToString(content1);

goodname arr.length);

for(int i = 0;i < goodname.length;i++){

if(!goodname[i].equals(“null”)){

sign++;

=

(String[])

Arrays.copyOf(arr,}

}

} else if(“goodprice”.equals(name)){

br

=

new

BufferedReader(new FileReader(“d:gprice.txt”));

String content2 = br.readLine();

double[] arr = doubleToString(content2);

goodprice arr.length);

} else if(“goodnum”.equals(name)){

br

=

new

BufferedReader(new

=

(double[])

Arrays.copyOf(arr, FileReader(“d:gnum.txt”));

String content3 = br.readLine();

int[] arr = intToString(content3);

goodnum =(int[])Arrays.copyOf(arr, arr.length);

} else if(“cname”.equals(name)){

br

=

new

BufferedReader(new FileReader(“d:cname.txt”));

String content4 = br.readLine();

String[] arr = strToString(content4);

cname arr.length);

=(String[])Arrays.copyOf(arr,for(int i = 0;i < cname.length;i++){

if(!cname[i].equals(“null”)){

sign1++;

}

}

} else if(“cpass”.equals(name)){

br

=

new

BufferedReader(new FileReader(“d:cpass.txt”));

String content5 = br.readLine();

String[] arr = strToString(content5);

cpass arr.length);

} else {

br

=

new

BufferedReader(new

=

(String[])

Arrays.copyOf(arr, FileReader(“d:gout.txt”));

String content6 = br.readLine();

int[] arr = intToString(content6);

goodout =(int[])Arrays.copyOf(arr, arr.length);

}

} catch(FileNotFoundException e){

e.printStackTrace();

} catch(IOException e){

e.printStackTrace();

}

} /* * 将字符串转换成字符串数组 */ static String strToString(String[] arry){

// String arrys=“";

// for(int i=0;i

// {

// arrys=arry+arry[i]+”,“;

// }

// //arrys=arrys+arry[arry.length-1];

// System.out.println(arrys);

// return arrys;

StringBuilder sb = new StringBuilder();

for(int i = 0;i < arry.length;i++){

sb.append(arry[i]).append(”,“);

}

sb.deleteCharAt(sb.length()-1);

// System.out.println(sb.toString());

return sb.toString();} /* * 将字符串转换成字符串数组 */ static String[] strToString(String ar){

String[] arry = ar.split(”,“);return arry;} /* * 将int型数组转换成字符串 */ static String intToString(int[] arrr){

String ss = ”“;

ss = Arrays.toString(arrr);

String sss

=

小型电器管理制度 篇6

1.机电科负责监督公司小型电器设备的领取、使用、维护与检修工作,并建立小型电器管理台账。机电科每周不少于一次对小型电器的安全使用,进行监督检查。

2.各使用单位负责小型电器的领取,使用、维护与检修工作,并建立小型电器管理台账,并上报机电科。

3.使用单位对使用的小型电器维护、检修、管理要设专人负责。

4.采掘工作面使用的小型电器,工作地点变更时,必须全部上井进行检修,其它地点使用的小型电器至少每年应上井检修一次。

5.工作面移交时,电气组负责组织交接双方共同进行,同时办理移交手续,一式三份,各持一份,凭移交手续到机电科办理结帐手续。

6.小型电器以及挂钩拆除或更换后,回收单位在十天内运上井交机修厂电器组。并办理移交手续。

7.本制度从2012年1月1日起由机电科监督执行。

机电科

小型收割机作业信息监测系统研制 篇7

近年来,国内外农业机械的设计正向高速、宽幅、大功率和舒适的方向发展[1]。智能化自动控制技术在农业机械上的应用也更加备受关注,国外对于精细农业变量生产机械和技术的研究主要在变量施肥方面[2]。国内也对精细农业和变量施肥技术进行了研究和试验,实现方法也不尽相同[3]。通过国内小型农机(尤其小型收割机)现有状况的调查分析表明:现有小型农机只体现机械作业,而没有智能化与自动化技术的应用[4];售后使用情况与质量无法跟踪、作业信息无法自动采集;在收割过程中经常堵转[5],致使机器不能正常作业而停机,常需将脱粒装置清仓,重新启动,无法提前预警,从而影响农机使用和推广。

鉴于此,本文研制一套集故障预诊断、作业过程自动监测于一体的系统,其目的是实时监测小型收割机作业状态;自动记录并保存小型收割机的作业时间;自动定位小型收割机作业区域;自动预诊断小型收割机堵转故障,使农机手能及时调整收割速度,防止机械堵转停机。所有监测数据通过无线模块传输到指定的网络服务器,使小型农机作业实现信息采集智能化、质量跟踪自动化和故障预诊断。

1 系统研制方案

本系统能够实现小型收割机作业状态(作业时间与作业地理位置)实时监测和主要故障的预判断,监测数据通过GPRS无线数据传输模块进行传送。

1.1 系统的硬件组成

系统硬件由速度传感器、微控制处理器、全球定位系统、时钟模块、液晶显示模块、数据存储模块、无线数据传送模块、电源管理模块、键盘管理模块和故障检测语音模块组成。系统硬件组成,如图1所示。

1)控制核心模块:

采用高档单片机PIC18F4550作为控制核心。整个系统由PIC18F4550单片机控制各硬件的工作,采集传感器相关数据,与GPS模块、GPRS模块进行串口通信,控制LCD12864液晶显示,控制EEPROM进行数据存取等[6]。

2) 全球定位系统GPS模块:

采用GARMIN公司生产的GPS15XL。该产品为12通道的GPS接收机,可同时跟踪多达12颗GPS卫星,从而能够快速定位。此GPS接收机功耗非常小,数据更新率1次/s,优良的性能足够满足定位的灵敏度需求[7]。

3) GPRS模块:

采用昆新公司生产的SIM300,结构小巧,易于在本系统中集成开发,同时内部集成了TCP/IP 协议栈,并且扩展了TCP/IP AT 指令,因此利用该模块开发数据传输设备变得特别简单、方便[8]。

4) LCD模块:

采用深圳绘晶科技有限公司生产的12864液晶显示屏,提供3种传输模式,分别是8位并行模式、4位并行模式和串行模式。本系统采用串行模式,接线简单[9]。

5) 实时时钟模块:

采用低功耗的CMOS 实时时钟/日历芯片PCF8563,系统使用此芯片提供的编程时钟输出、中断输出和掉电检测器功能,所有的地址和数据通过I2C 总线接口串行传递[10]。

6) 速度传感器:

脱粒滚筒转速的检测采用霍尔传感器,具有寿命长、可靠性高、抗污染能力强、体积小、安装方便、价格低廉以及输出数字化等特点,因此既能达到本系统的速度检测需求又能符合本系统单片机处理信号的要求。

7) 语音报警提示模块:

采用“语音识别”专用芯片LD3320。此芯片可以直接实现语音识别/声控/人机对话功能,并且识别的关键词语列表是可以任意动态编辑的。

1.2 系统硬件部分电路图

1) 核心控制模块电路,如图2所示。

2)语音报警模块电路,如图3所示。

3)速度传感器电路,如图4所示。

1.3 系统的软件研制

整个系统全部采用模块化设计,这样有利于提高程序的抗干扰性和可移植性,包含GPS定位信息采集模块、液晶显示模块、存储模块、GPRS无线通信模块和语音报警模块。农机作业信息通过GPRS无线通信的方式发送到相应的服务器上得以方便查看和保存。系统的软件组成框图如图5~图7所示。

2 系统功能实现原理及方法

2.1 农机工作状态检测

系统使用农机电瓶供电。农机启动后,系统自动上电开始工作,时钟开始记录当前工作起始时间,并将此时间信息存储到系统内部EEPROM中,同时实时监测GPS定位信息,将检测的相关经纬度等地理位置信息通过显示屏显示;待农机停止作业,系统自动保存此次作业时间和作业地理位置;农机下次启动作业时,系统再次启动工作,计时开始,自动记录此次作业时间并累加总作业时间,记录并保存。通过监测小型收割机的累计作业时间和作业地理位置,将农机总作业时间和设计使用时间对比,可以间接实现对农机质量的判断;通过将收割机的发动机编码与型号存储在芯片中,自动统计某一区域内作业机械的数量、型号以及使用频率。

2.2 农机故障检测

霍尔传感器安装在小型收割机脱粒部件侧轴位置,脱粒部件启动时,侧轴跟随转动,从而通过霍尔传感器检测小型收割机脱离部件的转速。由于收割对象条件不一,常导致小型收割机出现脱粒仓堵塞现象,导致“停机”,无法正常工作。设脱粒转速低于额定转速80%时,认为有堵转“停机”风险,系统自动发出语音警告,通知操作者,降低收割速度,等待小型收割机内部脱粒部件恢复正常转速,再次语音提示操作者,可以正常收割,依此预测故障的发生。

2.3 远程数据传输与接收

GPRS模块随系统启动而自动工作,根据内部IP协议实现与外部Internet公网的通信,从而实现本系统的监测数据的传输,接收GPRS模块传输的数据利用LABVIEW编写上位机接收软件如图8所示。

3 系统运行效果

为检测系统运行的可靠性和稳定性能,特选用久保田75小型收割机作为试验对象,将系统安装在小型收割机上,进行运行测试。试验测试数据如表1和表2所示。

从表1和表2中可以看出,系统安装在久保田75小型收割机上,能够准确记录作业日期和当天的作业时间,以及累计作业时间。当实际转速低于额定转速80%时,自动预警,达到设计要求。

4 结论

本文研制的小型农机作业信息远程监测系统安装在收割机上,经过试验证明,可以快速、稳定、精确地监测收割机的具体工作状态,记录农机作业时间;可以准确地定位农机的具体作业位置,将相关数据自动保存在系统内部,以便随时查看。与此同时,所有的数据通过GPRS无线传输方式传输到服务器上,通过相应的域名可以方便快捷地查看农机的作业状态和作业地理位置信息等。在收割机可能出现堵转故障时,系统会发出语音提示信号,提醒农机操作者做出相应的处理,并在系统上显示故障信息。本系统集作业时间信息、GPS定位系统、无线传输、故障检测于一体,准确、方便、实用。通过对系统进行相应的技术拓展,利用GPS的定位功能和相应的算法,可以计算出农机作业面积,并实现机收面积自动统计;若加装智能辨识装置,还可以预测产量等。

参考文献

[1]张建军,严森.国内外农业机械化发展现状及趋势[J].农业机械,2010(20):2-4.

[2]王荣本.基于机器视觉的玉米施肥智能机器系统设计概述[J].农业工程学报,2011,17(2):151-153.

[3]张国粱,蔡小娜.精细农业变量作业研究现状[J].中国农机化,2012(1):80-83.

[4]闫兰娟.联合收割机脱离滚筒转速监测系统的研究[D].杨凌:西北农林科技大学,2007.

[5]易立单.联合收割机堵塞故障检测系统研究[D].镇江:江苏大学,2010.

[6]孙安青.PIC系列单片机开发实例精讲[M].北京:中国电力出版社,2011:100-254.

[7]申冬琴,周国平.基于GPS15xL-W塔钟控制系统的研究[J].山西电子技术,2012(2):81-82.

[8]陈滟涛,杨俊起.基于SIM300的短信传输系统的设计与实现[J].计算机工程与科学,2008,30(3):156-158.

[9]彭伟.单片机C语言程序设计实训100例[M].北京:电子工业出版社,2011:102-253.

小型信息管理系统 篇8

【摘 要】信息化作为中小型企业提高自身竞争力的一个重要途径,它的顺利进行是社会经济和科学技术发展的前提和基础。中小型企业信息化是中小型企业运用现代信息技术对信息资源进行开发利用,以提高经营管理的效率和水平,使中小型企业获得更好的效益,不断提高竞争力的过程。本文首先分析了中小型企业信息化建设过程中存在的风险,提出了中小型企业信息化风险的防范对策。

【关键词】中小型企业信息化;风险管理;风险防范

中小型企业信息化的过程实质上就是运用信息技术手段,对中小型企业各种资源、组织机构、工艺流程等进行重新梳理、构造的过程。其目标是使中小型企业各种资源得到更加合理的利用,提高组织效率,从而提高中小型企业的市场竞争力。然而,中小型企业信息化进程中不可避免的存在着风险,对于信息化过程中存在的各种风险,中小型企业应该采取正确态度认识和识别风险,同时采取有效手段控制和降低风险。高新技术中小型企业作为国民经济中较早进行信息化的行业,应充分发挥自身知识密集、技术密集的优势,对信息化风险加以控制。

1.中小型企业信息化建设过程中存在的风险

中小型企业信息化的风险集中体现在以下方面:

1.1项目规划失误风险

目前,许多中小型企业信息化建设的效果并不理想,有些甚至中途夭折,造成了巨大的损失。究其原因,主要是事前缺乏规划造成的。项目规划失误主要表现为信息系统建设目标、约束、总体结构不清,信息战略错误;立项时切入点不准确,定位不正确,缺乏科学的信息化建设策略,追求功能完整、一步到位,盲目照搬其他中小型企业已经应用成功的建设方案,以致中小型企业现有的管理水平与技术水平无法支持项目实施,造成项目夭折或建成后无法成功运行。中小型企业信息化建设缺乏整体、长远的规划是信息化建设过程中最应该引起人们重视的问题,也是最大的风险所在。

1.2软件开发商风险

我国大多数中小型企业由于缺乏信息化人才,在实施信息化过程中所使用的软件大都是交由专业的计算机软件开发商开发或选择与专业软件公司合作开发的,软件开发商成为影响信息化工程成败的重要因素。软件商的实施能力差以及软件的选型不当是导致信息化项目失败最直接的原因。目前,信息化软件市场良莠不齐,一些实力不强的软件公司迫于竞争压力,往往以很低的价格承揽中小型企业的信息化工程,而在实际操作中常通过模糊合同条款和技术要求、不进行个性化开发等方法来应付,结果中小型企业不但不能实现信息化建设目标,反而带来较大的负面影响。

1.3中小型企业员工风险

中小型企业员工风险主要体现在两个方面:一是决策层和各级员工对信息化建设存在消极态度。决策层信心不足会直接影响信息化项目的资金和人力投入,一些中小型企业信息化工程半途夭折的直接因素就是领导的态度发生了变化。由于信息化要进行中小型企业业务流程重组,人员裁减与岗位调整必然涉及部分员工的切身利益,这部分人员就会对信息化建设抱消极抵触的态度甚至故意不予配合,使信息化难以推行。二是信息管理人员流失。从系统开发到实施都需要中小型企业有自己的信息技术人员,他们是信息化中软件开发商和中小型企业内部人员的纽带和桥梁。由于历史的原因,我国大多数中小型企业都把信息技术人员看作一般技术人员,对信息管理人员没有明确的定位,加之信息技术人才的社会平均薪酬较高,使得这类人才流动频繁。不少中小型企业通过信息化培养出一批既懂业务、会管理又熟悉管理软件的人才,但由于没有相应的激励机制,使得这部分人才频频流失,从而极大地影响了中小型企业信息化的有效实施。

2.中小型企业信息化风险的防范对策

中小型企业信息化的整体推进过程中,会不可避免地遇到风险问题,它的产生会令中小型企业蒙受巨大的灾难和损失,应该重视信息化风险问题的存并做好充分的防范对策。

2.1信息化要以中小型企业需求为导向,明确信息化的战略规划

从中小型企业的经营战略、体制、技术、管理、人力资源、行业环境等方面,对中小型企业进行全面的自我诊断,确定本中小型企业信息化建设的关键需求,并确立明确的目标。中小型企业处在不同的行业,不同的发展阶段和其规模的大小,对信息化的需求就不尽相同。中小型企业信息化包括四个方面的内容,分别是生产作业层的信息化、管理办公层的信息化、战略决策层的信息化、协作商务层的信息化,其中,前三者则是基于中小型企业内部的,协作商务层是基于中小型企业与外部联系的。中小型企业在进行信息化规划时,对信息化的建设应该做出先后安排,先解决中小型企业的瓶颈问题。原则上,信息化应该自上而下,由里到外,因为这样数据才取自于源头,真实、有效。

2.2软件开发商风险的防范

在选择开发商之前,应对由于开发商而产生的各种可能存在的风险进行分析。要参照软件过程能力成熟度模型对软件开发商本身的质量水平进行评价,考虑软件中小型企业是否熟悉本中小型企业所属行业的基本知识,是否开发过类似的系统、开发的质量如何,其服务能否满足中小型企业的需要,软件开发商的持续发展能力如何。通过这些方面的分析,确保信息系统能高质量地满足中小型企业需求,解决中小型企业信息系统持续发展的后顾之忧,避免由于软件开发商带来的信息系统质量风险、服务风险及升级换代风险。

2.3提高中小型企业员工对信息化的认识,主动适应管理环境的变化

中小型企业从上至下对于信息化的认识上的缺失和偏差,是信息化建设中关键的风险和阻碍。信息化不光是技术上的、硬件上的,更多是软件和管理层次的,信息技术可以促进中小型企业经营管理技术的变革,促进中小型企业管理的创新。中小型企业在信息化推进的进程中来自管理观念、工作习惯、利益分配、中小型企业文化等方面的脱胎换骨的变化,对习惯于传统管理方式的领导和员工造成强烈的冲击和反差,如果不主动接受、适应并调整,会出现管理混乱,效益低下,使信息化流于形式。中小型企业要努力提高全体员工对中小型企业信息化管理的认识,要学会适应管理环境的新变化,打破原有的、已固化的思维方式,在思想上首先接纳信息化的管理模式,并改变自己的行为方式,通过科学的信息化管理工具,使中小型企业的经营和管理水平上一个台阶。

3.结束语

中小型企业的信息化建设,伴随着管理模式的深刻变革,是一个渐进的、动态的增效过程,风险与收益始终伴随着中小型企业。只有充分学习和加强认识,准确识别风险的来源,通过采取有效的风险防范措施,最大限度的降低风险,发挥系统的整体效益,才能促进中小型企业信息化的目标实现。

【参考文献】

[1]陈亮,王燕. 中小型企业信息化实施过程中的风险及其防范[J].现代情报,2006(09).

上一篇:1月工作计划下一篇:修建鱼塘施工方案