uml人才招聘系統
㈠ uml 人事管理系統用例圖
易¥針對你的題目,我們可以為你提供一份適用於初學者的代碼
軟¥如有具體需求內,可以我們容聯系,
科¥帶著你的問題和Email來找我,
技¥絕對救急,OICQ在個人資料里,
提¥陪你順利畢業,
供¥此回復針對所有來訪者和需求者有效,帶著你的Email和問題來找我
㈡ uml用於系統的哪個階段
uml從系統的需求開始,一直可以貫穿整個項目的全過程中
UML建模與軟體開發過程模型
現在談到軟體開發過程,大家可能也不會陌生,學過軟體工程的人都能隨口說上幾個軟體過程模型,現在要把這兩種不同的模型拿到一起來討論,一方面是軟體開發的實際需要,另一方面也是UML建模工具要和其他面向對象開發模型結合的一種必然要求。
但是,OMG為了防止UML建模和某種開發過程模型結合過緊,導致其適應性降低,使統一性大打折扣,從而影響UML建模工具的普及和推廣,只制定了語義規則和表示符號,對於一個實際問題怎樣進行建模,並未制定象資料庫設計範式那樣的規范和原則,對於一個項目,應該先建什麼模型,後建什麼模型,也沒有做什麼限制。也就是說,沒有規定UML建模的工作過程和方法,UML建模可以適應任何開發過程模型。
軟體開發過程模型的理論定義比較簡單,而把這一過程模型在實踐中應用成功,卻有許多制約因素,首先是軟體的范圍,一個大型分布式軟體系統和一個單機版的個人軟體系統在開發管理上肯定不同;其次軟體的開發目的,一個為了提高瀏覽量而開發的網站和一個為密集計算而開發的的一個處理系統在開發過程管理上肯定不同。最後一點是團隊,不同的團隊在磨合度、個人能力、團隊協作等方面各不相同,開發相同的項目使用相同的開發過程模型,開發結果完全不同的實例多得數不勝數。另外,軟體復用是面向對象的一大特點,它不但與所選擇的開發過程模型有關系,而且與企業文化和企業的做事方式有關。
上面這一些都說明,選擇或設計一個好的,能夠反映軟體開發過程在什麼時候做什麼、如何作的過程模型並不是件容易的事。UML建模工具和統一過程(RUP)結合,是很多人熟知的理論,這很大程度上得益於UML三位主要創始人的功勞,因為它們曾共同出過一本關於UML與統一過程的書,另一方面是UML建模工具和統一過程的發源地都是 rational公司,也使人們誤認為使用UML建模工具就得使用統一過程,事實上,UML自1.0版本以後,就歸OMG所有,而RUP不是OMG發布的,只有OMG發布的信息,才能作為我們的行業標准。
一切先進的思想,往往是融合了先前其他人的先進思想,在介紹trufun的TUP建模過程之前,我們有必要回顧一下和UML建模結合的幾種軟體開發過程模型。
統一過程(UP)模型:統一過程模型在和UML建模結合時,採用以用例為驅動的方式,用用例連接所有活動,每個活動都建一組模型,如業務領域模型、責任領域模型、實現模型、測試模型,每組模型中又由多個不同的角色共同協作完成,比如具有專門進行用例建模的角色和組件建模的角色等等,採用增量迭代方式建立和完善用例,並對每一次建模進行評估,在項目的計劃、監控等方面並非以建模為中心,而是把建模作為統一過程的一個小部分。該模型的主要缺點是周期長、人員要求多、建模工作量大。
迭代模型:它是採用較多的小迭代來實現最終的模型,也就是說,模型圖是通過一系列步驟一步一步地建起來,每一次迭代都有新信息添加到模型中來,每一次迭代都要經過評估,都是下一次迭代的輸入,迭代會使系統開發的活動(需求、分析、設計和測試)執行多次,並且每次都有新的內容增加進來。這個方法有一個缺點是在迭代的後期,仍然有新的需求增加進來。
增量模型:增量模型開發每次迭代都能產生一個可執行的結果,這個結果是一個可 「交付的」系統版本,每一次迭代要經過評估,並且增加了一些新的功能,增量模型主要包括分析、設計、實現、測試四個活動。該方法有一個很大缺點是到了項目迭代後期還要進行設計,會給系統帶來很大的風險。
XP模型:又叫極限編程,它是一個輕量級的、靈巧的軟體開發方法;同時它也是一個非常嚴謹和周密的方法。它的基礎和價值觀是交流、樸素、反饋和勇氣;即,任何一個軟體項目都可以從四個方面入手進行改善:加強交流;從簡單做起;尋求反饋;勇於實事求是,整個開發是以測試為驅動的,它屬於小型方法,對於初級軟體開發企業有效,無法站在軟體過程的行列談和UML建模結合的問題。
㈢ 計算機專業 課程設計UML人事管理系統求代碼
#include"stdio.h"
#include"stdlib.h"
#include "string.h"
//定義節點類型
typedef struct node
{
char id[10];
char name[10];
char sex[10];
char part[10];
char xueli[10];
char wu[10];
char pro[10];
char school[10];
struct node *next;
}node,*linklist;
//頭插法生成單鏈表
int creatlist(linklist &L)
{
linklist p;
p=(linklist)malloc(sizeof(node));
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->part);
printf("請輸入員工學歷\n");
scanf("%s",p->xueli);
printf("請輸入員工職務\n");
scanf("%s",p->wu);
printf("請輸入員工專業\n");
scanf("%s",p->pro);
printf("請輸入員工畢業學校\n");
scanf("%s",p->school);
}
p->next=L->next;
L->next=p;
}
//初始化單鏈表
int initlist(linklist &L)
{
L=(linklist)malloc(sizeof(node));
if(!L)
return (0);
L->next=NULL;
return 1;
}
//顯示所有員工信息
void display(linklist &L)
{
linklist p;
for(p=L->next;p;p=p->next)
{
printf("編號:%s",p->id);
printf(" 姓名:%s",p->name);
printf(" 性別:%s",p->sex);
printf(" 所在部門:%s",p->part);
printf(" 學歷:%s",p->xueli);
printf(" 職務:%s",p->wu);
printf(" 專業:%s",p->pro);
printf(" 畢業學校:%s\n",p->school);
}
}
//按id 刪除
int del(linklist &L,char id[10])
{
node *p;
node *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");
}
return 1;
}
//查詢id
int searchid(linklist &L,char id[10])
{
node *p;
p=L;
while(p)
{
if(strcmp(p->id,id)==0)
{
printf("編號:%s",p->id);
printf(" 姓名:%s",p->name);
printf(" 性別:%s",p->sex);
printf(" 所在部門:%s",p->part);
printf(" 學歷:%s",p->xueli);
printf(" 職務:%s",p->wu);
printf(" 專業:%s",p->pro);
printf(" 畢業學校:%s\n",p->school);
}
p=p->next;
}
return 1;
}
//查詢姓名
int searchname(linklist &L,char name[10])
{
node *p;
p=L;
while(p)
{
if(strcmp(p->name,name)==0)
{
printf("編號:%s",p->id);
printf(" 姓名:%s",p->name);
printf(" 性別:%s",p->sex);
printf(" 所在部門:%s",p->part);
printf(" 學歷:%s",p->xueli);
printf(" 職務:%s",p->wu);
printf(" 專業:%s",p->pro);
printf(" 畢業學校:%s\n",p->school);
}
p=p->next;
}
return 1;
}
//修改
int xiugai(linklist &L,char id[10])
{
node *p;
p=L;
while(p)
{
if(strcmp(p->id,id)==0)
{
printf("請輸入員工編號| 姓名 | 性別 | 所在部門 | 學歷 |職務 | 專業 | 畢業學校 \n");
scanf("%s%s%s%s%s%s%s%s",p->id,p->name,p->sex,p->part,p->xueli,p->wu,p->pro,p->school);
}
p=p->next;
}
return 1;
}
//按員工號排序
void Sort(linklist &L)
{
linklist La;
linklist p,q,m;
La=(linklist)malloc(sizeof(node));
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);
}
//主函數
void main()
{
linklist L;
int a;
char m;
char name[10];
char id[10];
initlist(L);
int y;
int x=1;
printf("\t\t\t 歡迎使用--員工管理系統\n");
while(x)
{
printf("\n\n*********************\n");
printf("\t\t\t 1 添加員工信息\n");
printf("\t\t\t 2 修改員工信息\n");
printf("\t\t\t 3 刪除員工信息\n");
printf("\t\t\t 4 查詢員工信息\n");
printf("\t\t\t 5 排序員工信息\n");
printf("\t\t\t 6 顯示所有員工信息\n");
printf("\t\t\t 7 退出\n");
printf("***************************\n");
printf("請選擇要進行的操作代碼:");
scanf("%d",&y);
switch(y)
{
case 1: creatlist(L);
do
{
printf("否繼續輸入?(y/n)");
getchar();
scanf("%c",&m);
if(m=='y')
{
creatlist(L);
}
}
while(m!='n');
break;
case 2: printf("請輸入修改員工編號");
getchar();
scanf("%s",&id);
xiugai(L,id);
break;
case 3: printf("請輸入刪除員工編號");
getchar();
scanf("%s",&id);
del(L,id);
break;
case 4: printf("請輸入查詢方式(1 按編號查詢,2 按姓名查找)");
scanf("%d",&a);
if(a==1)
{
printf("請輸入查詢員工編號\n");
scanf("%s",&id);
searchid(L,id);
}
if(a==2)
{
printf("請輸入查詢員工姓名\n");
scanf("%s",&name);
searchname(L,name);
}
break;
case 5:
Sort(L);
break;
case 6: printf("所有員工信息如下所示\n");
display(L);
break;
case 7: x=0;
break;
}
}
}