當前位置:成語大全網 - 新華字典 - 現代管理信息系統的實例

現代管理信息系統的實例

1. 管理信息系統綜述

1.1 概述

管理信息系統(Management Information System,簡稱MIS)是壹個由管理人員和計算機組成的用以進行信息的收集、傳輸、加工、存儲、維護和使用的系統。它是壹門綜合了管理科學,系統理論,計算機科學的系統性邊緣科學。

管理信息系統的物理組成:

(1) 計算機硬件系統:包括主機、外部存儲器、輸入輸出設備等。

(2) 計算機軟件系統:包括系統軟件和應用軟件兩大部分。

(3) 通信系統:包括線路等通信設施和與計算機網絡、數據通信有關的軟件等。

(4) 工作人員:包括系統分析員、程序設計員、維護人員、管理員、操作人員等。

1.2 管理信息系統的發展

管理信息系統通過對企業當前運行的數據進行處理來獲得有關信息,以控制企業的行為;利用過去和現在的數據及相應的模型,對未來的發展進行預測;能從全局目標出發,對企業的管理決策活動予以輔助。

1.3 目前我國人事管理的現狀

我國的計算機應用於企業管理,只是在70年代末期以後才逐漸開展起來的。目前,計算機輔助管理已在我國的各行各業得到了廣泛地應用,但總的來說,計算機在我國管理中的應用,還處於初級階段,盡管近兩年發展較快,但還需要不斷地探索和研究。尤其是計算機輔助人事管理僅是近幾年才在我國得到普及和發展,而在許多發達國家計算機輔助人事管理已十分普及,因此對這方面的研究是必要的,它將推動我國企業的發展和人事管理信息處理的現代化。

1.4 人事管理信息系統建設的好處

科技是第壹生產力,離開了科學技術的企業是不會長遠發展的,科技的載體是人,沒有人也說無所謂科學技術,因此人力資源的開發和管理是十分重要的。隨著時代的發展,人才在我國各行各業中的地位日趨重要,各類人才肩負著企業發展的重任,所以人事管理的好壞,決定著壹個企業的興衰成敗,因此,開發人事管理信息系統對企業的管理及人才素質的提高具有重大的社會意義,具體到某壹企業,可以提高該企業管理的現代化水平,提高人事管理的工作效率。

1、改變了工作方式,提高了工作效率

2、提高了經濟效益

3、強化了企業的科學管理

1.5 開發管理信息系統的幾點建議

開發系統不必貪大求全,力爭簡單實用。應從大處著眼,小處著手,循序漸進,逐步完善。對開發過程中的各種文檔應當註意保存。

2. 開發方法

2.1系統開發方法概述

建立壹個管理信息系統,是壹項復雜的軟件工程的實施。近30多年來,軟件工程發展成為新科學,至今已經成為IT產業的重要支柱。壹開始,人們往往使用手工作坊式的軟件開發方法,靠個人的力量編寫各種小型程序;但是隨著計算機硬件技術的飛速發展,計算機軟件在各個領域中的作用日益突出,那種多年來被人們沿用的手工作坊式的開發方法,已經在軟件產品的質量、成本及開發時間等方面無法滿足需求。

2.2 結構化生命周期法簡介

結構化生命周期法是壹種傳統的管理信息系統開發方法,其基本思想是把整個系統開發過程分成若幹個階段,每個階段進行若幹活動,每項活動應用壹系列標準、規範、方法和技術,完成壹個或多個任務,形成符合給定規範的產品。

2.3 快速原型法簡介

快速原型法是80年代發展起來的,旨在縮短開發周期,提高開發效率和用戶對系統的滿意程度。其基本思想是在系統開發的初期,盡快構造出系統的原型,使用戶能及早地運行這個系統原型,通過使用它、熟悉它,受到啟發並取得經驗,然後對系統的目標和功能提出更精確、具體的要求,研制人員據此逐漸修改和完善原型,使它滿足用戶的需求,最後完成系統的開發。該方法大大提高了系統開發效率,彌補了結構化生命周期法開發時間長的缺陷。

2.4 本系統開發方法的選擇

基於以上開發方法的優劣和本系統的實際情況,本系統總體上采用結構化生命周期法進行系統規則、系統分析和系統設計,但在系統實施階段采用原型法。

3. 開發平臺和工具

3.1開發平臺的選擇

考慮到本系統的性能要求,和現有的條件,我們選擇了WINDOWSXP中文版作為開發、測試和運行的平臺。因為WINDOWS操作系統是目前應用最廣的操作系統,它以全新的圖形界面,簡單快捷的操作方式,支持多媒體功能等特點而成為軟件發展的流行趨勢,選用它作為開發平臺,易於功能的擴展和軟件升級。

3.2 開發工具的選擇

針對目前世界上流行的大量軟件和開發工具,經過認真分析其優缺點,結合計量器具管理系統的需要和目前的硬件環境,我們選用微軟WINDOWS平臺下的Visual FoxPro 6.0(簡寫為VF6.0)作為軟件開發工具。

3.2.1 開發語言介紹

現在,市場上可以選購的應用開發產品很多,流行的也有數十種。目前在我國市場上最為流行、使用最多、最為先進的可用作做作企業級開發工具的產品有:

Microsoft公司的Visual FoxPro

4.系統規劃和分析

系統規劃,應根據組織的目標和發展戰略以及管理信息系統建設的客觀規律,並考慮到組織面臨的內外部環境,科學地制定管理信息系統的發展戰略和總體方案,合理安排系統建設的進程;它是管理信息系統(MIS)生命周期的第壹個階段,是MIS的概念形成時期,這壹階段的主要目標,就是制定出MIS的長期發展方案,決定MIS在整個生命周期內的發展方向、規模和發展進程。它的主要任務是:制定MIS的發展戰略、確定組織的主要信息需求,形成MIS的總體方案、制定系統建設的資源分配計劃。

4.1 系統的可行性分析

可行性分析是系統分析階段的第二項活動,可行性分析能使新系統達到以最小的開發成本取得最佳的經濟效益。可行性分析的目的,是根據開發管理信息系統的請求,通過初步調查,對要開發的管理信息系統從技術上、經濟上、資源上和管理上進行是否可行的研究分析。這是壹項保證資源合理使用、避免失誤和浪費的重要工作。

1、經濟上的可行性。

2、技術上的可行性。

3、資源上的可行性。

4、管理上的可行性。

4.2 系統的詳細調查

系統的詳細調查目標是在可行性分析的基礎上進壹步對原有系統進行全面、深入的調查和分析,弄清原有管理信息系統的運行狀況,發現其薄弱環節,找出要解決問題的實質,確保新系統比原系統更加有效、可靠。具體內容包括:管理業務狀況的調查分析、數據流程的調查分析。

詳細調查之後,繪制出人事管理子系統的業務流程圖,如下圖:

查詢要求

查詢結果

用戶設置 統計要求

表單維護 統計結果

4.3 系統邏輯模型的提出

為了實現管理信息系統的計算機化,僅僅用業務流程圖形象地描述信息的流動和存儲還遠遠不夠,還要進壹步調查分析舍去物質流,抽象出信息流,繪制出數據流程圖,並對各種數據的屬性和各項處理功能進行詳細分析。系統分析的主要成果是系統的邏輯模型。本系統主要是以數據流圖、數據字典為主要描述工具來勾畫系統的概貌。

5.3.1 數據流圖(DFD)

數據流圖(Data Flow Diagram),是描述系統邏輯模型的主要工具之壹,它是在對系統的業務流程圖進行分析的基礎上用少數幾種符號綜合地反映出信息在系統中的流動、存儲和處理等情況,並能將信息處理功能和彼此之間的聯系,自上而下,逐層分解,從邏輯上精確地描述出系統應具有的數據加工功能、數據輸入輸出、數據存儲、數據來源和去向等項目。

1、計量器具管理子系統的關聯圖如下:

各單位 F1 F2

人事管理 部門 F3

職工 F4

註:F1基本信息表; F2信息管理; F3 招聘人員、職員人事檔案; F4 人員信息管理

4.3.2 數據字典(DD)

數據字典(Data Dictionary),是數據流圖(DFD)上所有成分的定義和解釋的文字集合。它是系統分析階段的重要文檔,它的作用是將數據流圖中全部數據流及其組成部分的數據元素、數據存儲、數據加工外部項等,通過數據字典描述清楚,以便於以後系統設計時使用。

5. 系統設計

管理信息系統設計階段的主要目的是將系統分析階段所提出的反映了用戶信息需求的系統邏輯方案轉換成可以實施的基於計算機與通信系統的物理(技術)方案。

5.1 系統設計的依據

1、系統分析的成果

2、現行技術

3、現行信息管理和信息技術的標準、規範和有關法律制度

4、用戶需求

5、系統運行環境

5.2 系統總體結構設計

總體流程圖如下:

按照結構化的系統設計方法,分析企業人事管理系統的總體流程圖如下:

5.3 系統的詳細設計

5.3.1 代碼設計

代碼,就是用來表征客觀事物的實體類別,以及屬性的壹個或壹組易於計算機識別和處理的特定符號或記號。它的作用是描述對象狀態,便於統計和檢索對象。

代碼設計的原則:適應計算機處理、簡單明了、具有可擴充性、系統性、便於識別和記憶等。

本系統對所有數據庫表中的主碼和外來碼均采用“漢字名稱”作為代碼。

5.3.2 數據庫設計

數據庫設計是要在壹個給定的應用環境(DBMS)中,通過合理的邏輯設計和有效的物理設計,構造較優的數據庫模式、子模式,建立數據庫和設計應用程序,滿足用戶的各種信息需求。

基於以上設計原則,本系統中相關數據庫(人事管理)包括以下幾個表現將表結構設計舉例如下:

jbxx表

jyjl表

grjl表

gwbd表

jc表

ltdj表

ypxx表

lqqk表

pxap表

pxqk表

數據庫的安全性、完整性、並發控制和恢復

信息數據是企業中非常重要的資源,因此保證數據庫的安全可靠、正確有效是非常重要的問題。壹般的數據庫管理系統(DBMS)都有提供了壹定的數據保護功能。數據庫保護也稱為數據控制,主要包括數據的安全性、完整性、並發控制和數據庫的恢復等。

(1)數據庫的安全性

數據庫的安全性是指保護數據庫以防止不合法的使用所造成的數據泄露、更改或破壞。由於數據庫系統中存放著大量的數據,且為許多用戶所***享,因此安全性問題是必須首先要解決的。壹般計算機系統中的安全措施是按照“用戶標識和鑒別”、“DBMS存取控制”、“OS級安全控制”、“DB密碼存儲”來壹級壹級設置的。

在現在流行的數據庫系統中壹般都提供以下兩種控制:用戶標識和鑒別、數據存取控制。

(2)數據完整性

為了保證數據庫數據的正確性和相容性,數據庫管理系統(DBMS)都提供了壹種機制來檢查數據庫中的數據,看它是否滿足語義的規定條件,DBMS稱這種機制為“數據完整性檢查”。壹般的DBMS中是通過完整性約束和數據庫觸發器來實現這壹機制的。

(3)並發控制

在多用戶數據庫環境中,多個用戶程序可並行存取數據庫中的數據,為了以正確的方式調度該並發操作,避免造成“丟失修改”、“不能重讀”、“讀臟數據”等不壹致的情況,DBMS引入了“並發控制”這壹機制。

並發控制的主要方法是采用封鎖機制,壹般采用兩種封鎖機制:***享機制和排它機制來實現。

(4)數據庫後備與恢復

主要使用轉儲、日誌等方法進行數據庫的恢復。

5.3.3 用戶界面設計

用戶界面是指軟件系統與用戶之間交互的接口,通常包括輸出,輸入,人機對話的界面與方式等。由於本系統的最終用戶是那些對計算機技術並不算很精通的管理人員,因此本系統采用了基於菜單選擇,用戶名與密碼的填寫登陸和頁框、按鈕及彈出表單等友好的用戶界面交互方式。

系統安全性驗證用戶界面設計

用戶登錄窗口界面是用戶看到的第壹幅畫面,也是進入系統之前必須經過的壹道“關口”。因此,簡潔、實用、友好、美觀、安全是設計時應當考慮到的風格。

用戶登錄本系統,登錄畫面為:

系統主畫面屏幕區域設計

進行系統的主畫面屏幕區域設計時,是將整個屏幕劃分為三個區域,如下圖所示:

主 菜 單 區

工 作 區

狀 態 信 息 區

在屏幕的最上方是主菜單區,顯示本系統的功能主菜單。用戶可以有鼠標左鍵來選擇相應的菜單,也可以用快捷鍵進行操作,然後用同樣的方法在相應菜單下拉出該項的二級菜單(如果有的話),如果還有三級菜單,用戶可在二級菜單選擇相應的功能項,系統會自動彈出三級菜單。

當通過菜單選擇了所要進行的工作以後,系統進入相應的業務處理功能,這時業務處理活動在屏幕中間區域即工作區進行。在整個業務處理過程中,主菜單區始終存在以使用戶明確當前正在進行的處理,當用戶為業務處理完畢後,系統返回主菜單。

5.3.4處理過程設計

處理過程設計要根據模塊劃分以及結構化設計的基本原則,對每壹程序處理模塊中的詳細處理過程進行設計。常用的設計工具包括程序流程圖、過程化設計語言、判定表、判定樹等。

6. 系統的運行

管理信息系統在完成系統實施、投入正常運行之後,就進入了系統運行與維護階段。

6.1 系統的配置

1、硬件配置要求:

CPU:PII200以上。

內存:32MB以上。

硬盤:2.1GB以上(可用空間最好在160MB以上)。

打印機:推薦EPSON LQ-1600KII

2、軟件配置要求:

WINDOWS95/98/2000/XP中文版操作系統。

6.2 系統的運行

本系統運行:首先啟動WindowsXP,將本系統拷貝到硬盤相應地目錄下,運行“企業人事管理.EXE”即可。

本系統的主要菜單功能簡介如下:

(1)系統管理:用戶名輸入,修改密碼,退出系統等。

(2)人員信息管理:包括職員基本信息、職員教育經歷、職員個人簡歷、職員崗位變動、職員獎懲登記、職員離退休登記。

(3)招聘信息管理:包括招聘人員基本信息、應聘人員錄取情況。

(4) 培訓信息管理:各部門培訓安排、員工培訓情況信息。

下面簡要介紹壹下各種功能源碼實現:

用戶登陸:

確定進入系統:command2_click()

i=i+1

if thisform.text2.value=123456

keyb'{CTRL+F4}'

modi wind screen titl'人力資源管理系統'

do form rsgl\renshi

else

if i<3

messagebox(密碼錯,請重新輸入!)

thisform.text2.value=

thisform.text2.setfocus

else

messagebox(密碼錯,禁止進入系統!)

thisform.release

endif

endif

do form rsgl\renshi

退出系統:

command1_click()

YN=MESSAGEBOX(確定退出系統,4+32,用戶登錄)

IF YN==6

CLEAR EVENTS

QUIT

ENDIF

進入人事管理系統界面:

人員信息管理:page1:

職員基本信息:command1_click()

do form rsgl\jibenxinxi

職員教育經歷:command2_click()

do form rsgl\jiaoyujingli

職員個人簡歷:command3_click()

do form rsgl\zhiyuangerenjianli

職員崗位變動:command4_click()

do form rsgl\zhiyuangangweibiandong

職員獎懲登記:command5_click()

do form rsgl\zhiyuanjiangchengdengji

職員離退休登記:command6_click()

do form rsgl\zhiyuanlituixiudengji

招聘信息管理:page2:

招聘人員基本信息:command1_click()

do form rsgl\zhaopinrenyuanjibenxinxi

應聘人員錄取情況:command2_click()

do form rsgl\yingpinrenyuanluquqingkuang

培訓信息管理:page3:

各部門培訓安排:command1_click()

do form rsgl\gebumenpeixunanpai

員工培訓情況信息:command2_click()

do form rsgl\yuangongpeixunqingkuangxinxi

退出:

thisform.release

點擊按鈕分別彈出各表單:

增加新記錄:command1_click()

thisform.commandgroup1.enabled=.F.

thisform.command2.enabled=.F.

thisform.command3.enabled=.F.

thisform.command4.enabled=.T.

if thisform.command1.caption='增加新記錄'

thisform.txt職員編號.enabled=.T.

thisform.txt姓名.enabled=.T.

thisform.txt性別.enabled=.T.

thisform.txt出生日期.enabled=.T.

thisform.txt民族.enabled=.T.

thisform.txt文化程度.enabled=.T.

thisform.txt畢業學校.enabled=.T.

thisform.txt政治面貌.enabled=.T.

thisform.txt家庭地址.enabled=.T.

thisform.txt家庭電話.enabled=.T.

append blank

thisform.command1.caption='增加確認'

thisform.refresh

thisform.txt職員編號.setfocus

else

get職員編號=alltrim(thisform.txt職員編號.value)

get姓名=alltrim(thisform.txt姓名.value)

get性別=alltrim(thisform.txt性別.value)

get出生日期=alltrim(thisform.txt出生日期.value)

get民族=alltrim(thisform.txt民族.value)

get文化程度=alltrim(thisform.txt文化程度.value)

get畢業學校=alltrim(thisform.txt畢業學校.value)

get政治面貌=alltrim(thisform.txt政治面貌.value)

get家庭地址=alltrim(thisform.txt家庭地址.value)

get家庭電話=alltrim(thisform.txt家庭電話.value)

if empty(get職員編號) or empty(get姓名) or empty(get性別) or empty(get出生日期) or empty(get民族) or empty(get文化程度) or empty(get畢業學校) or empty(get政治面貌) or empty(get家庭地址) or empty(get家庭電話)

messagebox(資料不足,48,錯誤)

else

thisform.command1.caption='增加新記錄'

tableupdate(.t.)

thisform.txt職員編號.enabled=.F.

thisform.txt姓名.enabled=.F.

thisform.txt性別.enabled=.F.

thisform.txt出生日期.enabled=.F.

thisform.txt民族.enabled=.F.

thisform.txt文化程度.enabled=.F.

thisform.txt畢業學校.enabled=.F.

thisform.txt政治面貌.enabled=.F.

thisform.txt家庭地址.enabled=.F.

thisform.txt家庭電話.enabled=.F.

thisform.commandgroup1.enabled=.T.

thisform.command2.enabled=.T.

thisform.command3.enabled=.T.

thisform.command4.enabled=.F.

endif

endif

修改記錄:command2_click()

thisform.command1.enabled=.F.

thisform.command3.enabled=.F.

thisform.command4.enabled=.T.

thisform.commandgroup1.enabled=.F.

if thisform.command2.caption='修改記錄'

thisform.txt職員編號.enabled=.T.

thisform.txt姓名.enabled=.T.

thisform.txt性別.enabled=.T.

thisform.txt出生日期.enabled=.T.

thisform.txt民族.enabled=.T.

thisform.txt文化程度.enabled=.T.

thisform.txt畢業學校.enabled=.T.

thisform.txt政治面貌.enabled=.T.

thisform.txt家庭地址.enabled=.T.

thisform.txt家庭電話.enabled=.T.

thisform.command2.caption='修改確認'

thisform.refresh

thisform.txt職員編號.setfocus

else

thisform.command2.caption='修改記錄'

tableupdate(.t.)

thisform.txt職員編號.enabled=.F.

thisform.txt姓名.enabled=.F.

thisform.txt性別.enabled=.F.

thisform.txt出生日期.enabled=.F.

thisform.txt民族.enabled=.F.

thisform.txt文化程度.enabled=.F.

thisform.txt畢業學校.enabled=.F.

thisform.txt政治面貌.enabled=.F.

thisform.txt家庭地址.enabled=.F.

thisform.txt家庭電話.enabled=.F.

thisform.command1.enabled=.T.

thisform.command3.enabled=.T.

thisform.command4.enabled=.F.

thisform.commandgroup1.enabled=.T.

endif

刪除記錄:command3_click()

get職員編號=alltrim(thisform.txt職員編號.value)

thisform.txt職員編號.controlsource=''

thisform.txt姓名.controlsource=''

thisform.txt性別.controlsource=''

thisform.txt出生日期.controlsource=''

thisform.txt民族.controlsource=''

thisform.txt文化程度.controlsource=''

thisform.txt畢業學校.controlsource=''

thisform.txt政治面貌.controlsource=''

thisform.txt家庭地址.controlsource=''

thisform.txt家庭電話.controlsource=''

use jbxx exclusive

set order to 職員編號

seek get職員編號

delete

pack

thisform.txt職員編號.controlsource='jbxx.職員編號'

thisform.txt姓名.controlsource='jbxx.姓名'

thisform.txt性別.controlsource='jbxx.性別'

thisform.txt出生日期.controlsource='jbxx.出生日期'

thisform.txt民族.controlsource='jbxx.民族'

thisform.txt文化程度.controlsource='jbxx.文化程度'

thisform.txt畢業學校.controlsource='jbxx.畢業學校'

thisform.txt政治面貌.controlsource='jbxx.政治面貌'

thisform.txt家庭地址.controlsource='jbxx.家庭地址'

thisform.txt家庭電話.controlsource='jbxx.家庭電話'

thisform.refresh

thisform.txt職員編號.enabled=.F.

thisform.txt姓名.enabled=.F.

thisform.txt性別.enabled=.F.

thisform.txt出生日期.enabled=.F.

thisform.txt民族.enabled=.F.

thisform.txt文化程度.enabled=.F.

thisform.txt畢業學校.enabled=.F.

thisform.txt政治面貌.enabled=.F.

thisform.txt家庭地址.enabled=.F.

thisform.txt家庭電話.enabled=.F.

取消操作:command4_click()

if thisform.command1.caption='增加確認'

thisform.command1.caption='增加新記錄'

thisform.command2.enabled=.T.

thisform.command3.enabled=.T.

thisform.commandgroup1.enabled=.T.

tablerevert(.f.)

endif

if thisform.command2.caption='修改確認'

thisform.command2.caption='修改記錄'

thisform.command1.enabled=.T.

thisform.command3.enabled=.T.

tablerevert(.f.)

endif

thisform.txt職員編號.enabled=.F.

thisform.txt姓名.enabled=.F.

thisform.txt性別.enabled=.F.

thisform.txt出生日期.enabled=.F.

thisform.txt民族.enabled=.F.

thisform.txt文化程度.enabled=.F.

thisform.txt畢業學校.enabled=.F.

thisform.txt政治面貌.enabled=.F.

thisform.txt家庭地址.enabled=.F.

thisform.txt家庭電話.enabled=.F.

thisform.commandgroup1.enabled=.T.

thisform.command4.enabled=.F.

thisform.refresh

退出:command5_click()

thisform.release

命令按鈕組commandgroup1:

上頁:command1_click()

skip -1

if bof()

messagebox(已是第壹個記錄,48,信息窗口)

this.parent.command1.enabled=.f.

this.parent.command3.enabled=.f.

skip

else

this.parent.command1.enabled=.t.

this.parent.command3.enabled=.t.

endif

this.parent.command2.enabled=.t.

this.parent.command4.enabled=.t.

thisform.refresh

下頁:command2_click()

skip

if eof()

messagebox(已是最後壹條記錄,48,信息窗口)

skip -1

this.parent.command2.enabled=.f.

this.parent.command4.enabled=.f.

else

this.parent.command2.enabled=.t.

this.parent.command4.enabled=.t.

endif

this.parent.command1.enabled=.t.

this.parent.command3.enabled=.t.

thisform.refresh

第壹頁:command3_click()

goto top

this.parent.command1.enabled=.f.

this.parent.command2.enabled=.t.

this.parent.command4.enabled=.t.

thisform.refresh

最後壹頁:command4_click()

goto bottom

this.parent.command2.enabled=.f.

this.parent.command1.enabled=.t.

this.parent.command3.enabled=.t.

thisform.refresh

其它幾個表單的程序也依次這樣列舉出來.故不重復描述.