第一篇:數據結構課程設計-職工管理系統
目錄
一、前言--------2
二、需求分析--3
三、概要設計--4
四、詳細設計--5
五、調試分析--6
六、用戶使用說明---------------------------7
七、測試結果--8
八、總結-------11
九、主要參考文獻和附錄-----------------12
前言
員工管理系統是一個工作單位不可缺少的管理工具,它管理的數據對于公司的決策者和管理者來說都至關重要,所以員工管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來各個公司基本上都是靠傳統的人工方式來管理員工信息,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產生大量的文件和數據,這對于信息的查找、更新和維護都帶來了不少的困難。
當今社會,信息迅速膨脹,隨著各個公司的規模增大,有關信息管理工作所涉及的數據量越來越大,員工信息量也大大增加,利用傳統的手工查詢、登記、修改等方法的處理速度遠遠跟不上公司的需求,有的公司不得不靠增加人力、物力來進行信息管理。
隨著計算機技術的不斷提高,計算機作為知識經濟時代的產物,其強大的功能已為人們深刻認識,它已進入人類社會的各個行業和領域并發揮著越來越重要的作用,成為人們工作和生活中不可缺少的一部分。
而作為計算機應用的一部分,使用計算機對員工進行管理,具有手工管理所無法比擬的優點。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優點能夠極大地提高員工管理的效率,也是公司的科學化、正規化管理和與世界接軌的重要條件。
員工管理系統作為一種管理軟件正在各公司中得到越來越廣泛的應用,且已達到了良好效果。
需求分析
員工信息管理系統是企業管理中的一個重要內容,隨著時代的進步,企業也逐漸變得龐大起來。如何管理好企業內部員工的信息,成為企業管理中的一個大問題。在這種情況下,開發一個人力資源管理系統就顯得非常必要
現在,市場上可以選購的應用開發產品很多,流行的也有數十種。在目前市場上這些眾多的程序開發工具中,有些強調程序語言的彈性與執行效率;有些則偏重于可視化程序開發工具所帶來的便利性與效率的得高,各有各的優點和特色,也滿足了不同用戶的需求。然而,語言的彈性和工具的便利性是密不可分的,只強調程序語言的彈性,卻沒有便利的工具作配合,會使一些即使非常簡單的界面處理動作,也會嚴重地浪費程序設計師的寶貴時間;相反,如果只有便利的工具,卻沒有彈性的語言作支持,許多特殊化的處理動作必需要耗費數倍的工夫來處理,使得原來所標榜的效率提高的優點失去了作用。
本系統結合公司實際的人事、制度,經過實際的需求分析,采用功能強大的Visual C++ 6.0作為開發工具而開發出來的管理系統。整個系統從符合操作簡便、界面友好、靈活、實用、安全的要求出發,本管理系統具有如下功能:
1、問題描述
對單位的員工進行管理,包括插入、刪除、查找、排序等功能。
2、要求
員工對象包括姓名、性別、年齡、職位、工齡等信息。
(1)新增一名員工:將新增員工對象按姓名以字典方式員工管理文件中,基本信息中的編號是按照添加順序自動增加的。
(2)刪除一名員工:從員工管理文件中刪除一名員工對象,分為根據編號刪除、根據姓名刪除。
(3)查詢:從員工管理文件中查詢符合某些條件(編號、姓名)的員工。(4)修改:根據編號檢索出對象,既可以對整個對象修改,也可對某個屬性修改。
(5)排序:按照年齡、工齡對所有的員工排序(降序),也可以回復排序以前的員工現實狀態。
3、實現提示
員工對象數不必很多,便于一次讀入內存,所有操作不經過內外存交換。(1)當啟動程序是,自動從文件(message.txt)中讀出員工信息(2)由鍵盤輸入員工對象存入鏈表當中。
(3)對員工對象中的“編號、年齡、工齡”按字典順序進行排序。(4)對排序后的員工對象進行增、刪、查詢、修改、排序等操作。(5)當退出程序時,將此刻單鏈表中存儲的數據寫入到文件(message.txt)中去,保存起來。
概要設計
(一)數據類型定義:
typedef struct{ int num;//編號
char name[MAX_NUM];//姓名
int age;//年齡
char job[MAX_NUM];//職位;
int workTime;// 工齡
}People;ypedef struct node{ People people;struct node * next;int len;//表示鏈表長度
}linklist;
(二)流程圖:
(圖1)
(三)各程序模塊之間的層次圖:
(圖2)
詳細設計
1、主菜單模塊:顯示員工管理系統的主菜單,供用戶選擇所需的功能,通過自己定義的void main()函數來實現。
2、添加員工模塊:輸入員工的編號、姓名、年齡、職位、工齡以,通過自己定義的void addMessage()函數來實現。
3、查詢員工信息模塊:瀏覽所有員工的相關信息,通過自己定義的void searchPeople()函數來實現。
(1)按員工姓名查詢:可以按員工工號來查詢員工的相關信息,通過自己定義的void searchPeopleByName()函數來實現。
(2)按員工編號查詢:可以按員工職務來查詢員工的相關信息,通過自己定義的void searchPeopleByNum()函數來實現。
(3)退出。
4、刪除員工模塊:刪除需要刪除的員工的所有信息,通過自己定義的void deletePeople()函數來實現。
(1)按員工姓名刪除模塊:可以按員工工號來刪除員工的相關信息,通過自己定義的void deletePeopleByName()函數來實現。
(2)按員工編號刪除模塊:可以按員工編號刪除員工的相關信息,通過自己定義void deletePeopleByNum()函數來實現。
(3)退出
5、修改模塊:可以修改需要修改的員工的相關信息,通過自己定義的 void editMessage()函數來實現。
(1)修改整條記錄,可以修改該員工的全部信息,通過自己定義的void editAll()函數來實現。
(2)修改部分記錄,可以修改該員工的部分信息,通過自己定義的void editSome()
函數來實現。
(3)退出。
6、員工信息排序模塊:可以按照規定要求對員工信息排序,通過自己定義的void sort()函數來實現。
(1)按年齡排序:可以按員工工號對員工信息排序,通過自己定義的void sortByAge()函數來。
(2)按工齡排序:可以按員工工齡對員工信息排序,通過自己定義的void sortByWorkTime()函數來實現。
(3)回復原排序:可以回復排序前的順序,通過自己定義的void sortByNum()函數來實現。
(4)退出。
7、退出系統模塊:退出員工信息管理系統,通exit(0)函數來實現。
函數調用圖:
(圖3)
調試分析
測試是使用人工或者自動手段來運行或測試某個系統的過程,其目的在于檢驗是否滿足規定的需求或弄清預期結果與實際結果之間的差別。
在調試查詢修改功能過程中,查詢的結果顯示,沒有找到員工信息,最后發現查找的結點不正確,查詢應該與輸入的值和頭結點next比較。此外查詢結點不知道如何循環,反復修改程序才知道如何繼續查找而不出錯誤。
本次課程設計是圍繞數據結構進行。根據問題描述可知,需要解決問題并不復雜,整個問題只需要實現一個員工管理系統功能,那就是在這個系統中實現對員工信息的插入、刪除、查詢、排序、修改。但是,為了實現該功能,卻需要優秀的算法和數據結構以保證實現的時間和空間效率。把員工信息存儲在一個單鏈表中,利用指針實現對員工信息的各項基本操作。
雖然設計的程序完成了題目描述所需要實現的功能,但是仍然存在不如人意的地方。可以排序上面多設計幾個算法,實現多角度排序。在這個系統中沒有員工序號的信息,所以允 6
許員工姓名相同,在一定程度上可能存在員工信息重復。
經過這次數據結構課程設計,我們不僅及時鞏固的了數據結構、算法、以及軟件工程的知識,并明白數據結構和算法對于程序時間和空間性能的影響,及軟件工程提供的開發流程和工具對于實現特定功能程序的重要意義。
當我們面對一個實際問題,應該迅速根據問題性質和特點抽象成特定的數據結構,當然每個問題都有可能能夠抽象成多種數據結構,每種數據結構適應于不同的算法。因此應該綜合考慮這樣的數據結構、算法以及它們的空間和時間效率,然后從中選擇一個作為實現程序的基礎。
用戶使用說明
進入員工管理系統,首先看到的就是主菜單界面,然后提示:“請選擇主菜單(0---6):” 如果選擇1,進入添加員工模塊,按照提示語依次錄入員工對象信息。選擇2,進入展示員工所有的信息模塊,DOS界面顯示剛才錄入的員工信息。選擇3,進入員工查詢模塊,在此模塊下: 系統提示:按姓名查詢、按編號查詢,系統根據用戶選擇進行相應的處理,退 出查詢模塊時,系統進入主菜單模塊。
選擇4,進入刪除員工模塊,在此模塊下: 系統提示:按編號刪除、按姓名刪除,系統根據用戶選擇,進行相應的處理,退出刪除模塊時,系統進入主菜單模塊。
選擇5,進入修改員工信息模塊,在該模塊下: 系統提示:修改整條信息,修改部分信息,系統根據用戶選擇,進行相應的功 能處理。當用戶選擇退出修改模塊時,系統進入主菜單模塊。
選擇6,進入排序模塊,在該模塊下: 系統提示:按年齡排序、按工齡排序、回復原排序,系統根據用戶的選擇,進 行相應的處理。
選擇0,退出系統。
測試結果
(一)當操作人員運行程序時,彈出的DOS界面如下:
(二)根據提示語,輸入1,添加員工信息,操作如下界面:
(三)在主菜單輸入2,進入輸出員工功能,操作如下:
添加員工、展示所有員工信息功能實現。
(四)在主菜單輸入3,查詢員工信息
按編號查詢,測試如下:
按姓名查詢,測試如下:
以上查詢功能測試功能。
(五)在主菜單,輸入4,刪除員工功能:
按編號刪除,測試如下:
按姓名刪除如下:
以上測試完成。
(六)在主菜單輸入5,進入修改信息功能:
上面是對每一條記錄進行的修改。當你選擇2的菜單時,則是對某條信息的某個字段對其進行內容修改,在這里就不做演示了。
(七)在主菜單輸入6,進入排序功能:
按年齡排序,測試如下:
按工齡排序相同操作,測試成功。回復排序,回復到未排序狀態,測試成功。
(八)退出,將所有的員工信息寫入message.txt 文件中,實現永久保存。退出系統,測試完成。
總結
在本系統的開發過程中由于時間也比較倉促、準備不充分,系統必然會存在一些缺陷和不足。對員工信息管理的整個流程不夠熟悉,在需求分析時未能做到完全滿足用戶的需求。
課程設計中我們遇到很多問題。我們在開發時,我們查閱了許多資料,了解到即是對員工的編號號,姓名,年齡,工齡等復雜多樣的信息,能夠較清晰,快捷而操作方便的現代化管理系統。弄清了這個基本概念以后,我們又詳細理解了老師所講的設計要求和注意事項,大致確定了總體的設計思路,初步提出問題的解決方案,以及系統大致設計方案和框架,接下來我們就著手編程。在編程過程中,先是根據系統所要求,找出所需要知識點。編完程序,我們在機房進行了一次又一次的調試,找出了其中的錯誤,一一糾正,并且修改了其中不太完善的部分,力求做到實用并且精確
盡管本管理系統存在著很多不足,但其功能全面、易于日后程序更新、數據庫管理容易、界面友好、操作方便、效率高、安全性好等優點是本管理系統所必需的。通過開發這個系統,我組掌握了的項目基本開發過程,用到的知識鞏固了我對C語言的學習,但在這次設計中的最大收獲并不是掌握這幾門開發工具的應用,而是學會了設計系統的思維方法。
通過本次課程設計,我們對數據結構知識掌握了很多,并能將它用以程序編寫中,并且提高了自己的解決實際問題的能力。
主要參考文獻
[1]李云清,楊慶紅,揭安全.數據結構(C語言版)[M].北京:人民郵電大學出版社,2004.6 [2]潘彥.算法設計與分析基礎[M].北京:清華大學出版社,2007.1 [3]軟件工程原理與應用/曾強聰,趙歆編著 北京:清華大學出版社,2011 [4] 呂鳳翥.C++語言程序設計(第2版)[M].北京:電子工業出版社,2007.2 [5] 嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,2002.9----------------------------11
附錄:源代碼
#include
#define MAX_NUM 40
typedef struct{ int num;//編號
char name[MAX_NUM];//姓名
int age;//年齡
char job[MAX_NUM];//職位;
int workTime;// 工齡
}People;
typedef struct node{ People people;struct node * next;int len;//表示鏈表長度
}linklist;
void doAddMessage(linklist * s){ int i=0,value1=0,j;char ch;printf(“t請輸入員工的姓名(以#號鍵結束):”);scanf(“%c”,&ch);while(ch!='#'){
s->people.name[i]=ch;
i++;
scanf(“%c”,&ch);} for(j=i;j<40;j++){
s->people.name[j]=' 主站蜘蛛池模板: 狂猛欧美激情性xxxx大豆行情| 粉嫩高中生无码视频在线观看| 欧美性欧美巨大黑白大战| 日韩高清在线亚洲专区小说| 97精品依人久久久大香线蕉97| 亚洲а∨天堂男人色无码| 亚洲精品中文字幕无码蜜桃| 久久久久亚洲精品无码系列| 黄色小说视频| 无码人妻一区二区三区免费看| 人人狠狠久久亚洲综合88| 日本真人边吃奶边做爽免费视频| 欧美精品videossex少妇| 天天影视色香欲综合久久| 国产猛烈高潮尖叫视频免费| 激情航班h版在线观看| 亚洲制服丝袜中文字幕自拍| 亚洲爆乳成av人在线视菜奈实| 亚洲a∨精品永久无码| 国产成人精品免费久久久久| 亚洲欧美日韩另类精品一区| 免费?男同???深夜夜行网站| 精品久久久久中文字幕app| 日韩一卡2卡3卡4卡新区亚洲| 国产做爰xxxⅹ久久久| 亚洲精品国产精品制服丝袜| 国产小呦泬泬99精品| 久久人妻av中文字幕| 亚洲国产熟妇在线视频| 97久久精品亚洲中文字幕无码| 精品性高朝久久久久久久| 亚洲一区在线日韩在线深爱| 国产精品久久久天天影视| 99久久亚洲精品日本无码| 免费看成人aa片无码视频羞羞网| 亚洲国产欧美一区三区成人| 男男女女爽爽爽免费视频| 色翁荡息又大又硬又粗又爽电影| 狠狠综合久久综合88亚洲爱文| 久久人人97超碰国产公开| 久久久免费无码成人影片|