數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-職工管理系統(tǒng)_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-職工管理系統(tǒng)_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-職工管理系統(tǒng)_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-職工管理系統(tǒng)_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-職工管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩66頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目錄1、 前言-22、 需求分析-33、 概要設(shè)計(jì)-44、 詳細(xì)設(shè)計(jì)-55、 調(diào)試分析-66、 用戶使用說(shuō)明-77、 測(cè)試結(jié)果-88、 總結(jié)-119、 主要參考文獻(xiàn)和附錄-12前言員工管理系統(tǒng)是一個(gè)工作單位不可缺少的管理工具,它管理的數(shù)據(jù)對(duì)于公司的決策者和管理者來(lái)說(shuō)都至關(guān)重要,所以員工管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但一直以?lái)各個(gè)公司根本上都是靠傳統(tǒng)的人工方式來(lái)管理員工信息,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于信息的查找、更新和維護(hù)都帶來(lái)了不少的困難。當(dāng)今社會(huì),信息迅速膨脹,隨著各個(gè)公司的規(guī)模增大,有關(guān)信息管理工作

2、所涉及的數(shù)據(jù)量越來(lái)越大,員工信息量也大大增加,利用傳統(tǒng)的手工查詢、登記、修改等方法的處理速度遠(yuǎn)遠(yuǎn)跟不上公司的需求,有的公司不得不靠增加人力、物力來(lái)進(jìn)行信息管理。 隨著計(jì)算機(jī)技術(shù)的不斷提高,計(jì)算機(jī)作為知識(shí)經(jīng)濟(jì)時(shí)代的產(chǎn)物,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)行業(yè)和領(lǐng)域并發(fā)揮著越來(lái)越重要的作用,成為人們工作和生活中不可缺少的一局部。而作為計(jì)算機(jī)應(yīng)用的一局部,使用計(jì)算機(jī)對(duì)員工進(jìn)行管理,具有手工管理所無(wú)法比較的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、本錢低等。這些優(yōu)點(diǎn)能夠極大地提高員工管理的效率,也是公司的科學(xué)化、正規(guī)化管理和與世界接軌的重要條件。員工管理系

3、統(tǒng)作為一種管理軟件正在各公司中得到越來(lái)越廣泛的應(yīng)用,且已到達(dá)了良好效果。需求分析員工信息管理系統(tǒng)是企業(yè)管理中的一個(gè)重要內(nèi)容,隨著時(shí)代的進(jìn)步,企業(yè)也逐漸變得龐大起來(lái)。如何管理好企業(yè)內(nèi)部員工的信息,成為企業(yè)管理中的一個(gè)大問(wèn)題。在這種情況下,開(kāi)發(fā)一個(gè)人力資源管理系統(tǒng)就顯得非常必要現(xiàn)在,市場(chǎng)上可以選購(gòu)的應(yīng)用開(kāi)發(fā)產(chǎn)品很多,流行的也有數(shù)十種。在目前市場(chǎng)上這些眾多的程序開(kāi)發(fā)工具中,有些強(qiáng)調(diào)程序語(yǔ)言的彈性與執(zhí)行效率;有些那么偏重于可視化程序開(kāi)發(fā)工具所帶來(lái)的便利性與效率的得高,各有各的優(yōu)點(diǎn)和特色,也滿足了不同用戶的需求。然而,語(yǔ)言的彈性和工具的便利性是密不可分的,只強(qiáng)調(diào)程序語(yǔ)言的彈性,卻沒(méi)有便利的工具作配合,會(huì)

4、使一些即使非常簡(jiǎn)單的界面處理動(dòng)作,也會(huì)嚴(yán)重地浪費(fèi)程序設(shè)計(jì)師的珍貴時(shí)間;相反,如果只有便利的工具,卻沒(méi)有彈性的語(yǔ)言作支持,許多特殊化的處理動(dòng)作必需要消耗數(shù)倍的工夫來(lái)處理,使得原來(lái)所標(biāo)榜的效率提高的優(yōu)點(diǎn)失去了作用。本系統(tǒng)結(jié)合公司實(shí)際的人事、制度,經(jīng)過(guò)實(shí)際的需求分析,采用功能強(qiáng)大的Visual C+ 6.0作為開(kāi)發(fā)工具而開(kāi)發(fā)出來(lái)的管理系統(tǒng)。整個(gè)系統(tǒng)從符合操作簡(jiǎn)便、界面友好、靈活、實(shí)用、平安的要求出發(fā),本管理系統(tǒng)具有如下功能:1、問(wèn)題描述對(duì)單位的員工進(jìn)行管理,包括插入、刪除、查找、排序等功能。2、要求員工對(duì)象包括姓名、性別、年齡、職位、工齡等信息。1新增一名員工:將新增員工對(duì)象按姓名以字典方式員工管理

5、文件中,根本信息中的編號(hào)是按照添加順序自動(dòng)增加的。2刪除一名員工:從員工管理文件中刪除一名員工對(duì)象,分為根據(jù)編號(hào)刪除、根據(jù)姓名刪除。3查詢:從員工管理文件中查詢符合某些條件編號(hào)、姓名的員工。4修改:根據(jù)編號(hào)檢索出對(duì)象,既可以對(duì)整個(gè)對(duì)象修改,也可對(duì)某個(gè)屬性修改。5排序:按照年齡、工齡對(duì)所有的員工排序降序,也可以回復(fù)排序以前的員工現(xiàn)實(shí)狀態(tài)。3、實(shí)現(xiàn)提示員工對(duì)象數(shù)不必很多,便于一次讀入內(nèi)存,所有操作不經(jīng)過(guò)內(nèi)外存交換。1當(dāng)啟動(dòng)程序是,自動(dòng)從文件中讀出員工信息2由鍵盤(pán)輸入員工對(duì)象存入鏈表當(dāng)中。3對(duì)員工對(duì)象中的"編號(hào)、年齡、工齡"按字典順序進(jìn)行排序。4對(duì)排序后的員工對(duì)象進(jìn)行增、刪、查詢

6、、修改、排序等操作。5當(dāng)退出程序時(shí),將此刻單鏈表中存儲(chǔ)的數(shù)據(jù)寫(xiě)入到文件中去,保存起來(lái)。概要設(shè)計(jì)一數(shù)據(jù)類型定義:typedef structint num; /編號(hào) char nameMAX_NUM;/姓名 int age; /年齡 char jobMAX_NUM;/職位; int workTime;/ 工齡 People; ypedef struct nodePeople people;struct node * next;int len;/表示鏈表長(zhǎng)度 linklist; 二流程圖:圖1三各程序模塊之間的層次圖:圖2詳細(xì)設(shè)計(jì)1、主菜單模塊:顯示員工管理系統(tǒng)的主菜單,供用戶選擇所需的功能,通過(guò)

7、自己定義的void main函數(shù)來(lái)實(shí)現(xiàn)。 2、添加員工模塊:輸入員工的編號(hào)、姓名、年齡、職位、工齡以,通過(guò)自己定義的void addMessage函數(shù)來(lái)實(shí)現(xiàn)。3、查詢員工信息模塊:瀏覽所有員工的相關(guān)信息,通過(guò)自己定義的void searchPeople函數(shù)來(lái)實(shí)現(xiàn)。1按員工姓名查詢:可以按員工工號(hào)來(lái)查詢員工的相關(guān)信息,通過(guò)自己定義的void searchPeopleByName( )函數(shù)來(lái)實(shí)現(xiàn)。2按員工編號(hào)查詢:可以按員工職務(wù)來(lái)查詢員工的相關(guān)信息,通過(guò)自己定義的void searchPeopleByNum( )函數(shù)來(lái)實(shí)現(xiàn)。3退出。4、刪除員工模塊:刪除需要?jiǎng)h除的員工的所有信息,通過(guò)自己定義的vo

8、id deletePeople( )函數(shù)來(lái)實(shí)現(xiàn)。1按員工姓名刪除模塊:可以按員工工號(hào)來(lái)刪除員工的相關(guān)信息,通過(guò)自己定義的void deletePeopleByName( )函數(shù)來(lái)實(shí)現(xiàn)。2按員工編號(hào)刪除模塊:可以按員工編號(hào)刪除員工的相關(guān)信息,通過(guò)自己定義void deletePeopleByNum( )函數(shù)來(lái)實(shí)現(xiàn)。3退出5、修改模塊:可以修改需要修改的員工的相關(guān)信息,通過(guò)自己定義的 void editMessage函數(shù)來(lái)實(shí)現(xiàn)。1修改整條記錄,可以修改該員工的全部信息,通過(guò)自己定義的voideditAll函數(shù)來(lái)實(shí)現(xiàn)。2修改局部記錄,可以修改該員工的局部信息,通過(guò)自己定義的voideditSome函

9、數(shù)來(lái)實(shí)現(xiàn)。3退出。、員工信息排序模塊:可以按照規(guī)定要求對(duì)員工信息排序,通過(guò)自己定義的voidsort函數(shù)來(lái)實(shí)現(xiàn)。1按年齡排序:可以按員工工號(hào)對(duì)員工信息排序,通過(guò)自己定義的voidsortByAge函數(shù)來(lái)。2按工齡排序:可以按員工工齡對(duì)員工信息排序,通過(guò)自己定義的voidsortByWorkTime函數(shù)來(lái)實(shí)現(xiàn)。3回復(fù)原排序:可以回復(fù)排序前的順序,通過(guò)自己定義的voidsortByNum函數(shù)來(lái)實(shí)現(xiàn)。4退出。、退出系統(tǒng)模塊:退出員工信息管理系統(tǒng),通exit0函數(shù)來(lái)實(shí)現(xiàn)。函數(shù)調(diào)用圖:圖3調(diào)試分析測(cè)試是使用人工或者自動(dòng)手段來(lái)運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)

10、果之間的差異。在調(diào)試查詢修改功能過(guò)程中,查詢的結(jié)果顯示,沒(méi)有找到員工信息,最后發(fā)現(xiàn)查找的結(jié)點(diǎn)不正確,查詢應(yīng)該與輸入的值和頭結(jié)點(diǎn)next比較。此外查詢結(jié)點(diǎn)不知道如何循環(huán),反復(fù)修改程序才知道如何繼續(xù)查找而不出錯(cuò)誤。本次課程設(shè)計(jì)是圍繞數(shù)據(jù)結(jié)構(gòu)進(jìn)行。根據(jù)問(wèn)題描述可知,需要解決問(wèn)題并不復(fù)雜,整個(gè)問(wèn)題只需要實(shí)現(xiàn)一個(gè)員工管理系統(tǒng)功能,那就是在這個(gè)系統(tǒng)中實(shí)現(xiàn)對(duì)員工信息的插入、刪除、查詢、排序、修改。但是,為了實(shí)現(xiàn)該功能,卻需要優(yōu)秀的算法和數(shù)據(jù)結(jié)構(gòu)以保證實(shí)現(xiàn)的時(shí)間和空間效率。把員工信息存儲(chǔ)在一個(gè)單鏈表中,利用指針實(shí)現(xiàn)對(duì)員工信息的各項(xiàng)根本操作。雖然設(shè)計(jì)的程序完成了題目描述所需要實(shí)現(xiàn)的功能,但是仍然存在不如人意的地

11、方??梢耘判蛏厦娑嘣O(shè)計(jì)幾個(gè)算法,實(shí)現(xiàn)多角度排序。在這個(gè)系統(tǒng)中沒(méi)有員工序號(hào)的信息,所以允許員工姓名相同,在一定程度上可能存在員工信息重復(fù)。經(jīng)過(guò)這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì),我們不僅及時(shí)穩(wěn)固的了數(shù)據(jù)結(jié)構(gòu)、算法、以及軟件工程的知識(shí),并明白數(shù)據(jù)結(jié)構(gòu)和算法對(duì)于程序時(shí)間和空間性能的影響,及軟件工程提供的開(kāi)發(fā)流程和工具對(duì)于實(shí)現(xiàn)特定功能程序的重要意義。當(dāng)我們面對(duì)一個(gè)實(shí)際問(wèn)題,應(yīng)該迅速根據(jù)問(wèn)題性質(zhì)和特點(diǎn)抽象成特定的數(shù)據(jù)結(jié)構(gòu),當(dāng)然每個(gè)問(wèn)題都有可能能夠抽象成多種數(shù)據(jù)結(jié)構(gòu),每種數(shù)據(jù)結(jié)構(gòu)適應(yīng)于不同的算法。因此應(yīng)該綜合考慮這樣的數(shù)據(jù)結(jié)構(gòu)、算法以及它們的空間和時(shí)間效率,然后從中選擇一個(gè)作為實(shí)現(xiàn)程序的根底。用戶使用說(shuō)明 進(jìn)入員工管理

12、系統(tǒng),首先看到的就是主菜單界面,然后提示:“請(qǐng)選擇主菜單0-6:如果選擇1,進(jìn)入添加員工模塊,按照提示語(yǔ)依次錄入員工對(duì)象信息。選擇2,進(jìn)入展示員工所有的信息模塊,DOS界面顯示剛剛錄入的員工信息。選擇3,進(jìn)入員工查詢模塊,在此模塊下:系統(tǒng)提示:按姓名查詢、按編號(hào)查詢,系統(tǒng)根據(jù)用戶選擇進(jìn)行相應(yīng)的處理,退出查詢模塊時(shí),系統(tǒng)進(jìn)入主菜單模塊。選擇4,進(jìn)入刪除員工模塊,在此模塊下:系統(tǒng)提示:按編號(hào)刪除、按姓名刪除,系統(tǒng)根據(jù)用戶選擇,進(jìn)行相應(yīng)的處理,退出刪除模塊時(shí),系統(tǒng)進(jìn)入主菜單模塊。選擇5,進(jìn)入修改員工信息模塊,在該模塊下:系統(tǒng)提示:修改整條信息,修改局部信息,系統(tǒng)根據(jù)用戶選擇,進(jìn)行相應(yīng)的功能處理。當(dāng)用

13、戶選擇退出修改模塊時(shí),系統(tǒng)進(jìn)入主菜單模塊。選擇6,進(jìn)入排序模塊,在該模塊下:系統(tǒng)提示:按年齡排序、按工齡排序、回復(fù)原排序,系統(tǒng)根據(jù)用戶的選擇,進(jìn)行相應(yīng)的處理。選擇0,退出系統(tǒng)。測(cè)試結(jié)果一當(dāng)操作人員運(yùn)行程序時(shí),彈出的DOS界面如下:二根據(jù)提示語(yǔ),輸入1,添加員工信息,操作如下界面:三在主菜單輸入2,進(jìn)入輸出員工功能,操作如下:添加員工、展示所有員工信息功能實(shí)現(xiàn)。四在主菜單輸入3,查詢員工信息按編號(hào)查詢,測(cè)試如下:按姓名查詢,測(cè)試如下:以上查詢功能測(cè)試功能。五在主菜單,輸入4,刪除員工功能:按編號(hào)刪除,測(cè)試如下:按姓名刪除如下:以上測(cè)試完成。六在主菜單輸入5,進(jìn)入修改信息功能:上面是對(duì)每一條記錄進(jìn)

14、行的修改。當(dāng)你選擇2的菜單時(shí),那么是對(duì)某條信息的某個(gè)字段對(duì)其進(jìn)行內(nèi)容修改,在這里就不做演示了。七在主菜單輸入6,進(jìn)入排序功能:按年齡排序,測(cè)試如下:按工齡排序相同操作,測(cè)試成功?;貜?fù)排序,回復(fù)到未排序狀態(tài),測(cè)試成功。八退出,將所有的員工信息寫(xiě)入message.txt 文件中,實(shí)現(xiàn)永久保存。退出系統(tǒng),測(cè)試完成。總結(jié)在本系統(tǒng)的開(kāi)發(fā)過(guò)程中由于時(shí)間也比較倉(cāng)促、準(zhǔn)備不充分,系統(tǒng)必然會(huì)存在一些缺陷和缺乏。對(duì)員工信息管理的整個(gè)流程不夠熟悉,在需求分析時(shí)未能做到完全滿足用戶的需求。課程設(shè)計(jì)中我們遇到很多問(wèn)題。我們?cè)陂_(kāi)發(fā)時(shí),我們查閱了許多資料,了解到即是對(duì)員工的編號(hào)號(hào),姓名,年齡,工齡等復(fù)雜多樣的信息,能夠較清

15、晰,快捷而操作方便的現(xiàn)代化管理系統(tǒng)。弄清了這個(gè)根本概念以后,我們又詳細(xì)理解了老師所講的設(shè)計(jì)要求和考前須知,大致確定了總體的設(shè)計(jì)思路,初步提出問(wèn)題的解決方案,以及系統(tǒng)大致設(shè)計(jì)方案和框架,接下來(lái)我們就著手編程。在編程過(guò)程中,先是根據(jù)系統(tǒng)所要求,找出所需要知識(shí)點(diǎn)。編完程序,我們?cè)跈C(jī)房進(jìn)行了一次又一次的調(diào)試,找出了其中的錯(cuò)誤,一一糾正,并且修改了其中不太完善的局部,力求做到實(shí)用并且精確盡管本管理系統(tǒng)存在著很多缺乏,但其功能全面、易于日后程序更新、數(shù)據(jù)庫(kù)管理容易、界面友好、操作方便、效率高、平安性好等優(yōu)點(diǎn)是本管理系統(tǒng)所必需的。通過(guò)開(kāi)發(fā)這個(gè)系統(tǒng),我組掌握了的工程根本開(kāi)發(fā)過(guò)程,用到的知識(shí)穩(wěn)固了我對(duì)C語(yǔ)言的學(xué)

16、習(xí),但在這次設(shè)計(jì)中的最大收獲并不是掌握這幾門(mén)開(kāi)發(fā)工具的應(yīng)用,而是學(xué)會(huì)了設(shè)計(jì)系統(tǒng)的思維方法。通過(guò)本次課程設(shè)計(jì),我們對(duì)數(shù)據(jù)結(jié)構(gòu)知識(shí)掌握了很多,并能將它用以程序編寫(xiě)中,并且提高了自己的解決實(shí)際問(wèn)題的能力。主要參考文獻(xiàn)3軟件工程原理與應(yīng)用/曾強(qiáng)聰,趙歆編著 北京:清華大學(xué)出版社,2021 -附錄:源代碼#include <stdio.h>#include <malloc.h>#include <string.h>#include <stdlib.h>#define MAX_NUM 40typedef structint num; /編號(hào) char nam

17、eMAX_NUM;/姓名 int age; /年齡 char jobMAX_NUM;/職位; int workTime;/ 工齡 People; typedef struct nodePeople people;struct node * next;int len;/表示鏈表長(zhǎng)度 linklist; void doAddMessage(linklist* s)int i=0,value1=0,j;char ch;printf("t請(qǐng)輸入員工的姓名(以#號(hào)鍵結(jié)束):");scanf("%c",&ch);while(ch!='#')s

18、->i=ch;i+;scanf("%c",&ch);for(j=i;j<40;j+)s->j='0'getchar();printf("t請(qǐng)輸入員工的年齡:");scanf("%d",&value1);s->people.age=value1;getchar();printf("t請(qǐng)輸入員工的職位(以#號(hào)鍵結(jié)束):");i=0;scanf("%c",&ch);while(ch!='

19、#')s->people.jobi=ch; i+;scanf("%c",&ch);for(j=i;j<40;j+)s->people.jobj='0'getchar();printf("t請(qǐng)輸入員工的工齡: ");scanf("%d",&value1);s->people.workTime=value1; /執(zhí)行修改某個(gè)字段的信息void doEditSome(linklist * p)int i=0,max=0,value1=0,j;int flag=0;char st

20、r14,str240,ch; char a="姓名"char b="年齡"char c="職位"char d="工齡" getchar();printf("t請(qǐng)輸入你要修改的字段名稱(以#號(hào)鍵結(jié)束):"); scanf ("%c",&ch);while(ch!='#')str1i=ch;i+;scanf("%c",&ch);for(i=0;i<strlen(a);i+)if(ai=str1i)flag=1;elsefl

21、ag=0;break;if(flag=0)for(i=0;i<strlen(b);i+)if(bi=str1i)flag=2;elseflag=0;break;if(flag=0)for(i=0;i<strlen(c);i+)if(ci=str1i)flag=3;elseflag=0;break;if(flag=0)for(i=0;i<strlen(d);i+)if(di=str1i)flag=4;elseflag=0;break;getchar();if(flag=0)printf("t沒(méi)有找到您要修改的字段!n");else if(flag=1)pri

22、ntf("t請(qǐng)輸入該字段的值(以#號(hào)鍵結(jié)束):");i=0;scanf ("%c",&ch);while(ch!='#')str2i=ch;i+;scanf("%c",&ch);for(j=i;j<40;j+)str2j='0'for(i=0;i<40;i+)p->i=str2i;else if(flag=2)printf("t請(qǐng)輸入該字段的值:");scanf("%d",&value1);p->

23、;people.age=value1;else if(flag=3)printf("t請(qǐng)輸入該字段的值(以#號(hào)鍵結(jié)束):");i=0;scanf ("%c",&ch);while(ch!='#')str2i=ch;i+;scanf("%c",&ch);for(j=i;j<40;j+)str2j='0'for(i=0;i<40;i+)p->people.jobi=str2i;elseprintf("t請(qǐng)輸入該字段的值:");scanf("%d

24、",&value1);p->people.workTime=value1; /按編號(hào)查詢員工信息void searchPeopleByNum(linklist * head)int number,flag=0;linklist * p;printf("t請(qǐng)輸入你要查詢的編號(hào):");scanf("%d",&number);p=head->next;while(p!=NULL)if(p->people.num=number)printf("t編號(hào) 姓名 年齡 職位 工齡n");printf(&q

25、uot;t%-10d%-20s%-10d%-20s%-10d",p->people.num,p->,p->people.age,p->people.job,p->people.workTime);printf("n");flag=1;break;elsep=p->next;if(flag=0)printf("t沒(méi)有查到與你輸入編號(hào)相匹配的員工信息!n"); /按照姓名查找員工信息void searchPeopleByName(linklist * head)int j=0, i=0,fl

26、ag=0;char a,ch40;linklist * p;p=head->next; getchar();printf("t請(qǐng)輸入你要查詢的姓名(以#號(hào)鍵結(jié)束):");scanf("%c",&a);while(a!='#')chi=a;i+;scanf("%c",&a);while(p!=NULL)for(j=0;j<strlen(ch);j+)if(p->j!=chj)break;if(i=j)printf("t編號(hào) 姓名 年齡 職位 工齡n&quo

27、t;);printf("t%-10d%-20s%-10d%-20s%-10d",p->people.num,p->,p->people.age,p->people.job,p->people.workTime);printf("n");flag=1;break;elsep=p->next;if(flag=0)printf("t沒(méi)有查到與你輸入姓名相匹配的員工信息!n"); /根據(jù)編號(hào)刪除員工信息void deletePeopleByNum(linklist * head)int

28、 number,flag=0;linklist * p,* q;printf("t請(qǐng)輸入你要?jiǎng)h除的編號(hào):");scanf("%d",&number);p=head->next;q=head;while(p!=NULL)if(p->people.num=number)q->next=p->next;free(p);flag=1;break;elseq=q->next;p=p->next;if(flag=0)printf("t沒(méi)有查到與你輸入編號(hào)相匹配的員工信息!n");elseprintf(&

29、quot;t刪除成功!n"); /根據(jù)姓名刪除 員工信息void deletePeopleByName(linklist * head)int j=0, i=0,flag=0;char a,ch40;linklist * p,*q;p=head->next; q=head;getchar();printf("t請(qǐng)輸入你要查詢的姓名(以#號(hào)鍵結(jié)束):");scanf("%c",&a);while(a!='#')chi=a;i+;scanf("%c",&a);while(p!=NULL)fo

30、r(j=0;j<strlen(ch);j+)if(p->j!=chj)break;if(i=j)q->next=p->next;free(p);flag=1;break;elseq=q->next;p=p->next;if(flag=0)printf("t沒(méi)有查到與你輸入姓名相匹配的員工信息!n");elseprintf("t刪除成功!n"); /修改void edit(linklist * head,char ch)int number,flag=0;linklist * p,* q;print

31、f("t請(qǐng)輸入你要修改信息的編號(hào):");scanf("%d",&number);p=head->next;q=head;while(p!=NULL)if(p->people.num=number)if(ch='1')doAddMessage(p);if(ch='2')doEditSome(p);flag=1;break;elseq=q->next;p=p->next;if(flag=0)printf("t沒(méi)有查到與你輸入編號(hào)相匹配的員工信息!n");elseprintf(

32、"t修改成功!n");/實(shí)現(xiàn) 三種條件的排序 void sortAll(linklist * head,char a)linklist * p,* q,*s;int flag=0;int i=0;for(i=0;i<head->len;i+)flag=0;p=head;q=p->next;s=q->next;while(s!=NULL)if(q->people.age < s->people.age)&&a='1')q->next=s->next;s->next=q;p->ne

33、xt=s;flag=1;if(q->people.workTime < s->people.workTime)&&a='2')q->next=s->next;s->next=q;p->next=s;flag=1;if(q->people.num > s->people.num)&&a='3')q->next=s->next;s->next=q;p->next=s;flag=1;p=p->next;q=p->next;s=q->ne

34、xt;if(flag=0)break; printf("t排序完成,請(qǐng)繼續(xù)操作!n");/添加員工信息 void addMessage(linklist * head)char ch;int i=0,value1;linklist * s,* p;s=(linklist *)malloc(sizeof(linklist);s->people.num=head->len+1;printf("nt員工的編號(hào)為:%dn",s->people.num); doAddMessage(s);p=head;while(p->next!=NULL

35、)p=p->next;s->next=p->next;p->next=s;head->len=head->len +1;getchar();printf("t是否繼續(xù)添加(是、否/y、n):");scanf("%c",&ch);getchar();if(ch='y'|ch='Y')addMessage(head);getchar(); /展示所有員工的信息void showAllMessage(linklist * head)linklist * p;p=head->nex

36、t;printf("t編號(hào) 姓名 年齡 職位 工齡n");while(p!=NULL)printf("t%-10d%-20s%-10d%-20s%-10d",p->people.num,p->,p->people.age,p->people.job,p->people.workTime);p=p->next;printf("n");printf("n");/查詢員工信息void searchPeople(linklist * head)char ch=

37、9;y'if(head->next=NULL)printf("t目前暫無(wú)存儲(chǔ)任何人員信息,無(wú)法進(jìn)行任何查詢操作!n");elseprintf("t1.按編號(hào)查詢。n");printf("t2.按姓名查詢。n");printf("t3.退出查詢界面。n"); printf("t*n");printf("t請(qǐng)選擇操作菜單(1-3): ");scanf("%c",&ch);switch(ch)case '1':searchP

38、eopleByNum(head);break;case '2':searchPeopleByName(head);break;case '3':break;getchar(); /刪除員工信息void deletePeople(linklist * head)char ch='y'if(head->next=NULL)printf("t目前暫無(wú)存儲(chǔ)任何人員信息,無(wú)法進(jìn)行任何刪除操作!n");elseprintf("t1.按編號(hào)刪除。n");printf("t2.按姓名刪除。n");

39、printf("t3.退出刪除界面。n");printf("t*n");printf("t請(qǐng)選擇操作菜單(1-3): "); scanf("%c",&ch);switch(ch)case '1':deletePeopleByNum(head);break;case '2':deletePeopleByName(head);break;case '3':break;getchar(); /修改員工信息 void editMessage(linklist * he

40、ad)char ch='y'if(head->next=NULL)printf("t目前暫無(wú)存儲(chǔ)任何人員信息,無(wú)法進(jìn)行任何刪除操作!n");elseprintf("t1.修改整條記錄。n");printf("t2.修改局部。n"); printf("t3.退出修改界面。n"); printf("t*n");printf("t請(qǐng)選擇操作菜單(1-3): ");scanf("%c",&ch);switch(ch)case '

41、;1':edit(head,ch);break;case '2':edit(head,ch);break;case '3':break;getchar();/單鏈表排序void sort(linklist * head)char ch='y'if(head->next=NULL)printf("t目前暫無(wú)存儲(chǔ)任何人員信息,無(wú)法進(jìn)行任何排序操作!n");else if(head->next->next=NULL)printf("t只有一條數(shù)據(jù)無(wú)需進(jìn)行排序!n"); elseprint

42、f("t1.按年齡排序。n");printf("t2.按工齡排序。n"); printf("t3.恢復(fù)原順序。n");printf("t4.退出排序界面。n");printf("t*n");printf("t請(qǐng)選擇操作菜單(1-4): "); scanf("%c",&ch);switch(ch)case '1':sortAll(head,ch);break;case '2':sortAll(head,ch);brea

43、k;case '3':sortAll(head,ch); break;case '4':break;getchar(); /退出時(shí)保存將文件保存到文件中void saveMessage(linklist * head)FILE * fp; linklist *p,*p0;fp=fopen("message.txt","wb");p=head;if(fp=NULL) printf("nt文件保存失敗!n請(qǐng)重新啟動(dòng)本系統(tǒng).n"); exit(0);while(p!=NULL)/將鏈表中的信息寫(xiě)入文件中 if

44、(fwrite(p,sizeof(linklist),1,fp)!=1) printf("nt寫(xiě)入文件失敗!n請(qǐng)重新啟動(dòng)本系統(tǒng)!n"); p0=p; p=p->next; free(p0); head=NULL;fclose(fp); /登錄時(shí)加載信息void loadAddMessage(linklist * head) FILE *fp; linklist *p1,*p2,*p3; int flag=0; fp=fopen("message.txt","rb"); p1=(linklist *)malloc(sizeof(l

45、inklist); fread(p1,sizeof(linklist),1,fp); p3 = p2=head; /讀出信息,重新鏈入鏈表 while(! feof(fp) p1=(linklist *)malloc(sizeof(linklist); fread(p1,sizeof(linklist),1,fp); p2->next=p1; p3=p2; p2=p1; flag=1; p3->next=NULL; if(p3->people.num < 1)head->len=0;head->next=NULL; else if(flag=1) head-

46、>len=p3->people.num; else head->len=0; free(p1); fclose(fp);/主函數(shù)int main()char ch='y'linklist * head;head =(linklist *)malloc(sizeof(linklist);head->len =0;head->next=NULL;loadAddMessage(head);printf("tttt員工管理系統(tǒng)n");printf("t*n");doprintf("tttt操作菜單n&quo

47、t;);printf("t1.添加員工t2.展示所有的員工信息t3.查詢員工信息n");printf("t4.刪除員工t5.修改員工信息 t6.排序n");printf("t0.退出系統(tǒng)n");printf("t*n");printf("t請(qǐng)選擇操作菜單(0-6): ");scanf("%c",&ch);getchar();switch(ch)case '1':addMessage(head);break;case '2':showAl

48、lMessage(head);break;case '3':searchPeople(head);break;case '4':deletePeople(head); break;case '5':editMessage(head);break;case '6':sort(head);break;case '0':saveMessage(head);printf("t保存成功!");exit(0); while(ch!='0');getchar();return 0;原文已完。下

49、文為附加文檔,如不需要,下載后可以編輯刪除,謝謝!施工組織設(shè)計(jì)本施工組織設(shè)計(jì)是本著“一流的質(zhì)量、一流的工期、科學(xué)管理來(lái)進(jìn)行編制的。編制時(shí),我公司技術(shù)開(kāi)展部、質(zhì)檢科以及工程部經(jīng)過(guò)精心研究、合理組織、充分利用先進(jìn)工藝,特制定本施工組織設(shè)計(jì)。一、 工程概況:西夏建材城生活區(qū)27#、30#住宅樓位于銀川市新市區(qū),橡膠廠對(duì)面。本工程由寧夏燕寶房地產(chǎn)開(kāi)發(fā)開(kāi)發(fā),銀川市規(guī)劃建筑設(shè)計(jì)院設(shè)計(jì)。本工程耐火等級(jí)二級(jí),屋面防水等級(jí)三級(jí),地震防烈度為8度,設(shè)計(jì)使用年限50年。本工程建筑面積:27#m2;30# m2。室內(nèi)地坪± m為準(zhǔn),總長(zhǎng)27#m;30# m??倢?7#m;30# m。設(shè)計(jì)室外地坪至檐口高度1

50、8.6 00m,呈長(zhǎng)方形布置,東西向,三個(gè)單元。本工程設(shè)計(jì)屋面為坡屋面防水采用防水涂料。外墻水泥砂漿抹面,外刷淺灰色墻漆。內(nèi)墻面除衛(wèi)生間200×300瓷磚,高到頂外,其余均水泥砂槳罩面,刮二遍膩?zhàn)?;樓梯間內(nèi)墻采用50厚膠粉聚苯顆粒保溫。地面除衛(wèi)生間200×200防滑地磚,樓梯間50厚細(xì)石砼1:1水泥砂漿壓光外,其余均采用50厚豆石砼毛地面。樓梯間單元門(mén)采用樓宇對(duì)講門(mén),臥室門(mén)、衛(wèi)生間門(mén)采用木門(mén),進(jìn)戶門(mén)采用保溫防盜門(mén)。本工程窗均采用塑鋼單框雙玻窗,開(kāi)啟窗均加紗扇。本工程設(shè)計(jì)為節(jié)能型住宅,外墻均貼保溫板。本工程設(shè)計(jì)為磚混結(jié)構(gòu),共六層。根底采用C30鋼筋砼條形根底,上砌MU30毛石

51、根底,砂漿采用M10水泥砂漿。一、二、三、四層墻體采用M10混合砂漿砌筑MU15多孔磚;五層以上采用M混合砂漿砌筑MU15多孔磚。本工程結(jié)構(gòu)中使用主要材料:鋼材:I級(jí)鋼,II級(jí)鋼;砼:根底墊層C10,根底底板、地圈梁、根底構(gòu)造柱均采用C30,其余均C20。本工程設(shè)計(jì)給水管采用PPR塑料管,熱熔連接;排水管采用UPVC硬聚氯乙烯管,粘接;給水管道安裝除立管及安裝IC卡水表的管段明設(shè)計(jì)外,其余均暗設(shè)。本工程設(shè)計(jì)采暖為鋼制高頻焊翅片管散熱器。本工程設(shè)計(jì)照明電源采用BV銅芯線,插座電源等采用BV4銅芯線;除客廳為吸頂燈外,其余均采用座燈。二、 施工部署及進(jìn)度方案1、工期安排本工程合同方案開(kāi)工日期:2004年8月21日,竣工日期:2005年7月10日,合同工期315天。方案2004年9月15日前完成根底工程,2004年12月30日完成主體結(jié)構(gòu)工程,2005年6月20日完成裝修工種,安裝工程穿插進(jìn)行,于2005年7月1日前完成。具體進(jìn)度方案詳見(jiàn)附圖1施工

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論