第一篇:2014年系統(tǒng)辨識大作業(yè)
系統(tǒng)辨識大作業(yè)
1、大作業(yè)的具體要求:
(1)要求簡單介紹和對比分析本課程所學過的辨識方法,闡述系統(tǒng)辨識的基本原理
和要素。
(2)針對PPT中討論的辨識方法的原理和相關特性進行詳細闡述,選用辨識對象,根據(jù)欲辨識對象的性能和特點,從輸入信號、數(shù)據(jù)模型、辨識算法等方面設計辨識方案,闡明理由。
(3)仿真驗證辨識方案的正確性和可行性,建議與其他方法進行對比分析,仿真驗
證你所采用方法的優(yōu)越性。
(4)要求編制程序,并附上程序清單;
(5)仿真結果以數(shù)據(jù)和曲線的形式表示,并對每次算法的仿真結果進行分析,得出
結論;
(6)用辨識結果來預報系統(tǒng)輸出誤差e(k)=y(k)-(k),并畫出e(101)-e(400)的曲線圖。
(7)圖表必須規(guī)范,按照研究生畢業(yè)論文或你們所參考的期刊的小論文的格式,但可以
不分欄!
(8)所有的公式必須用公式編輯器編寫并編號,不能拷貝。論文所有正文中中文字都用宋體小四,各小結中文小標題用小四黑體,正文中的英文和數(shù)字用小四Time New Roman;
(9)需要在封面上署名姓名、學號和題目;
(10)參考文獻不得低于5篇,求均必需在論文中引用
(11)所寫論文必須完整、從引言、問題的提出(辨識的對象)、該類系統(tǒng)所適用的辨識方法、辨識方案的設計(輸入信號、數(shù)據(jù)模型、辨識算法)、實驗結果、結論。
2、評分標準:到課率占20%,PPT占15%,格式和卷面占15%;內(nèi)容占50%
6、請與6月26日上午將大作業(yè)紙質(zhì)稿交民主樓306,并將電子稿件發(fā)到郵箱hua_han@126.com
祝一切順利!假期愉快!
第二篇:作業(yè)過程風險辨識方法
作業(yè)過程風險辨識方法
風險(R)=可能性(L)X后果嚴重性
(S)
危害事故發(fā)生的可能性(L)
等級
偏差發(fā)生頻率
管理措施(包括執(zhí)行情況等)
員工勝任程度(意識、技能、經(jīng)驗等)
設備設施現(xiàn)狀
安全設施(監(jiān)測、報警、聯(lián)鎖、補救措施等)
在正常情況下經(jīng)常發(fā)生
從來沒有檢查
沒有操作規(guī)程
不勝任(無任何培訓、無任何經(jīng)驗、無上崗資格證)
帶病運行,不符合國家、行業(yè)規(guī)范
無任何措施,或有措施從未使用
常發(fā)生或在預期情況下發(fā)生
偶爾檢查或大檢查
有操作規(guī)程,但只是偶爾執(zhí)行(或操作規(guī)程內(nèi)容不完善
不夠勝任(有上崗資格證,但沒有接受有效培訓)
超期服役、經(jīng)常出故障,不符合公司規(guī)定
措施有,但只是一部分,尚不完善
過去曾經(jīng)發(fā)生、或在異常情況下發(fā)生
月檢
有操作規(guī)程,只是部分執(zhí)行
基本勝任(有上崗證,有培訓,但經(jīng)驗不足,多次出差錯)
過期未檢、偶爾出故障
措施有,但經(jīng)常沒有有效使用
過去偶爾發(fā)生
周檢
有操作規(guī)程、但偶爾不執(zhí)行
勝任,但偶爾出差錯
運行后期,可能出故障
有,偶爾失去作用或出差錯
極不可能發(fā)生
日檢
有操作規(guī)程,而且嚴格執(zhí)行
高度勝任(培訓充分,經(jīng)驗豐富,意識強)
運行良好
有效防范控制措施
第三篇:數(shù)據(jù)庫大作業(yè)-實驗教學管理系統(tǒng).
《數(shù)據(jù)庫原理》課程大作業(yè)數(shù)據(jù)庫設計與應用開發(fā) 課題名稱:實驗教學管理系統(tǒng) 學號: 姓名:王** 專業(yè)年級:軟件工程10級 成績: 內(nèi)容與要求
1.請結合軟件類專業(yè)課程實驗教學環(huán)節(jié)設計數(shù)據(jù)庫,實現(xiàn)實驗教學的有效管理,具體功能應包括但不限于:(1教師可以根據(jù)不同課程編輯和發(fā)布實驗內(nèi)容;(2學生可以瀏覽實驗內(nèi)容,同時完成作品的提交;(3學生可以在規(guī)定時間內(nèi)填寫、修改和提交實驗報告;(4教師可以通過應用系統(tǒng)批改實驗報告,并提交成績;(5學生可以查詢個人實驗成績;2.給出數(shù)據(jù)庫設計各個階段的詳細設計報告,包括:
(1需求分析(2概念結構設計(3邏輯結構設計(4物理結構設計與實施
3.寫出應用系統(tǒng)的主要功能設計;4.寫出收獲和體會,包括已解決和尚未解決的問題,進一步完善的設想和建議;5.獨自完成作業(yè),有雷同的平分得分;6.也可以自行設計課題。目錄 1 緒論(1 2 應用系統(tǒng)功能設計(2 2.1 業(yè)務操作流程(2 2.2 系統(tǒng)功能設計(2 3 數(shù)據(jù)庫設計(3 3.1 需求分析(3 3.2 概念結構設計(6 3.3 邏輯結構設計(7 3.4 物理結構設計與實施(7 4 結束語(8
4.1 收獲和體會(8 4.2 總結與展望(8 1 緒論
目前,為了提高同學們的動手操作能力,檢驗學生對知識的掌握程度以及知熟練程度,許多實驗課通常會定期給學生安排實驗報告的填寫。
但是,當今的實驗報告通常還使用原始的方法,即老師提前公布實驗內(nèi)容,學生根據(jù)內(nèi)容要求在一定的時間內(nèi)書寫紙質(zhì)的報告,并上交教師進行批改,教師根據(jù)學生的實驗情況給出學生成績并進行存檔,以便后查。但是學生手寫實驗報告時,有些學生字體不整潔,并且書寫的格式還不標準。同時,許多時候,同學們?yōu)榱耸止ぬ顚憣嶒瀳蟾?浪費了大量的時間,這使導致學生的學習效率普遍降低而且教師在批改的時候非常耗時和煩惱的,也會在一定程度上影響學生的成績。
于是擬開發(fā)一款實驗管理系統(tǒng)軟件來統(tǒng)一管理學生的實驗報告是當前多數(shù)學校迫切需要的。
本實驗教學系統(tǒng),運用基本的數(shù)據(jù)庫技術,實現(xiàn)了傳統(tǒng)實驗報告的基本功能,這不僅方便了學生書寫報告和教師批改,節(jié)省紙張,而且還可以更方便的對報告進行存儲和查看,實現(xiàn)實驗教學的有效管理,同時學生的學習效率也會得到提高。2 應用系統(tǒng)功能設計 2.1 業(yè)務操作流程
手工操作的實際操作流程如下:
老師提前公布實驗內(nèi)容,學生根據(jù)內(nèi)容要求在一定的時間內(nèi)書寫紙質(zhì)報告,并上交教師進行批改,教師根據(jù)學生的實驗情況給出學生成績并進行存檔,以便后查。學生可以提出申請進行查看自己的實驗成績。
2.2 系統(tǒng)功能設計
擬開發(fā)的應用系統(tǒng)將實現(xiàn)的主要功能如下:(1教師可以根據(jù)不同課程編輯和發(fā)布實驗內(nèi)容;(2學生可以瀏覽實驗內(nèi)容,同時完成作品的提交;(3學生可以在規(guī)定時間內(nèi)填寫、修改和提交實驗報告;(4教師可以通過應用系統(tǒng)批改實驗報告,并提交成績;(5學生可以查詢個人實驗成績。2 3 數(shù)據(jù)庫設計 3.1 需求分析
該教學管理系統(tǒng)的數(shù)據(jù)流圖如下:
圖3-1 頂層數(shù)據(jù)流圖
圖3-2 該教學管理子系統(tǒng)數(shù)據(jù)流圖 數(shù)據(jù)字典如下: 1.主要的數(shù)據(jù)項
表3-1 數(shù)據(jù)庫的主要的數(shù)據(jù)項
2.數(shù)據(jù)結構
表3-2 數(shù)據(jù)庫的主要的數(shù)據(jù)結構
3.數(shù)據(jù)流
表3-3 數(shù)據(jù)庫的主要的數(shù)流
4.數(shù)據(jù)存儲
表3-4 數(shù)據(jù)庫的主要的數(shù)據(jù)存儲
5.處理過程
表3-5 數(shù)據(jù)庫的主要的處理過程
圖3-3 實驗教學管理系統(tǒng)的全局E-R圖
分析圖3-3,此系統(tǒng)涉及到實體有:課程,教師課程,教師,實驗內(nèi)容,實驗報告,學生。
結合實際情況,根據(jù)E-R圖向關系模型的轉(zhuǎn)化的一般規(guī)則,將實體型轉(zhuǎn)化為關系模式并進行優(yōu)化,關系的碼用下劃線標出,結果如下:
課程(課程號,課程名 教師(教師編號,教師姓名 教師課程(id,教師編號,課程號 學生(學號,姓名,班級
實驗內(nèi)容(id2,實驗序號,id,實驗內(nèi)容,實驗日期 實驗報告(學號,id2,報告內(nèi)容,成績,提交日期 3.4 物理結構設計與實施
圖3-4 實驗教學管理系統(tǒng)數(shù)據(jù)庫中各個表對應的關系圖
實驗教學管理系統(tǒng)數(shù)據(jù)庫設計 學號:******* 姓名:** 4 結束語 4.1 收獲和體會 通過這次數(shù)據(jù)庫的大作業(yè),我對之前學習的有關數(shù)據(jù)庫的知識,以及軟件工程
知識有了新的認識;我對以前的理論知識有了更深層次的理解,真正做到了理論與 實踐的統(tǒng)一;同時,我的認識問題、分析問題、解決問題的能力都有了很大的提高。當然,在完成大作業(yè)的過程中,也遇到了各種的困難,隨后通過老師和同學們 的幫助,最后問題有一一被我解決。當我把這項作業(yè)完成的時候,我真的不敢相信 我竟然可以克服這么多困難。因此,雖然熬了很多的夜,但我得到的不僅僅是專業(yè)知識方面的收獲,更重要 的是學會的如何去解決問題,如何在做項目的過程中與老師交流,與同學交流。所 以,這次大作業(yè)很值!謝謝老師和同學對我的考驗和幫助,謝謝!4.2 總結與展望 本教學試驗管理系實現(xiàn)了要求中所給出的各項功能,和傳統(tǒng)的手動操作相比,大大的提高了老師的工作效率,學生的學習效率。對教師的教學,以及學生的學習帶來了很大的方便。但對于系統(tǒng)本身來說,還存在許多的不足,比如,本系統(tǒng)中學生成績以及學生 提交的實驗報告是在一個關系中的,這對學生查詢成績來說,會大大降低查詢的速 度,帶來的眾多不便;又比如,該系統(tǒng)的觸發(fā)器沒有完善,給學生修改實驗報告帶 來了一些不便。對于這些問題,我會進一步的去學習,去分析,然后不斷的完善。我相信,通 過老師和同學們的幫助,以及我的不懈努力,我的這個系統(tǒng)會越來越方便師生使用,而且我的動手能力也將大大的提升。8
第四篇:吊裝作業(yè)危害辨識(氯堿中心)
關于吊車吊裝作業(yè)安全管控的思考
一、吊裝作業(yè)安全規(guī)定
(一)、《化學品生產(chǎn)單位特殊作業(yè)安全規(guī)范(GB30871-2014)》關于“吊裝作業(yè)”的有關規(guī)定:
1、作業(yè)分級:吊裝作業(yè)按照吊裝重物質(zhì)量 m 不同分為: a)一級吊裝作業(yè):m>100t;
b)二級吊裝作業(yè):40t≤m≤100t;c)三級吊裝作業(yè):m<40t。
2、作業(yè)要求 :
2.1、三級以上的吊裝作業(yè),應編制吊裝作業(yè)方案。吊裝物體質(zhì)量雖不足 40t,但形狀復雜、剛度小、長徑比大、精密貴重,以及在作業(yè)條件特殊的情況下,也應編制 吊裝作業(yè)方案,吊裝作業(yè)方案應經(jīng)審批。
2.2、吊裝現(xiàn)場應設置安全警戒標志,并設專人監(jiān)護,非作業(yè)人員禁止入內(nèi),安全警戒標志應符合 GB2894的規(guī)定。
2.3、不應靠近輸電線路進行吊裝作業(yè)。確需在輸電線路附近作業(yè)時,起重機械的安全距離應大于起重機械的倒塌半徑并符合DL409 的要求;不能滿足時,應停電后再進行作業(yè)。吊裝場所如有含危險物料的設備、管道等時,應制定詳細吊裝方案,并對設備、管道采取有效防護措施,必要時停車,放空物料,置換后進行吊裝作業(yè)。
2.4、大雪、暴雨、大霧及六級以上風時,不應露天作業(yè)。2.5、作業(yè)前,作業(yè)單位應對起重機械、吊具、索具、安全裝置等進行檢查,確保其處于完好狀態(tài)。
2.6、應按規(guī)定負荷進行吊裝,吊具、索具經(jīng)計算選擇使用,不應超負荷吊裝。
2.7、不應利用管道、管架、電桿、機電設備等作吊裝錨點。未經(jīng)土建專業(yè)審查核算,不應將建筑物、構筑物作為錨點。
2.8、起吊前應進行試吊,試吊中檢查全部機具、地錨受力情況,發(fā)現(xiàn)問題應將吊物放回地面,排除故障后重新試吊,確認正常后方可正式吊裝。
2.9、指揮人員應佩戴明顯的標志,并按GB5082規(guī)定的聯(lián)絡信號進行指揮。2.10、起重機械操作人員應遵守如下規(guī)定: a)按指揮人員發(fā)出的指揮信號進行操作;任何人發(fā)出的緊急停車信號均應立即執(zhí)行;吊裝過程中出現(xiàn)故障,應立即向指揮人員報告; b)重物接近或達到額定起重吊裝能力時,應檢查制動器,用低高度、短行程試吊后,再吊起; c)利用兩臺或多臺起重機械吊運同一重物時應保持同步,各臺起重機械所承受的載荷不應超過各自額定起重能力的 80%; d)下放吊物時,不應自由下落(溜);不應利用極限位置限制器停車; e)不應在起重機械工作時對其進行檢修;不應有載荷的情況下調(diào)整起升變幅機 構的制動器; f)停工和休息時,不應將吊物、吊籠、吊具和吊索懸在空中; g)以下情況不應起吊: 1)無法看清場地、吊物,指揮信號不明; 2)起重臂吊鉤或吊物下面有人、吊物上有人或浮置物; 3)重物捆綁、緊固、吊掛不牢,吊掛不平衡,繩打結,繩不齊,斜拉重物,棱角吊物與鋼絲繩之間沒有襯墊; 4)重物質(zhì)量不明、與其他重物相連、埋在地下、與其他物體凍結在一起;
2.11、司索人員應遵守如下規(guī)定: a)聽從指揮人員的指揮,并及時報告險情; b)不應用吊鉤直接纏繞重物及將不同種類或不同規(guī)格的索具混在一起使用; c)吊物捆綁應牢靠,吊點和吊物的重心應在同一垂直線上;起升吊物時應檢查 其連接點是否牢固、可靠;吊運零散件時,應使用專門的吊籃、吊斗等器具,吊籃、吊斗等不應裝滿; d)起吊重物就位時,應與吊物保持一定的安全距離,用拉伸或撐桿、鉤子輔助 其就位; e)起吊重物就位前,不應解開吊裝索具。f)2.10 中與司索工有關的不應起吊的情況,司索工應做相應處理。
2.12、用定型起重機械(例如履帶吊車、輪胎吊車、橋式吊車等)進行吊裝作業(yè)時,除遵守本標準外,還應遵守該定型起重機械的操作規(guī)程。
2.13、作業(yè)完畢應做如下工作: a)將起重臂和吊鉤收放到規(guī)定位置,所有控制手柄均應放到零位,電氣控制的起重機械的電源開關應斷開; b)對在軌道上作業(yè)的吊車,應將吊車停放在指定位置有效錨定; c)吊索、吊具應收回,放置到規(guī)定位置,并對其進行例行檢查。
(二)、超重吊裝“十不吊”:
1、超負荷不吊。
2、歪拉斜吊不吊。
3、指揮信號不明不吊。
4、安全裝置失靈不吊。
5、重物越過人頭不吊。
6、光線陰暗看不清吊物不吊。
7、埋在地下的物件不吊。
8、吊物上站人不吊。
9、捆綁不牢不穩(wěn)不吊。
10、重物邊緣鋒利無防護措施不吊。
二、吊裝作業(yè)過程危害辨識
(一)、防止高空墜落
1.吊裝人員應戴安全帽;高空作業(yè)人員應佩安全帶,穿防滑鞋,帶工具袋。
2.吊裝工作區(qū)應有明顯標志,并設專人警戒,與吊裝無關人員嚴禁人內(nèi)。起重機工作時,起重臂桿旋轉(zhuǎn)半徑范圍內(nèi),嚴禁站人或通過。
3.運輸、吊裝構件時,嚴禁在被運輸、吊裝的構件上站人指揮和放置材料、工具。
4.高空作業(yè)施工人員應站在操作平臺或輕便梯子上工作。吊裝層應設臨時安全防護欄桿或采取其他安全措施。
5.登高用梯子、臨時操作臺應綁扎牢靠;梯子與地面夾角以60—70°為宜,操作臺跳板應鋪平綁扎,嚴禁出現(xiàn)挑頭板。
三、防物體落下傷人
1.高空往地面運輸物件時,應用繩捆好吊下。吊裝時,不得在構件上堆放或懸掛零星物件。零星材料和物件必須用吊籠或鋼絲繩、保險繩捆扎牢固后才能吊運和傳遞,不得隨意拋擲材料物體、工具,防止滑脫傷人或意外事故。
2.構件必須綁扎牢固,起吊點應通過構件的重心位置,吊升時應平穩(wěn),避免振動或擺動。
3.起吊構件時,速度不應太快,不得在高空停留過久,嚴禁猛升猛降,以防構件脫落。
4.構件就位后臨時固定前,不得松鉤、解開吊裝索具。構件固定后,應檢查連接牢固和穩(wěn)定情況,當連接確定安全可靠,才可拆除臨時固定工具和進行下步吊裝。5.風雪天、霜霧天和雨天吊裝應采取必要的防滑措施,夜間作業(yè)應有充分照明。
四、防止起重機傾翻
1.起重機行駛的道路必須平整、堅實、可靠,停放地點必須平坦。
2.起重機不得停放在斜坡道上工作,不允許起重機兩條覆帶或支腿停留部位一高一低或土質(zhì)一硬一軟。
3.起吊構件時,吊索要保持垂直,不得超出起重機回轉(zhuǎn)半徑斜向拖拉,以免超負荷和鋼絲繩滑脫或拉斷繩索而使起重機失穩(wěn)。起吊重型構件時應設牽拉繩。
4.起重機操作時,臂桿提升、下降、回轉(zhuǎn)要平穩(wěn),不得在空中搖晃,同時要盡量避免緊急制動或沖擊振動等現(xiàn)象發(fā)生。未采取可靠的技術措施和未經(jīng)有關技術部門批準,起重機嚴禁超負荷吊裝,以避免加速機械零件的磨損和造成起重機傾翻。
5.起重機應盡量避免滿負荷行駛;在滿負荷或接近滿負荷時,嚴禁同時進行提升與回轉(zhuǎn)(起升與水平轉(zhuǎn)動或起升與行走)兩種動作,以免因道路不平或慣性力等原因引起起重機超負荷而釀成翻車事故。
6.當兩臺吊裝機械同時作業(yè)時,兩機吊鉤所懸吊構件之間應保持5m以上的安全距離,避免發(fā)生碰撞事故。
7.多機抬吊構件時,要根據(jù)起重機的起重能力進行合理的負荷分配(吊重質(zhì)量不得超過多臺起重機所允許起重量總和的75%,每一臺起重機的負荷量不宜超過其安全負荷量的80%)。操作時,必須在統(tǒng)一指揮下,動作協(xié)調(diào),同時升降和移動,并使多臺起重機的吊鉤、滑車組均應基本保持垂直狀態(tài)。各臺起重機的駕駛人員要相互密切配合,防止一臺起重機失重,而使另一臺起重機超載。
8.吊裝時,應有專人負責統(tǒng)一指揮,指揮人員應位于操作人員視力能及的地點,并能清楚地看到吊裝的全過程。起重機駕駛人員必須熟悉信號,并按指揮人員的各種信號進行操作;指揮信號應事先統(tǒng)一規(guī)定,發(fā)出的信號要鮮明、準確。
9.在風力等于或大于六級時,禁止在露天進行起重機移動和吊裝作業(yè)。10.起重機停止工作時,應剎住回轉(zhuǎn)和行走機構,鎖好司機室門。吊鉤上不得懸掛構件,并應升到高處,以免擺動傷人和造成吊車失穩(wěn)。
五、防吊裝結構失穩(wěn)
1.構件吊裝應按規(guī)定的吊裝工藝和程序進行,未經(jīng)計算和采取可靠的技術措施,不得隨意改變或顛倒工藝程序安裝結構構件。
2.構件吊裝就位,應經(jīng)初校和臨時固定或連接可靠后始可卸鉤,最后固定后方可拆除臨時固定工具。高寬比很大的單個構件,未經(jīng)臨時或最后固定組成一穩(wěn)定單元體系前,應設溜繩或斜撐拉(撐)固。
3.構件固定后不得隨意撬動或移動位置,如需重校時,必須回鉤。
六、防止觸電
1.吊裝現(xiàn)場應有專人負責安裝、維護和管理用電線路和設備。2.構件運輸、起重機在電線下進行作業(yè)或在電線旁行駛時,構件或吊桿最高點與電線之間水平或垂直距離應符合安全用電的有關規(guī)定。
3.使用塔式起重機或長吊桿的其他類型起重機及鋼井架,應有避雷防觸電設備,各種用電機械必須有良好的接地或接零,接地電阻不應大于4Ω,并定期進行地極電阻搖測試驗。
第五篇:C++大作業(yè)_職工信息管理系統(tǒng)源代碼
#include
const N=5000;// 定義系統(tǒng)可錄入的職工最大數(shù)值
string Ename[N];long Enum[N];char Esex[N];int Eage[N];
char Emarriage[N];int Edepart[N];int Eposition[N];int Edegree[N];int Eworktime[N];float Epay[N];
class Employee {
public:
string Employeename;
long Employeenum;
char Employeesex;
int Employeeage;
char Employeemarriage;
int Employeedepart;
int Employeeposition;
int Employeedegree;
int Employeeworktime;
float Employeepay;
static long EmployeeMaxNum;
static float EmployeeBasePay;
void NewInfo();
void ShowInfo();
void showall();
void showdepart(int depart);
void showdegree(int degree);
void showage(int min,int max);
void shownum(long number);
void RefreshInfo();
void DeleteInfo();
float Pay(int Employeegrade);
static int MaxNum();};
class DBOperate {
public:
string Employeename;
long Employeenum;
char Employeesex;
int Employeeage;
char Employeemarriage;
int Employeedepart;
int Employeeposition;
int Employeedegree;
int Employeeworktime;
float Employeepay;
static long EmployeeMaxNum;
static float EmployeeBasePay;
void WriteIn(int iflag);
void ReadOut();
void RefreshMaxNum(int iflag);//iflg=1 or-1 or 0 };
long Employee::EmployeeMaxNum = 1000;float Employee::EmployeeBasePay = 1500;
int Employee::MaxNum()//返回系統(tǒng)已經(jīng)存儲的人數(shù)
{
int MN = 0;
ifstream myf;
myf.open(“EmployeeMaxNum.txt”);
myf>>MN;
cout< myf.close(); return MN;} void Employee::NewInfo()//添加新職工函數(shù) { cout<<“新職工姓名: ”; cin>>Employee::Employeename; Employee::Employeenum = EmployeeMaxNum + Employee::MaxNum()+1; cout<<“新職工性別(F為女性,M為男性): ”; cin>>Employee::Employeesex; cout<<“新職工年齡: ”; cin>>Employee::Employeeage; cout<<“新職工婚姻狀況(Y為已婚,N為未婚): ”; cin>>Employee::Employeemarriage; cout<<“新職工學歷,請輸入相應學歷的序號: ”< cout<<“ [1:小學 2:初中 3:高中 4:本科 5:碩士 6:博士] ”; cin>>Employee::Employeedegree; while(Employee::Employeedegree!=1&&Employee::Employeedegree!=2&&Employee::Employeedegree!=3&&Employee::Employeedegree!=4&&Employee::Employeedegree!=5&&Employee::Employeedegree!=6) { cout<<“輸入有誤,請重新輸入:”< cout<<“ [1:小學 2:初中 3:高中 4:本科 5:碩士 6:博士] ”; cin>>Employee::Employeedegree; } cout<<“新職工所在部門,請輸入相應部門的序號:”< cout<<“ [1:董事會 2:銷售部 3:人事部 4:客服中心 5:財務部 6:技術研發(fā)部 7:安全監(jiān)察部] ”; cin>>Employee::Employeedepart; while(Employee::Employeedepart!=1&&Employee::Employeedepart!=2&&Employee::Employeedepart!=3&&Employee::Employeedepart!=4&&Employee::Employeedepart!=5&&Employee::Employeedepart!=6&&Employee::Employeedepart!=7) { cout<<“輸入有誤,請重新輸入:”< cout<<“ [1:董事會 2:銷售部 3:人事部 4:客服中心 5:財務部 6:技術研發(fā)部 7:安全監(jiān)察部] ”; cin>>Employee::Employeedepart; } cout<<“新職工職位, 請輸入相應職位的序號: ”< cout<<“ [1:臨時職工 2: 正式職工 3:部門經(jīng)理 4:主任 5:董事長] ”; cin>>Employee::Employeeposition; while(Employee::Employeeposition!=1&&Employee::Employeeposition!=2&&Employee::Employeeposition!=3&&Employee::Employeeposition!=4&&Employee::Employeeposition!=5) { cout<<“輸入有誤,請重新輸入:”< cout<<“ [1:臨時職員 2: 正式職員 3:部門經(jīng)理 4:主任 5:董事長] ”; cin>>Employee::Employeeposition; } cout<<“新職工的工作時長(不需要輸入單位): ”; cin>>Employee::Employeeworktime; Employee::Employeepay = Employee::Pay(Employee::Employeeposition); DBOperate dbo; dbo.ReadOut(); int MaxNum = Employee::MaxNum(); Enum[MaxNum] = Employee::Employeenum; Ename[MaxNum] = Employee::Employeename; Esex[MaxNum] = Employee::Employeesex; Eage[MaxNum] = Employee::Employeeage; Emarriage[MaxNum] = Employee::Employeemarriage; Edegree[MaxNum] = Employee::Employeedegree; Edepart[MaxNum] = Employee::Employeedepart; Eposition[MaxNum] = Employee::Employeeposition; Eworktime[MaxNum] = Employee::Employeeworktime; Epay[MaxNum] = Employee::Employeepay; dbo.WriteIn(1); cout<<“ 添加新成員成功!”< void Employee::ShowInfo()//程序主體 數(shù)據(jù)輸出函數(shù) { int choice1,choice2,min,max; long searchnum; Employee e; cout<<“*******************************************”< cout<<“-----------1.輸出全體職工信息--------------”< cout<<“-----------2.按職工部門輸出----------------”< cout<<“-----------3.按職工學歷輸出----------------”< cout<<“-----------4.按職工年齡輸出----------------”< cout<<“-----------5.按職工編號輸出----------------”< cout<<“*******************************************”< cout<<“ 請選擇查詢方式:”; cin>>choice1; switch(choice1) { case 1: showall();break; case 2: cout<<“請輸入要查詢職工的部門編號[1:董事會 2:銷售部 3:人事部 4:客服中心 5:財務部 6:技術研發(fā)部 7:安全監(jiān)察部] ”; cin>>choice2; e.showdepart(choice2);break; case 3: cout<<“請輸入要查詢職工的學歷編號: [1:小學 2:初中 3:高中 4:本科 5:碩士 6:博士] ”; cin>>choice2; e.showdegree(choice2);break; case 4: cout<<“請輸入要查詢的年齡范圍: ”; cout<<“最小值: ”; cin>>min; cout<<“最大值: ”; cin>>max; e.showage(min,max);break; case 5: cout<<“請輸入要查詢的職工編號: ”; cin>>searchnum; e.shownum(searchnum);break; default: cout<<“出錯啦!”< } } void Employee::showall()//全體職工輸出函數(shù) { int i; long number; for(i=0;i { number = Enum[i]; shownum(number); } } void Employee::showdepart(int depart)//按職工所在部門輸出函數(shù) { int i; switch(depart) { case 1: cout<<“董事會的成員有: ”< case 2: cout<<“銷售部的成員有: ”< case 3: cout<<“人事部的成員有: ”< case 4: cout<<“客服中心的成員有: ”< case 5: cout<<“財務部的成員有: ”< case 6: cout<<“技術研發(fā)部的成員有: ”< case 7: cout<<“安全監(jiān)察部的成員有: ”< default: cout<<“輸入錯誤!>”< } for(i=0;i { if(Edepart[i] == depart) { long number = Enum[i]; shownum(number); } else continue; } } void Employee::showdegree(int degree)//按職工學歷輸出函數(shù) { int i; switch(degree) { case 1:cout<<“初中學歷的員工有:”< case 2:cout<<“初中學歷的員工有:”< case 3:cout<<“高中學歷的員工有:”< case 4:cout<<“本科學歷的員工有:”< case 5:cout<<“碩士學位的員工有:”< case 6:cout<<“博士學位的員工有:”< } for(i=0;i { if(Edegree[i] == degree) { long number = Enum[i]; shownum(number); } else continue; } } void Employee::showage(int min,int max)//按職工年齡段輸出函數(shù) { int i; for(i=0;i { if(Eage[i]>=min&&Eage[i]<=max) { long number = Enum[i]; shownum(number); } else continue; } } void Employee::shownum(long number)//按職工編號輸出函數(shù) { int i; for(i=0;i { if(Enum[i] == number) { cout<<“**********************************”< cout<<“職工編號:”< cout<<“姓 名:”< cout<<“性 別:”; if(Esex[i]=='F')cout<<“女 ”< else if(Esex[i]=='M')cout<<“男 ”< cout<<“年 齡:”< cout<<“婚姻情況:”; if(Emarriage[i]=='Y')cout<<“已婚 ”< else if(Emarriage[i]=='N')cout<<“未婚 ”< cout<<“學 歷:”; switch(Edegree[i]) { case 1:cout<<“小 學 ”< case 2:cout<<“初 中 ”< case 3:cout<<“高 中 ”< case 4:cout<<“本 科 ”< case 5:cout<<“碩 士 ”< case 6:cout<<“博 士 ”< } cout<<“所在部門:”; switch(Edepart[i]) { case 1:cout<<“董事會 ”< case 2:cout<<“銷售部 ”< case 3:cout<<“人事部 ”< case 4:cout<<“客服中心 ”< case 5:cout<<“財務部 ”< case 6:cout<<“技術研發(fā)部 ”< case 7:cout<<“安全監(jiān)察部 ”< } cout<<“所任職務:”; switch(Eposition[i]) { case 1:cout<<“臨時成員 ”< case 2:cout<<“正式員工 ”< case 3:cout<<“部門經(jīng)理 ”< case 4:cout<<“主任 ”< case 5:cout<<“董事長 ”< } cout<<“工作時長:”< cout<<“工資:”< cout<<“**********************************”< } else continue; } } void Employee::RefreshInfo()//修改職工信息的函數(shù) { int cNum = 1000; DBOperate dbo; dbo.ReadOut(); void Employee::shownum(long number); cout<<“請輸入您要修改的職工編號:”; cin>>cNum; int MN; MN = Employee::MaxNum(); for(int i=0;i { if(Enum[i] == cNum) { Employee::shownum(cNum); cout<<“請輸入該職工的新信息: ”< cout<<“職工姓名: ”;//錄入職工的新的數(shù)據(jù),職工編號保持不變 cin>>Employee::Employeename; Ename[i] = Employee::Employeename; cout<<“職工性別(F為女性,M為男性): ”; cin>>Employee::Employeesex; Esex[i] = Employee::Employeesex; cout<<“職工年齡: ”; cin>>Employee::Employeeage; Eage[i] = Employee::Employeeage; cout<<“職工婚姻狀況(Y為已婚,N為未婚): ”; cin>>Employee::Employeemarriage; Emarriage[i] = Employee::Employeemarriage; cout<<“職工學歷,請輸入相應學歷的序號:”< cout<<“ [1:小學 2:初中 3:高中 4:本科 5:碩士 6:博士] ”; cin>>Employee::Employeedegree; while(Employee::Employeedegree!=1&&Employee::Employeedegree!=2&&Employee::Employeedegree!=3&&Employee::Employeedegree!=4&&Employee::Employeedegree!=5&&Employee::Employeedegree!=6) { cout<<“輸入有誤,請重新輸入:”< cout<<“ [1:小學 2:初中 3:高中 4:本科 5:碩士 6:博士] ”; cin>>Employee::Employeedegree; } Edegree[i] = Employee::Employeedegree; cout<<“職工所在部門,請輸入相應部門的序號: ”< cout<<“ [1:董事會 2:銷售部 3:人事部 4:客服中心 5:財務部 6:技術研發(fā)部 7:安全監(jiān)察部] ”; cin>>Employee::Employeedepart; while(Employee::Employeedepart!=1&&Employee::Employeedepart!=2&&Employee::Employeedepart!=3&&Employee::Employeedepart!=4&&Employee::Employeedepart!=5&&Employee::Employeedepart!=6&&Employee::Employeedepart!=7) { cout<<“輸入有誤,請重新輸入:”< cout<<“ [1:董事會 2:銷售部 3:人事部 4:客服中心 5:財務部 6:技術研發(fā)部 7:安全監(jiān)察部] ”; cin>>Employee::Employeedepart; } Edepart[i] = Employee::Employeedepart; cout<<“職工職位,請輸入相應職位的序號:”< cout<<“ [1:臨時職員 2: 正式職員 3:部門經(jīng)理 4:主任 5:董事長] ”; cin>>Employee::Employeeposition; while(Employee::Employeeposition!=1&&Employee::Employeeposition!=2&&Employee::Employeeposition!=3&&Employee::Employeeposition!=4&&Employee::Employeeposition!=5) { cout<<“輸入有誤,請重新輸入:”< cout<<“ [1:臨時職員 2: 正式職員 3:部門經(jīng)理 4:主任 5:董事長] ”; cin>>Employee::Employeeposition; } Eposition[i] = Employee::Employeeposition; cout<<“員工的工作時(不需要輸入單位): ”; cin>>Employee::Employeeworktime; Eworktime[i] = Employee::Employeeworktime; Epay[i] = Employee::Pay(Employee::Employeeposition); break; } } dbo.WriteIn(0);} void Employee::DeleteInfo()//刪除職工數(shù)據(jù)的函數(shù) { char tmp; int cNum = 1000; DBOperate dbo; dbo.ReadOut(); void Employee::shownum(long number); cout<<“請輸入您要刪除的職工編號>: ”; cin>>cNum; int MN; MN = Employee::MaxNum(); for(int i=0;i { if(Enum[i] == cNum) Employee::shownum(cNum); } cout<<“確認要刪除該職工信息?(Y為確認,N為放棄): ”; cin>>tmp; if(tmp=='Y') { if(i==MN-1) dbo.WriteIn(-1); else { for(int j=i;j { Enum[j] = Enum[j+1];} dbo.WriteIn(-1); } cout<<“ 刪除操作成功!”< } } float Employee::Pay(int Employeeposition)//根據(jù)職工職位計算工資的函數(shù) { float tmpPay; tmpPay = Employee::EmployeeBasePay + Employee::Employeeposition Employee::EmployeeBasePay; * return tmpPay;} void DBOperate::WriteIn(int iflag)//數(shù)據(jù)操作函數(shù)—寫入 { DBOperate::RefreshMaxNum(iflag); ofstream myf(“Employee.txt”); Employee e; int MN; MN = e.MaxNum(); for(int i=0;i { myf< } myf.close(); return;} void DBOperate::ReadOut()//數(shù)據(jù)操作函數(shù)—讀出 { ifstream myf(“Employee.txt”); Employee e; int MN; MN = e.MaxNum(); for(int i=0;i { myf>>DBOperate::Employeenum>>DBOperate::Employeename>>DBOperate::Employeesex>>DBOperate::Employeeage>>DBOperate::Employeemarriage >>DBOperate::Employeedegree>>DBOperate::Employeedepart>>DBOperate::Employeeposition>>DBOperate::Employeeworktime>>DBOperate::Employeepay; Enum[i] = DBOperate::Employeenum; Ename[i] = DBOperate::Employeename; Esex[i] = DBOperate::Employeesex; Eage[i] = DBOperate::Employeeage; Emarriage[i] = DBOperate::Employeemarriage; Edegree[i] = DBOperate::Employeedegree; Edepart[i] = DBOperate::Employeedepart; Eposition[i] = DBOperate::Employeeposition; Eworktime[i] = DBOperate::Employeeworktime; Epay[i] = DBOperate::Employeepay; } myf.close();} void DBOperate::RefreshMaxNum(int iflag)//更新系統(tǒng)中員工計數(shù)文件的函數(shù) { int MaxNum = 0; ifstream myif(“EmployeeMaxNum.txt”); myif>>MaxNum; myif.close(); MaxNum = MaxNum+iflag; ofstream myof(“EmployeeMaxNum.txt”); myof< myof.close();} int main()//主函數(shù) { system(“color B0”);//設置當前窗口的背景色和前景色 // 0 = 黑色 = 灰色 // 1 = 藍色 = 淡藍色 // 2 = 綠色 A = 淡綠色 // 3 = 淺綠色 B = 淡淺綠色 // 4 = 紅色 C = 淡紅色 // 5 = 紫色 D = 淡紫色 // 6 = 黃色 E = 淡黃色 // 7 = 白色 F = 亮白色 int select = 0; while(select!=5) { cout<<“ ╭————————————————————————————╮”< cout<<“ ∣ 《主菜單》 ∣”< cout<<“ ├————————————————————————————┤”< cout<<“ ∣ 1.新建并錄入職工信息 ∣”< cout<<“ ∣ 2.按條件輸出職工信息 ∣”< cout<<“ ∣ 3.修改指定職工的信息 ∣”< cout<<“ ∣ 4.刪除職工信息 ∣”< cout<<“ ∣ 5.退出系統(tǒng) ∣”< cout<<“ ╰————————————————————————————╯”< cout<<“ ——————————————————————————————”< cout<<“ 請選擇您需要功能的代號: ”; cin>>select; Employee e; DBOperate dbo; switch(select) { case 1: e.NewInfo();break; case 2: dbo.ReadOut(); e.ShowInfo();break; case 3: e.RefreshInfo();break; case 4: e.DeleteInfo();break; case 5: cout<<“ 退出成功”< default: cout<<“命令錯誤!”< } if(select == 5) break; } exit(1); return 0;}