




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、高級語言程序設計訓題 目: 員工信息管理程序 院系專業: 計算機工程系 姓 名: 朱建國 學 號: 2 2011年01月05 日1、 需求分析員工檔案是企業勞動,人事部門在招用、調配、培訓、考核、獎懲和任用等工作中形成的有關職工個人經歷、政治思想、業務技術水平、工作表現以及工作變動等情況的文件材料。1、 基本要求:(1) 程序菜單功能或詳細的提示功能;(2) 員工信息的輸入(包括員工號、姓名、年齡、職位、工資)功能;(3) 員工信息的瀏覽功能;(4) 員工信息的添加功能;(5) 員工信息的刪除功能;(6) 員工信息的排序功能;(7) 員工信息的查詢功能;2、 其他要求:(1) 結構體數組實現,
2、用指針訪問結構體成員;(2) 自行設計的程序不少于100行,總體程序不少于200行;(3) 輸出數據要求格式美觀;(4) 程序要有詳細的注釋,并畫出程序流程圖及必要的文字說明書文檔,程序內容和文檔 內容要體現個性化設計思想;(5) 嚴禁雷同,任務書除外全部手寫;二、程序總體設計:1、程序主要包括三大模塊:輸入輸出模塊、管理模塊和文件操作模塊。如下圖:輸入輸出終端 輸入輸出模塊 管理模塊 文件操作模塊 存儲文件 2、界面設計:程序中visual C+的編譯環境中進行,界面將通過屏幕的輸出顯示功能選項。通過鍵盤輸入完成相應操作。程序主界面是一個文本方式的菜單,通過鍵盤相應選擇操作指令。 3、數據結
3、構設計:員工檔案中的記錄項由多個不同的數據項構成,是一個結構體數據,因此需要定義結構體數據類型。根據要求,數據項為:員工號、姓名、性別、年齡、職位、工資。據此定義如下結構體數據類型:struct workerint num;/* 員工號*/char name10;/* 姓名*/char sex10;/* 性別*/int age;/* 年齡*/char position10;/*職位*/int pay;/*工資*/workN; 4、程序函數設計main ();/*主函數*/void menu_handle();/*函數處理菜單*/int menu_choose();/*函數選擇菜單*/void
4、input_worker();/*創建文件并對工人信息輸入函數*/void save_ n);/*文件保存*/int load();/*提取員工數*/void message_output();/*員工信息瀏覽函數*/void add_worker();/*員工添加函數*/void dele_worker();/*員工信息刪除函數*/void fine();/*員工信息查詢函數*/void fine_num();/*員工號查詢函數*/void fine_name();/*按姓名查詢函數*/void sort_age();/*按年齡排序函數*/void sort_pay();/*按工資排序函數*
5、/void sort();/*排序函數處理*/void change(struct worker *p,int n);/*交換元素*/3、 程序流程圖1、員工信息輸入功能 3、添加員工信息開始 開始新建文件 清屏打開文件 以追加方式打開數據文件提示輸入提示輸入輸入 輸入寫入文件寫入文件關閉文件關閉并返回結束并返回2、員工信息瀏覽功能開始打開數據文件讀文件關閉文件結束并返回 結束4、 員工信息刪除開始顯示該記錄清屏刪除與否 否提示輸入姓名 是輸入將數組后移 調用瀏覽函數 調用文件保存函數數據讀到數組中 對比查找 返回5、員工信息查詢6、 員工信息排序結束并返回開始 開始清屏清屏 提示提示輸入 按
6、什么排序輸入 選擇數據與數組比較 調用瀏覽函數讀該數組 冒泡排序結束并返回輸出 四、實訓計劃第一天:設計程序設計書;第二天:實現函數菜單功能;第三天:實現員工信息輸入(保存在文件中)與瀏覽功能;第四天:實現員工信息的添加及刪除功能;第五天:實現員工信息的查詢功能;第六天:實現員工信息的排序功能;第七天:對源程序進行改進與美化;五、詳細設計設計總圖如下:1、:建立頭文件:頭文件包含各種調用函數,如圖2、建立主函數文件:里面的是主函數并調用菜單函數3、建立菜單函數文件:調用各種功能函數:員工信息的輸入輸出、添加刪除、查詢排序4、建立子函數文件:包括各種功能函數:員工信息的輸入輸出、添加刪除、查詢排
7、序六、實訓過程在菜單功能的源程序編寫過程沒有遇到什么困難,但在界面的設計上,花費了許多時間尋找適合的符號和設計,以下是程序菜單選擇界面: 菜單功能完成之后,就開始各種功能函數的編寫,輸入函數一開始沒有想到調用一個保存文件的函數,后來在資料上看到這樣這個方法,但當時已經編好了,就沒有修改。但這次功能我也學會了這樣一個方法。下次可以應用到程序中。這個功能的實現也沒有遇到困難···之后我便一口氣把員工信息的瀏覽功能做好了。 然而在做員工信息添加功能時,開始遇到困難了,當時我的fwrite()語句為fwrite(work,sizeof(struct worker),1,f
8、p);使得加進去的信息讀出來的是一堆亂碼,結果我不知道錯誤在哪里,一直以為是輸入函數那邊出錯或者瀏覽函數那邊錯誤,這么改都改不得,花了很多時間,最后才發現是這里錯誤,才改成fwrite(p,sizeof(struct worker),1,fp); 實現了添加功能之后,就開始做員工信息的刪除功能,這個功能的實現花了我更多的時間。首先,我當時把結構體數組放在頭文件的文件中并初始化一個數組,使得調用這個文件時出現一個重復定義的錯誤,解決完這個錯誤之后,開始調試,沒發現別的錯誤,但在運行的時候,前面的幾個人的信息都無法刪除,只能刪除最后一個人的信息,這個錯誤讓我苦惱了很久··
9、83;設置斷點調試的時候,輸入功能的work0、work1·····都沒問題,然而添加功能的work0、work1·····卻發生了變化!刪除功能那邊的work0是居然是儲存最后一名員工的信息,而在瀏覽員工信息之后的work0、work1·····卻是我想得到的,于是我便在刪除函數功能那里調用了瀏覽函數,終于解決了這個困難。這個困難花了我好幾天··· 解決完那個問題之后,我的編程開始一馬平川,之后的功能實現也沒有遇到
10、很大的困難···提前了兩天完成這個任務。七、程序的調試與測試程序調試時在錄入員工信息設斷點如下:用于調試數組當前儲存的數據 在瀏覽信息函數里設的斷點如下:用于調試數組當前儲存的數據 在刪除信息函數里設如下斷點:用于調試數組當前儲存的數據用于調試數組當前儲存的數據存的數據用于調試數組當前儲存的數據用于調試數組當前儲存的數據調試結果:發現這幾個數組儲存的數據不一樣,原本以為只要把數組定義在頭文件數組內容就不會改變,結果發現這個想法是錯誤的。這給我的C語言上了一課!七、程序的運行1、程序的歡迎界面2、 按1進入員工信息輸入,并輸入員工數為2,姓名為張三、李四,如下圖:3
11、,、錄入員工信息后,按回車,退出員工信息的錄入功能,按2瀏覽員工信息,操作如下圖:3、 瀏覽無誤之后,按3進行下一個功能,員工信息的添加,并添加3名員工,如圖:4、 添加完成后,按2進行瀏覽員工信息,如圖:5、 瀏覽無誤之后,按4進行員工信息的刪除,以下以刪除朱總為例:按1刪除后,程序瀏覽刪除后的信息并提示是否繼續刪除或者返回6、 按2退出刪除功能,并按5進行員工信息的查詢功能,如圖:(1) 程序將提示按什么方式查詢,以下以按姓名查詢為例:(2)輸入要查詢的姓名為朱總,顯示如下圖:(2) 按1選擇重新輸入,以張三為例:7、 按3退出,并選擇6進行排序:(1)提示按什么方式排序:(2)按2,以按
12、工資排序為例,提示按從小到大或者從大到小排序:(3)按1,以從大到小排序:8、 按3退出,功能演示完畢,按2瀏覽員工信息是否改變,如下圖:9、 演示完畢按7退出程序:八、結論分析問題問題的解決不能想著一步登天,當時一拿到這個任務的時候,就開始醞釀著用什么是用數組還是用鏈表去做這個任務,由于對鏈表的認識不夠深刻,就選擇了數組。因為員工信息包含多種不同的信息,就著手于結構體,之后開始以菜單為一條線索,隨著這條線索,一步一步的把各種功能調用到菜單中,這樣才能有清晰的思路去編程。算法分析算法是各個功能函數實現的核心與前提,首先算法是結合數組來思考的,比如在做刪除函數的時候,首先要想到如何把你輸入的要刪
13、除的信息與數組中儲存的信息做一個比較,只有這樣才能找得到你想要刪除的內容。因此就不由自主的想到用strcmp()這個函數,這樣不僅節約了許多不必要的程序代碼,還能使自己的思維方式更寬。找到更合適自己的算法去解決問題···九、心得與體會經過了兩個星期的實訓培訓,雖然這期間很苦很累,在這段時間里,可以說我花了幾天幾夜去編了吧,從早上9點到凌晨12點半,每次厚著臉皮去找學長借電腦使用,我都會有些不好意思···然而,這說明了我已經陷入了編寫程序的樂趣當中,雖然每次遇到困難,我都會去研究許久。甚至想到放棄(我第一次的程序啊,有時候看到別人都已經做出來了···我自己卻沒能完成,是不是太執著了呢?其實我也好想借鑒一下別人的方法啊,可是這樣能提高嗎?哎···好累,花了那么多精力去編了,別人卻不怎么花時間,好累好累···這就是傳說中的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物標志物在精準診斷中的應用-洞察闡釋
- 超輕高強度復合材料-洞察闡釋
- 政府干預下的數字化轉型研究-洞察闡釋
- 物業裝修預算與監管協議
- 農機服務作業合同簽訂指南
- 試用工勞動合同3篇
- 房屋擁有所有權贈與合同5篇
- 文獻資源共建共享合作協議模板4篇
- 湖北省重點研發計劃項目聯合申報協議6篇
- 電梯配件更換協議書10篇
- 快手信息流廣告優化師(初級)認證考試題庫(附答案)
- 2023-2024年外賣騎手行業現狀及發展趨勢研究報告
- 染料敏化太陽能電池材料課件
- 建工集團全資子公司負責人年度經營業績考核辦法
- 融匯畫方網絡準入設備技術白皮書
- 道口抓拍系統施工方案
- 三星堆-巴蜀與青銅文化的見證
- 人工智能導論(天津大學)知到智慧樹章節答案
- 詳盡的施工方案
- DB3305T 323-2024政府儲備糧綠色倉儲技術規范
- 工業4.0新篇章介紹
評論
0/150
提交評論