當前位置:法律諮詢服務網 - 企業資訊 - c++職工管理信息系統

c++職工管理信息系統

附1、:使用說明

輸入1註冊信息:註冊職工信息時提示註冊員工的個數,且系統會自動給出職工編號,然後輸入職工姓名、性別、年齡、學歷、工資、地址、聯系電話。

輸入2瀏覽信息:操作後可以瀏覽該公司所有職工的信息。

輸入3查詢信息:可以根據不同的信息查詢公司職工的信息。如按照職工的編號、職工的學歷、職工的聯系電話。知道職工的其中壹個信息就可以查到他的其他信息。實現了掌握少量的信息就可以找到相關的信息。

輸入4刪除信息:介入這壹界面時,先顯示全部職工的信息,再輸入需要刪除職工的名字。操作後可顯示刪除後的全部職工的信息。

輸入5添加信息:進入這壹界面後,先顯示原來的職工的信息,再提示添加信息的人數,然後輸入新的職工的信息。操作完後可自動顯示添加完後的全部職工的信息。

輸入6修改信息:介入界面後,顯示全部職工的信息,再提示輸入需要修改的職工的姓名,輸入後顯示該職工原來的信息且提示是否修改:輸入1時修改,輸入0時不修改。需要修改時,提示需要修改的選項的序號,然後進行修改。修改後系統自動顯示修改後的職工的信息。

附件:職工信息管理系統代碼

file.c

此文件主要包含涉及文件讀寫功能的函數。

/************************************************************/?

/*?File:?file.c?*/?

/************************************************************/?

#include?<stdio.h>

#include?<windows.h>

#include?<time.h>

#include?<string.h>

#define?N?100?/*宏定義*/

struct?employee

{?int?num;?/*職工編號*/

char?name[10];/*職工姓名*/

char?sex[4];/*職工性別*/

char?bir[16];?/*職工出生年月*/

char?xueli[30];/*職工學歷*/

int?wage;?/*職工工資*/

char?addr[30];?/*職工地址*/

char?tel[20];*職工電話*/

}em[100];?/*定義壹個結構體*/

void?menu()?/*菜單函數*/

{

printf("?☆☆☆信息管理與信息系統☆☆☆\n");

printf("\n");

printf("B0902?李穎\n");

printf("\n");

printf("******************職工信息管理****************\n");

printf("1.錄入職工信息");

printf("2.瀏覽職工信息\n");

printf("3.查詢職工信息");

printf("4.刪除職工信息\n");

printf("5.添加職工信息");

printf("6.修改職工信息\n");

printf("7.退出管理系統\n");

printf("**********************************************\n");

printf("\n");

printf("\n");

}

void?main()

{

menu();?/*調用菜單函數*/

int?n,flag;

char?a;

do

{?printf("請選擇妳需要操作的步驟(1--7):\n");

scanf("%d",&n);

if(n>=1&&n<=7)

{

flag=1;

break;

}

else

{

flag=0;

printf("您輸入有誤,請重新選擇!");

}

}

while(flag==0);

while(flag==1)

{?switch(n)

{

case?1:printf("◆◆◆輸入職工信息◆◆◆\n");printf("\n");input();break;

case?2:printf("?◆◆◆瀏覽職工信息◆◆◆\n");printf("\n");display();break;

case?3:printf("?◆◆◆查詢職工信息◆◆◆\n");printf("\n");search();break;?

case?4:printf("?◆◆◆刪除職工信息◆◆◆\n");printf("\n");del();break;

case?5:printf("?◆◆◆添加職工信息◆◆◆\n");printf("\n");add();break;

case?6:printf("?◆◆◆修改職工信息◆◆◆\n");printf("\n");modify();break;

case?7:exit(0);break;

default?:break;

}

getchar();

printf("\n");

printf("是否繼續進行(y?or?n):\n");

scanf("%c",&a);

if(a=='y')

{

flag=1;

system("cls");?/*清屏*/

menu();?/*調用菜單函數*/

printf("請再次選擇妳需要操作的步驟(1--6):\n");

scanf("%d",&n);

printf("\n");

}

else?

exit(0);

}

}

void?input()/*錄入函數*/

{

int?i,m;

printf("請輸入需要創建信息的職工人數(1--100):\n");

scanf("%d",&m);

for?(i=0;i<m;i++)

{

printf("職工號:?");

srand((int)time(0));

em[i].num=rand()%10000+20000000;

if(em[i].num!=em[i-1].num)

printf("%8d?",em[i].num);

printf("\n");

printf("請輸入姓名:?");

scanf("%s",&em[i].name);

getchar();

printf("請輸入性別:?");

scanf("%s",&em[i].sex);

printf("請輸入出生年月:?");

scanf("%s",&em[i].bir);

printf("請輸入學歷:?");

scanf("%s",&em[i].xueli);

printf("請輸入工資:?");

scanf("%d",&em[i].wage);

printf("請輸入住址:?");

scanf("%s",&em[i].addr);

printf("請輸入電話:?");

scanf("%s",&em[i].tel);

printf("\n");

}

printf("\n創建完畢!\n");

save(m);

}

void?save(int?m)/*保存文件函數*/

{

int?i;

FILE*fp;

if?((fp=fopen("employee_list","wb"))==NULL)?/*創建文件並判斷是否能打開*/

{

printf?("cannot?open?file\n");

exit(0);

}

for?(i=0;i<m;i++)/*將內存中職工的信息輸出到磁盤文件中去*/

if?(fwrite(&em[i],sizeof(struct?employee),1,fp)!=1)

printf("file?write?error\n");

fclose(fp);

}

int?load()/*導入函數*/

{

FILE*fp;

int?i=0;

if((fp=fopen("employee_list","rb"))==NULL)

{

printf?("cannot?open?file\n");

exit(0);

}

else?

{

do?

{

fread(&em[i],sizeof(struct?employee),1,fp);

i++;

}

while(feof(fp)==0);

}

fclose(fp);

return(i-1);

}

void?display()/*瀏覽函數*/

{

int?i;

int?m=load();

printf("\n?職工號\t姓名\t性別\t出生年月\t學歷\t工資\t住址\t電話\n");

for(i=0;i<m;i++)/*m為輸入部分的職工人數*/

printf("\n?%6d\t%s\t%4s\t%s\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].bir,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);?

}

void?del()?/*刪除函數*/

{?int?m=load();

int?i,j,n,t,flag;

char?name[20];

printf("\n?原來的職工信息:\n");

display();?/*?調用瀏覽函數*/

printf("\n");

printf("請輸入要刪除的職工的姓名:\n");

scanf("%s",name);

for(flag=1,i=0;flag&&i<m;i++)

{

if(strcmp(em[i].name,name)==0)

{

printf("\n已找到此人,原始記錄為:\n");

printf("\n職工號\t姓名\t性別\t出生年月\t學歷\t工資\t住址\t電話\n");

printf("\n%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].bir,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);?

printf("\n確實要刪除此人信息請按1,不刪除請按0\n");

scanf("%d",&n);

if(n==1)/*如果刪除,則其他的信息都往上移壹行*/

{

for(j=i;j<m-1;j++)

{

strcpy(em[j].name,em[j+1].name);

em[j].num=em[j+1].num;

strcpy(em[j].sex,em[j+1].sex);

strcpy(em[j].bir,em[j+1].bir);

strcpy(em[j].xueli,em[j+1].xueli);

em[j].wage=em[j+1].wage;?

strcpy(em[j].addr,em[j+1].addr);

strcpy(em[j].tel,em[j+1].tel);

}

flag=0;

}

}

}

if(!flag)

m=m-1;

else

printf("\n對不起,查無此人!\n");

printf("\n?瀏覽刪除後的所有職工信息:\n");

save(m);/*調用保存函數*/

display();?/*調用瀏覽函數*/

printf("\n繼續刪除請按1,不再刪除請按0\n");

scanf("%d",&t);

switch(t)

{

case?1:del();break;

case?0:break;

default?:break;

}

}

void?add()/*添加函數*/

{

FILE*fp;

int?n;

int?count=0;

int?i;

int?m=load();

printf("\n?原來的職工信息:\n");

display();?/*?調用瀏覽函數*/

printf("\n");

fp=fopen("emploee_list","a");

printf("請輸入想增加的職工數:\n");

scanf("%d",&n);

for?(i=m;i<(m+n);i++)

{

printf("\n?請輸入新增加職工的信息:\n");

printf("請輸入職工號:?");

srand((int)time(0));

em[i].num=rand()%10000+20000000;

if(em[i].num!=em[i-1].num)

printf("%8d?",em[i].num);

printf("\n");

printf("請輸入姓名:?");

scanf("%s",&em[i].name);

getchar();

printf("請輸入性別:?");

scanf("%s",&em[i].sex);

printf("請輸入出生年月:?");

scanf("%s",&em[i].bir);

printf("請輸入學歷:?");

scanf("%s",&em[i].xueli);

printf("請輸入工資:?");

scanf("%d",&em[i].wage);

printf("請輸入住址:?");

scanf("%s",&em[i].addr);

printf("請輸入電話:?");

scanf("%s",&em[i].tel);

printf("\n");

count=count+1;

printf("已增加的人數:\n");

printf("%d\n",count);

}

printf("\n添加完畢!\n");?

m=m+count;

printf("\n瀏覽增加後的所有職工信息:\n");

printf("\n");

save(m);

display();

fclose(fp);

}

void?search()/*查詢函數*/

{

int?t,flag;

do

{

printf("\n按職工號查詢請按1?;?按學歷查詢請按2?;?按電話號碼查詢請按3,進入主函數按4\n");

scanf("%d",&t);

if(t>=1&&t<=4)

{

flag=1;

break;

}

else

{

flag=0;

printf("您輸入有誤,請重新選擇!");

}

}

while(flag==0);

while(flag==1)

{

switch(t)

{?

case?1:printf("按職工號查詢\n");search_num();break;

case?2:printf("按學歷查詢\n");search_xueli();break;

case?3:printf("按電話號碼查詢\n");search_tel();break;

case?4:main();break;

default:break;

}

}

}

void?search_num()

{

int?num;

int?i,t;

int?m=load();

printf("請輸入要查找的職工號(20001111---20009999):\n");

scanf("%d",&num);

for(i=0;i<m;i++)

if(num==em[i].num)

{?

printf("\n已找到此人,其記錄為:\n");

printf("\n職工號\t姓名\t性別\t出生年月\t學歷\t工資\t住址\t電話\n");

printf("\n%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].bir,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);?

break;

}

if(i==m)?

printf("\n對不起,查無此人\n");

printf("\n");

printf("返回查詢函數請按1,繼續查詢職工號請按2\n");

scanf("%d",&t);

switch(t)

{?

case?1:search();break;

case?2:?break;

default:break;

}

}

void?search_xueli()

{

char?xueli[30];

int?i,t;

int?m=load();

printf("請輸入要查找的學歷:\n");

scanf("%s",xueli);

for(i=0;i<m;i++)

if(strcmp(em[i].xueli,xueli)==0)

{

printf("\n已找到,其記錄為:\n");

printf("\n職工號\t姓名\t性別\t出生年月\t學歷\t工資\t住址\t電話\n");

printf("\n%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].bir,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);?

}

if(i==m)?

printf("\n對不起,查無此人\n");

printf("\n");

printf("返回查詢函數請按1,繼續查詢學歷請按2\n");

scanf("%d",&t);

switch(t)

{?

case?1:search();break;

case?2:break;

default?:break;

}

}

void?search_tel()

{

char?tel[20];

int?i,?t;

int?m=load();

printf("請輸入要查找的電話號碼:\n");

scanf("%ld",&tel);

for(i=0;i<m;i++)

if(strcmp(em[i].tel,tel)==0)

{?

printf("\n已找到此人,其記錄為:\n");

printf("\n職工號\t姓名\t性別\t出生年月\t學歷\t工資\t住址\t電話\n");

printf("\n%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].bir,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);?

break;

}

if(i==m)?

printf("\n對不起,查無此人\n");

printf("\n");

printf("返回查詢函數請按1,繼續查詢電話號碼請按2\n");

scanf("%d",&t);

switch(t)

{?

case?1:search();break;

case?2:break;

default?:break;

}

}

void?modify()/*修改函數*/

{

int?num;

char?name[10];

char?sex[4];?

char?bir[20];

char?xueli[30];

int?wage;

char?addr[30];

char?tel[20];

int?b,c,i,n,t,flag;?

int?m=load();?/*導入文件內的信息*/

printf("\n?原來的職工信息:\n");

display();?/*?調用瀏覽函數*/

printf("\n");

printf("請輸入要修改的職工的姓名:\n");

scanf("%s",name);

for(flag=1,i=0;flag&&i<m;i++)

{

if(strcmp(em[i].name,name)==0)

{

printf("\n已找到此人,原始記錄為:\n");

printf("\n職工號\t姓名\t性別\t出生年月\t學歷\t工資\t住址\t電話\n");

printf("\n%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].bir,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);?

printf("\n確實要修改此人信息請按1?;?不修改請按0\n");

scanf("%d",&n);

if(n==1)

{

printf("\n需要進行修改的選項\n?1.職工號?2.姓名?3.性別?4.出生年月?5.學歷?6.工資?7.住址?8.電話\n");?

printf("請輸入妳想修改的那壹項序號:\n");?

scanf("%d",&c);?

if(c>8||c<1)?

printf("\n選擇錯誤,請重新選擇!\n");?

}

flag=0;

}

}

if(flag==1)

printf("\n對不起,查無此人!\n");?

do?

{

switch(c)?/*因為當找到第i個職工時,for語句後i自加了1,所以下面的應該把改後的信息賦值給第i-1個人*/

{?

case?1:printf("職工號改為:?");

scanf("%d",&num);

em[i-1].num=num;

break;?

case?2:printf("姓名改為:?");

scanf("%s",name);

strcpy(em[i-1].name,name);?

break;?

case?3:printf("性別改為:?");

scanf("%s",sex);

strcpy(em[i-1].sex,sex);

break;?

case?4:printf("出生年月改為:?");

scanf("%s",bir);

strcpy(em[i-1].bir,bir);

break;?

case?5:printf("學歷改為:?");

scanf("%s",xueli);

strcpy(em[i-1].xueli,xueli);?

break;?

case?6:printf("工資改為:?");

scanf("%d",&wage);

break;?

case?7:printf("住址改為:?");

scanf("%s",addr);

strcpy(em[i-1].addr,addr);

break;?

case?8:printf("電話改為:?");

scanf("%s",tel);

strcpy(em[i-1].tel,tel);

break;?

}?

printf("\n");

printf("\n是否確定所修改的信息?\n?是?請按1?;?不,重新修改?請按2:?\n");?

scanf("%d",&b);

}?

while(b==2);

printf("\n瀏覽修改後的所有職工信息:\n");

printf("\n");

save(m);

display();

printf("\n繼續修改請按1,不再修改請按0\n");

scanf("%d",&t);

switch(t)

{

case?1:modify();break;

case?0:break;

default?:break;

}

}

  • 上一篇:遼寧模擬誌願填報入口(附模擬誌願填報流程)
  • 下一篇:美圖信息流廣告投放怎麽收費B
  • copyright 2024法律諮詢服務網