版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 計(jì)算機(jī)科學(xué)與技術(shù)系</b></p><p> 項(xiàng)目名稱: 職工信息管理系統(tǒng) </p><p> 學(xué)生姓名: </p><p> 學(xué) 號(hào): </p><p> 班 級(jí): </p
2、><p> 指導(dǎo)教師: </p><p> 2013 年 5 月 30 日</p><p><b> 目 錄</b></p><p><b> 1 引言1</b></p><p> 1.1 選題意義1</p><p
3、> 1.2 國內(nèi)外現(xiàn)狀綜述1</p><p> 2 系統(tǒng)需求分析1</p><p> 2.1 系統(tǒng)功能概述1</p><p> 2.2 系統(tǒng)模塊1</p><p> 3 系統(tǒng)存儲(chǔ)結(jié)構(gòu)說明3</p><p> 3.1 系統(tǒng)存儲(chǔ)信息說明3</p><p> 3.2 系
4、統(tǒng)存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)3</p><p> 3.3 系統(tǒng)文件使用說明3</p><p> 4 系統(tǒng)功能實(shí)現(xiàn)及代碼描述………………………………………………………………………4</p><p> 4.1 輸入職工信息4</p><p> 4.2 瀏覽職工信息4</p><p> 4.3 查詢職工信息5</
5、p><p> 4.3.1 按職工號(hào)查詢6</p><p> 4.4 刪除職工信息6</p><p> 4.5 添加職工信息8</p><p> 4.6 修改職工信息8</p><p><b> 5 系統(tǒng)測試10</b></p><p> 5.1 菜單函數(shù)
6、10</p><p> 5.2 職工信息的錄入10</p><p> 5.3 職工信息的瀏覽11</p><p> 5.4 職工信息的查詢(按職工號(hào),學(xué)歷,姓名查詢)11</p><p> 5.5 職工信息的刪除……………………………………………………………………… 11</p><p> 5.6 職工
7、信息的添加12</p><p> 5.7 職工信息的修改13</p><p> 5.8 退出系統(tǒng)。14</p><p> 6 設(shè)計(jì)心得與總結(jié)14</p><p> 7.參考文獻(xiàn)………………………………………………………………………………………...14</p><p> 8.附錄,源程序…………………
8、……………………………………………………………….. 15</p><p><b> 1 引言</b></p><p><b> 1.1 選題意義</b></p><p> 員工信息管理系統(tǒng)是事業(yè)單位科學(xué)、全面、高效進(jìn)行人事管理的系統(tǒng),參考大量中國人力資源管理理論,根植于國內(nèi)管理的實(shí)際情況,實(shí)用而科學(xué)員工信息管理系統(tǒng)
9、是事業(yè)單位科學(xué)、全面、高效進(jìn)行人事管理的系統(tǒng),參考大量中國人力資源管理理論,根植于國內(nèi)管理的實(shí)際情況,實(shí)用而科學(xué)。</p><p> 職工信息管理系統(tǒng)內(nèi)容包括機(jī)構(gòu)的建立和維護(hù),人員信息的錄入和輸出,工資的調(diào)整和發(fā)放以及各類報(bào)表的繪制和輸出等功能。在操作上實(shí)現(xiàn)簡便靈活,自動(dòng)化的功能。</p><p> 1.2 國內(nèi)外現(xiàn)狀綜述</p><p> 互聯(lián)網(wǎng)空間的發(fā)展,
10、給人們的工作和生活帶來了極大的便利和高效,信息化,電子化已經(jīng)成為節(jié)約運(yùn)營成本,提高工作效率的首選。當(dāng)前大量企業(yè)的員工管理尚處于手工作業(yè)階段,不但效率低下,還常常因?yàn)楣芾淼牟簧鞫霈F(xiàn)紕漏。因此部分企業(yè)需求,設(shè)計(jì)企業(yè)員工信息管理系統(tǒng),以幫助企業(yè)達(dá)到員工管理辦公自動(dòng)化、節(jié)約管理成本、提高企業(yè)工作效率的目的。</p><p> 管理系統(tǒng)信息化系統(tǒng)化是必然需求,也是當(dāng)今社會(huì)的主流。 </p><p&g
11、t;<b> 2 系統(tǒng)需求分析</b></p><p> 2.1 系統(tǒng)功能概述</p><p> 該系統(tǒng)可以實(shí)現(xiàn)對(duì)員工信息的錄入,瀏覽,查找,添加,刪除,修改。</p><p> 輸入功能:職工信息錄入(職工信息用文件保存),可以一次完成若干條記錄的輸入。</p><p> 瀏覽功能:完成對(duì)全部職工信息的顯示。
12、</p><p> 查找功能: (1)完成按職工的職工號(hào)查詢職工的相關(guān)信息,并顯示。</p><p> ?。?)完成按職工的學(xué)歷查詢職工的相關(guān)信息,并顯示。</p><p> ?。?)完成按職工的電話號(hào)碼查詢職工的相關(guān)信息,并顯示。</p><p> 刪除功能:通過輸入職工的姓名完成對(duì)該名職工的信息進(jìn)行刪除。</p><
13、;p> 添加功能:完成添加新職工的信息的任務(wù)。</p><p> 修改功能:通過輸入職工的姓名完成對(duì)該名職工的信息進(jìn)行修改。</p><p> 退出職工信息管理系統(tǒng)。</p><p> 2.2 系統(tǒng)模塊進(jìn)入系統(tǒng)后,首先進(jìn)入菜單選項(xiàng),選擇自己所要進(jìn)行的操作。</p><p> ?。?)錄入職工信息,并保存。</p>
14、<p> (2)瀏覽職工信息,先讀出錄入后的職工信息,然后進(jìn)行瀏覽。</p><p> ?。?)查詢職工信息,先選擇用什么進(jìn)行查詢(按學(xué)歷,職工號(hào),電話號(hào)),若選擇為按學(xué)歷查找,就輸入要查找的學(xué)歷信息,如果未找到該學(xué)歷,系統(tǒng)就會(huì)提示查無此人,若找到后系統(tǒng)就會(huì)顯示已查到此人,并輸出該職工的信息。</p><p> (4)刪除職工信息,先輸入要?jiǎng)h除職工的姓名,進(jìn)行查找,如果未找
15、到該學(xué)歷,系統(tǒng)就會(huì)提示查無此人,若找到后系統(tǒng)就會(huì)顯示已查到此人,并輸出該職工的信息。然后系統(tǒng)就會(huì)提示是否刪除給職工的信息。刪除后就會(huì)顯示新的職工信息。</p><p> ?。?)添加職工信息,先輸入要添加的職工人數(shù),之后依次輸入要添加的信息,最后確認(rèn)是否添加。</p><p> ?。?)修改職工信息,先輸入要修改職工的姓名,進(jìn)行查找,如果未找到該學(xué)歷,系統(tǒng)就會(huì)提示查無此人,若找到后系統(tǒng)就會(huì)
16、顯示已查到此人,并輸出該職工的信息。接著系統(tǒng)就會(huì)提示是否要對(duì)該職工進(jìn)行修改,修改時(shí),系統(tǒng)就會(huì)提示:將會(huì)對(duì)哪個(gè)地方進(jìn)行修改,最后確定自己的修改,系統(tǒng)就會(huì)顯示修改后的職工信息。</p><p> 圖2-2 系統(tǒng)模塊 </p><p> 3 系統(tǒng)存儲(chǔ)結(jié)構(gòu)說明</p><p> 3.1 系統(tǒng)存儲(chǔ)信息說明</p><p> 系統(tǒng)儲(chǔ)存的信息有職工
17、號(hào),姓名,性別,年齡,學(xué)歷,工資數(shù),地址,電話</p><p> 職工號(hào):定義為長整型,由一串?dāng)?shù)字表示。</p><p> 姓名:定義為字符數(shù)組型,由一串字母表示。</p><p> 性別:定義為字符型,由一個(gè)字母表示。(m表示男,f表示女)</p><p> 年齡:定義為整型,由一串?dāng)?shù)字表示。</p><p>
18、; 學(xué)歷:定義為字符數(shù)組型,由一串字母表示。</p><p> 工資:定義為整型,由一串?dāng)?shù)字表示。</p><p> 地址:定義為字符數(shù)組型,由一串字母表示。</p><p> 電話:定義為字符數(shù)組型,由一串?dāng)?shù)字表示。</p><p> 3.2 系統(tǒng)存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)</p><p> 系統(tǒng)中定義一個(gè)結(jié)構(gòu)體來存儲(chǔ)
19、以上信息,使用結(jié)構(gòu)體可以使問題變得簡單,因?yàn)榻Y(jié)構(gòu)體允許用戶自定義數(shù)據(jù)類型,而且允許一個(gè)結(jié)構(gòu)體里面有多個(gè)數(shù)據(jù)項(xiàng),這些數(shù)據(jù)項(xiàng)不需要是同一類型的數(shù)據(jù)項(xiàng)。因此,結(jié)構(gòu)提供了吧類型可能不同的數(shù)據(jù)項(xiàng)聚合成一個(gè)集合手段。</p><p> 3.3 系統(tǒng)文件使用說明</p><p> 指針文件,先定義一個(gè)保存文件函數(shù),然后定義一個(gè)文件指針,再打開那個(gè)指針文件,將內(nèi)存中職工的信息輸出到磁盤文件中去,最后關(guān)
20、閉文件即可。</p><p> void save(int m) /*保存文件函數(shù)*/</p><p><b> {</b></p><p><b> int i;</b></p><p><b> FILE*fp;</b></p><p>
21、 if ((fp=fopen("D:\\liushichang ","wb"))==NULL)</p><p><b> {</b></p><p> printf ("cannot open file\n");</p><p><b> exit(0);</b&
22、gt;</p><p><b> }</b></p><p> for (i=0;i<m;i++) /*將內(nèi)存中職工的信息輸出到磁盤文件中去*/</p><p> if (fwrite(&em[i],sizeof(struct employee),1,fp)!=1)</p><p> printf(
23、"file write error\n");</p><p> fclose(fp);</p><p><b> }</b></p><p> 4 系統(tǒng)功能實(shí)現(xiàn)及代碼描述</p><p> 4.1 輸入職工信息</p><p> 定義一個(gè)結(jié)構(gòu)struct employ
24、ee和數(shù)組em[N]用來存儲(chǔ)N個(gè)職工的所有的信息(職工號(hào)em[i].number、姓名em[i].name、性別em[i].sex、年齡em[i].age、學(xué)歷em[i].xueli、工資em[i].wage、住址em[i].addr、電話em[i].tel)。通過for循環(huán)輸入所有職工信息。用printf語句提示需要輸入的內(nèi)容,接著用scanf語句輸入相應(yīng)內(nèi)容。輸入完畢后套用保存函數(shù)save(n)將所輸入的信息寫入指定文件。</
25、p><p> 圖4-1 輸入流程圖</p><p> 4.2 瀏覽職工信息</p><p> 聲明整形變量i和m,其中i記錄輸出的職工序數(shù),m用來接收傳遞過來的實(shí)參,用for循環(huán)輸出每個(gè)職工的各種信息。正確輸入指令后輸出所輸入的所有職工信息。</p><p> 圖4-2 瀏覽流程圖</p><p> 4.3 查詢
26、職工信息</p><p> 聲明整形變量t,先用printf語句顯示查詢菜單,用scanf輸入選擇的查詢方式代號(hào),用switch(t)進(jìn)入所選擇的具體查詢函數(shù),包括按職工號(hào)查詢、按姓名查詢、按學(xué)歷查詢?nèi)N方式。當(dāng)t=1則表示按職工號(hào)查詢,t=2表示按姓名查詢,t=3表示按學(xué)歷查詢,t=4時(shí)返回主菜單。</p><p><b> 圖4-3 查詢流程</b></
27、p><p> 4.3.1 按職工號(hào)查詢</p><p> 聲明2個(gè)整形變量:i記錄職工的序數(shù),number存放鍵盤輸入的職工號(hào)。調(diào)用導(dǎo)出函數(shù)load(m)(m表示當(dāng)前的職工人數(shù))。通過scanf語句從鍵盤輸入需要查詢的職工號(hào),并賦值給number。用for循環(huán),循環(huán)主體是先判斷em.number中是否有輸入的職工號(hào),如果有,用printf語句輸出與職工號(hào)相對(duì)應(yīng)的該職工所有信息,再跳出循環(huán);
28、如果沒有,輸出“對(duì)不起,查無此人”,并調(diào)用search()返回查詢菜單。</p><p> 圖4-3-1 按姓名查詢流程圖</p><p> 4.4 刪除職工信息</p><p> 先讀出文件中所有職工的信息,并顯示。然后輸入要?jiǎng)h除職工的姓名,首先定義個(gè)局部變量name[](字符數(shù)組),用保存用戶輸入姓名。用戶輸入name[]的值。從職工數(shù)組下標(biāo)為0的元素(即
29、第一個(gè)元素)開始,逐個(gè)比較name 和em[i].name的值,如果相等,就輸出該職工的信息,同時(shí)將標(biāo)志flag置為1,表示查找成功。當(dāng)查找最后一個(gè)職工,若flag=0,則表示查找失敗,輸出該職工不存在。找到之后,將位于這個(gè)職工下一個(gè)的職工信息依次轉(zhuǎn)移的該信息上來進(jìn)行覆蓋,然后再將接下來一個(gè)員工的信息轉(zhuǎn)移到已被轉(zhuǎn)移員工的位置上來….就這樣循環(huán)下來直到將被刪除職工之后所有的職工信息都轉(zhuǎn)移完后,將總?cè)藬?shù)減1,再顯示刪除后所有職工的信息。最后
30、結(jié)束程序。</p><p> 圖4-4 刪除流程圖</p><p> 4.5 添加職工信息</p><p> 先輸入要添加的人數(shù)n,m為已經(jīng)有的人數(shù),令i=m,判斷i是否小于(m+n),當(dāng)小于成立的時(shí)候,就依次輸入一個(gè)職工的信息,并保存該職工的信息,再進(jìn)行判斷,直到把所有的信息都輸入完的時(shí)候,就顯示新的職工信息,最后結(jié)束。</p><p&g
31、t; 圖4-5 添加流程圖</p><p> 4.6 修改職工信息</p><p> 先讀出文件中所有職工的信息,并顯示。然后輸入要修改職工的姓名,首先定義個(gè)局部變量name[](字符數(shù)組),用保存用戶輸入姓名。用戶輸入name[]的值。從職工數(shù)組下標(biāo)為0的元素(即第一個(gè)元素)開始,逐個(gè)比較name 和em[i].name的值,如果相等,就輸出該職工的信息,同時(shí)將標(biāo)志flag置為1,
32、表示查找成功。當(dāng)查找最后一個(gè)職工,若flag=0,則表示查找失敗,輸出該職工不存在。若找到該職工后,輸入數(shù)字(1-8)分別表示為1.職工號(hào) 2.姓名 3.性別 4.年齡 5.學(xué)歷 6.工資 7.住址 8.電話,選擇要對(duì)那個(gè)地方進(jìn)行修改若選擇錯(cuò)誤系統(tǒng)就會(huì)提示選擇錯(cuò)誤,進(jìn)入修改后,輸入自己修改后信息并確認(rèn)即可。最后顯示修改后所有的職工信息,系統(tǒng)再提示是否進(jìn)行修改。直到修改完畢后,結(jié)束程序。</p><p> 圖4-
33、6 修改流程圖</p><p><b> 5 系統(tǒng)測試</b></p><p><b> 5.1 菜單函數(shù)</b></p><p> 如果輸入1-7以外的數(shù)字,就會(huì)顯示輸入錯(cuò)誤。輸入正確的指令系統(tǒng)才開始工作。</p><p><b> 5-1 菜單函數(shù)</b></
34、p><p> 5.2 職工信息的錄入。</p><p> 輸入指令后,按系統(tǒng)提示依次輸入相應(yīng)的信息。</p><p> 圖5-2 職工信息的錄入</p><p> 5.3 職工信息的瀏覽。</p><p> 輸入相應(yīng)指令瀏覽職工信息。</p><p> 圖5-3-1 瀏覽職工信息<
35、/p><p> 5.4 職工信息的查詢(按職工號(hào),學(xué)歷,姓名查詢)以學(xué)歷查詢?yōu)槔?lt;/p><p> 如果未查到,系統(tǒng)就會(huì)顯示查無此人。</p><p> 圖5-4-1 職工號(hào)輸入不正確,查無此人</p><p> 輸入正確指令,將會(huì)顯示查詢到的職工信息。</p><p> 圖5-4-2 查詢到的職工信息</
36、p><p> 5.5 職工信息的刪除。</p><p> 先查找,輸入職工的姓名即可;若輸入錯(cuò)誤,系統(tǒng)提示查無此人。</p><p> 圖5-5-1 職工姓名輸入錯(cuò)誤,查無此人</p><p> 輸入正確后才能刪除職工信息。</p><p> 圖5-5-2 刪除職工信息 </p><p>
37、 5.6 職工信息的添加。</p><p> 先輸入自己要添加的人數(shù),從而依次輸入要添加的信息。</p><p> 圖5-6-1 添加職工信息</p><p> 添加完畢后,系統(tǒng)會(huì)顯示新的職工信息。</p><p> 圖5-6-2 新的職工信息</p><p> 5.7 職工信息的修改。</p>
38、<p> 先查找職工,再選擇修改的類型,修改完后保存。</p><p> 圖5-7 修改職工信息</p><p><b> 5.8 退出系統(tǒng)。</b></p><p><b> 圖5-8 退出系統(tǒng)</b></p><p><b> 6 設(shè)計(jì)心得與總結(jié)</b&g
39、t;</p><p> 經(jīng)過對(duì)職工信息管理系統(tǒng)的分析與編寫,我得到了很大的收獲。自主學(xué)習(xí)的是解決問題的基礎(chǔ)。這次設(shè)計(jì)使我重溫了以前學(xué)過的各科知識(shí),讓我對(duì)C++編程有了更深刻的認(rèn)識(shí)。</p><p> 在設(shè)計(jì)過程中難免遇到困難,這時(shí)候要細(xì)心仔細(xì)尋找自己所出現(xiàn)差錯(cuò)的地方,碰到不懂的地方要及時(shí)向老師或者同學(xué)們請教,記住自己犯下的錯(cuò)誤保證以后不再犯類似錯(cuò)誤。</p><p&
40、gt; 通過這次課程設(shè)計(jì),也學(xué)到和鞏固了許多計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí),對(duì)計(jì)算機(jī)的機(jī)體也有了一個(gè)較為詳細(xì)的了解。在具體操作中對(duì)這學(xué)期所學(xué)的C語言的理論知識(shí)得到鞏固加強(qiáng),達(dá)到實(shí)訓(xùn)的目的,也發(fā)現(xiàn)自己的不足之處,為我們以后的c語言學(xué)習(xí)奠定了基礎(chǔ)。</p><p> C語言具有的語句簡潔,使用靈活,執(zhí)行效率高等特點(diǎn)使解決問題變得更簡單。這次課程設(shè)計(jì)讓我發(fā)現(xiàn)上機(jī)操作的重要作用,通過實(shí)際操作,學(xué)會(huì) C語言程序編程的基本步驟、基本
41、方法,開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問題、解決問題的能力。</p><p> 總結(jié)出了一點(diǎn)點(diǎn)的經(jīng)驗(yàn)如下:</p><p> ?。?)有明確目標(biāo),根據(jù)目標(biāo)制定計(jì)劃。</p><p> ?。?)要對(duì)系統(tǒng)的功能和要求做出詳細(xì)的分析,并合理分解任務(wù)。 </p><p> ?。?)把分解出來的子任務(wù),做給一個(gè)相對(duì)獨(dú)立的模塊。</p>
42、<p> (4)在設(shè)計(jì)一個(gè)模塊之前,要簡單構(gòu)想一下總界面的顯視情況。</p><p> ?。?)針對(duì)構(gòu)想出來的界面進(jìn)行程序的編寫。</p><p><b> 7 參考文獻(xiàn)</b></p><p> [1]Brian w.Kernighan,Dennis M.Ritchie.THE C PROGRAMMING LANGUAGE
43、.北京:清華大學(xué)出版社.2002./PRENTICE HALL ,2001</p><p> [2]秦友淑.曹化工.C語言程序設(shè)計(jì)教程(第二版).武漢:華中科技大學(xué)出版社,2002</p><p> [3]Alkelley,Ira Pohl.C語言教程(英文版.第4版).北京:機(jī)械工業(yè)出版社,2004</p><p> [4]EricS.Roberts.C語言
44、的科學(xué)和藝術(shù)(英文版). 北京:機(jī)械工業(yè)出版社,2004</p><p> [5]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu).北京:清華大學(xué)出版社,1997</p><p> [6]王曉東.算法設(shè)計(jì)與分析.北京:清華大學(xué)出版社,2003</p><p> [7]ISO的C語言標(biāo)準(zhǔn):ISO/IEC 9899:1999(E)</p><p> [8]S.P
45、.Harbison,G.L.Steele.C語言參考手冊.北京:機(jī)械工業(yè)出版社,2003</p><p> [9]葉欣.徐金梧.Turbo C使用大全.北京:北京科海培訓(xùn)中心.1990</p><p><b> 附錄:源程序清單</b></p><p> #include <stdio.h></p><p&
46、gt; #include <windows.h></p><p> #include <string.h></p><p> #define N 100</p><p> struct employee</p><p><b> {</b></p><p><
47、;b> long num;</b></p><p> char name[20];</p><p> char sex; </p><p><b> int age;</b></p><p> char xueli[30];</p><p> int wage;
48、</p><p> char addr[30];</p><p> char tel[20];</p><p> }em[N]; /*定義一個(gè)結(jié)構(gòu)體*/</p><p> void menu();</p><p> void input();</p><p> void
49、 save(int);</p><p> void display();</p><p> void del();</p><p> void add();</p><p> void search();</p><p> void search_num();</p><p> vo
50、id search_xueli();</p><p> void search_tel();</p><p> void modify(); /*定義各函數(shù)*/</p><p> void main()</p><p><b> {</b></p><p><b> menu
51、(); </b></p><p> int n,flag;</p><p><b> char a;</b></p><p><b> do</b></p><p><b> {</b></p><p> printf("
52、;請輸入您的選擇(1~7):");</p><p> scanf("%d",&n);</p><p> if(n>=1&&n<=7)</p><p><b> {</b></p><p><b> flag=1;</b><
53、;/p><p><b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> flag=0;<
54、/b></p><p> printf("您輸入有誤,請重新選擇!");</p><p><b> }</b></p><p><b> }</b></p><p> while(flag==0);</p><p> while(flag=
55、=1)</p><p><b> {</b></p><p><b> switch(n)</b></p><p> {case 1:printf(" ------錄入職工信息------\n");printf("\n");input();break;&
56、lt;/p><p> case 2:printf(" ------瀏覽職工信息------\n");printf("\n");display();break;</p><p> case 3:printf(" ------查詢職工信息------\n");printf("
57、;\n");search();break; </p><p> case 4:printf(" ------刪除職工信息------\n");printf("\n");del();break;</p><p> case 5:printf(" ------插入職工信息----
58、--\n");printf("\n");add();break;</p><p> case 6:printf(" ------修改職工信息------\n");printf("\n");modify();break;</p><p> case 7:exit(0);break;</p
59、><p> default :break;</p><p><b> }</b></p><p> getchar();</p><p> printf("\n");</p><p> printf("是否繼續(xù)進(jìn)行(y or n):\n");</
60、p><p> scanf("%c",&a);</p><p> if(a=='y')</p><p><b> {</b></p><p><b> flag=1;</b></p><p> system("cls&
61、quot;); /*清屏*/</p><p> menu(); /*調(diào)用菜單函數(shù)*/</p><p> printf("請?jiān)俅屋斎肽倪x擇(1~7):\n");</p><p> scanf("%d",&n);</p><p> printf("\n");</
62、p><p><b> }</b></p><p><b> else </b></p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> }</b>
63、;</p><p> void menu() /*菜單函數(shù)*/</p><p><b> {</b></p><p> printf(" -------------歡迎進(jìn)入職工信息管理系統(tǒng)-----------\n");</p><p> printf("
64、 1.錄入職工信息");</p><p> printf(" 2.瀏覽職工信息\n");</p><p> printf(" 3.查詢職工信息");</p><p> printf(" 4.刪除職工信息\n");</
65、p><p> printf(" 5.插入職工信息");</p><p> printf(" 6.修改職工信息\n");</p><p> printf(" 7.退出\n");</p><p> printf("
66、 --------------------謝謝使用--------------------\n");</p><p> printf("\n");</p><p> printf("\n");</p><p><b> }</b></p><p>
67、void input() /*錄入函數(shù)*/</p><p><b> {</b></p><p> int i,n,flag;</p><p> printf("請輸入需要?jiǎng)?chuàng)建信息的職工人數(shù):");</p><p> scanf("%d",&n);</p&
68、gt;<p> for (i=0;i<n;i++)</p><p><b> {</b></p><p><b> do </b></p><p><b> {</b></p><p> printf("請輸入職工號(hào)(2011000-20
69、11999): ");</p><p> scanf("%d",&em[i].num);</p><p> if(em[i].num>=2011000&&em[i].num<=2011999)</p><p><b> {</b></p><p>
70、 flag=1;break;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> flag=0;</b></p><p> pr
71、intf("輸入錯(cuò)誤,請重新輸入!");</p><p><b> }</b></p><p> }while(flag==0);</p><p> printf("請輸入姓名: ");</p><p> scanf("%s",em[i].name);
72、</p><p> getchar();</p><p><b> do</b></p><p><b> {</b></p><p> printf("請輸入性別(f--女 m--男): ");</p><p> scanf("%
73、c",&em[i].sex);</p><p> if(em[i].sex=='f'||em[i].sex=='m')</p><p><b> {</b></p><p> flag=1;break;</p><p><b> }</b>&
74、lt;/p><p><b> else</b></p><p><b> {</b></p><p><b> flag=0;</b></p><p> printf("輸入錯(cuò)誤,請重新輸入:");</p><p> getch
75、ar();</p><p><b> }</b></p><p> }while(flag==0);</p><p><b> do</b></p><p><b> {</b></p><p> printf("請輸入年齡: &q
76、uot;);</p><p> scanf("%d",&em[i].age);</p><p> if(em[i].age<=75&&em[i].age>=18)</p><p><b> {</b></p><p> flag=1;break;</p
77、><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> flag=0;</b></p><p> printf("不科學(xué),請重新輸入
78、!");</p><p><b> }</b></p><p> }while(flag==0);</p><p> printf("請輸入學(xué)歷: ");</p><p> scanf("%s",em[i].xueli);</p><p>
79、; printf("請輸入工資: ");</p><p> scanf("%d",&em[i].wage);</p><p> printf("請輸入住址: ");</p><p> scanf("%s",em[i].addr);</p><p&g
80、t; printf("請輸入電話: ");</p><p> scanf("%s",em[i].tel);</p><p> printf("\n");</p><p><b> }</b></p><p> printf("\n創(chuàng)建完畢!
81、\n");</p><p><b> save(n);</b></p><p><b> }</b></p><p> void save(int m) /*保存文件函數(shù)*/</p><p><b> {</b></p><p>&l
82、t;b> int i;</b></p><p><b> FILE*fp;</b></p><p> if ((fp=fopen("employee_list","wb"))==NULL)</p><p><b> {</b></p><
83、p> printf ("cannot open file\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> for (i=0;i<m;i++) /*將內(nèi)存中職工的信息輸出到磁盤文件中去*/</p>&l
84、t;p> if(fwrite(&em[i],sizeof(struct employee),1,fp)!=1)</p><p> printf("file write error\n");</p><p> fclose(fp);</p><p><b> }</b></p><p&
85、gt; int load() /*導(dǎo)入函數(shù)*/</p><p><b> {</b></p><p><b> FILE*fp;</b></p><p><b> int i=0;</b></p><p> if((fp=fopen("employee_l
86、ist","rb"))==NULL)</p><p><b> {</b></p><p> printf ("cannot open file\n");</p><p><b> exit(0);</b></p><p><b>
87、 }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> do </b></p><p><b> {</b></p><p> fread(&a
88、mp;em[i],sizeof(struct employee),1,fp);</p><p><b> i++;</b></p><p><b> }</b></p><p> while(feof(fp)==0);</p><p><b> }</b></p&
89、gt;<p> fclose(fp);</p><p> return(i-1);</p><p><b> }</b></p><p> void display() /*瀏覽函數(shù)*/</p><p><b> {</b></p><p><
90、b> int i;</b></p><p> int m=load();</p><p> printf("職工號(hào)\t姓名\t性別\t年齡\t學(xué)歷\t工資\t住址\t電話\n");</p><p> for(i=0;i<m;i++) /*m為輸入部分的職工人數(shù)*/</p><p> pri
91、ntf("%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);</p><p><b> }</b></p><p> void del() /*刪除函數(shù)
92、*/</p><p><b> {</b></p><p> int m=load();</p><p> int i,j,n,t,flag;</p><p> char name[20];</p><p> printf("\n 原來的職工信息:\n");</
93、p><p> display();</p><p> printf("\n");</p><p> printf("請輸入要?jiǎng)h除的職工的姓名:\n");</p><p> scanf("%s",name);</p><p> for(flag=1,i=0
94、;flag&&i<m;i++)</p><p><b> {</b></p><p> if(strcmp(em[i].name,name)==0)</p><p><b> {</b></p><p> printf("已找到此人,原始記錄為:\n"
95、;);</p><p> printf("職工號(hào)\t姓名\t性別\t年齡\t學(xué)歷\t工資\t住址\t電話\n");</p><p> printf("%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,e
96、m[i].addr,em[i].tel); </p><p> printf("\n確實(shí)要?jiǎng)h除此人信息請按1,不刪除請按0\n");</p><p> scanf("%d",&n);</p><p><b> if(n==1)</b></p><p><b&g
97、t; {</b></p><p> for(j=i;j<m-1;j++)</p><p><b> {</b></p><p> strcpy(em[j].name,em[j+1].name);</p><p> em[j].num=em[j+1].num;</p><p&
98、gt; em[j].sex=em[j+1].sex;</p><p> em[j].age=em[j+1].age;</p><p> strcpy(em[j].xueli,em[j+1].xueli);</p><p> em[j].wage=em[j+1].wage; </p><p> strcpy(em[j].addr,e
99、m[j+1].addr);</p><p> strcpy(em[j].tel,em[j+1].tel);</p><p><b> }</b></p><p><b> flag=0;</b></p><p><b> }</b></p><p&g
100、t;<b> }</b></p><p><b> }</b></p><p><b> if(!flag)</b></p><p><b> m=m-1;</b></p><p><b> else</b></p&g
101、t;<p> printf("\n對(duì)不起,查無此人!\n");</p><p> printf("\n 瀏覽刪除后的所有職工信息:\n");</p><p> save(m); /*調(diào)用保存函數(shù)*/</p><p> display(); /*調(diào)用瀏覽函數(shù)*/</p><p&
102、gt; printf("\n繼續(xù)刪除請按1,不再刪除請按0\n");</p><p> scanf("%d",&t);</p><p><b> switch(t)</b></p><p> {case 1:del();break;</p><p> case 0
103、:break;</p><p> default :break;</p><p><b> }</b></p><p><b> }</b></p><p> void add()/*添加函數(shù)*/</p><p><b> {</b></
104、p><p><b> FILE*fp;</b></p><p> int n,i,count=0;</p><p> int m=load();</p><p> printf("\n 原來的職工信息:\n");</p><p> display(); </p&g
105、t;<p> printf("\n");</p><p> fp=fopen("emploee_list","a");</p><p> printf("請輸入想增加的職工數(shù):\n");</p><p> scanf("%d",&n);&
106、lt;/p><p> for (i=m;i<(m+n);i++)</p><p><b> {</b></p><p> printf("\n 請輸入新增加職工的信息:");</p><p> printf("請輸入職工號(hào)(2011000-2011999): ");&l
107、t;/p><p> scanf("%d",&em[i].num);</p><p> printf("\n");</p><p> printf("請輸入姓名: ");</p><p> scanf("%s",em[i].name);</p&g
108、t;<p> getchar();</p><p> printf("請輸入性別(w--女 m--男): ");</p><p> scanf("%c",&em[i].sex);</p><p> printf("請輸入年齡: ");</p><p&g
109、t; scanf("%d",&em[i].age);</p><p> printf("請輸入學(xué)歷: ");</p><p> scanf("%s",em[i].xueli);</p><p> printf("請輸入工資: ");</p><p&
110、gt; scanf("%d",&em[i].wage);</p><p> printf("請輸入住址: ");</p><p> scanf("%s",em[i].addr);</p><p> printf("請輸入電話: ");</p><p
111、> scanf("%s",em[i].tel);</p><p> printf("\n");</p><p> count=count+1;</p><p> printf("已增加的人數(shù):\n");</p><p> printf("%d\n"
112、,count);</p><p><b> }</b></p><p> printf("\n添加完畢!\n");</p><p> m=m+count;</p><p> printf("\n瀏覽增加后的所有職工信息:\n");</p><p>
113、 printf("\n");</p><p><b> save(m);</b></p><p> display();</p><p> fclose(fp);</p><p><b> }</b></p><p> void search()
114、/*查詢函數(shù)*/</p><p><b> {</b></p><p> int t,flag;</p><p><b> do</b></p><p><b> {</b></p><p> printf("\n按職工號(hào)查詢請按1;
115、 按學(xué)歷查詢請按2; 按電話號(hào)碼查詢請按3; 進(jìn)入主函數(shù)請按4\n");</p><p> scanf("%d",&t);</p><p> if(t>=1&&t<=4)</p><p><b> {</b></p><p><b>
116、 flag=1;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>&
117、lt;b> flag=0;</b></p><p> printf("您輸入有誤,請重新選擇!");</p><p><b> }</b></p><p><b> }</b></p><p> while(flag==0);</p>&
118、lt;p> while(flag==1)</p><p><b> {</b></p><p><b> switch(t)</b></p><p> {case 1:printf("按職工號(hào)查詢\n");search_num();break;</p><p>
119、case 2:printf("按學(xué)歷查詢\n");search_xueli();break;</p><p> case 3:printf("按電話號(hào)碼查詢\n");search_tel();break;</p><p> case 4:main();break;</p><p> default:break;</
120、p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void search_num()</p><p><b> {</b></p>&
121、lt;p> int num,i,t;</p><p> int m=load();</p><p> printf("請輸入要查找的職工號(hào):");</p><p> scanf("%d",&num);</p><p> for(i=0;i<m;i++)</p>
122、<p> if(num==em[i].num)</p><p><b> {</b></p><p> printf("\n已找到此人,其記錄為\n");</p><p> printf("職工號(hào)\t姓名\t性別\t年齡\t學(xué)歷\t工資\t住址\t電話\n");</p>
123、<p> printf("%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);break;</p><p><b> }</b></p><p>&
124、lt;b> if(i>=m)</b></p><p> printf("\n對(duì)不起,查無此人\n");</p><p> printf("\n");</p><p> printf("返回查詢函數(shù)請按1,繼續(xù)查詢職工號(hào)請按2:");</p><p>
125、 scanf("%d",&t);</p><p><b> switch(t)</b></p><p> { case 1:search();break;</p><p> case 2: break;</p><p> default:break;</p><p&
126、gt;<b> }</b></p><p><b> }</b></p><p> void search_xueli()</p><p><b> {</b></p><p> char xueli[30];</p><p><b>
127、; int i,t;</b></p><p> int m=load();</p><p> printf("請輸入要查找的學(xué)歷:");</p><p> scanf("%s",xueli);</p><p> for(i=0;i<m;i++)</p><
128、p> if(strcmp(em[i].xueli,xueli)==0)</p><p><b> {</b></p><p> printf("\n已找到,其記錄為\n");</p><p> printf("職工號(hào)\t姓名\t性別\t年齡\t學(xué)歷\t工資\t住址\t電話\n");</
129、p><p> printf("%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);</p><p><b> }</b></p><p>
130、<b> else</b></p><p><b> {</b></p><p> printf("\n對(duì)不起,查無此人\n");</p><p><b> }</b></p><p> printf("\n");</p&
131、gt;<p> printf("返回查詢函數(shù)請按1,繼續(xù)查詢學(xué)歷請按2:");</p><p> scanf("%d",&t);</p><p><b> switch(t)</b></p><p><b> {</b></p><p
132、> case 1:search();break;</p><p> case 2:break;</p><p> default :break;</p><p><b> }</b></p><p><b> }</b></p><p> void sear
133、ch_tel()</p><p><b> {</b></p><p> char tel[20];</p><p><b> int i, t;</b></p><p> int m=load();</p><p> printf("請輸入要查找的電話號(hào)
134、碼:");</p><p> scanf("%s",tel);</p><p> for(i=0;i<m;i++)</p><p> if(strcmp(tel,em[i].tel)==0)</p><p><b> {</b></p><p> pr
135、intf("\n已找到此人,其記錄為:\n");</p><p> printf("職工號(hào)\t姓名\t性別\t年齡\t學(xué)歷\t工資\t住址\t電話\n");</p><p> printf("%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[
136、i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);break;</p><p><b> }</b></p><p><b> if(i>=m)</b></p><p> printf("\n對(duì)不起,查無此人\n");</p>
137、<p> printf("\n");</p><p> printf("返回查詢函數(shù)請按1,繼續(xù)查詢電話號(hào)碼請按2:");</p><p> scanf("%d",&t);</p><p><b> switch(t)</b></p><
138、;p> {case 1:search();break;</p><p> case 2:break;</p><p> default :break;</p><p><b> }</b></p><p><b> }</b></p><p> void m
139、odify() /*修改函數(shù)*/</p><p><b> {</b></p><p><b> int num;</b></p><p> char name[20];</p><p><b> char sex;</b></p><p>&l
140、t;b> int age;</b></p><p> char xueli[30];</p><p><b> int wage;</b></p><p> char addr[30];</p><p> char tel[20];</p><p> int b,c,
141、i,n,t,flag;</p><p> int m=load();</p><p> printf("\n 原來的職工信息:\n");</p><p> display();</p><p> printf("\n");</p><p> printf("請
142、輸入要修改的職工的姓名:");</p><p> scanf("%s",name);</p><p> for(flag=1,i=0;flag&&i<m;i++)</p><p><b> {</b></p><p> if(strcmp(em[i].name,
143、name)==0)</p><p><b> {</b></p><p> printf("\n已找到此人,原始記錄\n");</p><p> printf("職工號(hào)\t姓名\t性別\t年齡\t學(xué)歷\t工資\t住址\t電話\n");</p><p> printf(&qu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 職工信息管理系統(tǒng)課程設(shè)計(jì)
- 職工信息管理系統(tǒng)課程設(shè)計(jì)
- jsp課程設(shè)計(jì)--職工信息管理系統(tǒng)
- 職工信息管理系統(tǒng)課程設(shè)計(jì) (2)
- c語言課程設(shè)計(jì)--職工信息管理系統(tǒng)
- 職工信息管理系統(tǒng)c語言課程設(shè)計(jì)
- c++課程設(shè)計(jì)--職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)職工信息管理系統(tǒng)
- c-課程設(shè)計(jì)--- 職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)---職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)——職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)——職工信息管理系統(tǒng)
- 面向?qū)ο笳n程設(shè)計(jì)--職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)—職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)--職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)---職工信息管理系統(tǒng)設(shè)計(jì)
- c語言課程設(shè)計(jì)報(bào)告---職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告--職工信息管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告----職工信息管理系統(tǒng)設(shè)計(jì)
- c++課程設(shè)計(jì)--職工信息管理
評(píng)論
0/150
提交評(píng)論