版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語(yǔ)言企業(yè)員工管理系統(tǒng)代碼部分:#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct employee int num; char duty10; char name10; char sex3; unsigned char age; char edu10; int salary; char tel_office13; char tel_home13; char mobile13; char qq11; char address31; struct employee *ne
2、xt; EMP; char password9; EMP *emp_first,*emp_end; char gsave,gfirst; void addemp(void); void findemp(void); void listemp(void); void modifyemp(void); void summaryemp(void); void delemp(void); void resetpwd(void); void readdata(void); void savedata(void); int modi_age(int s); int modi_salary(int s);
3、char *modi_field(char *field,char *s,int n); EMP *findname(char *name); EMP *findnum(int num); EMP *findtelephone(char *name); EMP *findqq(char *name); void displayemp(EMP *emp,char *field,char *name); void checkfirst(void); void bound(char ch,int n); void login(); void menu();void addemp() FILE *fp
4、; EMP *emp1; int i=0; char choice='y' if(fp=fopen("employee.dat","ab")=NULL) printf("打開(kāi)文件employee.dat出錯(cuò)!n"); getch(); return; do i+; emp1=(EMP *)malloc(sizeof(EMP); if(emp1=NULL) printf("內(nèi)存分配失敗,按任意鍵退出!n"); getch(); return; printf("請(qǐng)輸入第%d個(gè)員工的信息,n&q
5、uot;,i); bound('_',30); printf("工號(hào):"); scanf("%d",&emp1->num); printf("職務(wù):"); scanf("%s",&emp1->duty); printf("姓名:"); scanf("%s",&emp1->name); printf("性別:"); scanf("%s",&emp1->sex); pr
6、intf("年齡:"); scanf("%d",&emp1->age); printf("文化程度:"); scanf("%s",&emp1->edu); printf("工資:"); scanf("%d",&emp1->salary); printf("辦公電話:"); scanf("%s",&emp1->tel_office); printf("家庭電話:"
7、); scanf("%s",&emp1->tel_home); printf("移動(dòng)電話:"); scanf("%s",&emp1->mobile); printf("QQ:"); scanf("%s",&emp1->qq); printf("地址:"); scanf("%s",&emp1->address); emp1->next=NULL; if(emp_first=NULL) emp_fi
8、rst=emp1; emp_end=emp1; else emp_end->next=emp1; emp_end=emp1; fwrite(emp_end,sizeof(EMP),1,fp); gfirst=0; printf("n"); bound('_',30); printf("n是否繼續(xù)輸入?(y/n)"); fflush(stdin); choice=getch(); if(toupper(choice)!='Y') fclose(fp); printf("n輸入完畢,按任意鍵返回n")
9、; getch(); return; system("cls"); while(1);void bound(char ch,int n) while(n-) putch(ch); printf("n"); return; /*首次使用,進(jìn)行用戶信息初始化*/void checkfirst() FILE *fp,*fp1; char pwd9,pwd19,pwd29,pwd39,ch; int i; char strt='8' if(fp=fopen("config.bat","rb")=NULL)
10、printf("n新系統(tǒng),請(qǐng)進(jìn)行相應(yīng)的初始化操作!n"); bound('_',50); getch(); do printf("n設(shè)置密碼,請(qǐng)不要超過(guò)8位:"); for(i=0;i<8&&(pwdi=getch()!=13);i+) putch('*'); printf("n再確認(rèn)一次密碼:"); for(i=0;i<8&&(pwd1i=getch()!=13);i+) putch('*'); pwdi='0' pwd1i=
11、'0' if(strcmp(pwd,pwd1)!=0) printf("n兩次密碼輸入不一致,請(qǐng)重新輸入!nn"); else break; while(1); if(fp1=fopen("config.bat","wb")=NULL) printf("n系統(tǒng)創(chuàng)建失敗,請(qǐng)按任意鍵退出!"); getch(); exit(1); i=0; while(pwdi) pwd2i=(pwdi strt); putw(pwd2i,fp1); i+; fclose(fp1); printf("nn系統(tǒng)
12、初始化成功,按任意鍵退出后,再重新進(jìn)入!n"); getch(); exit(1); else i=0; while(!feof(fp)&&i<8) pwdi+=(getw(fp)strt); pwdi='0' if(i>=8) i-; while(pwdi!=-1&&i>=0) i-; pwdi='0' strcpy(password,pwd); void delemp() int findok=0; EMP *emp1,*emp2; char name10,choice; system("
13、cls"); printf("n輸入要?jiǎng)h除的員工姓名:"); scanf("%s",name); emp1=emp_first; emp2=emp1; while(emp1) if(strcmp(emp1->name,name)=0) findok=1; system("cls"); printf("員工:%s的信息如下:",emp1->name); bound('_',40); printf("工號(hào):%dn",emp1->num); printf(&
14、quot;職務(wù):%sn",emp1->duty); printf("姓名:%sn",emp1->name); printf("性別:%sn",emp1->sex); printf("年齡:%dn",emp1->age); printf("文化程度:%sn",emp1->edu); printf("工資:%dn",emp1->salary); printf("辦公電話:%sn",emp1->tel_office); print
15、f("家庭電話:%sn",emp1->tel_home); printf("移動(dòng)電話:%sn",emp1->mobile); printf("QQ號(hào)碼:%sn",emp1->qq); printf("住址:%ns",emp1->address); bound('_',40); printf("您真的要?jiǎng)h除該員工嗎?(y/n)"); fflush(stdin); choice=getchar(); if(choice!='y' &&a
16、mp; choice!='Y') return; if(emp1=emp_first) emp_first=emp1->next; else emp2->next=emp1->next; free(emp1); gsave=1; savedata(); return; else emp2=emp1; emp1=emp1->next; if(!findok) bound('_',40); printf("n沒(méi)有找到姓名是:%s的信息!n",name); getch(); return;void displayemp(EM
17、P *emp,char *field,char *name) if(emp) printf("n%s:%s信息如下:n",field,name); bound('_',30); printf("工號(hào):%dn",emp->num); printf("職務(wù):%sn",emp->duty); printf("姓名:%sn",emp->name); printf("性別:%sn",emp->sex); printf("年齡:%dn",emp-&
18、gt;age); printf("文化程度:%sn",emp->edu); printf("工資:%dn",emp->salary); printf("辦公電話:%sn",emp->tel_office); printf("家庭電話:%sn",emp->tel_home); printf("移動(dòng)電話:%sn",emp->mobile); printf("QQ號(hào)碼:%sn",emp->qq); printf("住址:%sn"
19、;,emp->address); bound('_',30); else bound('_',40); printf("資料庫(kù)中沒(méi)有%s為:%s的員工!請(qǐng)重新確認(rèn)!",field,name); return;EMP *findname(char *name) EMP *emp1; emp1=emp_first; while(emp1) if(strcmp(name,emp1->name)=0) return emp1; emp1=emp1->next; return NULL;EMP *findnum(int num) EM
20、P *emp1; emp1=emp_first; while(emp1) if(num=emp1->num) return emp1; emp1=emp1->next; return NULL; EMP *findtelephone(char *name) EMP *emp1; emp1=emp_first; while(emp1) if(strcmp(name,emp1->tel_office)=0)| (strcmp(name,emp1->tel_home)=0)| (strcmp(name,emp1->mobile)=0) return emp1; emp1
21、=emp1->next; return NULL; EMP *findqq(char *name) EMP *emp1; emp1=emp_first; while(emp1) if(strcmp(name,emp1->qq)=0) return emp1; emp1=emp1->next; return NULL; void findemp() int choice,ret=0,num; char str13; EMP *emp1; system("cls"); do printf("t查詢員工信息n"); bound('_&
22、#39;,30); printf("t1.按姓名查詢n"); printf("t2.按工號(hào)查詢n"); printf("t3.按電話查詢n"); printf("t4.按QQ號(hào)查詢n"); printf("t0.返回主菜單n"); bound('_',30); printf("n請(qǐng)選擇菜單:"); do fflush(stdin); choice=getchar(); system("cls"); switch(choice) case &
23、#39;1': printf("n輸入要查詢的員工姓名:"); scanf("%s",str); emp1=findname(str); displayemp(emp1,"姓名",str); getch(); break; case '2': printf("n請(qǐng)輸入要查詢的員工的工號(hào)"); scanf("%d",&num); emp1=findnum(num); itoa(num,str,10); displayemp(emp1,"工號(hào)",s
24、tr); getch(); break; case '3': printf("n輸入要查詢員工的電話:"); scanf("%s",str); emp1=findtelephone(str); displayemp(emp1,"電話",str); getch(); break; case '4': printf("n輸入要查詢的員工的QQ號(hào):"); scanf("%s",str); emp1=findqq(str); displayemp(emp1,"Q
25、Q號(hào)碼",str); getch(); break; case '0': ret=1; break; while(choice<'0'|choice>'4'); system("cls"); if(ret) break; while(1); void listemp() EMP *emp1; printf("n資料庫(kù)中的員工信息列表n"); bound('_',40); emp1=emp_first; while(emp1) printf("工號(hào):%dn&qu
26、ot;,emp1->num); printf("職務(wù):%sn",emp1->duty); printf("姓名:%sn",emp1->name); printf("性別:%sn",emp1->sex); printf("年齡:%dn",emp1->age); printf("文化程度:%sn",emp1->edu); printf("工資:%dn",emp1->salary); printf("辦公電話:%sn",
27、emp1->tel_office); printf("家庭電話:%sn",emp1->tel_home); printf("移動(dòng)電話:%sn",emp1->mobile); printf("QQ號(hào)碼:%sn",emp1->qq); printf("住址:%sn",emp1->address); bound('_',40); emp1=emp1->next; printf("n顯示完畢,按任意鍵退出!n"); getch(); return;/*
28、檢測(cè)登錄密碼*/void login() int i,n=3; char pwd9; do printf("請(qǐng)輸入密碼:"); for(i=0;i<8 && (pwdi=getch()!=13);i+) putch('*'); pwdi='0' if(strcmp(pwd,password) printf("n密碼錯(cuò)誤,請(qǐng)重新輸入!n"); system("cls"); n-; else break; while(n>0); if(!n) printf("請(qǐng)退出,你
29、的三次輸入密碼錯(cuò)誤!"); getch(); exit(1); void menu() char choice; system("cls"); do printf("t 企業(yè)員工管理系統(tǒng)n"); bound('_',40); printf("t1.輸入員工信息n"); printf("t2.查詢員工信息n"); printf("t3.顯示員工信息n"); printf("t4.修改員工信息n"); printf("t5.刪除員工信息n&qu
30、ot;); printf("t6.統(tǒng)計(jì)員工信息n"); printf("t7.重置系統(tǒng)密碼n"); printf("t0.退出系統(tǒng)n"); bound('_',40); printf("n請(qǐng)選擇您需要的操作!"); do fflush(stdin); choice=getchar(); system("cls"); switch(choice) case '1': addemp(); break; case '2': if(gfirst) prin
31、tf("系統(tǒng)信息中無(wú)員工信息,請(qǐng)先添加員工信息!n"); getch(); break; findemp(); break; case '3': if(gfirst) printf("系統(tǒng)信息中無(wú)員工信息,請(qǐng)先添加員工信息!n"); getch(); break; listemp(); break; case '4': if(gfirst) printf("系統(tǒng)信息中無(wú)員工信息,請(qǐng)先添加員工信息!n"); getch(); break; modifyemp(); break; case '5
32、39;: if(gfirst) printf("系統(tǒng)信息中無(wú)員工信息,請(qǐng)先添加員工信息!n"); getch(); break; delemp(); break; case '6': if(gfirst) printf("系統(tǒng)信息中無(wú)員工信息,請(qǐng)先添加員工信息!n"); getch(); break; summaryemp(); break; case '7': resetpwd(); break; case '0': savedata(); exit(0); while(choice<'0&
33、#39;|choice>'7'); system("cls"); while(1); int modi_salary(int salary) int newsalary; printf("原來(lái)的工資數(shù)為:%d",salary); printf("新的工資數(shù):"); scanf("%d",&newsalary); return(newsalary);int modi_age(int age) int newage; printf("原來(lái)的年齡為:%d",age); p
34、rintf("新的年齡:"); scanf("%d",&newage); return(newage);char *modi_field(char *field,char *content,int len) char *str; str=malloc(sizeof(char)*len); if(str=NULL) printf("內(nèi)存分配失敗,按任意鍵退出!"); getch(); return NULL; printf("原來(lái)%s為:%sn",field,content); printf("修改
35、為(內(nèi)容不要超過(guò)%d個(gè)字符?。?quot;,len); scanf("%s",str); return str;void modifyemp() EMP *emp1; char name10,*newcontent; int choice; printf("n請(qǐng)輸入您要修改的員工的信息:"); scanf("%s",&name); emp1=findname(name); displayemp(emp1,"姓名",name); if(emp1) printf("n 請(qǐng)輸入你要修改的內(nèi)容選項(xiàng)!n&
36、quot;); bound('_',40); printf("1.修改職務(wù) 2.修改年齡n"); printf("3.修改文化程度 4.修改工資n"); printf("5.修改辦公室電話 6.修改家庭電話n"); printf("7.修改移動(dòng)電話 8.修改QQ號(hào)碼 n"); printf("9.修改住址 0.返回n "); bound('_',40); do fflush(stdin); choice=getchar(); switch(choice) case
37、 '1': newcontent=modi_field("職務(wù)",emp1->duty,10); if(newcontent!=NULL) strcpy(emp1->duty,newcontent); free(newcontent); break; case '2': emp1->age=modi_age(emp1->age); break; case '3': newcontent=modi_field("文化程度",emp1->edu,10); if(newcontent
38、!=NULL) strcpy(emp1->edu,newcontent); free(newcontent); break; case '4': emp1->salary=modi_salary(emp1->salary); break; case '5': newcontent=modi_field("辦公室電話",emp1->tel_office,13); if(newcontent!=NULL) strcpy(emp1->tel_office,newcontent); free(newcontent); break; case '6': newcontent=modi_field("家庭電話",emp1->tel_home,13); if(newcontent!=NULL) strcpy(emp1
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政復(fù)議案例分析-洞察分析
- 通信設(shè)備智能制造與產(chǎn)業(yè)升級(jí)探討-洞察分析
- 2025年北師大版九年級(jí)數(shù)學(xué)上冊(cè)月考試卷含答案
- 野生植物資源保護(hù)立法研究-洞察分析
- 2025年滬科版八年級(jí)物理下冊(cè)階段測(cè)試試卷含答案
- 新型病毒檢測(cè)技術(shù)-洞察分析
- 2025年仁愛(ài)科普版三年級(jí)數(shù)學(xué)上冊(cè)階段測(cè)試試卷
- 二零二五年度特色美食攤位租賃與知識(shí)產(chǎn)權(quán)保護(hù)合同4篇
- 2025年外研版三年級(jí)起點(diǎn)高一數(shù)學(xué)上冊(cè)月考試卷含答案
- 部編版語(yǔ)文七年級(jí)上冊(cè)第24課《寓言四則-赫耳墨斯和雕像者》教學(xué)設(shè)計(jì)7
- 建筑史智慧樹(shù)知到期末考試答案2024年
- 金蓉顆粒-臨床用藥解讀
- 社區(qū)健康服務(wù)與管理教案
- 2023-2024年家政服務(wù)員職業(yè)技能培訓(xùn)考試題庫(kù)(含答案)
- 2023年(中級(jí))電工職業(yè)技能鑒定考試題庫(kù)(必刷500題)
- 藏歷新年文化活動(dòng)的工作方案
- 果酒釀造完整
- 第4章-理想氣體的熱力過(guò)程
- 生涯發(fā)展展示
- 手術(shù)室應(yīng)對(duì)突發(fā)事件、批量傷員應(yīng)急預(yù)案及處理流程
- 動(dòng)機(jī)-行為背后的原因課件
評(píng)論
0/150
提交評(píng)論