數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)圖書管理系統(tǒng)及數(shù)據(jù)庫課程設(shè)計(jì)-職工考勤管理信息系統(tǒng)_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)圖書管理系統(tǒng)及數(shù)據(jù)庫課程設(shè)計(jì)-職工考勤管理信息系統(tǒng)_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)圖書管理系統(tǒng)及數(shù)據(jù)庫課程設(shè)計(jì)-職工考勤管理信息系統(tǒng)_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)圖書管理系統(tǒng)及數(shù)據(jù)庫課程設(shè)計(jì)-職工考勤管理信息系統(tǒng)_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)圖書管理系統(tǒng)及數(shù)據(jù)庫課程設(shè)計(jì)-職工考勤管理信息系統(tǒng)_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

濱海學(xué)院數(shù)據(jù)庫課程設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)圖書管理系統(tǒng)一需求分析該程序是模擬圖書館管理系統(tǒng),實(shí)現(xiàn)圖書采編入庫、借書、還書、查詢等基本業(yè)務(wù)。此程序規(guī)定:(1)管理員能夠向系統(tǒng)中輸入每種書的基本信息,包括書號、書名、作者、現(xiàn)存量和庫存量、借閱記錄,并保存記錄;(2)用戶(讀者)能夠按書號、書名、作者查詢圖書信息;(3)管理員能夠?qū)崿F(xiàn)圖書采編入庫(新購入一本書,經(jīng)分類和確定書號之后登記到圖書賬目中去。如果這種書在帳中已有,則只將總庫存量增加)、借閱(如果書的現(xiàn)存量大于0,則借出一本,登記借閱者的圖書證號和歸還期限)、歸還(刪除對借閱者的登記,改變該書的現(xiàn)存量)、銷毀(將圖書從賬目中刪除)等操作。二概要設(shè)計(jì)系統(tǒng)用到的抽象數(shù)據(jù)類型定義:1、ADTLinearList{數(shù)據(jù)元素:D={ai|ai∈D0,i=1,2,…,n,n≥0,D0為某一數(shù)據(jù)對象}關(guān)系:S={<ai,ai+1>|ai,ai+1∈D0,i=1,2,…,n-1}基本操作:InitList(L)DestroyList(L)ClearList(L)EmptyList(L)ListLength(L)Locate(L,e)GetData(L,i)InsList(L,i,e)DelList(L,i,&e)}ADTLinearList2、ADTString{數(shù)據(jù)對象:D={ai|ai∈CharacterSet,i=1,2,…,n;n≧0}數(shù)據(jù)關(guān)系:R={<ai-1,ai>|ai-1,ai∈D,i=2,…,n;n≧0}基本操作:StrAsign(S,chars)StrInsert(S,pos,T)StrDelete(S,pos,len)StrCopy(S,T)StrEmpty(S)StrCompare(S,T)StrLength(S)StrClear(S)StrCat(S,T)(10)SubString(Sub,S,pos,len)(11)StrIndex(S,pos,T)(12)StrReplace(S,T,V)(13)StrDestroy(S)}ADTString系統(tǒng)中的子程序和功能說明:InitBo(Book&boo);初始化圖書信息InitRe(lend&Lin);初始化借閱者信息BinarySearch(Bookboo,charSearchNum[]);二分法查找比較書號Buy(Book&boo,charBuyNum[]);新書采編入庫系統(tǒng)Delete(Book&boo,charDeleteNum[]);清除圖書信息系統(tǒng)Borrow(Book&boo,lend&Lin,charBorrowNum[],charCaNum[]);借閱圖書處理系統(tǒng)Return(Book&boo,lend&Lin,charReturnNum[],charBorrowerNum[]);歸還圖書系統(tǒng)SearchByNum(Book&boo,charSeaNum[]);按書號查找系統(tǒng)SearchByName(Book&boo);按書名查找系統(tǒng)SearchByAuth(Book&boo);按作者查詢系統(tǒng)Menu();主菜單顯示系統(tǒng)Search();查詢系統(tǒng)子菜單main();主函數(shù)系統(tǒng)程序功能結(jié)構(gòu)圖圖書館管理系統(tǒng)圖書館管理系統(tǒng)圖書信息錄入查詢圖書信息處理圖書信息基本信息借閱記錄按書號查詢按書名查詢按作者查詢圖書采編入庫圖書借閱情況圖書歸還情況圖書銷毀情況三詳細(xì)設(shè)計(jì)功能實(shí)現(xiàn)過程boolBinarySearch(Bookboo,charSearchNum[])//二分法查找比較書號{ while(low<=high) { 計(jì)算中間點(diǎn); if(查找到書號相同的) { 返回值true; } if(查找書號不相同) 用二分法進(jìn)一步進(jìn)行查找; } if(庫中沒有所要查找的書) 返回值false;}voidBuy(Book&boo,charBuyNum[])/*采編入庫*/{if(書庫中有此書){總庫存加1;現(xiàn)庫存加1;}if(書庫中無此書){for(i=total;i>mid&&total;i--)/*將新采購的書插在適合位置,保持有序*/空出插入位置;輸入新購書籍的相關(guān)信息:書號、書名、作者、出版社;boo[i].next=NULL;total++;/*總量加1*/}}voidDelete(Book&boo,charDeleteNum[])/*清除圖書信息*/{if(書庫中沒有此書)輸出“無此書”;if(書庫中有此書){strcpy(連續(xù)兩本書的相關(guān)信息);現(xiàn)存量減1;庫存量減1;}else輸出“此書已有借閱者,無法刪除!”;}voidBorrow(Book&boo,lend&Lin,charBorrowNum[],charCaNum[])/*借閱圖書信息*/{if(沒有找到此書)輸出“書庫中無此書!”;if(書庫中有此書){借出一本書后,該書的現(xiàn)存量減1;并在借閱記錄鏈表中插入該條記錄;再對應(yīng)讀者信息記錄鏈表,如果已有該讀者證號信息,直接在該鏈表中插入此次借閱記錄;如果無該讀者證號信息,申請新單鏈表存放借閱記錄。}else輸出“該書現(xiàn)存量為0”}voidReturn(Book&boo,lend&Lin,charReturnNum[],charBorrowerNum[])/*歸還圖書信息*/{if(書庫中無此書)輸出“無此書記錄”;if(書庫中有此書){查找圖書文件,修改圖書的現(xiàn)存量;查找記錄借閱信息的單鏈表,填入還書日期,刪除借閱信息;查找記錄讀者信息的單鏈表,刪除證號信息。}}voidSearchByNum(Book&boo,charSeaNum[])/*按書號查找*/{if(書庫中無此書信息)/*用二分法查找*/輸出“無此書”;else/*書庫中有此書信息*/輸出與此書有關(guān)的相關(guān)信息;}voidSearchByName(Book&boo)/*按書名查找*/{輸入想要查找書的書名;用順序查找法查找;if(查找到需要查找的書)輸出與此書相關(guān)的信息;}建議畫出主要模塊流程圖。四設(shè)計(jì)與調(diào)試分析1、這個(gè)程序設(shè)計(jì)中要注意定義兩個(gè)結(jié)構(gòu)體:圖書結(jié)構(gòu)體、借閱人結(jié)構(gòu)體。其中定義數(shù)組存放圖書信息,申請鏈表存放借閱記錄和讀者信息記錄。2、程序中運(yùn)用到大多的插入與刪除,所以申請鏈表比較方便插入與刪除。但應(yīng)前期需求分析的準(zhǔn)備工作不充分,導(dǎo)致程序運(yùn)行功能不全,比如查找時(shí)關(guān)于此書的信息不能全部顯示出來,并且添加刪除時(shí)庫存的變化不能直接顯示出來。程序的健壯性不能達(dá)到預(yù)期的結(jié)果,這些都是需要改進(jìn)的。3、在程序中的函數(shù)調(diào)用是個(gè)非常重要的部分,也是經(jīng)常需要用到的,在編寫程序過程中,因?yàn)楹瘮?shù)調(diào)用不準(zhǔn)確,使得循環(huán)進(jìn)不去,后來改變函數(shù)的調(diào)用關(guān)系,才達(dá)到了預(yù)期結(jié)果。4、程序中還定義了全局變量,之前沒定義全局變量,在下面的編寫過程,同樣性質(zhì)的地方需要重復(fù)定義,比較麻煩,定義全局變量使得程序比較簡明一點(diǎn)。五用戶手冊【使用說明】1、進(jìn)入圖書館管理系統(tǒng)主頁面2、若有新書要新編入庫,選擇1,進(jìn)入新書入庫系統(tǒng),輸入入庫書的書號,若書庫中無該書,則設(shè)立新書目,輸入新書信息。若書庫中已有該書,則輸入新信息覆蓋修改原書庫中該書號對應(yīng)書的信息。3、若有書籍信息需要?jiǎng)h除,選擇2,進(jìn)入清空庫存系統(tǒng),輸入想要?jiǎng)h除書的書號,則此書信息就已刪除。4、若要借閱圖書,選擇3,進(jìn)入圖書借閱系統(tǒng),輸入需要借閱書的書號以及讀者證號,并輸入還書日期,則借書成功。5、若要?dú)w還圖書,選擇4,進(jìn)入圖書歸還系統(tǒng),輸入需要?dú)w還圖書的書號以及讀者證號,則還書成功。6、若要查找信息,選擇5,進(jìn)入查找信息子系統(tǒng)。若要按書號查找,則選擇子系統(tǒng)中的1,輸入需要查找的書的書號,若按書名查找,則選擇子系統(tǒng)中的2,輸入需要查找的書名,若按作者查找,輸入需要查找書的作者進(jìn)行查找,若查找結(jié)束,則按0退出。7、若系統(tǒng)使用結(jié)束,按0退出?!境绦蛑械念^文件】#include<stdio.h>#include<string.h>#include<stdlib.h>#defineMAXSIZE100#defineLIST_INIT_SIZE100intRetotal;/*定義的全局變量*/inttotal;六測試成果1、采編入庫2、清空庫存3、圖書借閱4、圖書歸還5、圖書查找七附錄(源程序清單)#include<stdio.h>#include<string.h>#include<stdlib.h>#defineMAXSIZE100#defineLIST_INIT_SIZE100typedefstructBoro{ charBNum[20];charRetDate[8];structBoro*next;}Bor;typedefstructLinkBook{ Bor*next; charCNum[20];intTotal;}lend[LIST_INIT_SIZE];typedefstructLNode{ charCardNum[20]; structLNode*next;}LinkList;typedefstructbook{ charnum[20]; charname[20]; charauth[20]; charpub[20]; intTotNum; intNowNum; LinkList*next;}Book[MAXSIZE];intRetotal;inttotal;voidInitBo(Book&boo){ for(inti=0;i<MAXSIZE;i++) { boo[i].NowNum=0; boo[i].TotNum=0; boo[i].next=NULL; }}voidInitRe(lend&Lin){ for(inti=0;i<LIST_INIT_SIZE;i++) Lin[i].next=NULL;}intmid=0;boolBinarySearch(Bookboo,charSearchNum[]){ intlow=0,high=total; intfound=0; while(low<=high) { mid=(low+high)/2; if(strcmp(boo[mid].num,SearchNum)==0) { found=1; returntrue; } if(strcmp(boo[mid].num,SearchNum)!=0) high=mid-1; else low=mid+1; } if(found==0) returnfalse;}voidBuy(Book&boo,charBuyNum[]){ inti; if(BinarySearch(boo,BuyNum)) { boo[mid].TotNum++; boo[mid].NowNum++; printf("入庫成功.\n"); printf("已更改書庫中該書的信息。\n"); printf("編號:%s書名:%s",boo[mid].num,boo[mid].name); printf("作者:%s出版社:%s",boo[mid].auth,boo[mid].pub); printf("\n"); } if(!BinarySearch(boo,BuyNum)) { for(i=total;i>mid&&total;i--) boo[i]=boo[i-1]; printf("該書在書庫中不存在,設(shè)立新書目!\n"); strcpy(boo[i].num,BuyNum); printf("該書購入的數(shù)量是:"); scanf("%d",&boo[i].NowNum); boo[i].TotNum=boo[i].NowNum; printf("該書的名字是:"); scanf("%s",&boo[i].name); printf("該書的作者是:"); scanf("%s",&boo[i].auth); printf("該書的出版社是:"); scanf("%s",&boo[i].pub); boo[i].next=NULL; total++; printf("已增加該書的信息!\n"); printf("編號:%s書名:%s",boo[i].num,boo[i].name); printf("作者:%s出版社:%s",boo[i].auth,boo[i].pub); printf("\n"); printf("入庫成功.\n"); }}voidDelete(Book&boo,charDeleteNum[]){ if(BinarySearch(boo,DeleteNum)==false||total==0) printf("書庫中沒有該書.\n"); if(BinarySearch(boo,DeleteNum)) { if(!boo[mid].next) { intj; for(j=mid;j<total;j++) boo[j]=boo[j+1]; strcpy(boo[j].num,boo[j+1].num); strcpy(boo[j].name,boo[j+1].name); strcpy(boo[j].auth,boo[j+1].auth); strcpy(boo[j].pub,boo[j+1].pub); boo[j].TotNum=boo[j+1].TotNum; boo[j].NowNum=boo[j+1].NowNum; printf("已成功刪除該書.\n"); } else printf("該書有借閱者,無法刪除。\n"); }}voidBorrow(Book&boo,lend&Lin,charBorrowNum[],charCaNum[]){ Bor*p,*q; LinkList*m,*n; if(!BinarySearch(boo,BorrowNum)||total==0) printf("書庫里沒這書。\n"); if(BinarySearch(boo,BorrowNum)) { if(boo[mid].NowNum>0) { boo[mid].NowNum--; if(boo[mid].next==NULL) { m=(LinkList*)malloc(sizeof(LNode)); boo[mid].next=m; strcpy(m->CardNum,CaNum); m->next=NULL; } else { m=boo[mid].next; while(m->next) m=m->next; n=(LinkList*)malloc(sizeof(LNode)); m->next=n; strcpy(n->CardNum,CaNum); n->next=NULL; } inti=0; for(i=0;i<Retotal;i++) { if(!strcmp(Lin[i].CNum,CaNum)) { p=Lin[i].next; while(p->next)p=p->next; q=(Bor*)malloc(sizeof(Boro)); p->next=q; strcpy(q->BNum,BorrowNum); printf("輸入歸還日期:"); scanf("%s",&q->RetDate); q->next=NULL; printf("借閱成功.\n"); break; } } if(i==Retotal) { strcpy(Lin[i].CNum,CaNum); p=(Bor*)malloc(sizeof(Boro)); Lin[i].next=p; strcpy(p->BNum,BorrowNum); printf("輸入歸還日期:"); scanf("%s",&p->RetDate); p->next=NULL; Retotal++; printf("借閱成功.\n"); } } else printf("借閱失敗.該書現(xiàn)在庫存為0.\n"); }}voidReturn(Book&boo,lend&Lin,charReturnNum[],charBorrowerNum[]){ Bor*p,*q; LinkList*m,*n; intflag=0; if(!BinarySearch(boo,ReturnNum)||!total) printf("書庫中無此書.\n"); if(BinarySearch(boo,ReturnNum)) { m=boo[mid].next; if(!strcmp(m->CardNum,BorrowerNum)) { boo[mid].NowNum++; boo[mid].next=m->next; free(m); } else { while(m->next) { if(!strcmp(m->next->CardNum,BorrowerNum)) { n=m->next; m->next=n->next; free(n); boo[mid].NowNum++; break; } m=m->next; } } } for(inti=0;i<Retotal;i++) { if(!strcmp(Lin[i].CNum,BorrowerNum)) { p=Lin[i].next; if(!strcmp(p->BNum,ReturnNum)) { Lin[i].next=p->next; free(p); printf("成功歸還該書.\n"); flag=1; break; } else { while(p->next) { if(!strcmp(p->next->BNum,ReturnNum)) { q=p->next; p->next=q->next; free(q); printf("成功歸還該書.\n"); flag=1; break; } p=p->next; } } } } for(intk=0;k<Retotal;k++) if(!Lin[k].next) { intj; for(j=k;j<Retotal;j++) Lin[j]=Lin[j+1]; strcpy(Lin[j].CNum,""); Retotal--; } if(flag==0) printf("無該證信息.\n");}voidSearchByNum(Book&boo,charSeaNum[]){ LinkList*p; p=boo[mid].next; if(BinarySearch(boo,SeaNum)==true) { printf("書號:%s\n",boo[mid].num); printf("書名:%s\n",boo[mid].name); printf("作者名:%s\n",boo[mid].auth); printf("出版社:%s\n",boo[mid].pub); printf("現(xiàn)存量:%s\n",boo[mid].NowNum); printf("庫存量:%s\n",boo[mid].TotNum); printf("\n"); } else printf("對不起,未找到您想查找的書。\n");}voidSearchByName(Book&boo){ charSeaName[20]; printf("輸入想查找的書的書名:\n"); scanf("%s",&SeaName); printf("此書存在!\n"); for(inti=0;i<total;i++) { if(strcmp(SeaName,boo[i].name)==0) { printf("編號:%s書名:%s",boo[i].num,boo[i].name); printf("作者:%s出版社:%s",boo[i].auth,boo[i].pub); printf("總庫存量:%s",boo[i].TotNum); printf("現(xiàn)庫存量:%s",boo[i].NowNum); printf("\n"); } } }voidSearchByAuth(Book&boo){ charSeaAuth[20]; printf("輸入想查找的書的作者:\n"); scanf("%s",&SeaAuth); printf("找到符合該作者的書的詳細(xì)信息如下:\n"); for(inti=0;i<total;i++) { if(strcmp(SeaAuth,boo[i].auth)==0) { printf("編號:%s書名:%s",boo[i].num,boo[i].name); printf("作者:%s出版社:%s",boo[i].auth,boo[i].pub); printf("\n"); } }}voidMenu(){ printf("圖書館管理系統(tǒng)\n"); printf("1.采編入庫2.清空庫存\n\n"); printf("3.圖書借閱4、圖書歸還\n\n");printf("5.按要求查找0.退出\n\n");printf("請選擇:");}voidSearch(){ charBNum[20]; BookBo; intk; printf("圖書館查詢子系統(tǒng)\n"); printf("1、按書號查詢2、按書名查找\n\n"); printf("3、按作者查詢4、退出子系統(tǒng)\n\n"); printf("請選擇:"); scanf("%d",&k); switch(k) { case1: printf("請輸入書號:");//輸入書號查找 scanf("%s",&BNum); SearchByNum(Bo,BNum); break; case2: SearchByName(Bo); break; case3: SearchByAuth(Bo); break; case4: exit(0); break; }}voidmain(){ BookBo;lendLin;charBNum[20]; charCNum[20];intchoice=10; while(choice!=0) { system("cls"); Menu();//顯示菜單 scanf("%d",&choice); switch(choice) { case1://采編入庫 printf("請輸入入庫的書的書號:"); scanf("%s",BNum); Buy(Bo,BNum); system("pause"); break; case2://清空庫存 printf("請輸入想要清除的書的書號:"); scanf("%s",BNum); Delete(Bo,BNum); system("pause"); break; case3://借閱 printf("請輸入想要借閱的書的書號:\n"); scanf("%s",&BNum); printf("請輸入圖書證號:"); scanf("%s",&CNum); Borrow(Bo,Lin,BNum,CNum); system("pause"); break; case4://歸還 printf("請輸入想要?dú)w還的書的書號:\n"); scanf("%s",&BNum); printf("請輸入圖書證號:"); scanf("%s",&CNum); Return(Bo,Lin,BNum,CNum); system("pause"); break; case5: Search(); system("pause"); break; case0://退出系統(tǒng) exit(0); break; default:printf("輸入錯(cuò)誤!\n");exit(0);break; } }}目錄TOC\o"1-2"\h\z\u1概述 11.1設(shè)計(jì)背景 11.2研究目的 11.3理論基礎(chǔ)的分析 21.4預(yù)期結(jié)果和意義 22需求分析 22.1功能需求 22.2數(shù)據(jù)流圖 32.3功能模塊圖 42.4系統(tǒng)數(shù)據(jù)流程圖 43概念結(jié)構(gòu)設(shè)計(jì) 53.1局部E-R圖 53.2整體E-R圖 84邏輯結(jié)構(gòu)設(shè)計(jì) 94.1關(guān)系模式 94.2數(shù)據(jù)關(guān)系圖 95物理結(jié)構(gòu)設(shè)計(jì) 105.1存儲記錄結(jié)構(gòu)設(shè)計(jì) 105.2創(chuàng)建索引 126數(shù)據(jù)庫實(shí)施 136.1建立數(shù)據(jù)庫 136.2數(shù)據(jù)表的創(chuàng)建 136.3建立存儲過程 166.4創(chuàng)建觸發(fā)器 177數(shù)據(jù)庫運(yùn)行和維護(hù) 188結(jié)論 191概述1.1設(shè)計(jì)背景隨著企業(yè)人事管理的日趨復(fù)雜和企業(yè)人員的增多,企業(yè)的考勤管理變得越來越復(fù)雜。規(guī)范的考勤管理是現(xiàn)代企業(yè)提高管理效益的重要保證,而傳統(tǒng)的人工管理存在著效率低、不易統(tǒng)計(jì)、成本高和易出錯(cuò)等弊端,已經(jīng)無法適應(yīng)現(xiàn)代企業(yè)的需求。隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的迅速發(fā)展,將傳統(tǒng)的人工考勤管理計(jì)算機(jī)化,建立一個(gè)高效率的、無差錯(cuò)的考勤管理系統(tǒng),能夠有效的幫助企業(yè)實(shí)現(xiàn)“公正考勤,高效薪資”,使企業(yè)的管理水平登上一個(gè)新的臺階。企業(yè)考勤管理經(jīng)過如下的業(yè)務(wù)流程:(1)員工基本信息管理,添加,刪除,更改(2)員工考勤管理,員工根據(jù)自己的班次在上下班時(shí)分別進(jìn)行出勤操作,采用手動方式或者使用劃卡機(jī)。由人事部門專門的人員管理出勤和退勤信息。(3)一般在每個(gè)月月初進(jìn)行考勤匯總,匯總信息包括工作日的出勤情況、請假天數(shù)、出差天數(shù)、休假天數(shù)和不同性質(zhì)的加班記錄等。1.2研究目的待開發(fā)的系統(tǒng)的名稱為企業(yè)職工在線考勤系統(tǒng);我們以中小型企業(yè)的考勤管理業(yè)務(wù)為依托,結(jié)合科學(xué)管理的理論,設(shè)計(jì)并開發(fā)一個(gè)企業(yè)考勤管理信息系統(tǒng),提供一個(gè)科學(xué)合理的考勤管理解決方案,徹底實(shí)現(xiàn)無紙化作業(yè)。根據(jù)管理權(quán)限的不同,將界面分為一般職員、部門經(jīng)理、系統(tǒng)管理員和最高管理者四個(gè)層次,系統(tǒng)目標(biāo)如下:(1)提供簡單、方便的操作。(2)根據(jù)企業(yè)原來的考勤管理制度,為企業(yè)不同管理層次提供相應(yīng)的功能。(3)通過考勤管理無紙化的實(shí)現(xiàn),使企業(yè)的考勤管理更加科學(xué)規(guī)范。(4)節(jié)省考勤管理的成本。(5)提高企業(yè)考勤管理的透明度和效率,防止“虛假出勤“的現(xiàn)象。(6)對系統(tǒng)提供必要的權(quán)限管理。(7)為企業(yè)實(shí)現(xiàn)整體信息化的其他相關(guān)系統(tǒng)提供必要的數(shù)據(jù)支持。1.3理論基礎(chǔ)的分析本設(shè)計(jì)利用sqlserver2012建立數(shù)據(jù)庫,表格化存儲,利用表的查詢,連接,修改,刪除數(shù)據(jù)等管理員工信息,對數(shù)據(jù)庫設(shè)定必要的權(quán)限,只有經(jīng)理具有權(quán)限能進(jìn)行查看,修改數(shù)據(jù)。1.4預(yù)期結(jié)果和意義考勤系統(tǒng)能實(shí)現(xiàn)職工日考勤記錄,記錄請假信息,記錄出差信息等功能,并最終所有信息歸入月統(tǒng)計(jì)中去。本考勤系統(tǒng)建立了一個(gè)高效率的、無差錯(cuò)的考勤管理系統(tǒng),能夠有效的幫助企業(yè)實(shí)現(xiàn)“公正考勤,高效薪資”,使企業(yè)的管理水平登上一個(gè)新的臺階。需求分析2.1功能需求(1)數(shù)據(jù)管理功能是設(shè)置和管理基礎(chǔ)數(shù)據(jù),包括加班、請假類別的定義和班次的定義,在全縣范圍內(nèi)可以進(jìn)行基礎(chǔ)數(shù)據(jù)的添加、刪除和修改。(2)考勤管理包括出勤動作、出勤信息的查詢;上級對下級員工的出勤信息的確認(rèn);生成考勤統(tǒng)計(jì)信息并可以根據(jù)指定的條件進(jìn)行查詢。實(shí)現(xiàn)從每日出勤到統(tǒng)計(jì)全部考勤信息的無紙化操作。為方便數(shù)據(jù)傳遞和查閱,要根據(jù)需求提供不同時(shí)間短的考勤統(tǒng)計(jì)信息表。(3)加班管理對員工的加班時(shí)間進(jìn)行統(tǒng)計(jì),記錄開始時(shí)間和結(jié)束時(shí)間,對加班信息實(shí)現(xiàn)添加,刪除等操作。(4)請假管理可以提出請假申請,并完善請假信息,如請假開始時(shí)間,請假結(jié)束時(shí)間,請假的次數(shù)進(jìn)行管理。(5)出差管理管理者安排員工出差,對出差時(shí)間,次數(shù)的管理。2.2數(shù)據(jù)流圖數(shù)據(jù)流圖如圖2.1所示加班請假請假信息職工加班請假請假信息職工加班信息加班信息 N N M M出差記錄出差統(tǒng)計(jì) M出差記錄出差統(tǒng)計(jì) M N N M出勤月統(tǒng)計(jì)出勤月統(tǒng)計(jì)出勤記錄 N出勤記錄2.1數(shù)據(jù)流圖2.3功能模塊圖如圖2.2所示,圖為功能模塊圖職工考勤管理信息系統(tǒng)職工考勤管理信息系統(tǒng)員工基本信息出差記員工基本信息出差記錄出勤記錄請假記錄月統(tǒng)計(jì)月統(tǒng)計(jì)加班記錄2.2功能模塊圖2.4系統(tǒng)數(shù)據(jù)流程圖如圖2.3所示,圖為數(shù)據(jù)流程圖各種統(tǒng)計(jì)信息管理人員考勤員員工經(jīng)理審批月度員工考勤統(tǒng)計(jì)請假、值班、出差記錄上下班時(shí)間安排員工出勤記錄記錄出勤時(shí)間各種統(tǒng)計(jì)信息管理人員考勤員員工經(jīng)理審批月度員工考勤統(tǒng)計(jì)請假、值班、出差記錄上下班時(shí)間安排員工出勤記錄記錄出勤時(shí)間2.3數(shù)據(jù)流程圖概念結(jié)構(gòu)設(shè)計(jì)3.1局部E-R圖(1)員工E-R圖,如圖3.1.1所示年齡姓名編號部門職工年齡姓名編號部門職工圖3.1員工E-R圖(2)圖2.3.2為出勤E-R圖部門職工編號下班時(shí)間缺勤記錄上班時(shí)間出勤記錄部門職工編號下班時(shí)間缺勤記錄上班時(shí)間出勤記錄圖3.2出勤E-R圖(3)圖3.3為出差E-R圖出差編號職工編號結(jié)束時(shí)間缺勤記錄開始時(shí)間出差記錄出差編號職工編號結(jié)束時(shí)間缺勤記錄開始時(shí)間出差記錄圖3.3出差E-R圖(4)加班E-R圖如圖3.4所示加班編號職工編號加班統(tǒng)計(jì)開始時(shí)間出勤記錄加班編號職工編號加班統(tǒng)計(jì)開始時(shí)間出勤記錄結(jié)束時(shí)間結(jié)束時(shí)間3.4加班E-R圖(5)請假E-R圖如圖3.5所示請假編號編號結(jié)束時(shí)間請假統(tǒng)計(jì)開始時(shí)間請假記錄請假編號編號結(jié)束時(shí)間請假統(tǒng)計(jì)開始時(shí)間請假記錄3.5請假E-R圖(6)月統(tǒng)計(jì)E-R圖職工編號下班時(shí)間缺勤記錄上班時(shí)間出勤記錄職工編號下班時(shí)間缺勤記錄上班時(shí)間出勤記錄3.6月統(tǒng)計(jì)E-R圖3.2整體E-R圖如圖3.7所示,圖為整體E-R圖結(jié)束時(shí)間結(jié)束時(shí)間3.7整體E-R圖4邏輯結(jié)構(gòu)設(shè)計(jì)4.1關(guān)系模式職工(職工編號,姓名,性別,年齡)出勤記錄(職工編號,出勤編號,上班時(shí)間,下班時(shí)間,缺勤記錄)出差記錄(職工編號,出差編號,開始時(shí)間,結(jié)束時(shí)間,統(tǒng)計(jì)天數(shù))加班信息(職工編號,加班編號,加班開始時(shí)間,加班結(jié)束時(shí)間,加班時(shí)間統(tǒng)計(jì))請假信息(職工編號,請假編號,請假開始時(shí)間,請假結(jié)束時(shí)間,請假時(shí)間統(tǒng)計(jì))月統(tǒng)計(jì)(職工編號,出勤月統(tǒng)計(jì),出差月統(tǒng)計(jì),加班月統(tǒng)計(jì),請假月統(tǒng)計(jì))4.2數(shù)據(jù)關(guān)系圖如圖4.2.1所示,在數(shù)據(jù)庫中生成的關(guān)系圖中,員工編號是員工信息表的主鍵,是其他表的外鍵。圖4.1數(shù)據(jù)關(guān)系圖5物理結(jié)構(gòu)設(shè)計(jì)5.1存儲記錄結(jié)構(gòu)設(shè)計(jì)在物理結(jié)構(gòu)中,數(shù)據(jù)的基本存取單位是存儲記錄。有了邏輯結(jié)構(gòu)以后,就可以設(shè)計(jì)存儲記錄結(jié)構(gòu),一個(gè)存儲記錄可以與多個(gè)邏輯記錄相對應(yīng)。存儲記錄就包括記錄的組成,數(shù)據(jù)項(xiàng)的類型和長度等。在本圖中5.1職工信息表主要包括職工編號,姓名,性別,年齡表5.1職工信息表列名說明字段類型約束控制w_id職工編號Char(4)主鍵w_name姓名Char(6)非空w_sex性別Char(2)‘男’或’女’w_age年齡Int非空w_degree職稱char(4)非空在本表5.2中出勤記錄包含職工編號,出勤編號,上班時(shí)間,下班時(shí)間,缺勤記錄表5.2出勤記錄表列名說明字段類型約束控制w_id職工編號Char(4)主鍵w_num出勤編號Int主鍵work_tim上班時(shí)間Datetime允許空end_tim下班時(shí)間Datetime允許空Work_note缺勤記錄Datetime允許空在本圖5.3中出差記錄職工編號,出差編號,開始時(shí)間,結(jié)束時(shí)間,統(tǒng)計(jì)天數(shù)表5.3出差記錄表列名說明字段類型約束控制w_id職工編號Char(4)主鍵Out_num出差編號Int主鍵Out_tim開始時(shí)間Datetime允許空Back_tim結(jié)束時(shí)間Datetime允許空Out_days統(tǒng)計(jì)天數(shù)Int允許空在本表5.4中加班記錄表主要包含職工編號,加班編號,開始時(shí)間、結(jié)束時(shí)間。時(shí)間統(tǒng)計(jì)表5.4加班記錄表列名說明字段類型約束控制w_id職工編號Char(4)主鍵Over_num加班編號Int主鍵Over_tim開始時(shí)間Datetime允許空Overend_tim結(jié)束時(shí)間Datetime允許空Over_days時(shí)間統(tǒng)計(jì)Int允許空在本表5.5中,請假記錄表主要包括職工編號,請假編號,請假開始時(shí)間和請假結(jié)束時(shí)間組成。

表5.5請假記錄表列名說明字段類型約束控制w_id職工編號Char(4)主鍵Off_num請假編號Int主鍵Off_tim請假開始時(shí)間Datetime允許空Offend_tim請假結(jié)束時(shí)間Datetime允許空Off_days統(tǒng)計(jì)天數(shù)Int允許空在本圖5.6中月統(tǒng)計(jì)主要包括職工編號,出勤月統(tǒng)計(jì),出差月統(tǒng)計(jì),請假月統(tǒng)計(jì),加班月統(tǒng)計(jì)表5.6月統(tǒng)計(jì)記錄表列名說明字段類型約束控制w_id職工編號Char(4)主鍵Work_note出勤月統(tǒng)計(jì)Int非空Out_note出差月統(tǒng)計(jì)Int允許空Over_note加班月統(tǒng)計(jì)Int允許空Off_note請假月統(tǒng)計(jì)Int允許空5.2創(chuàng)建索引為mounth_note在w_id上創(chuàng)建唯一索引CreateindexM1onmounth_note(w_id)Go Execsp_helpIndexmounth_note6數(shù)據(jù)庫實(shí)施6.1建立數(shù)據(jù)庫CREATEDATABASEworkerON(NAME=worker_data,FILENAME='f:\worker.mdf',SIZE=3,FILEGROWTH=1)LOGON(NAME=worker_LOG,FILENAME='C:\worker_log.ldf',SIZE=1,MAXSIZE=50,FILEGROWTH=10%)6.2數(shù)據(jù)表的創(chuàng)建(1)如圖6.1所示員工信息表(worker)CREATETABLEworker(W_idCHAR(4)CONSTRAINTworker_PrimPRIMARYKEY,w_nameCHAR(6)notnull,SEXCHAR(2)CONSTRAINTSEX_ChkCHECK(SEX='男'ORSEX='女')notnull,AGEINTnotnull,w_drgeeVARCHAR(4)NOTNULL,)圖6.1員工信息表(2)如圖6.2所示出勤記錄表(work_note)CREATETABLEwork_note(W_idCHAR(4),w_numint,CONSTRAINTwork_note_PrimPRIMARYKEY(W_id,w_num),work_timdatetime,end_timdatetime,work_notedatetime,)圖6.2出勤記錄(3)如圖6.3所示出差記錄表(out_note)CREATETABLEout_note(W_idCHAR(4),out_numint,CONSTRAINTout_note_PrimPRIMARYKEY(W_id,out_num),out_timdatetime,back_timdatetime,out_daysint,)圖6.3出差記錄(4)如圖6.4所示加班記錄表(over_note)CREATETABLEover_note(W_idCHAR(4),over_numint,CONSTRAINTover_note_PrimPRIMARYKEY(W_id,over_num),over_timdatetime,overend_timdatetime,over_daysint,)圖6.4加班記錄(5)如圖6.2.5所示請假記錄表(off_note)CREATETABLEoff_note(W_idCHAR(4),off_numint,CONSTRAINToff_note_PrimPRIMARYKEY(W_id,off_num),off_timdatetime,offend_timdatetime,off_daysint,)圖6.5請假記錄(6)如圖6.6所示月紀(jì)錄表(mounth)CREATETABLEmounth_note(w_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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論