薪酬管理-數(shù)據(jù)結(jié)構(gòu)與算法工資管理系統(tǒng)綜合實(shí)驗(yàn)報(bào)告_第1頁(yè)
薪酬管理-數(shù)據(jù)結(jié)構(gòu)與算法工資管理系統(tǒng)綜合實(shí)驗(yàn)報(bào)告_第2頁(yè)
薪酬管理-數(shù)據(jù)結(jié)構(gòu)與算法工資管理系統(tǒng)綜合實(shí)驗(yàn)報(bào)告_第3頁(yè)
薪酬管理-數(shù)據(jù)結(jié)構(gòu)與算法工資管理系統(tǒng)綜合實(shí)驗(yàn)報(bào)告_第4頁(yè)
薪酬管理-數(shù)據(jù)結(jié)構(gòu)與算法工資管理系統(tǒng)綜合實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩35頁(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)介

沈陽(yáng)理工大學(xué)應(yīng)用技術(shù)學(xué)院沈陽(yáng)理工大學(xué)應(yīng)用技術(shù)學(xué)院《數(shù)據(jù)結(jié)構(gòu)與算法》綜合實(shí)驗(yàn)報(bào)告課程名稱: 《數(shù)據(jù)結(jié)構(gòu)與算法》綜合實(shí)專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)學(xué)號(hào): 姓 名: 王嬌指導(dǎo)教師: 孫承成 績(jī):完成日期: 20XX 年 月 日、 實(shí)驗(yàn)題目工資管理系統(tǒng)二、 實(shí)驗(yàn)時(shí)間地時(shí)間:20XX/6/10地點(diǎn)三、 實(shí)驗(yàn)?zāi)康睦斫饩€性表的定義、線性表的順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。理解線性表的邏輯結(jié)構(gòu)特征的差異。重點(diǎn)掌握線性表和鏈表上各種基本運(yùn)算的實(shí)現(xiàn)。綜合運(yùn)用線性表解決些復(fù)雜的實(shí)際問(wèn)題。四、實(shí)驗(yàn)內(nèi)容()、功能關(guān)系介紹添加功能,通過(guò)它可以添加新的員工信息,非常方便,輸入1即可進(jìn)入添加頁(yè)面,添加完以后,輸入4保存。是id號(hào)查詢,二是姓名查詢。是刪除,二是通過(guò)姓名刪除。6修改功能,通過(guò)它可以修改員工信息,譬如電話,工資等,可輸入id號(hào)進(jìn)行修改,修改完以后返回主頁(yè)面輸入4進(jìn)行保存。5插入功能,與添加功能有區(qū)別,它可選擇性的插入,隨意插,他也是添加新的員工,非常方便,返回主頁(yè)面,輸入4保存。4保存功能,它可保存添加,插入和修改的員工信息。7顯示功能,通過(guò)它可以顯示所有員工的詳細(xì)信息。0返回功能,通過(guò)它可返回主頁(yè)面,進(jìn)行其他操作。(二)、采用數(shù)據(jù)結(jié)構(gòu) 該員工工資管理系統(tǒng)采用了單鏈表的建立,輸入,插入,查找,刪除,輸出等功能(三)、語(yǔ)言工具 C語(yǔ)言編程五、預(yù)習(xí)內(nèi)容 (一)、單鏈表分線性單鏈表和靜態(tài)的單鏈表。線性單鏈表是用一組不連續(xù)的存儲(chǔ)單元來(lái)存放線性表中的數(shù)據(jù),因此鏈表中結(jié)點(diǎn)的邏輯次序和物理次序不一定相同。為了正確的表示結(jié)點(diǎn)間的邏輯關(guān)系,在存儲(chǔ)線、性表時(shí),存儲(chǔ)每個(gè)數(shù)據(jù)元素值的同時(shí),還要存儲(chǔ)指示其后繼結(jié)點(diǎn)的地址信息,這兩部分信息組成的存儲(chǔ)映像稱為結(jié)點(diǎn)。一個(gè)結(jié)點(diǎn)有兩個(gè)域組成:數(shù)據(jù)域和指針域。1)、創(chuàng)建單鏈表:、扦插法建表2)、在單鏈表中查找:1、每個(gè)元素的定序2、(二)采用“數(shù)結(jié)點(diǎn)的法出單鏈表的,用指針p次指?jìng)€(gè)結(jié)點(diǎn),一個(gè)元素?cái)?shù),一數(shù)后一個(gè)結(jié)點(diǎn)(L)。單鏈表插入操作在單鏈表 L中i個(gè)插入一個(gè)數(shù)據(jù)元素 e,找單鏈表中的個(gè)結(jié)點(diǎn),后一個(gè)的結(jié)點(diǎn)指針 s指示,s結(jié)點(diǎn)數(shù)據(jù)域?yàn)?e。改-1個(gè)結(jié)點(diǎn)的指針使其指s,后使s結(jié)點(diǎn)的指針域指原i個(gè)結(jié)點(diǎn)。(三)、單鏈表的刪除 (p-nextNULL)&&(k<i-1)(p-nextNULL)&&(k<i-1)1、開(kāi)辟一塊連續(xù)空間,初始化為空閑靜態(tài)鏈表。2、空閑鏈上的結(jié)點(diǎn)分配。3、空閑鏈上的回收分配。4、靜態(tài)單鏈表結(jié)點(diǎn)的分配與釋放六、算法描述(流程圖與說(shuō)明)(一)、詳細(xì)描述工資管理系統(tǒng)(要求)該系統(tǒng)能夠?qū)崿F(xiàn)工資管理。系統(tǒng)包括錄入、游覽、查詢、統(tǒng)計(jì)等功能。其中錄入功能要求能夠添加新的工資信息到文件;游覽功能要求能按照工資卡號(hào)、姓名分類游覽,提供分屏顯示;有排序功能,排序后按照工資卡號(hào)升序或?qū)嵃l(fā)工資降序輸出;查詢功能要求能夠按照工資卡號(hào)、姓名查詢;統(tǒng)計(jì)功能要求能夠按照月份累計(jì)統(tǒng)計(jì)某職工在某時(shí)間段實(shí)發(fā)工資總金額(提示)文件中一行數(shù)據(jù)對(duì)應(yīng)一個(gè)職工工資信息。工資信息的數(shù)據(jù)結(jié)構(gòu)采用結(jié)構(gòu)體數(shù)據(jù),一個(gè)數(shù)組元素對(duì)應(yīng)一條工資單錄。工資單信息包括工資卡號(hào)、姓名、月份、應(yīng)發(fā)工資、、、金、實(shí)發(fā)工資等。--金,其中金計(jì)算法為:、應(yīng)發(fā)工資應(yīng)發(fā)工資800=080應(yīng)發(fā)工資1400(-80)*5%、應(yīng)發(fā)工資1400(-140)*10%該系統(tǒng)分單數(shù)、查詢數(shù)、添加數(shù)、數(shù)、顯示數(shù)、數(shù)、數(shù)、入數(shù)、數(shù)個(gè)塊。單數(shù)的要顯示的單,單數(shù)要的塊,選要行的法,單數(shù)有個(gè),在0~7間一個(gè),入到應(yīng)的塊。1帶入添加塊;2帶進(jìn)入查詢塊;3帶進(jìn)入塊;4帶進(jìn)入塊;5670、id、姓名、性別、部門(mén)、技術(shù)稱編、電話、基本資、務(wù)資、應(yīng)發(fā)資、實(shí)發(fā)資、稅金、補(bǔ)助。(二)、據(jù)結(jié)構(gòu)采用添加和都運(yùn)用到鏈表輸和,查詢運(yùn)用到了鏈表查找,刪除運(yùn)用到了鏈表刪除,保存,,還有都運(yùn)用到了鏈表輸和輸出(三)、算法描述本系統(tǒng)一開(kāi)始就運(yùn)用了結(jié)構(gòu)體類型,定義了一個(gè)結(jié)構(gòu)體類型變量worker,來(lái)定義各種,還定義了一個(gè)據(jù)節(jié)點(diǎn),用于創(chuàng)建鏈表。,:Node*locate(Linkm,charfind[],charfangshi[]) {},m為鏈表find,fangshi為兩個(gè)組利用strcmp(fangshi,"id")程序如果表利用id查詢、刪除,本程序是用Idname查詢、刪除該查詢:chaxun(Linkm),是m為,表有idnamelacate()lacate()為,輸,結(jié)。添加:add(Linkm),m為,輸,申請(qǐng)節(jié)點(diǎn),用節(jié)點(diǎn)存放輸,輸0,頁(yè)面,輸入krm為有l(wèi)acate()確定用哪一種行刪除,找到執(zhí)行刪除,有。:modify(Linkm為,表有g(shù)et()輸入id,用id得到想據(jù),功,失敗。:xianshi(Linkm)m為,表有,所有。insert(Linkmekm;dpmpfwrite(p,sizeof(Node),1,fp)c()、系統(tǒng)模塊圖工資管理系統(tǒng)1234 5 670鍵 添查刪保插修顯退加詢除存入改示輸讀 模模模模 模 模模出塊塊塊塊 塊 塊塊根 屏根 根 根 根 據(jù) 幕姓i姓名d名查號(hào)姓i姓名d名查號(hào)刪詢刪除除i d 出d號(hào)號(hào) 插查 入詢6.1功能模塊圖()、系統(tǒng)功能模塊圖開(kāi)始開(kāi)始編譯運(yùn)行Y有/錯(cuò)NMain函數(shù)menu函數(shù)choose=0Choos!=0退出連接調(diào)用各個(gè)功能函數(shù)(choosse=?)執(zhí)行錯(cuò)誤添加查詢刪除保存插入修改顯示退出輸入正確圖6.2系統(tǒng)流程模塊圖(六)、函數(shù)流程圖Node*p,*r,*s;charr=mr->next!=NULLYr=r->next; NmYp=(Node*)malloc(sizeof(Node));NY p==NULLprintf("exit(0);N:");gets(p->data.gzkh);Ystrcmp(p->data.gz kh,"0")==0NYp->data.yfgz<800 為0Np->data.yfgz<=140000

Y應(yīng)發(fā)資N應(yīng)發(fā)資-1400)*0.13圖中是否有數(shù)據(jù)NYid刪除,“2”通過(guò)姓名刪除Choose==1Choose==2YNid號(hào)已存在的姓名locate()函數(shù)locate()函數(shù)P!=NullNr=mNr-next!=pYr=r-nextr-next=p-next退出4圖FILE*fp;Node*p;intcount=0FILE*fp;Node*p;intcount=0fpYfp==NullNp=m->next下移P!=nullNY寫(xiě)入count++NCount>0Y保存成功新數(shù)據(jù)更新5v圖個(gè)數(shù)的后面插入個(gè)數(shù)的后面插入申請(qǐng)結(jié)點(diǎn)newinfoNNewinfo==nulY沒(méi)有記錄返回根據(jù)提示鍵盤(pán)插信息稅金=0Newinfo->data.yfgz<800YYNNewinfo->data.yfgz<1400p=m->nextNmYYStrcmp(p->data.id,find)==0newinfo->next=p->next;p->next=newinfop=p->next退出N6圖m->next==nullm->next==nullidlocate()無(wú)記錄返回YPStrcpy(p->data.id,find)復(fù)制N根據(jù)提示鍵盤(pán)插信息稅金=0Newinfo->data.yfgz<800YYN-800)*0.05Newinfo->data.yfgz<1400N0退出無(wú)法修改7圖P=m-nextP=m-nextP=nullYNPY出語(yǔ)句p=p->next;退出8 x圖Node*rNode*rNstrcmp(fangshi,”id”)==0)Ystrcmp(fangshi,”name”)==0)Nr=m->nextNrYYr=m->nextstrcmp(r->data.id,find)==0Yreturnr;rNr=r->nextYstrcmp(r->,find)==0NYreturnr;r=r-nextN9 e圖7.1 1:7.2

2:7.3

d2d“1d““2d13:7.4

73“3”你將你進(jìn)id,方法雷同,如747.5 “4”進(jìn)行文件的,的路徑是"d:\\hello.txt","wb7.5:7.6

圖75第幾個(gè)據(jù)后面,選擇之后即可進(jìn)行信息的錄,如果在職工卡號(hào)后0,則返回主頁(yè)面,否則繼續(xù)插7.6:7.7

“d選擇你要的信息,之后你會(huì)用到一個(gè),保存,如7.7777.8 作之后你可以通過(guò)信息7.87.9

圖78079

79#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>//#include<system.h>intsaveflag=0;//標(biāo)志一下,定義一個(gè)標(biāo)志變量,用到的時(shí)候再找typedefstructstructworkerjava{chargzkh[20]; */charid[20]; /*id號(hào)charname[20]; /*姓名*/charsex; 性別*///int gl; 工齡chardepartment[20]; 部門(mén)charlevel[10]; /**/charjsbh[20]; /*charphone[20];floatjbgz; /**/floatzwgz; /**/floatyfgz; /**/floatsfgz; /*floattax;floatbz; /**/};typedefstructnode{structworkerdata; //workdatastructnode *next; //notenext}Node,*Link; //notemenu() /*菜單函數(shù)*/{system("cls");//textcolor(12);//gotoxy(10,5);cprintf(" 王嬌管理系統(tǒng):\n");//gotoxy(10,8);cprintf("********************菜單********************\n");//gotoxy(10,9);cprintf("*1添加2查詢*\n");//gotoxy(10,10);cprintf("*3刪除4保存*\n");//gotoxy(10,11);cprintf("*5插入6修改*\n");//gotoxy(10,12);cprintf("* 7 示 0 出 *\n");//gotoxy(10,13);cprintf("**********************************************\n");}/*位函數(shù)*/Node*locate(Linkm,charfind[],charfangshi[]){Node*r;if(strcmp(fangshi,"id")==0) /*id*/{r=m->next;while(r){if(strcmp(r->data.id,find)==0)returnr;r=r->next;}}elseif(strcmp(fangshi,"name")==0){r=m->next;while(r){if(strcmp(r->,find)==0)returnr;r=r->next;}}}/**/chaxun(Link{intchoose;charinputdata[20]; /*Node*p;if((m->next)==NULL){system("cls");printf("\n信息!\n");getchar();return;}system("cls");printf("1 通過(guò)id2 通過(guò)姓名\n"); //選擇1通過(guò),選擇2,通過(guò)nameprintf("請(qǐng)輸入[1/2]\n");scanf("%d",&choose);getchar();if(choose==1){printf("請(qǐng)輸入據(jù)!\n");scanf("%s",&inputdata);getchar();p=locate(m,inputdata,"id");if(p){printf("資卡號(hào)姓名實(shí)發(fā)資稅務(wù)基本資:=%4f\n",p->data.gzkh,p->,p->data.sfgz,p->data.tax,p->data.jbgz);//printf("%4s%4s%4f%4f%4f\n",p->data.gzkh,p->,p->data.sfgz,p->data.tax,p->data.sfgz);printf("任意鍵繼續(xù)getchar();}else{printf("無(wú)法找到!\n");getchar();}}elseif(choose==2){printf("請(qǐng)輸入數(shù)據(jù)!\n");scanf("%s",&inputdata);getchar();p=locate(m,inputdata,"name");if(p!=NULL){printf("工資卡號(hào)姓名應(yīng)發(fā)工資稅務(wù)發(fā)工資:=%4f\n",p->data.gzkh,p->,p->data.sfgz,p->data.tax,p->data.jbgz);//printf("%s%s%f%f%f\n",p->data.gzkh,p->,p->data.sfgz,p->data.tax,p->data.sfgz);printf("任意鍵繼續(xù)getchar();}else{printf("getchar();}}}/*函數(shù)add(Linkm){Node*p,*r,*s;charnumstr[20];r=m;while(r->next!=NULL){r=r->next;}while(m){p=(Node*)malloc(sizeof(Node));//if(p==NULL){printf("申請(qǐng)記憶空間exit(0);}printf("職工編號(hào):");gets(p->data.gzkh);if(strcmp(p->data.gzkh,"0")==0){break;}printf("id:");gets(p->data.id);printf(":");gets(p->);printf("別:");//gets(p->data.sex);p->data.sex=getchar();getchar();printf(getchar();gets(p->data.department);printf("技術(shù)職稱:");gets(p->data.level);printf("技術(shù)職稱編:");gets(p->data.jsbh);printf("電話:");gets(p->data.phone);printf("基本工資:");gets(numstr);p->data.jbgz=atof(numstr);printf("職務(wù)工資:");gets(numstr);p->data.zwgz=atof(numstr);printf("補(bǔ)助:");gets(numstr);p->data.bz=atof(numstr);p->data.yfgz=p->data.jbgz+p->data.zwgz+p->data.bz; //基本工資+職務(wù)工資+補(bǔ)助;if(p->data.yfgz<800)p->data.tax=0; //如果應(yīng)發(fā)工<8000,elseif(p->data.yfgz<=1400)p->data.tax=(p->data.yfgz-800)*0.05; //8001400=(應(yīng)發(fā)工-800)*0.05elsep->data.tax=(p->data.yfgz-1400)*0.1; //1400=(應(yīng)發(fā)工-1400)*0.1p->data.sfgz=p->data.jbgz+p->data.zwgz+p->data.bz-(p->data.tax);//工=基本工+職務(wù)工+補(bǔ)助-;p->next=NULL;r->next=p;r=p;saveflag=1;}}/*刪除函數(shù)*/delete(Linkm){intchoose;Node*p,*r;charfind[20];if(m->next==NULL){system("cls");printf("沒(méi)有記錄!\n");getchar();return;}system("cls");printf(" 1 id除 2 \n");//1id2nameprintf("入1或2:\n");scanf("%d",&choose);getchar();if(choose==1){printf("idscanf("%s",find);getchar();p=locate(m,find,"id");if(p!=NULL){r=m;while(r->next!=p)r=r->next;r->next=p->next;free(p);printf("d成功getchar();saveflag=1;}else{printf("idgetchar();}}elseif(choose==2){printf("入已存現(xiàn)在的scanf("%s",find);getchar();p=locate(m,find,"name");if(p!=NULL){r=m;while(r->next!=p)r=r->next;r->next=p->next;free(p);printf("刪除成功getchar();saveflag=1;}else{printf("無(wú)法找到姓名!\n");getchar();}}}/*顯示數(shù)據(jù)*/xianshi(Link{Node*p;p=m->next;if(p==NULL){printf("沒(méi)有記錄!\n");getchar();return;}while(p){printf("\t資 金 \n");printf("\t%4s\t%4s\t%4f\t%4f\t%4f\n",p->data.gzkh,p->,p->data.yfgz,p->data.tax,p->data.sfgz);p=p->next;}getch();}/**/modify(Link{Node*p;charfind[20];charnumstr[20];if(m->next==NULL){system("cls");printf("getchar();return;}system("cls");printf("你想id!\n");gets(find);p=locate(m,find,"id");if(p){strcpy(p->data.id,find);printf("printf("gets(p->);printf("p->data.sex=getchar();getchar();printf(":");gets(p->data.department);getchar();printf(":");gets(p->data.level);getchar();printf(":");gets(p->data.jsbh);getchar();printf(":");gets(p->data.phone);getchar();printf(":");gets(numstr);p->data.jbgz=atof(numstr);getchar();printf(":");gets(numstr);p->data.zwgz=atof(numstr);getchar();printf(":");gets(numstr);p->data.bz=atof(numstr);getchar();p->data.yfgz=p->data.jbgz+p->data.zwgz+p->data.bz;if(p->data.yfgz<800) p->data.tax=0;elseif(p->data.yfgz<=1400)p->data.tax=(p->data.yfgz-800)*0.05;else p->data.tax=(p->data.yfgz-1400)*0.1;p->data.sfgz=p->data.jbgz+p->data.zwgz+p->data.bz-(p->data.tax);printf("你修改成功!\n");getch();saveflag=1;}else{printf("無(wú)法修改!\n");}}/*save(Linkm){FILENode*p;intcount=0;fp=fopen("d:\\hello.txt","wb");//if(fp==NULL)//判斷如果為空,就會(huì)輸出下面{printf("無(wú)法代getchar();return;}p=m->next;//while(p!=NULL){fwrite(p,sizeof(Node),1,fp);//p=p->next;count++;//count是否成功}if(count>0){}else{

printf("成功getchar();saveflag=0;system("cls");printf("保存成功!\n");getchar();}fclose(fp);}/*插入函*/insert(Link{Linkp,newinfo;charch;charfind[20];charnumstr[20];system("cls");printf("pleaseinputthefind[20]gets(find);//獲得要輸入的數(shù)newinfo=(Node*)malloc(sizeof(Node));if(newinfo==NULL){printf("記錄getchar();return;}printf("請(qǐng)輸入插入!\n");printf("職工卡號(hào):");gets(newinfo->data.gzkh);printf("id號(hào):");gets(newinfo->data.id);printf("姓名:");gets(newinfo->);printf("性別:");newinfo->data.sex=getchar();getchar();printf("部門(mén):");gets(newinfo->data.department);getchar();:");gets(newinfo->data.level);getchar();printf(":");gets(newinfo->data.jsbh);getchar();:");gets(newinfo->data.phone);getchar();:");gets(numstr);newinfo->data.jbgz=atof(numstr);getchar();:");gets(numstr);newinfo->data.zwgz=atof(numstr);getchar();:");gets(numstr);newinfo->data.bz=atof(numstr);getchar();newinfo->data.yfgz=newinfo->data.jbgz+newinfo->data.zwgz+newinfo->data.bz;if(newinfo->data.yfgz<800) elseif(newinfo->data.yfgz<=1400)newinfo->data.tax=(newinfo->data.yfgz-800)*0.05;else newinfo->data.tax=(newinfo->data.yfgz-1400)*0.1;newinfo->data.sfgz=newinfo->data.jbgz+newinfo->data.zwgz+newinfo->data.bz-(newinfo->data.tax);printf("你插入成功saveflag=1;p=m->next;while(m){if(strcmp(p->data.id,find)==0){newinfo->next=p->next;p->next=newinfo;bre

溫馨提示

  • 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)論