




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
洛陽理工學(xué)院課程設(shè)計(jì)報(bào)告課程名稱數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)題目職員管理系統(tǒng)課程設(shè)計(jì)任務(wù)書設(shè)計(jì)題目:職員管理系統(tǒng)_________________________________________________________設(shè)計(jì)內(nèi)容和要求:[問題描述]每個職員信息包含:編號、姓名、性別、出生年月、學(xué)歷、職務(wù)、電話、住址等。系統(tǒng)能夠完成職員信息查詢、更新、插入、刪除、排序等功效。[基礎(chǔ)要求](1)排序:按不一樣關(guān)鍵字,對全部職員信息進(jìn)行排序。(2)查詢:按特定條件查找職員。(3)更新:按編號對某個職員某項(xiàng)信息進(jìn)行修改。(4)插入:加入新職員信息。(5)刪除:按編號刪除已離職職員信息。課程設(shè)計(jì)評語成績:指導(dǎo)老師:_______________年月日序言職員管理系統(tǒng)是一個工作單位不可缺乏管理工具,它管理數(shù)據(jù)對于企業(yè)決議者和管理者來說全部至關(guān)關(guān)鍵,所以職員管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥阈畔⒑涂旖莶樵兪侄?。但一直以來各個企業(yè)基礎(chǔ)上全部是靠傳統(tǒng)人工方法來管理職員信息,這種管理方法存在著很多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長,將產(chǎn)生大量文件和數(shù)據(jù),這對于信息查找、更新和維護(hù)全部帶來了不少困難。當(dāng)今社會,信息快速膨脹,伴隨各個企業(yè)規(guī)模增大,相關(guān)信息管理工作所包含數(shù)據(jù)量越來越大,職員信息量也大大增加,利用傳統(tǒng)手工查詢、登記、修改等方法處理速度遠(yuǎn)遠(yuǎn)跟不上企業(yè)需求,有企業(yè)不得不靠增加人力、物力來進(jìn)行信息管理。伴隨計(jì)算機(jī)技術(shù)不停提升,計(jì)算機(jī)作為知識經(jīng)濟(jì)時(shí)代產(chǎn)物,其強(qiáng)大功效已為大家深刻認(rèn)識,它已進(jìn)入人類社會各個行業(yè)和領(lǐng)域并發(fā)揮著越來越關(guān)鍵作用,成為大家工作和生活中不可缺乏一部分。而作為計(jì)算機(jī)應(yīng)用一部分,使用計(jì)算機(jī)對職員進(jìn)行管理,含有手工管理所無法比擬優(yōu)點(diǎn)。比如:檢索快速、查找方便、可靠性高、存放量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提升職員管理效率,也是企業(yè)科學(xué)化、正規(guī)化管理和和世界接軌關(guān)鍵條件。職員管理系統(tǒng)作為一個管理軟件正在各企業(yè)中得到越來越廣泛應(yīng)用,且已達(dá)成了良好效果。需求分析職員信息管理系統(tǒng)是企業(yè)管理中一個關(guān)鍵內(nèi)容,伴隨時(shí)代進(jìn)步,企業(yè)也逐步變得龐大起來。怎樣管理好企業(yè)內(nèi)部職員信息,成為企業(yè)管理中一個大問題。在這種情況下,開發(fā)一個人力資源管理系統(tǒng)就顯得很必需現(xiàn)在,市場上能夠選購應(yīng)用開發(fā)產(chǎn)品很多,流行也有數(shù)十種。在現(xiàn)在市場上這些眾多程序開發(fā)工具中,有些強(qiáng)調(diào)程序語言彈性和實(shí)施效率;有些則偏重于可視化程序開發(fā)工具所帶來便利性和效率得高,各有各優(yōu)點(diǎn)和特色,也滿足了不一樣用戶需求。然而,語言彈性和工具便利性是密不可分,只強(qiáng)調(diào)程序語言彈性,卻沒有便利工具作配合,會使部分即使很簡單界面處理動作,也會嚴(yán)重地浪費(fèi)程序設(shè)計(jì)師寶貴時(shí)間;相反,假如只有便利工具,卻沒有彈性語言作支持,很多特殊化處理動作必需要花費(fèi)數(shù)倍工夫來處理,使得原來所標(biāo)榜效率提升優(yōu)點(diǎn)失去了作用。本系統(tǒng)結(jié)合企業(yè)實(shí)際人事、制度,經(jīng)過實(shí)際需求分析,采取功效強(qiáng)大VisualC++6.0作為開發(fā)工具而開發(fā)出來管理系統(tǒng)。整個系統(tǒng)從符合操作簡便、界面友好、靈活、實(shí)用、安全要求出發(fā),本管理系統(tǒng)含有以下功效:1、問題描述對單位職員進(jìn)行管理,包含插入、刪除、查找、排序等功效。2、要求職員對象包含姓名、性別、年紀(jì)、職位、工齡等信息。(1)新增一名職員:將新增職員對象按姓名以字典方法職員管理文件中,基礎(chǔ)信息中編號是根據(jù)添加次序自動增加。(2)刪除一名職員:從職員管理文件中刪除一名職員對象,分為依據(jù)編號刪除、依據(jù)姓名刪除。(3)查詢:從職員管理文件中查詢符合一些條件(編號、姓名)職員。(4)修改:依據(jù)編號檢索出對象,既能夠?qū)φ麄€對象修改,也可對某個屬性修改。(5)排序:根據(jù)年紀(jì)、工齡對全部職員排序(降序),也能夠回復(fù)排序以前職員現(xiàn)實(shí)狀態(tài)。3、實(shí)現(xiàn)提醒職員對象數(shù)無須很多,便于一次讀入內(nèi)存,全部操作不經(jīng)過內(nèi)外存交換。(1)當(dāng)開啟程序是,自動從文件(message.txt)中讀出職員信息(2)由鍵盤輸入職員對象存入鏈表當(dāng)中。(3)對職員對象中"編號、年紀(jì)、工齡"按字典次序進(jìn)行排序。(4)對排序后職員對象進(jìn)行增、刪、查詢、修改、排序等操作。(5)當(dāng)退出程序時(shí),將此刻單鏈表中存放數(shù)據(jù)寫入到文件(message.txt)中去,保留起來。概要設(shè)計(jì)(一)數(shù)據(jù)類型定義:typedefstruct{ intnum;//編號 charname[MAX_NUM];//姓名 intage;//年紀(jì) charjob[MAX_NUM];//職位; intworkTime;//工齡}People;ypedefstructnode{ Peoplepeople; structnode*next; intlen;//表示鏈表長度}linklist;(二)步驟圖:(圖1)(三)各程序模塊之間層次圖:(圖2)具體設(shè)計(jì)1、主菜單模塊:顯示職員管理系統(tǒng)主菜單,供用戶選擇所需功效,經(jīng)過自己定義voidmain()函數(shù)來實(shí)現(xiàn)。2、添加職員模塊:輸入職員編號、姓名、年紀(jì)、職位、工齡以,經(jīng)過自己定義voidaddMessage()函數(shù)來實(shí)現(xiàn)。3、查詢職員信息模塊:瀏覽全部職員相關(guān)信息,經(jīng)過自己定義voidsearchPeople()函數(shù)來實(shí)現(xiàn)。(1)按職員姓名查詢:能夠按職員工號來查詢職員相關(guān)信息,經(jīng)過自己定義voidsearchPeopleByName()函數(shù)來實(shí)現(xiàn)。(2)按職員編號查詢:能夠按職員職務(wù)來查詢職員相關(guān)信息,經(jīng)過自己定義voidsearchPeopleByNum()函數(shù)來實(shí)現(xiàn)。(3)退出。4、刪除職員模塊:刪除需要刪除職員全部信息,經(jīng)過自己定義voiddeletePeople()函數(shù)來實(shí)現(xiàn)。(1)按職員姓名刪除模塊:能夠按職員工號來刪除職員相關(guān)信息,經(jīng)過自己定義voiddeletePeopleByName()函數(shù)來實(shí)現(xiàn)。(2)按職員編號刪除模塊:能夠按職員編號刪除職員相關(guān)信息,經(jīng)過自己定義voiddeletePeopleByNum()函數(shù)來實(shí)現(xiàn)。(3)退出5、修改模塊:能夠修改需要修改職員相關(guān)信息,經(jīng)過自己定義voideditMessage()函數(shù)來實(shí)現(xiàn)。(1)修改整條統(tǒng)計(jì),能夠修改該職員全部信息,經(jīng)過自己定義voideditAll()函數(shù)來實(shí)現(xiàn)。(2)修改部分統(tǒng)計(jì),能夠修改該職員部分信息,經(jīng)過自己定義voideditSome()函數(shù)來實(shí)現(xiàn)。(3)退出。6、職員信息排序模塊:能夠根據(jù)要求要求對職員信息排序,經(jīng)過自己定義voidsort()函數(shù)來實(shí)現(xiàn)。(1)按年紀(jì)排序:能夠按職員工號對職員信息排序,經(jīng)過自己定義voidsortByAge()函數(shù)來。(2)按工齡排序:能夠按職員工齡對職員信息排序,經(jīng)過自己定義voidsortByWorkTime()函數(shù)來實(shí)現(xiàn)。(3)回復(fù)原排序:能夠回復(fù)排序前次序,經(jīng)過自己定義voidsortByNum()函數(shù)來實(shí)現(xiàn)。(4)退出。7、退出系統(tǒng)模塊:退出職員信息管理系統(tǒng),通exit(0)函數(shù)來實(shí)現(xiàn)。函數(shù)調(diào)用圖:(圖3)測試結(jié)果(一)當(dāng)操作人員運(yùn)行程序時(shí),彈出DOS界面以下:(二)依據(jù)提醒語,輸入1,添加職員信息,操作以下界面:(三)在主菜單輸入2,進(jìn)入輸出職員功效,操作以下:添加職員、展示全部職員信息功效實(shí)現(xiàn)。(四)在主菜單輸入3,查詢職員信息按編號查詢,測試以下:按姓名查詢,測試以下:以上查詢功效測試功效。(五)在主菜單,輸入4,刪除職員功效:按編號刪除,測試以下:按姓名刪除以下:以上測試完成。(六)在主菜單輸入5,進(jìn)入修改信息功效:(七)在主菜單輸入6,進(jìn)入排序功效:按年紀(jì)排序,測試以下:按工齡排序相同操作,測試成功。回復(fù)排序,回復(fù)到未排序狀態(tài),測試成功。(八)退出,將全部職員信息寫入message.txt文件中,實(shí)現(xiàn)永久保留。退出系統(tǒng),測試完成。總結(jié)在本系統(tǒng)開發(fā)過程中因?yàn)闀r(shí)間也比較倉促、準(zhǔn)備不充足,系統(tǒng)肯定會存在部分缺點(diǎn)和不足。對職員信息管理整個步驟不夠熟悉,在需求分析時(shí)未能做到完全滿足用戶需求。課程設(shè)計(jì)中我們碰到很多問題。我們在開發(fā)時(shí),我們查閱了很多資料,了解到即是對職員編號號,姓名,年紀(jì),工齡等復(fù)雜多樣信息,能夠較清楚,快捷而操作方便現(xiàn)代化管理系統(tǒng)。搞清了這個基礎(chǔ)概念以后,我們又具體了解了老師所講設(shè)計(jì)要求和注意事項(xiàng),大致確定了總體設(shè)計(jì)思緒,初步提出問題處理方案,和系統(tǒng)大致設(shè)計(jì)方案和框架,接下來我們就著手編程。在編程過程中,先是依據(jù)系統(tǒng)所要求,找出所需要知識點(diǎn)。編完程序,我們在機(jī)房進(jìn)行了一次又一次調(diào)試,找出了其中錯誤,一一糾正,而且修改了其中不太完善部分,努力爭取做到實(shí)用而且正確盡管本管理系統(tǒng)存在著很多不足,但其功效全方面、易于以后程序更新、數(shù)據(jù)庫管理輕易、界面友好、操作方便、效率高、安全性好等優(yōu)點(diǎn)是本管理系統(tǒng)所必需。經(jīng)過開發(fā)這個系統(tǒng),我組掌握了項(xiàng)目基礎(chǔ)開發(fā)過程,用到知識鞏固了我對C語言學(xué)習(xí),但在這次設(shè)計(jì)中最大收獲并不是掌握這幾門開發(fā)工具應(yīng)用,而是學(xué)會了設(shè)計(jì)系統(tǒng)思維方法。經(jīng)過此次課程設(shè)計(jì),我們對數(shù)據(jù)結(jié)構(gòu)知識掌握了很多,并能將它用以程序編寫中,而且提升了自己處理實(shí)際問題能力。-----------------------------------------------------------附錄:源代碼#include"stdio.h"#include"stdlib.h"#include"string.h"#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-2typedefstructLNode{ charid[20]; charname[10]; charsex[10]; charbirth[10]; charedu[10]; charduty[10]; charphone[20]; charaddress[30]; structLNode*next;}LNode,*Linklist;//定義節(jié)點(diǎn)類型intCreatList(Linklist&L){ Linklistp; p=(Linklist)malloc(sizeof(LNode)); if(!p) { return(0); } else { printf("請輸入職員編號\n"); scanf("%s",p->id);printf("請輸入職員姓名\n"); scanf("%s",p->name); printf("請輸入職員性別\n"); scanf("%s",p->sex); printf("請輸入職員生日\n"); scanf("%s",p->birth); printf("請輸入職員學(xué)歷\n"); scanf("%s",p->edu); printf("請輸入職員職務(wù)\n"); scanf("%s",p->duty); printf("請輸入職員電話\n"); scanf("%s",p->phone); printf("請輸入職員地址\n"); scanf("%s",p->address); } p->next=L->next; L->next=p;}//頭插法生成單鏈表intInitlist(Linklist&L){ L=(Linklist)malloc(sizeof(LNode)); if(!L) return(0); L->next=NULL; returnOK;}//初始化單鏈表voidDisplay(Linklist&L){ Linklistp; for(p=L->next;p;p=p->next) { printf("編號%s\n",p->id); printf("姓名%s\n",p->name); printf("性別%s\n",p->sex); printf("生日%s\n",p->birth); printf("學(xué)歷%s\n",p->edu); printf("職務(wù)%s\n",p->duty); printf("電話%s\n",p->phone); printf("地址%s\n",p->address); printf("============================\n"); }}//顯示全部職員信息intSearchID(Linklist&L,charid[20]){ LNode*p; p=L; while(p) { if(strcmp(p->id,id)==0) { printf("編號%s\n",p->id); printf("姓名%s\n",p->name); printf("性別%s\n",p->sex); printf("生日%s\n",p->birth); printf("學(xué)歷%s\n",p->edu); printf("職務(wù)%s\n",p->duty); printf("電話%s\n",p->phone); printf("地址%s\n",p->address); } p=p->next; } returnOK;}//ID查詢intSearchName(Linklist&L,charname[10]){ LNode*p; p=L; while(p) { if(strcmp(p->name,name)==0) { printf("編號%s\n",p->id); printf("姓名%s\n",p->name); printf("性別%s\n",p->sex); printf("生日%s\n",p->birth); printf("學(xué)歷%s\n",p->edu); printf("職務(wù)%s\n",p->duty); printf("電話%s\n",p->phone); printf("地址%s\n",p->address); } p=p->next; } returnOK;}//姓名查詢voidSortID(Linklist&L,charid[20]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->id,q->id))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q; } L=La; Display(L);}//編號排序voidSortName(Linklist&L,charname[10]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->name,q->name))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q; } L=La; Display(L);}//姓名排序voidSortSex(Linklist&L,charsex[10]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->sex,q->sex))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q; } L=La; Display(L);}//性別排序voidSortBirth(Linklist&L,charbirth[10]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->birth,q->birth))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q; } L=La; Display(L);}//出生年月排序voidSortEdu(Linklist&L,charedu[10]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->edu,q->edu))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q } L=La; Display(L);}//學(xué)歷排序voidSortDuty(Linklist&L,charduty[10]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->duty,q->duty))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q; } L=La; Display(L);}//職務(wù)排序voidSortPhone(Linklist&L,charphone[20]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->phone,q->phone))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q } L=La; Display(L);}//電話排序voidSortAddress(Linklist&L,charaddress[30]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->address,q->address))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q; } L=La; Display(L);}//地址排序intAlter(Linklist&L,charid[20]){ LNode*p; p=L; while(p) { if(strcmp(p->id,id)==0) { printf("請輸入職員編號\n"); scanf("%s",p->id); printf("請輸入職員姓名\n"); scanf("%s",p->name); printf("請輸入職員性別\n"); scanf("%s",p->sex); printf("請輸入職員生日\n"); scanf("%s",p->birth); printf("請輸入職員學(xué)歷\n"); scanf("%s",p->edu); printf("請輸入職員職務(wù)\n"); scanf("%s",p->duty); printf("請輸入職員電話\n"); scanf("%s",p->phone); printf("請輸入職員地址\n"); scanf("%s",p->address); } p=p->next; } returnOK;}//更改intDel(Linklist&L,charid[20]){ LNode*p; LNode*r; p=L->next; r=L; while(!(strcmp(p->id,id)==0)&&p) { r=p; p=p->next; } if(!p) printf("\n刪除位置不合理\n"); else { r->next=p->next; free(p); printf("刪除成功\n"); } returnOK;}//按ID刪除//主函數(shù)voidmain(){ LinklistL; inta; charm; charname[10];charid[20];charsex[10]; charbirth[10]; charedu[10]; charduty[10]; charphone[20]; charaddress[30]; Initlist(L); inty; intx=1; while(x) { printf("=========================\n"); printf("歡迎進(jìn)入職員管理系統(tǒng)!\n"); printf("=========================\n"); printf("1-添加職員信息\n"); printf("2-查詢職員信息\n"); printf("3-排序職員信息\n"); printf("4-顯示全部職員信息\n"); printf("5-更改職員信息\n"); printf("6-刪除職員信息\n"); printf("7-退出\n"); printf("請選擇操作序號并按回車:"); scanf("%d",&y); switch(y) { case1:CreatList(L); do { printf("是否繼續(xù)輸入?(y/n)"); getchar(); scanf("%c",&m); if(m=='y') { CreatList(L); } } while(m!='n'); break; case2:printf("請輸入查詢方法(1按編號查詢,2按姓名查找)"); scanf("%d",&a); if(a==1) { printf("請輸入查詢職員編號\n"); scanf("%s",&id);
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 量子隱形傳態(tài)實(shí)驗(yàn)-深度研究
- 深海鉆探設(shè)備成本控制-深度研究
- 面向IoT的自適應(yīng)入侵檢測系統(tǒng)設(shè)計(jì)-深度研究
- 粉煤灰項(xiàng)目可行性研究報(bào)告
- 智能停車場可行性研究報(bào)告
- 系統(tǒng)分析與設(shè)計(jì)方法-深度研究
- 疫情下獻(xiàn)血車血液采集規(guī)范-深度研究
- 弱視患者視覺認(rèn)知功能研究-深度研究
- 兒童孤獨(dú)癥輔助技術(shù)-深度研究
- 自戀型人格障礙的家庭干預(yù)-深度研究
- 省級示范幼兒園評估細(xì)則解讀 辦園管理部分解讀課件
- 第四章-消費(fèi)者行為理論:邊際效用分析
- 八年級物理上冊課程綱要
- 商用密碼應(yīng)用服務(wù)平臺建設(shè)方案
- 檔案銷毀清冊(封面)
- 數(shù)據(jù)結(jié)構(gòu)與算法 課件全套 機(jī)械自考版 第1-8章 緒論、線性表-查找
- 機(jī)械制造投標(biāo)書
- 2024-2025學(xué)年小學(xué)綜合實(shí)踐活動一年級下冊滬科黔科版教學(xué)設(shè)計(jì)合集
- 2024華中區(qū)域電力輔助服務(wù)管理實(shí)施細(xì)則
- 20以內(nèi)減法口算練習(xí)題4000題74
- 2024年1月份煙臺市220kV公用變電站可開放容量信息明細(xì)表
評論
0/150
提交評論