A. 職工工資管理系統
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int shoudsave=0;
char dir[15];
struct member
{
char num[5];//編號
char name[15];
char sex[1];
float spercent;
float zpercent;
float xpercent;
float jiangjin;
float totle;
float ave;
}; //一個結構體
typedef struct node
{
struct member data;//指向結構體的結構體
struct node *next;
}Node,*Link;
void explain()
{printf("=============================關於此程序的操作說明==============================\n");
printf("===1>:員工每旬應該完成量為33.3個百分點,輸入只輸數字部分。\n");
printf("===2>:員工每月應該完成量完成量為100個百分點。\n");
printf("===3>:員工獎金按其超額總應該完成量(即百分之百)的多少計算。\n");
printf("===4>:獎金=(總完成比-1)*1000。\n");
printf("===5>:員工底金為1000元。\n");
printf("===6>:邏輯刪除資料必須在已經保存了先前記錄的基礎上方可進行。\n");
printf("===7>:進行邏輯刪除資料後如果保存即變為物理刪除。\n");
printf("===8>:本程序在c++環境中完成,程序文件擴展名為.c。\n");
}
void menu() //菜單
{
printf("********************************************************************************");
printf("\t1獲取說明信息\t\t\t\t\t 2輸入員工資料\n");
printf("\t3刪除員工資料\t\t\t\t\t 4查詢員工資料\n");
printf("\t5修改員工資料\t\t\t\t\t 6顯示員工資料\n");
printf("\t7統計員工業績\t\t\t\t\t 8排序員工實發工資\n");
printf("\t9保存員工資料\t\t\t\t\t10邏輯刪除員工資料\n");
printf("\t0退出系統\n");
printf("********************************************************************************\n");
}
void printc() // 本函數用於輸出中文
{
printf("編號 姓名 性別 總完成比 旬平均 基本工資 獎金 工資總額 \n");
}
void printe(Node *p)//本函數用於輸出英文
{
printf("%-5s%-10s%-4s%6.1f %6.1f %6.1f %6.1f %6.1f\n",p->data.num,p->data.name,p->data.sex,p->data.totle,p->data.ave,1000.0,p->data.jiangjin,1000+p->data.jiangjin);
}
void printstart()
{
printf("-----------------------------------------------------------------------\n");
}
void Wrong() //如果錯誤
{
printf("\n=====>提示:輸入錯誤!\n");
}
void Nofind() //如果沒找到
{
printf("\n=====>提示:沒有找到該員工!\n");
}
Node* Locate(Link l,char findmess[],char nameornum[]) //該函數用於定位連表中符合要求的接點,並返回該指針
{
Node *r;
if(strcmp(nameornum,"num")==0) //按編號查詢
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.num,findmess)==0)
return r;
r=r->next;
}
}
else if(strcmp(nameornum,"name")==0) //按姓名查詢
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.name,findmess)==0)
return r;
r=r->next;
}
}
return 0;
}
void Add(Link l) //增加員工
{
Node *p,*r,*s;
char num[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next; //將指針置於最末尾
//while(1)
{
printf("請你輸入編號(以'0'返回上一級菜單:)");
fflush(stdin);
gets(num);
if(strcmp(num,"0")==0)return;//比較判斷是否返回
//break;
}
while(s)
{
if(strcmp(s->data.num,num)==0) //比較判斷是否重復
{
printf("=====>提示:編號為'%s'的員工已經存在,若要修改請你選擇'4 修改'!\n",num);
printstart();
printc();
printe(s);
printstart();
printf("\n");
return;
}
s=s->next;
}
p=(Node *)malloc(sizeof(Node)); //開辟一個指定大小的存儲空間
strcpy(p->data.num,num);
printf("請您輸入姓名:");
scanf("%s",p->data.name);
getchar();
printf("請您輸入性別(m/f):");
scanf("%s",p->data.sex);
getchar();
printf("請您輸入上旬完成(百分比):");
scanf("%f",&p->data.spercent);
getchar();
printf("請您輸入中旬完成(百分比):");
scanf("%f",&p->data.zpercent);
getchar();
printf("請您輸入下旬完成(百分比):");
scanf("%f",&p->data.xpercent);
getchar();
p->data.totle=p->data.spercent+p->data.zpercent+p->data.xpercent;
p->data.ave=p->data.totle / 3;
if(p->data.totle<100)
{p->data.jiangjin=(p->data.totle-100)*10;}
else p->data.jiangjin=(p->data.totle-100)*10;
//信息輸入已經完成
p->next=NULL;
r->next=p;
r=p;
shoudsave=1;
}
void Search(Link l) //查詢員工
{
int sel;
char findmess[20];
Node *p;
if(!l->next)
{
printf("\n=====>提示:沒有資料可以查詢!\n");
return;
}
printf("\n=====>1按編號查找\n======>2按姓名查找\n======>3返回上一級菜單\n");
scanf("%d",&sel);
if(sel==3)
{return;}
if(sel==1)//編號
{
printf("請您輸入要查找的編號:");
scanf("%s",findmess);
p=Locate(l,findmess,"num"); //定位鏈表中符合要求的節點
if(p)
{
printf("\t\t\t查找結果(完成單位:個百分比)\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else
if(sel==2) //姓名
{
printf("請您輸入要查找的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name"); //定位鏈表中符合要求的節點
if(p)
{
printf("\t\t\t\t查找結果\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else
Wrong();
}
void Del(Link l) //物理刪除
{
int sel;
Node *p,*r;
char findmess[20];
if(!l->next)
{
printf("\n=====>提示:沒有資料可以刪除!\n");
return;
}
printf("\n=====>1按編號刪除\n=====>2按姓名刪除\n======>3返回上一級菜單\n");
scanf("%d",&sel);
if(sel==3)
{return;}
if(sel==1)
{
printf("請你輸入要刪除的編號:");
scanf("%s",findmess);
p=Locate(l,findmess,"num"); //定位鏈表中符合要求的節點
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:該員工已經成功刪除!\n");
shoudsave=1;
}
else
Nofind();
}
else if(sel==2)
{
printf("請你輸入要刪除的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");//定位鏈表中符合要求的節點
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:該員工已經成功刪除!\n");
shoudsave=1;
}
else
Nofind();
}
else
Wrong();
}
void Ndel(Link l) //邏輯刪除
{
int sel;
Node *p,*r;
char findmess[20];
if(shoudsave==1)
{printf("\n=====>提示:請您先保存已輸入的記錄,再進行邏輯刪除。要物理刪除請按3。\n");
return;
}
if(!l->next)
{
printf("\n=====>提示:沒有資料可以刪除!\n");
return;
}
printf("\n=====>1按編號刪除\n=====>2按姓名刪除\n======>3返回上一級菜單\n");
scanf("%d",&sel);
if(sel==3)
{return;}
if(sel==1)
{
printf("請你輸入要刪除的編號:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");//定位鏈表中符合要求的節點
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:該員工已經成功刪除!\n");
shoudsave=0;
}
else
Nofind();
}
else if(sel==2)
{
printf("請你輸入要刪除的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name"); //定位鏈表中符合要求的節點
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:該員工已經成功刪除!\n");
shoudsave=0;
}
else
Nofind();
}
else
Wrong();
}
void Modify(Link l) //修改員工資料
{ int choose;
Node *p;
char findmess[20];
if(!l->next)
{
printf("\n=====>提示:沒有資料可以修改!\n");
return;
}
printf("請你輸入要修改的員工編號(以0返回上一級菜單):");
scanf("%s",findmess);
if(strcmp(findmess,"0")==0) return;
p=Locate(l,findmess,"num"); //定位鏈表中符合要求的節點
if(p)
{printf("=========>1:修改員工編號;\n");
printf("=========>2:修改員工姓名;\n");
printf("=========>3:修改員工性別;\n");
printf("=========>4:修改員工上旬完成百分比;\n");
printf("=========>5:修改員工中旬完成百分比;\n");
printf("=========>6:修改員工下旬完成百分比;\n");
printf("\n-------請你輸入要修改的員工條目:");
scanf("%d",&choose);
switch(choose)
{ case 1: printf("請你輸入新編號(原來是%s):",p->data.num);
scanf("%s",p->data.num); break;
case 2: printf("請你輸入新姓名(原來是%s):",p->data.name);
scanf("%s",p->data.name);
getchar(); break;
case 3: printf("請你輸入新性別(原來是%s):",p->data.sex);
scanf("%s",p->data.sex); break;
case 4: printf("請你輸入新的上旬完成百分比(原來是%5.2f ):",p->data.spercent);
scanf("%f",&p->data.spercent);
getchar();
p->data.totle=p->data.spercent+p->data.zpercent+p->data.xpercent;
p->data.ave=p->data.totle / 3;
if(p->data.totle<100)
{p->data.jiangjin=(p->data.totle-100)*10;}
else p->data.jiangjin=(p->data.totle-100)*10;
break;
case 5: printf("請你輸入新的中旬完成百分比(原來是%5.2f ):",p->data.zpercent);
scanf("%f",&p->data.zpercent);
getchar();
p->data.totle=p->data.spercent+p->data.zpercent+p->data.xpercent;
p->data.ave=p->data.totle / 3;
if(p->data.totle<100)
{p->data.jiangjin=(p->data.totle-100)*10;}
else p->data.jiangjin=(p->data.totle-100)*10;
break;
case 6: printf("請你輸入新的下旬完成百分比(原來是%5.2f ):",p->data.xpercent);
p->data.totle=p->data.spercent+p->data.zpercent+p->data.xpercent;
p->data.ave=p->data.totle / 3;
if(p->data.totle<100)
{p->data.jiangjin=(p->data.totle-100)*10;}
else p->data.jiangjin=(p->data.totle-100)*10;
break;
default: Wrong();return;
}
printf("\n=====>提示:資料修改成功!\n");
shoudsave=1;
}
else
Nofind();
}
void Disp(Link l) //顯示員工資料
{
int count=0;
Node *p;
p=l->next;
if(!p)
{
printf("\n=====>提示:沒有資料可以顯示!\n");
return;
}
printf("\t\t\t顯示結果(完成單位:個百分比)\n");
printstart();
printc();
printf("\n");
while(p)
{
printe(p);
p=p->next;
}
printstart();
printf("\n");
}
void Tongji(Link l) //統計員工資料
{
Node *pz,*px,*ps,*pt,*pa,*pj; //用於指向分數最高的接點
Node *r=l->next;
if(!r)
{
printf("\n=====>提示:沒有資料可以統計!\n");
return ;
}
ps=pz=px=pt=pa=pj=r;
while(r!=NULL)
{
if(r->data.spercent>=ps->data.spercent)
ps=r;
if(r->data.zpercent>=pz->data.zpercent)
pz=r;
if(r->data.xpercent>=px->data.xpercent)
px=r;
if(r->data.totle>=pt->data.totle)
pt=r;
if(r->data.ave>=pa->data.ave)
pa=r;
if(r->data.jiangjin>=pa->data.jiangjin)
pj=r;
r=r->next;
}
printf("-----------------統計結果--------------------------\n");
printf("月總完成最高者:\t%s %5.2f個百分比\n",pt->data.name,pt->data.totle);
printf("平均完成最高者:\t%s %5.2f個百分比\n",pa->data.name,pa->data.ave);
printf("上旬完成最高者:\t%s %5.2f個百分比\n",ps->data.name,ps->data.spercent);
printf("中旬完成最高者:\t%s %5.2f個百分比\n",pz->data.name,pz->data.zpercent);
printf("下旬完成最高者:\t%s %5.2f個百分比\n",px->data.name,px->data.xpercent);
printf(" 獎金最高者:\t%s %5.2f元\n",pj->data.name,pj->data.jiangjin);
printstart();
}
void Sort(Link l)//按員工實發工資(即其完成額大小)排序
{int m;
Link ll;
Node *p,*rr,*s;
ll=(Link)malloc(sizeof(Node)); //用於做新的鏈表
ll->next=NULL;
if(l->next==NULL)
{
printf("\n=====>提示:沒有資料可以排序!\n");
return ;
}
p=l->next;
while(p)
{
s=(Node*)malloc(sizeof(Node)); //新建接點用於保存信息
s->data=p->data;
s->next=NULL;
rr=ll;
while(rr->next!=NULL && rr->next->data.totle>=p->data.totle)
rr=rr->next;
if(rr->next==NULL)
rr->next=s;
else
{
s->next=rr->next;
rr->next=s;
}
p=p->next;
}
free(l);
l->next=ll->next;
printf("\n=====>提示:排序已經完成!\n");
for(m=1;rr->next!=NULL;m++)
{rr=rr->next;
printf("\n第%d名",m); printf("\n編號:%s",rr->data.num);printf(" 姓名:%s",rr->data.name); printf(" 性別:%s",rr->data.sex); printf(" 工資總額:%5.2f+1000\n",rr->data.ave);
}
}
void Save(Link l) //保存已經輸入的員工資料
{
FILE* fp;
Node *p;
int flag=1,count=0;
fp=fopen(dir,"wb");
if(fp==NULL)
{
printf("\n=====>提示:重新打開文件時發生錯誤!\n");
exit(1);
}
p=l->next;
while(p)
{
if(fwrite(p,sizeof(Node),1,fp)==1)
{
p=p->next;
count++;
}
else
{
flag=0;
break;
}
}
if(flag)
{
printf("\n=====>提示:文件保存成功.(有%d條記錄已經保存.)\n",count);
shoudsave=0;
}
fclose(fp);
}
void main() //主函數Main
{
Link l;//連表
FILE *fp; //文件指針
int sel;
char ch;
char jian;
int count=0;
//char mima[10];
Node *p,*r;
printf("\t\t\t員工工資管理系統\n\t\t\t\t------電子1班\n\t\t\t\t\t孫大光\n");
l=(Node*)malloc(sizeof(Node));
l->next=NULL;
r=l;
fp=fopen("C:\\member1","rb");//打開文件夾
if(fp==NULL)
{
printf("\n=====>提示:文件還不存在,是否創建?(y/n)\n");
scanf("%c",&jian);
if(jian=='y'||jian=='Y')
{printf("輸入路徑:");
scanf("%s",dir);
fp=fopen(dir,"wb");}
else exit(0);
if(fp)
{printf("\n=====>提示:文件已經打開,正在導入記錄......\n");
printf("\n=====>提示:記錄導入完畢,共導入%d條記錄.\n",0); }
}
else
{while(!feof(fp))
{
p=(Node*)malloc(sizeof(Node)); //開辟一個指定大小的存儲空間
if(fread(p,sizeof(Node),1,fp)) //將文件的內容放入接點中
{
p->next=NULL;
r->next=p;
r=p; //將該接點掛入連中
count++;
}
}
fclose(fp); //關閉文件
printf("\n=====>提示:記錄導入完畢,共導入%d條記錄.\n",count);
}
while(1)
{
menu();
printf("請你選擇操作:");
scanf("%d",&sel);
if(sel==0)
{
if(shoudsave==1)
{ getchar();
printf("\n=====>提示:資料已經改動,是否將改動保存到文件中(y/n)?\n");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
Save(l);
}
printf("\n=====> 您已經退出系統,謝謝您的使用,再見!\n");
break;
}
switch(sel)
{
case 1:explain();break; //操作說明
case 2:Add(l);break; //增加員工資料
case 3:Del(l);break;//刪除員工資料
case 4:Search(l);break;//查詢員工資料
case 5:Modify(l);break;//修改員工資料
case 6:Disp(l);break;//顯示員工資料
case 7:Tongji(l);break;//統計員工資料
case 8:Sort(l);break;//排序員工資料
case 9:Save(l);break;//保存員工資料
case 10:Ndel(l);break;//邏輯刪除員工資料
default: Wrong();getchar();break;
}
}
}
B. 廈門易聯眾公司
廈門也一樣。有的員工也工作幹了3年加了200塊,摳啊。易聯眾呼叫中心的客服也是待遇很差,到手才1800多不到1900.有個過節費猜到2000.就是壓炸底層員工。說什麼好聽關心民生,自己公司的員工的民生問題都沒有搞資本家赤裸裸壓榨。
C. 工資管理系統論文
工資管理系統
摘自:計算機信息管理畢業設計網 http://www.lw51.com
提綱
一、 引言
1、本課題的研究意義
2、本論文的目的、內容及作者的主要貢獻
二 管理信息系統概述
1、管理信息系統現狀
2、管理信息系統開發方法介紹
三、研究現狀及設計目標
1、相近研究課題的特點及優缺點分析
2、研究存在的問題及解決辦法
3、本課題要達到的設計目標
四、建議的方案
1、 資料庫方案
2、 菜單控制
五、系統結構與模型
1、推薦方案
2、支持環境
3、 數據流程圖
4、 系統功能圖
5、 系統管理流程圖
6、數據字典
六、系統實現技術
1、功能
2、性能
3、系統庫結構
七、詳細設計
1、 程序設計語言
2、 詳細設計方案
結束語
參考文獻摘要:
本系統為工資發放系統。採用的開發工具是 MicroSoft Visual Basic 6.0。 使用的技術有:資料庫的訪問;菜單控制。系統能夠提供對工資發放各明細項目的數據編輯,自動計算出工資發放各項合計數據及代扣項目數據;可自主設定條件從而達到對工資數據的多角度查詢功能;方便導入、導出數據及輸出報表;並可轉換成適合與銀行UNIX平台介面的數據形式以便於委託銀行辦理代發工資業務。財務部門人員以管理員身份登錄,對本系統的可登錄人員進行管理;而單位其他相關部門人員作為一般用戶登錄本系統時,數據編輯程序、數據導入程序及增加用戶、刪除用戶程序自動關閉,從而控制本系統的工資數據編輯、數據導入及用戶增、刪功能只能由財務部門人員操作。實現了財務部門對本單位工資發放系統的集中管理,保證了系統的安全性。
支持運行的環境:Microsoft Window98/95/me
資料庫的介面:Microsoft Access Driver。
關鍵詞:工資,管理
一、引言:
1、本課題的研究意義
目前市面上流行的工資發放軟體不少。但是,對於企、事業單位的工資發放來說,不需要太大型的資料庫系統。只需要一個操作方便,功能實用,能同時滿足財務部門、單位其他相關部門及代發單位三方對數據的管理及需求的系統。我們的目標就是在於開發一個功能實用,用戶(財務部、其他相關部門、銀行)操作方便,簡單明了的工資發放軟體。
2、本論文的目的、內容及作者的主要貢獻
2.1、目的
目前市面上流行的工資發放軟體不少。但是,對於企、事業單位的工資發放來說,不需要太大型的資料庫系統。只需要一個操作方便,功能實用,能同時滿足財務部門、單位其他相關部門及代發單位三方對數據的管理及需求的系統。我們的目標就是在於開發一個功能實用,用戶(財務部、其他相關部門、銀行)操作方便,簡單明了的工資發放軟體。
2.2、內容
實現本單位財務部門對工資發放的集中管理。可供財務人員對本單位的人員工資進行增加、刪除、修改、查詢、導入、導出文件、輸出報表,並對系統的可登錄人員進行管理;同時通過菜單關閉功能使本單位其他相關部門的人員對工資的數據編輯無法操作,只能通過查詢或導出文件來了解本單位的工資發放情況;對工資發放中的應發工資合計、代扣個人所得稅及個人實發工資等項目由系統自動進行計算;同時本系統還可對工資發放情況進行多角度查詢,並轉換成可與銀行UNIX平台介面的數據形式以便於委託銀行辦理代發工資業務。
在登錄管理方面,財務人員以工資發放系統的管理人員身份登錄,並對本系統的可登錄人員進行管理,有權增加及刪除本系統的登錄人員,進行自身密碼的修改;而本單位其他相關部門的可登錄人員在登錄本系統後,則只能進行自身密碼的修改,而無權增加及刪除用戶。
2.3、作者的主要貢獻
全程參與了此課題的研究與開發,包括分析,設計,編碼,測試,文檔等等。
第二章 管理信息系統概述
1、管理信息系統現狀:
管理信息系統(MIS)是一門邊緣學科,集管理科學、信息科學、系統科學、現代通信技術和電子計算機技術於一體。1985年,管理信息系統創始人,明尼蘇達大學卡爾森管理學院的著名教授戴維斯(Gordon.B.Davis)給出了一個具有代表性的定義:「管理信息系統是一個利用計算機硬體和軟體,手工作業、分析、計劃、控制和決策模型以及資料庫的用戶-機器系統。它能提供信息支持企業或組織的運行、管理和決策功能。」
隨著網路技術的出現,管理信息系統又有了新的必恭必敬,基於網路的管理信息系統不斷出現,管理信息系統的概念模型也發生了相應的變化,許多學者對管理信息系統給出了新的定義。例如勞頓認為:「管理信息系統是一個基於計算機的信息系統,它通過收集、處理、存儲和擴散信息,來支持組織的管理、決策、合作、控制、分析活動,並使之可視化。」
因此,我們可以看出,管理系統系統具有幾個基本含義:
(1)管理信息系統不是一個單純的軟體系統,而是一個人-機系統,由人和機器協同工作。管理信息系統在支持企業或組織的各項管理活動中,管理人員負責將基礎數據及時地輸入到計算機中,計算機則根據企業或組織中的各層管理人員的要求對基礎數據進行加工處理,並將所得到的信息輸出。計算機不斷地與最終用戶進行著信息的交換,但在對數據的加工處理過程中又需要人的適當干預。
(2)管理信息系統的管理過程就是對數據進行懼、存儲、加工處理、傳遞,並產生信息的過程,因此數據是管理信息系統的靈魂。管理信息系統運用了資料庫的技術,對基礎數據進行統一規劃、存儲,供各層管理人員使用,從而實現了數據的一致和共享。
(3)管理信息系統可以解決企業或組織所面臨的問題。例如,管理信息系統可以處理企業產生經營活動的全過程,可以解決組織中數據處理效率問題,也可以解決財務管理決策過程等。
管理信息系統應具有如下幾個功能。
(1)數據處理功能:
數據處理是管理信息系統最基本的功能,它包括對各種類型數據的收集、加工處理、傳遞、存儲等工作。
(2)實測功能:
通過對數據的加工處理,可以隨時了解各部門的實際運行情況,如各生產車間今天生產的產品數量、銷售部接受的訂單等。
(3)預測功能:
通過運用一定的數學方法和預測模型,對過去的數據進行分析,就可能對未來可能發生的情況進行預測,為高級管理人員進行管理決策提供依據。
(4)控制功能:
通過信息的反饋可以對整個企業生產經營的各個部門、各個環節的運行情況進行監測、協調、控制,保證系統的正常運行。
(5)輔助決策功能:
通過對數據的加工處理,可以快速地獲取對決策有影響的信息,從而為合理的配置企業的各項資源,做出最佳的決策提供科學的依據。
目前,管理信息系統的應用已經非常廣泛,隨著計算機技術、網路技術和通信技術的發展,管理信息系統的功能也日趨完善,並朝著智能化、網路化、集成化等方向發展。如辦公自動化(OA)、電子商務(EC)、專家系統(ES)、計算機集成製造系統(CIMS)。
2、管理信息系統開發方法介紹
目前,常用的管理信息系統的開發方法有生命周期法、原型法和面對對象的開發方法。
下面僅對原型法和面對對象的開發方法進行簡單的描述。
(1)原型法:
原型法(Prototyping Method)是20世紀80年代發展起來的,旨在改變生命周期法的缺點的一種系統開發方法。
①原型法的基本思想
首選根據用戶的要求,由用戶和開發者共同確定系統的基本要求和主要功能,利用系統快速生成工具,建立一個系統模型。再在此基礎上與用戶交流,將模型不斷補充,修改完善,如此反復,最終直至用戶和開發者都比較滿意為止,就形成了一個相對穩定、較為理想的管理信息系統。
②原型法的開發過程
採用原型法開發管理信息系統可以分為如下幾個階段:
A、確定用戶的基本需求。由用戶提出對新系統的基本要求,如功能、基本界面形式、所需的數據、應用范圍、運行環境等,開發者根據這些信息估算出開發該系統所需的費用,並建立簡明的系統模型。
B、開發初步的原型系統。系統開發人員根據用戶的要求建立原型系統,但該系統只是一個初步的、不成熟的系統,從系統的工作效率上看也是不完善的。其主要目的是為了描述開發者所理解的用戶的基本需求。
C、修改、評價原型系統。將建造好的原型系統交給用戶,並投入試運行,用戶將使用過程中發現的問題一一記錄下來,並與開發人員進行交流。開發人員針對這些問題不斷地對系統進行修改、擴充與完善,直至用戶滿意為止。
D、形成最終的管理信息。對用戶滿意的原型系統進行進一步的開發,不斷補充、完善,最終形成一個適用的管理信息系統。
③原型法的優缺點
原型法的優點是開發周期短,費用較少,同時可以較有效地避免因開發者和用戶的認識隔閡所產生的失敗,其缺點是系統的開發缺乏統一的規劃和開發標准,難以對系統的開發過程加以控制。
原型法一般適用於開發規模不大、不太復雜或需求經常發生變化的系統。
(2)面向對象的開發方法
面向對象(Object Oriented)的技術於20世紀80年興起,隨後廣泛地應用於計算機技術的幾乎所有領域。面向對象的技術中最重要的概念是對象。
面向對象是基於問題對象的自底向上的一種系統開發方法。在開發過程中,分析和設計階段獨立於程序設計語言,信息系統模型設計好後,最終用具體的程序設計語言、資料庫或硬體來實現。面向對象法最主要的特點是對對象為基礎,對象是分析問題和解決問題的核心。
①面對對象法的開發過程
面對對象法的開發過程一般分為四個階段:
A、認識客觀世界(如一個企業)中的對象以及行為,分別獨立設計各個對象的實體。
B、分析對象之間的聯系和相互之間所傳遞的信息,由此構造客觀世界(企業)所對應的信息管理系統的模型。
C、由信息系統的模型轉換成計算機軟體系統的模型。
D、由計算機軟體系統的模型再轉化成一個現實系統。
②面向對象法的優缺點:
面向對象法的優點是便於幫助分析者、設計者和用戶清楚地表達抽象概念,互相進行交流;交流特定的軟體工具模塊,直接地完成了從對象的描述到軟體體系結構之間的轉換,避免了其它的方法在開發過程的客觀世界描述和軟體結構不一致性和復雜性問題,便利系統開發簡單、統一,開發周期短,費用低。
面向對象法的主要缺點與原型法一樣,因此這種方法也不適用於開發大的、復雜的系統。
本系統在開發過程中具體是採用了原型法和面向對象兩種方法相結合的開發思路,力求在開發過程中盡量吸收這兩種方法的長處,而克服它們的短處。
二、研究現狀及設計目標
1、相近研究課題的特點及優缺點分析
傳統的工資發放,多採用手工的形式,既繁瑣又易於出差錯,隨著電子技術的發展,工資發放多採用電算化的方式進行管理,避免進行簡單的重復計算,從而做到准確、快捷。為了適應這個要求,我們工作組經過詳細的市場調查,發現市面上工資發放的軟體繁多,競爭激烈,為了避免重復生產類似的軟體產品,做出自己的特色,我們決定做一個切合單位工資發放實際要求的工資發放系統軟體。
2、研究存在的問題及解決辦法
目前的可用的設計技術在設計此類系統上的資料庫技術已經非常成熟,可提供的開發工具也很多,例如:Visual C++ ,Visual Basic,PowerBuilder,Dephi, visual foxpro等,它們都是很好的資料庫開發工具,都是可視化開發工具,功能強大,開發容易,開發周期短,對於本任務都能夠勝任。
Visual Basic是一種可視化的、面對對象和條用事件驅動方式的結構化高級程序設計,可用於開發Windows環境下的種類應用程序。它簡單易學、效率高,且功能強大,可以與Windows的專業開發工具SDK相媲美,而且程序開發人員不必具有C/C++編程基礎。在Visual Basic環境下,利用事件驅動的編程機制、新穎易用的可視化設計工具,使用Windows內部的應用程序介面(API)函數,以及動態鏈接庫(DLL)、動態數據交換(DDE)、對象的鏈接與嵌入(OLE)、開放式數據訪問(ODBC)等技術,可以高效、快速地開發出Windows環境下功能強大、圖形界面豐富的應用軟體系統。
總的來說,Visual Basic具有以下特點:
可視化編程:
用傳統程序設計語言設計程序時,都是通過編寫程序代碼來設計用戶界面,在設計過程中看不到界面的實際顯示效果,必須編譯後運行程序才能觀察。如果對界面的效果不滿意,還要回到程序中修改。有時候,這種編程-編譯-修改的操作可能要反復多次,大大影響了軟體開發效率。Visual Basic提供了可視化設計工具,把Windows界面設計的復雜性「封裝」起來,開發人員不必為界面設計而編寫大量程序代碼。只需要按設計要求的屏幕布局,用系統提供的工具,在屏幕上畫出各種「部件」,即圖形對象,並設置這些圖形對象的屬性。Visual Basic自動產生界面設計代碼,程序設計人員只需要編寫實現程序功能的那部分代碼,從而可以大大提高程序設計的效率。
面向對象的程序設計
4.0版以後的Visual Basic支持面向對象的程序設計,但它與一般的面向對象的程序設計語言(C++)不完全相同。在一般的面向對象程序設計語言中,對象由程序代碼和數據組成,是抽象的概念;而Visual Basic則是應用面向對象的程序設計方法(OOP),把程序和數據封裝起來作為一個對象,並為每個對象賦予應有的屬性,使對象成為實在的東西。在設計對象時,不必編寫建立和描述每個對象的程序代碼,而是用工具畫在界面上,Visual Basic自動生成對象的程序代碼並封裝起來。每個對象以圖形方式顯示在界面上,都是可視的。
結構化程序設計語言
Visual Basic是在BASIC語言的基礎上發展起來的,具有高級程序設計語言的語句結構,接近於自然語言和人類的邏輯思維方式。Visual Basic語句簡單易懂,其編輯器支持彩色代碼,可自動進行語法錯誤檢查,同時具有功能強大且使用靈活的調試器和編譯器。
Visual Basic是解釋型語言,在輸入代碼的同時,解釋系統將高級語言分解翻譯成計算機可以識別的機器指令,並判斷每個語句的語法錯誤。在設計Visual Basic程序的過程中,隨時可以運行程序,而在整個程序設計好之後,可以編譯生成可執行文件(.EXE),脫離Visual Basic環境,直接在Windows環境下運行。
事件驅動編程機制
Visual Basic通過事件來執行對象的操作。一個對象可能會產生多個事件,每個事件都可以通過一段程序來響應。例如,命令按鈕是一個對象,當用戶單擊該按鈕時,將產生一個「單擊「(CLICK)事件,而在產生該事件時將執行一段程序,用來實現指定的操作。
在用Visual Basic設計大型應用軟體時,不必建立具有明顯開始和結束的程序,而是編寫若干個微小的子程序,即過程。這些過程分別面向不同的對象,由用戶操作引發某個事件來驅動完成某種特定的功能,或者由事件驅動程序調用通用過程來執行指定的操作,這樣可以方便編程人員,提高效率。
訪問資料庫
Visual Basic具有強大的資料庫管理功能,利用數據控制項和資料庫管理窗口,可以直接建立或處理Microsoft Access格式的資料庫,並提供了強大的數據存儲和檢索功能。同時,Visual Basic還能直接編輯和訪問其他外部資料庫,如dBASE,FoxPro,Paradox等,這些資料庫格式都可以用Visual Basic編輯和處理。
Visual Basic提供開放式數據連接,即ODBC功能,可通過直接訪問或建立連接的方式使用並操作後台大型網路資料庫,如SQL Server,Oracle等。在應用程序中,可以使用結構化查詢語言SQL數據標准,直接訪問伺服器上的資料庫,並提供了簡單的面向對象的庫操作指令和多用戶資料庫訪問的加鎖機制和網路資料庫的SQL的編程技術,為單機上運行的資料庫提供了SQL網路介面,以便在分布式環境中快速而有效地實現客戶/伺服器(client/server)方案。
動態數據交換(DDE)
利用動態數據交換(Dynamic Data Exchange)技術,可以把一種應用程序中的數據動態地鏈接到另一種應用程序中,使兩種完全不同的應用程序建立起一條動態數據鏈路。當原始數據變化時,可以自動更新鏈接的數據。Visual Basic提供了動態數據交換的編程技術,可以在應用程序中與其他Windows應用程序建立動態數據交換,在不同的應用程序之間進行通信。
對象的鏈接與嵌入(OLE)
對象的鏈接與嵌入(OLE)將每個應用程序都看做是一個對象(object),將不同的對象鏈接(link)起來,再嵌入(embed)某個應用程序中,從而可以得到具有聲音、影像、圖像、動畫、文字等各種信息的集合式的文件。OLE技術是Microsoft公司對象技術的戰略,它把多個應用程序合為一體,將每個應用程序看做是一個對象進行鏈接和嵌入,是一種應用程序一體化的技術。利用OLE技術,可以方便地建立復合式文檔(compound document),這種文檔由來自多個不同應用程序的對象組成,文檔中的每個對象都與原來的應用程序相聯系,並可執行與原來應用程序完全相同的操作。
動態鏈接庫(DLL)
Visual Basic是一種高級程序設計語言,不具備低級語言的功能,對訪問機器硬體的操作不太容易實現。但它可以通過動態鏈接庫技術將C/C++或匯編語言編寫的程序加入到Visual Basic應用程序中,可以像調用內部函數一樣調用其他語言編寫的函數。此外,通過動態鏈接庫,還可以調用Windows應用程序介面(API)函數,實現SDK所具有的功能。
3、系統層次和功能圖
層次結構圖又稱為組織機構圖,系統必須設定要實現的功能。功能要以組織結構為背景來識別和調查,因為每個組織都是一個功能機構,都有各自不同的功能。調查時要按部門的層次關系進行,然後用歸納法找出它的功能,形成各層次的功能結構。組織結構與功能結構又不完全一致,各組織、各部門的功能,由於各種原因,有可能重疊,許多功能可能還需要多個部門協力完成。一個部門的功能也不能不是惟一的,可能需要完成多種功能,把各部門的功能以及相互之間的功能合作關系用一張二維表格繪制出來,就是組織/功能關系表。
以組織結構圖為背景分析清楚各部門的功能後,分層次將其歸納、整理,形成各層次的功能結構圖:自上而下逐層歸納、整理,形成以系統目標為核心的整個系統的功能結構圖。現行的系統的許多功能多數由手工完成。手工處理慢,處理功能分得較細,環節又多,甚至由於某些歷史原因造成一些不合理的處理設置。那麼,在分析歸納過程中,就要把不合理的流程取消,把功能相信或工作順序相近的處理功能盡量合並,還人分析歸納後的功能是否能達到新系統目標以及應設置的功能是否已經具備等。經分析後的系統功能結構一般是多層次的樹型結構,一般最後一級功能是不能再分割的。
3、本課題要達到的設計目標
實現資料庫管理,資料庫內包含有單位部門名稱、序號、姓名、賬號、應發工資合計、基礎工資、職務工資、級別工資、補助工資、獎金、福利、代扣失業保險金、代扣養老保險金、代扣住房公積金、代扣個人所得稅、實發個人工資等等數據項;還包括登錄人員、登錄密碼等數據項。
通過讀取資料庫的數據項來管理單位人員的工資發放情況,財務部門人員有權新建工資發放人員記錄,添加人員的各項工資明細數據,對於人員應發工資合計、代扣個人所得稅、個人實發工資等需計算的工資項目則由系統自動實現。
通過讀取資料庫的數據項來了解單位人員的工資發放情況,系統的登錄人員可按自身對數據的需求情況,自主設定查詢條件,從而達到對工資數據的多角度查詢;同時,可導出工資數據,並可將工資數據轉換成可與銀行UNIX平台介面的數據形式以便於委託銀行辦理代發工資業務。
通過讀取資料庫的數據項來控制系統的登錄情況,系統自動檢查核對登錄人員和密碼的一致性。財務部門的人員作為管理員登錄本系統,除可以修改自身密碼外,還有權決定增加及刪除本系統的可登錄人員;而系統的其他可登錄人員在登錄本系統後則只能進行自身密碼的修改。
本系統的最終目的是為了能夠對工資發放進行有效的管理。財務部門人員能夠高效快捷地對工資數據進行編輯,避免進行簡單的重復計算,而單位其他相關部門人員可多角度查詢本單位的工資發放情況,從而使工資發放數據既得到安全控制又得到宏觀管理。
三、建議的方案
工資發放的應用程序不宜太復雜,所以不需使用太多的技術,我們在這里主要使用的技術有:資料庫的訪問;菜單控制。單位其他相關部門人員在登錄本系統時,將數據編輯程序、數據導入程序及增加用戶、刪除用戶程序關閉,從而控制本系統的工資數據編輯及用戶增刪功能只能由財務部門人員操作。
1、資料庫訪問:
我們通過DATA控制項訪問資料庫。
2、菜單控制:
在系統一開始運行的時候,我們通過一個全屏幕的,沒有控制菜單框的窗體作為用戶和密碼的登錄界面。在核對用戶員及密碼的一致性後,進入系統的功能界面。單位其他相關部門人員登錄本系統,數據編輯、數據導入及增加用戶、刪除用戶菜單將不可用,只有當財務人員以管理員的身份登錄後,才有數據編輯、數據導入及增加用戶、刪除用戶的權力。
四、系統結構與模型
1、推薦方案
根據比較上面的方案,我們認為工資發放系統的實時性要求可以不需要很嚴格,而實用性才是首要考慮的,因此採用 DATA控制項訪問ACCESS資料庫,由資料庫來實現對工資發放數據的管理。
系統結構圖
圖一
2、支持環境
Microsoft Window98/95/me
3.系統流程圖
系統流程圖
系統
登錄界面
登錄
系 統
主 界 面
輸入操作員及密碼
資料庫
正確
功能
界 面
出錯
信 息
密碼錯
功能
處 理
出錯
信息
系 統
主 界 面
檢查
圖 二
4、系統功能流程圖
系統功能流程圖
數據編輯
數據導出
數據查詢
系統管理
系統管理員登錄
功能界面
資料庫Access
數據導入
工資明細
添加
修改
分類查詢
導入
導出
增加用戶
刪除用戶
刪除
導出報表
導出文件
密碼修改
全刪
查詢
退出
圖三
首先,單位財務人員以系統管理員身份輸入操作員名稱和密碼,請求登錄。若密碼跟帳號相符,登錄成功,則允許執行數據編輯、數據查詢、數據導入、數據導出、系統管理菜單功能。
其次,在財務人員執行系統管理中的增加用戶菜單功能增加用戶成功後,作為可登錄人員允許單位相關部門人員以一般人員身份輸入操作員名稱和密碼,請求登錄。若密碼跟帳號相符,登錄成功,則系統關閉數據編輯、數據導入以及系統管理中的增加用戶、刪除用戶等菜單功能,只允許執行數據查詢、數據導出和系統管理中的修改密碼等菜單功能。
5、系統管理流程圖
系統管理流程圖
系統管理員登錄
資料庫Access
系統管理
增加用戶
功能界面
刪除用戶
密碼修改
圖四
系統管理中的增加用戶及刪除用戶菜單功能只有當管理員登錄時才可用,且在增加用戶里還需再次驗證管理員密碼,而在用戶增加密碼及修改密碼時均需驗證兩次輸入密碼的一致性,以加強系統的安全控制。
6.數據字典
數據流程圖是描述系統邏輯模型的主要工具,通過幾個特定的符號,可以綜合地反映出信息在系統中的使用、加工處理、傳遞、存儲的整體情況。
數據流程圖是系統結構化分析行之有效的工具,它抽象地描述了系統數據處理的情況,擔卻無法表達各個處理的詳細內容,因此還要對數據流程圖中出現的數據流和處理等做進一步的補充說明,這就是數據字典和變換邏輯說明。
數據字典的任務就是對數據流程圖中的出現的所有被命名的圖形元素在數據字典中作為一個條目加以定義,便得每一個圖形元素的名字都有一個確切的解釋。
數字是對數據流程圖的補充說明,它的編制和維護是一項非常繁重的工作,一旦建立起來,從系統分析直至系統運行都用到它。
用戶名:
名字:用戶名
別名:
描述:標識系統的登錄人員
定義:字元、字母
位置:登錄管理表
密碼:
名字:密碼
別名:
描述:對管理員及可登錄人員的真實性進行驗證
定義:{字元|數字}
位置:登錄管理表
D. 現在廈門易聯眾公司怎麼樣待遇及工資水平如何還有是否經常加班,是否有加班等補助應聘的是java軟體
我是朋友介紹過去的,過去之後發現大坑,讓我背大鍋,領導之間明爭暗鬥不說,還喜歡對外畫大餅,搞得和國企似的。加班特別嚴重,快上線基本天天到十二點,還要出差在現場,和公務員們一起辦公,住低端賓館,補貼超級低!技術能力差到一定地步。招人都喜歡找培訓機構剛畢業的,有些甚至啥都不會只要說肯加班就進來了,每個程序員除了寫sql基本啥都不會。領導根本不在乎技術,就是項目制公司靠壓榨員工來獲取利潤。易聯眾股票長期看空
E. 易聯眾葯店醫保系統怎麼安裝
第一步:下載、安裝App
1、用戶搜索「智慧醫保」或掃描微信公眾號文章下方的二維碼進行App下載和安裝;
2、進入注冊界面後填寫姓名、身份證號、手機號、手機驗證碼、設置6-15位字母和數字組合的App登錄密碼;
3、參保人身份信息校驗是否為醫保參保人員,校驗無誤後進入參保人實名認證頁面。
第二步:添加主綁卡人,進行實名認證
提供「刷臉」和「金融賬戶」兩種認證方式,參保人可以選擇任意一種方式進行實名認證。
F. 易聯眾 怎麼樣
廈門的還是山西的?還是其他分公司的?我是山西分公司的 如果剛畢業的新人的話還是很能鍛煉人的 如果是高手選擇跳槽就不要來了 待遇一般 你起點要求不高的話應該也能勉強接受
G. 在易聯眾財富理財平台上設置工資理財後,投資的是哪類基金產品
工資理財關聯的是平安大華財富寶貨幣基金。
H. 通用財務管理系統系統如何新建帳套
建立一個新的帳套,新建的帳套數量本系統沒有限制。選擇「新建帳套」按鈕後,系統會出現向導對話框,根據對話框提示,一步一步輸入相關的內容。
第一步:輸入帳套名稱、用戶單位名稱,選擇開帳日期。憑證種類選擇(世紀八版以上版本):一種(記帳憑證)或三種(收款、付款、轉帳憑證)。如果要從其它帳套導入,選擇「導入帳套」按鈕。
第二步:輸入記帳本位幣符號與名稱,選擇各級科目的長度)。會計科目的級數最多可達6級,但代碼的總長度不超過15個字元。
第三步:輸入系統管理員的名稱與密碼(提醒:記住密碼),如果在「會計科目按新財務制度(2007年執行)預設」處打勾,新帳套的會計科目將自動按新會計制度設置。如果以上三步均完成,選擇「創建帳套」按鈕。
導入帳套:選擇一個已存在的帳套,輸入該帳套的管理員名稱與密碼,然後選擇「創建帳套」按鈕。