




已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C語言程序設(shè)計課程設(shè)計人事檔案管理系統(tǒng)指導(dǎo)教師:李耀成設(shè) 計 者:劉玉成、孫濤、馬新涌、郭恒陽 專業(yè)班級:機電081設(shè)計時間:2009年11月人事檔案管理系統(tǒng)一、需求分析電腦已經(jīng)深入到我們?nèi)粘9ぷ骱蜕畹姆椒矫婷?,比如文字處理、信息管理、輔助設(shè)計、圖形圖像處理、教育培訓(xùn)以及游戲娛樂等。Windows系統(tǒng)的推出使電腦從高雅的學(xué)術(shù)殿堂走入了尋常百姓家,各行各業(yè)的人們無須經(jīng)過特別的訓(xùn)練就能夠使用電腦完成許許多多復(fù)雜的工作。然而,雖然現(xiàn)在世界上已經(jīng)充滿了多如牛毛的各種軟件,但它們依然不能滿足用戶的各種特殊需要,人們還不得不開發(fā)適合自己特殊需求的軟件。 隨著企事業(yè)單位的發(fā)展,人員會越來越多,少則幾十人、多則上萬人。例如一個企業(yè)分很多部門,每個部門又分為許多科或室等,而其下又分為各級領(lǐng)導(dǎo)和員工。用筆和紙傳統(tǒng)的手工管理檔案,這中管理方式存在著不易更新、不易存放、不安全、容易丟失、難以備份等重大缺陷,管理起來效率低下而且很可能造成管理上的混亂。而自己建立簡單的電子文檔對信息管理進行管理雖然克服了以上的缺點,但查詢效率較低,特別是當(dāng)數(shù)據(jù)量十分龐大時,劣勢尤其明顯。因此開發(fā)一個既可以存儲信息,又可以進行更新、查詢、管理等功能,同時價格又能為廣大消費者接受的多功能電子人事信息管理系統(tǒng)就顯得十分必要。 本實驗的讀者對象為研發(fā)中心領(lǐng)導(dǎo)和主管技術(shù)人員以及項目設(shè)計和開發(fā)人員。 二、系統(tǒng)框圖 輸入i判斷i輸入人事信息顯示人事信息刪除人事信息查詢?nèi)耸滦畔⒆x取文件存儲文件讀取文件人事統(tǒng)計信息 性別統(tǒng)計人數(shù)規(guī)模入公司時間輸入判斷i開始關(guān)閉 2 三、任務(wù)分工 高玉峰負責(zé):輸入模塊,顯示模塊,刪除模塊 。祝令瑞負責(zé):存儲模塊 查詢模塊、讀取模塊統(tǒng)計模塊、退出模塊 。四、系統(tǒng)的軟硬件環(huán)境1、硬件環(huán)境: CPU 2.4GHz 256M內(nèi)存 80G硬盤。 2、軟件環(huán)境:turboc2.0 UCDOS5.0 操作系統(tǒng) WindowsXp。 五、設(shè)計分析人事檔案管理系統(tǒng)功能:程序設(shè)計一般由兩部分組成:算法和數(shù)據(jù)結(jié)構(gòu),合理地選擇和實現(xiàn)一個數(shù)據(jù)結(jié)構(gòu)和處理這些數(shù)據(jù)結(jié)構(gòu)具有同樣的重要性。在人事管理過程中,由于預(yù)計記錄對于一個單位的學(xué)生數(shù)或人事數(shù)來說太大,操作除了能夠增加、刪除、保存等外,更多的情況是查詢,且能夠?qū)崿F(xiàn)快速查詢。特別是當(dāng)需要動態(tài)變化時利用鏈表,例如插入和刪除數(shù)據(jù)等操作時,為方便插入和刪除人事記錄,通過數(shù)據(jù)的自動的移動數(shù)據(jù),實現(xiàn)動態(tài)管理。本系統(tǒng)涉及的模塊主要有:開始、系統(tǒng)管理、人事管理、信息查詢等四大模塊。(1) 人事管理主要包括:(編號、姓名、性別、年齡、出生日期、政治面貌、家庭住址、圖片等)基本 內(nèi)容的輸入,刪除,修改,查詢(2) 系統(tǒng)管理主要包括:用戶的注冊,資料的修改等。(3) 信息查詢主要包括:員工信息的查找、打印等。2 模塊功能及操作步驟:各個模塊功能及流程圖 (1)record()系統(tǒng)將提示輸入人事姓名、性別、城市、街道、電話、郵編、進入公司的時間(*注意:按提示輸入*),主要使用”scanf()”及”getchar()”語句。首先利用”malloc”函數(shù)在內(nèi)存的動態(tài)存儲器中開辟一個長度為”sizeof”長度的空間,以存放預(yù)定義的”*worker”指向的內(nèi)容。并用”new”指向起始地址的指針。若不能執(zhí)行,返回空指針.否則,利用鏈表執(zhí)行輸入功能。即:else 流程圖 head=NULL輸入new=headnew=thisnew=this-nextthis-next=thisisthis-next.=NULLhead=this申請內(nèi)存記錄(1) Y(2)listall()系統(tǒng)將顯示文件中存儲的人事檔案。此功能利用dowhile;語句。若”this”不指向空。該系統(tǒng)利用語句 doprintf(“n記錄%d”,+i); printf(this);getchar(); this=this-next; 此外使用“printf()”語句完成顯示功能系統(tǒng)。(流程圖在7頁)()del()系統(tǒng)將提示輸入要刪除人事的姓名。輸入相應(yīng)信息。系統(tǒng)將刪除您所指定的信息。主要使用”strcmp()”及”printf()”等語句。本系統(tǒng)執(zhí)行刪除語句一條比較函數(shù)。即:if(strcmp(p-name,str)=0)break;應(yīng)用鏈表的實行地址轉(zhuǎn)換,以便執(zhí)行查找人名的功能:if(p2)p1-next=p2-next;free(p2);print (“n*請存盤*n”);顯示 head=NULLhead=this輸出thisthis-next=this this=NULL讀取getchar();elseprintf(“沒找到所須刪除員工n”);getchar(); 流程圖: 刪除刪除輸入strhead=p1p1=p2p2=NULL 比較p-name與strp2=p1p2-next=p2p2=headhead-next=nextp2=NULL(3) Y N Y() search()系統(tǒng)將對您指定的信息進行查找。主要使用“strcmp()”“getchar()”等語句。該系統(tǒng)主要運行過程為:若頭指針不為空,則利用比較函數(shù)if(strcmp(p1-name,nsme)= =0)如果該語句成立,證明輸入的信息已被查詢到,如果語句(p1=NULL)成立,表示您查找的人不是本公司員工,按任意鍵可回到主程序執(zhí)行區(qū)。(流程圖在11頁)() rfile()系統(tǒng)將顯示您所要讀取的信息。主要使用文件指針及“fopen”“fclose”語句。此模塊我們系統(tǒng)的重要部分,相對來說較為復(fù)雜。開始時要用到”mallo”函數(shù)來開辟空間(與模塊1中的原理相同),如果能打開目標(biāo)文件,逐條讀取,直到指針指向的下個地址為空,則表明讀取完畢。執(zhí)行此項功能的語句為: elsewhile(fread(p,sizeof(worker),1,in)= =1) j+; printf(“n 記錄n”,j); if(j= =1) head=p; p=p-next;if(p= =NULL)p=(worker*)malloc(sizeof(worker); p2=p; free(p); p2=NULL; fclose(in); printf(“n%d條文件讀取完畢n”,j);if(j = =0)printf(“*磁盤無數(shù)據(jù)*n”);printf(“按任意鍵繼續(xù)n”);getchar();(流程圖在下頁)head=p1 查詢顯示輸入str head=NULLp1=NULL比較str與姓名p1-head=p1is輸出(4) Y顯示存儲打開文件P=NULL存 儲p-next=p關(guān)閉文件P=NULL(5) Y Y() wfile()系統(tǒng)將自動保存您所要存儲的信息。用到了”if”及”for”語句。如果該文件能打開,預(yù)將文件存儲在1.out文件中,即:while(p)fwrite(p,sizeof(worker),1.out);/*將p以sizeof長度逐條存儲在文件1.out中*/ n+;p =p-next;fclose(out);printf(“n文件的%d被寫入。n”,n);printf(“按任意鍵繼續(xù)”n); getchar; 流程圖 p=NULL申請內(nèi)存打開文件提取j+j=1p=nextp-next=pp=NULL申請內(nèi)存p-p2釋放p關(guān)閉 讀?。?) N N N() total()系統(tǒng)將統(tǒng)計您所輸入的信息。這個模塊是本組成員最滿意的,此模塊的執(zhí)行程序極為簡單,但是執(zhí)行的功能確實非常齊全。本模塊主要運用”if()else”的循環(huán)嵌套;就完成了性別統(tǒng)計、公司人員規(guī)模、入公司時間的三項功能。值得一提的是在執(zhí)行性別統(tǒng)計與公司人員規(guī)模的執(zhí)行語句后加上2個”getchar()”本小組成員在借鑒的同時的提高,這是為了減緩程序運行速度,保證指針?biāo)赶虻淖詈笠粋€內(nèi)容被系統(tǒng)執(zhí)行,這才使兩項功能完整的執(zhí)行。(流程圖在16頁)開 始Head-p輸入str判斷strp=NULLp=NULLp=NULLx+y+i+輸出pt-sexpt-next=ptX+=1pt-next=pt輸出日期pt-next=pt()退出模塊:系統(tǒng)將退出到DOS環(huán)境。(7) 1 2 3 Y Y六、使用說明初始化界面輸入回車進入主菜單選擇功能,(輸入0-7)錄入功能輸入人事信息輸入姓名,性別,城市,街道,電話,郵編,年齡。入公司年份。顯示人事信息鍵入6并按回車鍵以后,保存錄入信息,鍵入2并按回車,可以顯示錄入的人事信息。查詢功能鍵入4,按回車后,就可以進行查詢功能。查詢?nèi)耸滦畔?,需要輸入查詢?nèi)耸碌男彰?。刪除功能鍵入3并按回車,可以進行刪除功能。一旦刪除無法恢復(fù),請審用。刪除人事記錄結(jié)束程序,顯示 指導(dǎo)老師 遲老師,設(shè)計者,課程名稱,設(shè)計時間。七、結(jié)束語 程序優(yōu)點:本系統(tǒng)屬于小型應(yīng)用程序,適用于人事管理系統(tǒng)。使用靈活方便,本系統(tǒng)操作界面友好,有無計算機基礎(chǔ)軍可使用。能提高工作效率,節(jié)約時間,使煩瑣的管理變得十分輕松。程序的不足之處:本程序雖然使用方便,但是并不十分完善,由于我們的能力和要求的范圍有限,對具體細節(jié)的內(nèi)容作的并不是很到位。我們并不能計算學(xué)生的借書時間等。設(shè)計之初我們也沒有把文件這一重要組成部分寫到程序里,使得本程序只能使用一次。經(jīng)過遲老師的細心指導(dǎo)我們才知道一個完整的程序是可以重復(fù)使用的并且及時添加了這一功能。由于時間有限,我們只能運用一些簡單的函數(shù)進行編程本程序。以及對某些函數(shù)錄入的限制還有待改進和完善。收獲: 成功之處:此系統(tǒng)程序雖然簡單,卻集結(jié)了基本的管理功能。刪除,存儲,統(tǒng)計等功能還是較為成功的。特別是人事檔案的統(tǒng)計管理功能,使煩瑣的工作變得簡單輕松。不足之處:由于我們水平和時間有限,難免有不足和差強人意的地方。尤其是對于系統(tǒng)應(yīng)該配以保密性的設(shè)置,可是由于我們的知識積累不夠,運行不了。還請遲老師海涵。小結(jié):我們只有兩人組成的程序設(shè)計小組,利用課余時間別編寫了這套人事管理系統(tǒng)。通過這次課程設(shè)計,我們團結(jié)合作,相互支持,充分發(fā)揮了團隊精神,使我們所學(xué)的知識轉(zhuǎn)化今天的成果。當(dāng)然,在程序設(shè)計的過程中,通過與其他專業(yè)同學(xué)交流,我們也深刻體會到自計算機水平的有限與不足,為了將我們與齊大其他專業(yè)學(xué)生以及其他高校學(xué)生的差距縮小,我們今后將會以200%的努力投入到學(xué)習(xí)中去,用汗水和知識衡量我們與成功間的差距!最后,感謝給予我們這次實踐和創(chuàng)做機會的遲立穎老師 ! 八、源程序#include string.h#include #include stdlib.h#define NULL 0typedef struct worker char name20; char sex; char age4; char te20; char zi10; char adress20; char city10;typedef struct date int year; int month; int day; date;worker;worker *head,*this,*new;/*主函數(shù)*/main()char order;head=NULL;clrscr();printf(nn*提示請先讀取文件!*n);printf (nn* 按回車?yán)^續(xù)!*n);getchar();do clrscr();printf( n);printf(n);printf(*n);printf( * 1.輸入人事信息 $ 2.顯示人事信息 *n);printf( * 3.刪除人事信息 $ 4.查詢?nèi)耸滦畔?*n);printf( * 5.讀取文件 $ 6.存儲文件 *n);printf( * 7.人事統(tǒng)計信息 $ 0.退出系統(tǒng) *n);printf(*n);printf(n 請您在上述功能(0-7)中選擇:n);order=getch(); switch(order) case1:record();break; case2:listall();break; case3:del(head);break; case4:search();break; case5:rfile(head);break; case6:wfile(head);break; case7:total(head);break; case0:wfile(head);break; while(order!=0);clrscr();printf(nnnnnn);printf(* c 語言程序設(shè)計 *n);printf(* 名稱:人事管理系統(tǒng)n);printf(* 班級:化工062班。n);printf(* 指導(dǎo)老師:遲立穎老師n);printf(* 設(shè)計者:祝令瑞 高玉峰 n);printf(* 組長:高玉峰 n);printf(* 設(shè)計時間:2007年10月n);getchar();/*輸入信息*/record() char re,num30; new=(worker*)malloc(sizeof(worker);/*(*void)malloc(sizeof(*) *malloc(sizeof(*void)是內(nèi)存的動態(tài)存儲中分配一個長度為sizeof的連續(xù)空間((*void)指向分配域起始地址的指針)若不能執(zhí)行返回空指針*if(head=NULL) head=new; else this=head; while(this-next!=NULL) this=this-next; this-next=new; this=new;clrscr(); printf(n 請您輸入姓名:n); scanf(%s,this=-name);getchar(); printf(n 請您輸入性別(m代表男,W代表女:n); this-sex=getchar();getchar(); printf(n 請您輸入城市:n); scanf(%s,this-city);getchar(); printf(n請您輸入街道:n); scanf(%s,this-address);getchar(); printf(n請您輸入電話n); scanf(%s,this-tel);getchar(); printf(n請您輸入郵編n); scanf(%s,this-zi);getchar(); printf(n請您輸入年齡n); scanf(%s,this-age);getchar() printf(n請輸入入公司時間年份n); scanf(%d,&this-date-year);getchar(); printf(n請輸入入公司時間月份n); scanf(%d,&this-date-month);getchar(); printf(n請輸入入公司時間日期n); scanf(%d,&this-date-day);getchar(); printf(n*請存盤!*);getchar(); this-next=NULL;/*顯示信息*/listall()int i=0;if(head=NULL) rfile();return(); this=head; clrscr();do printf(n記錄%dn,+i); print(this); this=this-next; while(this!=NULL); (-this)-next=NULL;void print(worker *t) * *t傳遞鏈表、儲存數(shù)據(jù)* printf(姓名:%sn,t-name); printf(性別:%cn,t-sex); printf(入公司時間:%4d/%2d/%2dn, pt-date-year, pt-date-month, pt-date-month); printf(城市:%sn,pt-city); printf(街道:%sn,pt-adress); printf(電話:%sn,pt-te); printf(郵編:%sn,pt-zi);/*查詢信息*/int search() worker *p1; char name20; p1 = head; printf(請輸入所需查詢員工姓名:); scanf(%s,name); printf(n); if(head = NULL) printf(記錄以空!n); return 0; printf(按回車鍵繼續(xù)!n); getchar(); clrscr(); while(p1!=NULL) if(strcmp(p1-name,name)!=0) p1 = p1-next; else printf(所查詢?nèi)藛T信息:n); print(p1); break; if(p1 = NULL) printf(%s 不是本公司人事.n); printf(按任意鍵繼續(xù)n); getchar(); /*刪除信息*/void del(worker *pt) worker *p1,p2; char str20; printf(請輸入所需刪除人員姓名:); scanf(%s,str); p1 = p5;p2 = p1; while(p2) if(strcmp(p2-name,str) = 0)break; elsep1 = p2;p2 = p2-next; if(p2) p1-next = p2-next; free(p2);/*free(void)釋放void內(nèi)存區(qū)使該區(qū)能被其它變量使用*/ printf(n* 請存盤 *n); else printf(沒找到所需刪除員工n); if(p2 = head) head = head-next; printf(按回車鍵繼續(xù) n); getchar();/*存儲信息*/void wfile(worker *p) int n =0; FILE *out; if(out = fopen(a:數(shù)據(jù).c,wb)=NULL) printf(n不能打開“a:數(shù)據(jù).c”); else if(p) while(p) fwrite(p,sizeof(worker),1,out); n+; p = p-next; fclose(out); listall(); printf(n文件的%d條記錄被寫入。n,n); printf(按任意鍵繼續(xù)n); getchar(); /*讀取信息*/void rfile(worker *p) int j=0; FILE *in; if(in = fopen(a:數(shù)據(jù).c,rb)= NULL) printf(不能打開目標(biāo)文件n); return; else while(fread(p,sizeof(worker),1,in)=1) j+; printf(n記錄:%d,j); if(j = 1) head = p; p = p-next; fclose(in); printf(n%d條文件讀取完畢.n,j); if(j = 0) printf(* 磁盤無數(shù)據(jù) *n); printf(按任意鍵繼續(xù)n); getchar(); /* 統(tǒng)計信息*/ void total(worker *p) char str; int i=0,x=0,y=0; float a=0.0; worker pt, /*pt當(dāng)前變量*/ pt2, /*pt2循環(huán)變量 */ pri; /*pri前驅(qū)*/ if(p = NULL) printf(n*請先讀文件*); printf(n* 按回車?yán)^續(xù) *); getchar(); return 0; pri = pt =t; printf(n*); printf(n* 1.性別統(tǒng)計 2.公司人數(shù)規(guī)模*); printf(n* 3.工齡 0.退出 *); printf(n*); printf(n 請你在上述功能(0-3)選擇 ); str = getchar(); if(str = 0) return; if
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年云計算服務(wù)模式變革下的市場細分領(lǐng)域競爭格局研究報告
- 校園安全管理報告2025:智慧校園安全教育與培訓(xùn)課程開發(fā)與應(yīng)用
- 2025年醫(yī)院電子病歷系統(tǒng)與移動醫(yī)療設(shè)備集成優(yōu)化報告
- 江蘇省鎮(zhèn)江市名校2025屆英語七下期中統(tǒng)考試題含答案
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)市場潛力與未來發(fā)展趨勢報告001
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)模式生物材料研發(fā)與產(chǎn)業(yè)化報告
- 2025年農(nóng)村一二三產(chǎn)業(yè)融合發(fā)展的農(nóng)產(chǎn)品質(zhì)量安全監(jiān)管報告
- 周期表課件教學(xué)課件
- 2025年公眾參與環(huán)境影響評價的公眾參與機制與公眾參與能力培養(yǎng)研究報告
- 2025年高校產(chǎn)學(xué)研合作技術(shù)轉(zhuǎn)移創(chuàng)新生態(tài)構(gòu)建研究
- 小區(qū)物業(yè)管理計劃書:范文
- 公司法務(wù)部職責(zé)與職能
- 泉州市石獅市2024-2025學(xué)年六年級下學(xué)期小升初數(shù)學(xué)考前押題卷含解析
- 物流倉儲設(shè)備選型與配置規(guī)范
- 水電工程驗收單
- 2025年廣東省高中歷史學(xué)業(yè)水平考試綜合測評(一)歷史試題(原卷版+解析版)
- (2025)全國交管12123學(xué)法減分考試題庫附答案
- 攸縣2024-2025學(xué)年小學(xué)六年級第二學(xué)期小升初數(shù)學(xué)試卷含解析
- 安保主管上半年工作總結(jié)
- 撬裝加油站承包合同協(xié)議書
評論
0/150
提交評論