職工信息管理系統(tǒng)課程設計_第1頁
職工信息管理系統(tǒng)課程設計_第2頁
職工信息管理系統(tǒng)課程設計_第3頁
職工信息管理系統(tǒng)課程設計_第4頁
職工信息管理系統(tǒng)課程設計_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、武漢長江工商學院計算機科學與技術系項目名稱: 職工信息管理系統(tǒng)學生姓名: 魏 蓓學 號: 1203100228班 級: 12802指導教師: 劉 瑩2013 年 5 月 30 日目錄1 引言11.1 選題意義11.2 國內(nèi)外現(xiàn)狀綜述12 系統(tǒng)需求分析12.1 系統(tǒng)功能概述12.2 系統(tǒng)模塊13 系統(tǒng)存儲結構說明33.1 系統(tǒng)存儲信息說明33.2 系統(tǒng)存儲結構設計33.3 系統(tǒng)文件使用說明34 系統(tǒng)功能實現(xiàn)及代碼描述44.1 輸入職工信息44.2 瀏覽職工信息44.3 查詢職工信息54.3.1 按職工號查詢64.4 刪除職工信息64.5 添加職工信息84.6 修改職工信息85 系統(tǒng)測試105.1

2、 菜單函數(shù)105.2 職工信息的錄入105.3 職工信息的瀏覽115.4 職工信息的查詢(按職工號,學歷,姓名查詢)115.5職工信息的刪除 115.6 職工信息的添加125.7 職工信息的修改135.8 退出系統(tǒng)。146 設計心得與總結147.參考文獻.148.附錄,源程序.151 引言1.1 選題意義員工信息管理系統(tǒng)是事業(yè)單位科學、全面、高效進行人事管理的系統(tǒng),參考大量中國人力資源管理理論,根植于國內(nèi)管理的實際情況,實用而科學員工信息管理系統(tǒng)是事業(yè)單位科學、全面、高效進行人事管理的系統(tǒng),參考大量中國人力資源管理理論,根植于國內(nèi)管理的實際情況,實用而科學。職工信息管理系統(tǒng)內(nèi)容包括機構的建立和

3、維護,人員信息的錄入和輸出,工資的調(diào)整和發(fā)放以及各類報表的繪制和輸出等功能。在操作上實現(xiàn)簡便靈活,自動化的功能。1.2 國內(nèi)外現(xiàn)狀綜述互聯(lián)網(wǎng)空間的發(fā)展,給人們的工作和生活帶來了極大的便利和高效,信息化,電子化已經(jīng)成為節(jié)約運營成本,提高工作效率的首選。當前大量企業(yè)的員工管理尚處于手工作業(yè)階段,不但效率低下,還常常因為管理的不慎而出現(xiàn)紕漏。因此部分企業(yè)需求,設計企業(yè)員工信息管理系統(tǒng),以幫助企業(yè)達到員工管理辦公自動化、節(jié)約管理成本、提高企業(yè)工作效率的目的。 管理系統(tǒng)信息化系統(tǒng)化是必然需求,也是當今社會的主流。2 系統(tǒng)需求分析2.1 系統(tǒng)功能概述該系統(tǒng)可以實現(xiàn)對員工信息的錄入,瀏覽,查找,添加,刪除,

4、修改。輸入功能:職工信息錄入(職工信息用文件保存),可以一次完成若干條記錄的輸入。瀏覽功能:完成對全部職工信息的顯示。查找功能: (1)完成按職工的職工號查詢職工的相關信息,并顯示。 (2)完成按職工的學歷查詢職工的相關信息,并顯示。(3)完成按職工的電話號碼查詢職工的相關信息,并顯示。刪除功能:通過輸入職工的姓名完成對該名職工的信息進行刪除。添加功能:完成添加新職工的信息的任務。修改功能:通過輸入職工的姓名完成對該名職工的信息進行修改。退出職工信息管理系統(tǒng)。2.2 系統(tǒng)模塊進入系統(tǒng)后,首先進入菜單選項,選擇自己所要進行的操作。(1)錄入職工信息,并保存。(2)瀏覽職工信息,先讀出錄入后的職工

5、信息,然后進行瀏覽。(3)查詢職工信息,先選擇用什么進行查詢(按學歷,職工號,電話號),若選擇為按學歷查找,就輸入要查找的學歷信息,如果未找到該學歷,系統(tǒng)就會提示查無此人,若找到后系統(tǒng)就會顯示已查到此人,并輸出該職工的信息。(4)刪除職工信息,先輸入要刪除職工的姓名,進行查找,如果未找到該學歷,系統(tǒng)就會提示查無此人,若找到后系統(tǒng)就會顯示已查到此人,并輸出該職工的信息。然后系統(tǒng)就會提示是否刪除給職工的信息。刪除后就會顯示新的職工信息。(5)添加職工信息,先輸入要添加的職工人數(shù),之后依次輸入要添加的信息,最后確認是否添加。(6)修改職工信息,先輸入要修改職工的姓名,進行查找,如果未找到該學歷,系統(tǒng)

6、就會提示查無此人,若找到后系統(tǒng)就會顯示已查到此人,并輸出該職工的信息。接著系統(tǒng)就會提示是否要對該職工進行修改,修改時,系統(tǒng)就會提示:將會對哪個地方進行修改,最后確定自己的修改,系統(tǒng)就會顯示修改后的職工信息。圖2-2 系統(tǒng)模塊 3 系統(tǒng)存儲結構說明3.1 系統(tǒng)存儲信息說明系統(tǒng)儲存的信息有職工號,姓名,性別,年齡,學歷,工資數(shù),地址,電話職工號:定義為長整型,由一串數(shù)字表示。姓名:定義為字符數(shù)組型,由一串字母表示。性別:定義為字符型,由一個字母表示。(m表示男,f表示女)年齡:定義為整型,由一串數(shù)字表示。學歷:定義為字符數(shù)組型,由一串字母表示。工資:定義為整型,由一串數(shù)字表示。地址:定義為字符數(shù)組

7、型,由一串字母表示。電話:定義為字符數(shù)組型,由一串數(shù)字表示。3.2 系統(tǒng)存儲結構設計系統(tǒng)中定義一個結構體來存儲以上信息,使用結構體可以使問題變得簡單,因為結構體允許用戶自定義數(shù)據(jù)類型,而且允許一個結構體里面有多個數(shù)據(jù)項,這些數(shù)據(jù)項不需要是同一類型的數(shù)據(jù)項。因此,結構提供了吧類型可能不同的數(shù)據(jù)項聚合成一個集合手段。3.3 系統(tǒng)文件使用說明指針文件,先定義一個保存文件函數(shù),然后定義一個文件指針,再打開那個指針文件,將內(nèi)存中職工的信息輸出到磁盤文件中去,最后關閉文件即可。void save(int m) /*保存文件函數(shù)*/int i; FILE*fp;if (fp=fopen(D:liushich

8、ang,wb)=NULL)printf (cannot open filen);exit(0);for (i=0;im;i+) /*將內(nèi)存中職工的信息輸出到磁盤文件中去*/if (fwrite(&emi,sizeof(struct employee),1,fp)!=1)printf(file write errorn);fclose(fp);4 系統(tǒng)功能實現(xiàn)及代碼描述4.1 輸入職工信息定義一個結構struct employee和數(shù)組emN用來存儲N個職工的所有的信息(職工號emi.number、姓名、性別emi.sex、年齡emi.age、學歷emi.xueli、工資emi.

9、wage、住址emi.addr、電話emi.tel)。通過for循環(huán)輸入所有職工信息。用printf語句提示需要輸入的內(nèi)容,接著用scanf語句輸入相應內(nèi)容。輸入完畢后套用保存函數(shù)save(n)將所輸入的信息寫入指定文件。圖4-1 輸入流程圖4.2 瀏覽職工信息聲明整形變量i和m,其中i記錄輸出的職工序數(shù),m用來接收傳遞過來的實參,用for循環(huán)輸出每個職工的各種信息。正確輸入指令后輸出所輸入的所有職工信息。 圖4-2 瀏覽流程圖4.3 查詢職工信息聲明整形變量t,先用printf語句顯示查詢菜單,用scanf輸入選擇的查詢方式代號,用switch(t)進入所選擇的具體查詢函數(shù),包括按職工號查詢

10、、按姓名查詢、按學歷查詢?nèi)N方式。當t=1則表示按職工號查詢,t=2表示按姓名查詢,t=3表示按學歷查詢,t=4時返回主菜單。圖4-3 查詢流程 按職工號查詢聲明2個整形變量:i記錄職工的序數(shù),number存放鍵盤輸入的職工號。調(diào)用導出函數(shù)load(m)(m表示當前的職工人數(shù))。通過scanf語句從鍵盤輸入需要查詢的職工號,并賦值給number。用for循環(huán),循環(huán)主體是先判斷em.number中是否有輸入的職工號,如果有,用printf語句輸出與職工號相對應的該職工所有信息,再跳出循環(huán);如果沒有,輸出“對不起,查無此人”,并調(diào)用search()返回查詢菜單。 圖4-3-1 按姓名查詢流程圖4.

11、4 刪除職工信息先讀出文件中所有職工的信息,并顯示。然后輸入要刪除職工的姓名,首先定義個局部變量name(字符數(shù)組),用保存用戶輸入姓名。用戶輸入name的值。從職工數(shù)組下標為0的元素(即第一個元素)開始,逐個比較name 和的值,如果相等,就輸出該職工的信息,同時將標志flag置為1,表示查找成功。當查找最后一個職工,若flag=0,則表示查找失敗,輸出該職工不存在。找到之后,將位于這個職工下一個的職工信息依次轉移的該信息上來進行覆蓋,然后再將接下來一個員工的信息轉移到已被轉移員工的位置上來.就這樣循環(huán)下來直到將被刪除職工之后所有的職工信息都轉移完后,將總人數(shù)減1,再顯示刪除

12、后所有職工的信息。最后結束程序。 圖4-4 刪除流程圖4.5 添加職工信息先輸入要添加的人數(shù)n,m為已經(jīng)有的人數(shù),令i=m,判斷i是否小于(m+n),當小于成立的時候,就依次輸入一個職工的信息,并保存該職工的信息,再進行判斷,直到把所有的信息都輸入完的時候,就顯示新的職工信息,最后結束。 圖4-5 添加流程圖4.6 修改職工信息先讀出文件中所有職工的信息,并顯示。然后輸入要修改職工的姓名,首先定義個局部變量name(字符數(shù)組),用保存用戶輸入姓名。用戶輸入name的值。從職工數(shù)組下標為0的元素(即第一個元素)開始,逐個比較name 和的值,如果相等,就輸出該職工的信息,同時將標

13、志flag置為1,表示查找成功。當查找最后一個職工,若flag=0,則表示查找失敗,輸出該職工不存在。若找到該職工后,輸入數(shù)字(1-8)分別表示為1.職工號 2.姓名 3.性別 4.年齡 5.學歷 6.工資 7.住址 8.電話,選擇要對那個地方進行修改若選擇錯誤系統(tǒng)就會提示選擇錯誤,進入修改后,輸入自己修改后信息并確認即可。最后顯示修改后所有的職工信息,系統(tǒng)再提示是否進行修改。直到修改完畢后,結束程序。 圖4-6 修改流程圖5系統(tǒng)測試5.1菜單函數(shù)如果輸入1-7以外的數(shù)字,就會顯示輸入錯誤。輸入正確的指令系統(tǒng)才開始工作。5-1 菜單函數(shù)5.2職工信息的錄入。輸入指令后,按系統(tǒng)提示依次輸入相應的

14、信息。圖5-2 職工信息的錄入5.3職工信息的瀏覽。輸入相應指令瀏覽職工信息。圖5-3-1 瀏覽職工信息5.4職工信息的查詢(按職工號,學歷,姓名查詢)以學歷查詢?yōu)槔绻床榈剑到y(tǒng)就會顯示查無此人。圖5-4-1 職工號輸入不正確,查無此人輸入正確指令,將會顯示查詢到的職工信息。圖5-4-2 查詢到的職工信息5.5 職工信息的刪除。先查找,輸入職工的姓名即可;若輸入錯誤,系統(tǒng)提示查無此人。 圖5-5-1 職工姓名輸入錯誤,查無此人輸入正確后才能刪除職工信息。 圖5-5-2 刪除職工信息 5.6職工信息的添加。先輸入自己要添加的人數(shù),從而依次輸入要添加的信息。圖5-6-1 添加職工信息添加完畢后

15、,系統(tǒng)會顯示新的職工信息。 圖5-6-2 新的職工信息5.7職工信息的修改。先查找職工,再選擇修改的類型,修改完后保存。圖5-7 修改職工信息5.8退出系統(tǒng)。 圖5-8 退出系統(tǒng)6設計心得與總結經(jīng)過對職工信息管理系統(tǒng)的分析與編寫,我得到了很大的收獲。自主學習的是解決問題的基礎。這次設計使我重溫了以前學過的各科知識,讓我對C編程有了更深刻的認識。在設計過程中難免遇到困難,這時候要細心仔細尋找自己所出現(xiàn)差錯的地方,碰到不懂的地方要及時向老師或者同學們請教,記住自己犯下的錯誤保證以后不再犯類似錯誤。通過這次課程設計,也學到和鞏固了許多計算機應用基礎知識,對計算機的機體也有了一個較為詳細的了解。在具體

16、操作中對這學期所學的C語言的理論知識得到鞏固加強,達到實訓的目的,也發(fā)現(xiàn)自己的不足之處,為我們以后的c語言學習奠定了基礎。C語言具有的語句簡潔,使用靈活,執(zhí)行效率高等特點使解決問題變得更簡單。這次課程設計讓我發(fā)現(xiàn)上機操作的重要作用,通過實際操作,學會 C語言程序編程的基本步驟、基本方法,開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問題、解決問題的能力??偨Y出了一點點的經(jīng)驗如下:(1)有明確目標,根據(jù)目標制定計劃。(2)要對系統(tǒng)的功能和要求做出詳細的分析,并合理分解任務。 (3)把分解出來的子任務,做給一個相對獨立的模塊。(4)在設計一個模塊之前,要簡單構想一下總界面的顯視情況。(5)針對構想出來的界面

17、進行程序的編寫。7 參考文獻1Brian w.Kernighan,Dennis M.Ritchie.THE C PROGRAMMING LANGUAGE.北京:清華大學出版社.2002./PRENTICE HALL ,20012秦友淑.曹化工.C語言程序設計教程(第二版).武漢:華中科技大學出版社,20023Alkelley,Ira Pohl.C語言教程(英文版.第4版).北京:機械工業(yè)出版社,2004語言的科學和藝術(英文版).北京:機械工業(yè)出版社,20045嚴蔚敏,吳偉民.數(shù)據(jù)結構.北京:清華大學出版社,19976王曉東.算法設計與分析.北京:清華大學出版社,20037ISO的C語言標準:

18、ISO/IEC 9899:1999(E)8S.P.Harbison,G.L.Steele.C語言參考手冊.北京:機械工業(yè)出版社,20039葉欣.徐金梧.Turbo C使用大全.北京:北京科海培訓中心.1990附錄:源程序清單#include #include #include #define N 100struct employeelong num; char name20; char sex; int age; char xueli30; int wage; char addr30; char tel20;emN; /*定義一個結構體*/void menu();void input();vo

19、id save(int);void display();void del();void add();void search();void search_num();void search_xueli();void search_tel();void modify(); /*定義各函數(shù)*/void main()menu(); int n,flag;char a;doprintf(請輸入您的選擇(17):);scanf(%d,&n);if(n=1&n=7)flag=1;break;elseflag=0;printf(您輸入有誤,請重新選擇!);while(flag=0);while(flag=1)

20、switch(n)case 1:printf( -錄入職工信息-n);printf(n);input();break;case 2:printf( -瀏覽職工信息-n);printf(n);display();break;case 3:printf( -查詢職工信息-n);printf(n);search();break; case 4:printf( -刪除職工信息-n);printf(n);del();break; case 5:printf( -插入職工信息-n);printf(n);add();break; case 6:printf( -修改職工信息-n);printf(n);mod

21、ify();break; case 7:exit(0);break;default :break;getchar();printf(n);printf(是否繼續(xù)進行(y or n):n);scanf(%c,&a);if(a=y)flag=1;system(cls); /*清屏*/menu(); /*調(diào)用菜單函數(shù)*/printf(請再次輸入您的選擇(17):n);scanf(%d,&n);printf(n);else exit(0);void menu() /*菜單函數(shù)*/printf( -歡迎進入職工信息管理系統(tǒng)-n); printf( 1.錄入職工信息); printf( 2.瀏覽職工信息n

22、); printf( 3.查詢職工信息); printf( 4.刪除職工信息n); printf( 5.插入職工信息);printf( 6.修改職工信息n); printf( 7.退出n); printf( -謝謝使用-n);printf(n); printf(n);void input() /*錄入函數(shù)*/int i,n,flag;printf(請輸入需要創(chuàng)建信息的職工人數(shù):);scanf(%d,&n);for (i=0;i=2011000&emi.num=2011999)flag=1;break;elseflag=0;printf(輸入錯誤,請重新輸入!);while(flag=0); p

23、rintf(請輸入姓名: ); scanf(%s,); getchar();do printf(請輸入性別(f-女 m-男): ); scanf(%c,&emi.sex); if(emi.sex=f|emi.sex=m) flag=1;break; elseflag=0;printf(輸入錯誤,請重新輸入:); getchar();while(flag=0);do printf(請輸入年齡: ); scanf(%d,&emi.age);if(emi.age=18)flag=1;break;elseflag=0;printf(不科學,請重新輸入!);while(flag=0);

24、printf(請輸入學歷: );scanf(%s,emi.xueli); printf(請輸入工資: ); scanf(%d,&emi.wage); printf(請輸入住址: ); scanf(%s,emi.addr);printf(請輸入電話: ); scanf(%s,emi.tel); printf(n);printf(n創(chuàng)建完畢!n);save(n);void save(int m) /*保存文件函數(shù)*/int i;FILE*fp;if (fp=fopen(employee_list,wb)=NULL)printf (cannot open filen);exit(0);for (i=

25、0;im;i+) /*將內(nèi)存中職工的信息輸出到磁盤文件中去*/if(fwrite(&emi,sizeof(struct employee),1,fp)!=1)printf(file write errorn);fclose(fp);int load() /*導入函數(shù)*/FILE*fp;int i=0;if(fp=fopen(employee_list,rb)=NULL)printf (cannot open filen);exit(0);elsedo fread(&emi,sizeof(struct employee),1,fp);i+;while(feof(fp)=0);fclose(fp)

26、;return(i-1);void display() /*瀏覽函數(shù)*/int i;int m=load(); printf(職工號t姓名t性別t年齡t學歷t工資t住址t電話n);for(i=0;im;i+) /*m為輸入部分的職工人數(shù)*/printf(%dt%st%ct%dt%st%dt%st%sn,emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);void del() /*刪除函數(shù)*/int m=load();int i,j,n,t,flag;char name20;printf(n 原來的職工信息:

27、n);display();printf(n);printf(請輸入要刪除的職工的姓名:n);scanf(%s,name);for(flag=1,i=0;flag&im;i+)if(strcmp(,name)=0)printf(已找到此人,原始記錄為:n);printf(職工號t姓名t性別t年齡t學歷t工資t住址t電話n); printf(%dt%st%ct%dt%st%dt%st%sn,emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); printf(n確實要刪除此人信息請按1,不刪除請按

28、0n);scanf(%d,&n);if(n=1)for(j=i;jm-1;j+)strcpy(,emj+1.name);emj.num=emj+1.num; emj.sex=emj+1.sex; emj.age=emj+1.age; strcpy(emj.xueli,emj+1.xueli);emj.wage=emj+1.wage; strcpy(emj.addr,emj+1.addr); strcpy(emj.tel,emj+1.tel);flag=0;if(!flag)m=m-1;elseprintf(n對不起,查無此人!n);printf(n 瀏覽刪除后的所有職工信息:n

29、);save(m); /*調(diào)用保存函數(shù)*/display(); /*調(diào)用瀏覽函數(shù)*/printf(n繼續(xù)刪除請按1,不再刪除請按0n);scanf(%d,&t);switch(t)case 1:del();break;case 0:break; default :break;void add()/*添加函數(shù)*/FILE*fp;int n,i,count=0;int m=load();printf(n 原來的職工信息:n); display(); printf(n);fp=fopen(emploee_list,a); printf(請輸入想增加的職工數(shù):n);scanf(%d,&n);for (

30、i=m;i=1&t=4)flag=1;break;elseflag=0;printf(您輸入有誤,請重新選擇!);while(flag=0);while(flag=1)switch(t)case 1:printf(按職工號查詢n);search_num();break; case 2:printf(按學歷查詢n);search_xueli();break; case 3:printf(按電話號碼查詢n);search_tel();break; case 4:main();break;default:break;void search_num()int num,i,t;int m=load();

31、printf(請輸入要查找的職工號:);scanf(%d,&num);for(i=0;i=m)printf(n對不起,查無此人n);printf(n);printf(返回查詢函數(shù)請按1,繼續(xù)查詢職工號請按2:);scanf(%d,&t);switch(t) case 1:search();break;case 2: break;default:break;void search_xueli()char xueli30;int i,t;int m=load();printf(請輸入要查找的學歷:);scanf(%s,xueli);for(i=0;im;i+)if(strcmp(emi.xueli

32、,xueli)=0)printf(n已找到,其記錄為n);printf(職工號t姓名t性別t年齡t學歷t工資t住址t電話n);printf(%dt%st%ct%dt%st%dt%st%sn,emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);elseprintf(n對不起,查無此人n);printf(n);printf(返回查詢函數(shù)請按1,繼續(xù)查詢學歷請按2:);scanf(%d,&t);switch(t)case 1:search();break;case 2:break;default :break;void search_tel()char tel20; int i, t; int m=load(); printf(請輸入要查找的電話號碼:); scanf(%s,tel);for(i=0;i=m)printf(n對不起,查無此人n);printf(n);printf(返回查詢函數(shù)請按1,繼續(xù)查詢電話號碼請按2:);scanf(%d,&t);switch(t)case 1:search();break;case 2:break; default :break;vo

溫馨提示

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

評論

0/150

提交評論