C語言程序設計-職工信息管理系統_第1頁
C語言程序設計-職工信息管理系統_第2頁
C語言程序設計-職工信息管理系統_第3頁
C語言程序設計-職工信息管理系統_第4頁
C語言程序設計-職工信息管理系統_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C語言程序設計-職工信息管理系統?一、系統概述職工信息管理系統是一個用于管理職工基本信息、考勤記錄、工資信息等的綜合系統。通過該系統,企業或組織能夠方便快捷地對職工信息進行錄入、查詢、修改、刪除等操作,提高管理效率,確保職工信息的準確性和完整性。

二、功能需求1.職工信息錄入:能夠錄入職工的基本信息,包括姓名、性別、年齡、部門、職位等。2.職工信息查詢:可以根據職工編號、姓名等條件查詢職工的詳細信息。3.職工信息修改:針對已有的職工信息,能夠修改其相應字段的值。4.職工信息刪除:允許刪除指定職工的信息。5.考勤記錄管理:記錄職工的考勤情況,如出勤、請假、曠工等,并能進行統計分析。6.工資信息管理:管理職工的工資信息,包括基本工資、績效工資、獎金等,并能計算出每月的總工資。7.數據存儲與讀取:將職工信息、考勤記錄和工資信息等數據存儲到文件中,并能在程序啟動時讀取這些數據,以便繼續操作。

三、系統設計

數據結構設計1.職工結構體```ctypedefstruct{intid;charname[20];chargender[5];intage;chardepartment[20];charposition[20];}Employee;```2.考勤結構體```ctypedefstruct{intid;chardate[10];charstatus[10];//出勤、請假、曠工等}Attendance;```3.工資結構體```ctypedefstruct{intid;floatbasicSalary;floatperformanceSalary;floatbonus;floattotalSalary;}Salary;```

模塊設計1.主菜單模塊:顯示系統的主要功能選項,如錄入、查詢、修改、刪除等,并根據用戶選擇調用相應的子模塊。```cvoidmainMenu(){intchoice;do{printf("\n職工信息管理系統\n");printf("1.職工信息錄入\n");printf("2.職工信息查詢\n");printf("3.職工信息修改\n");printf("4.職工信息刪除\n");printf("5.考勤記錄管理\n");printf("6.工資信息管理\n");printf("0.退出系統\n");printf("請選擇:");scanf("%d",&choice);

switch(choice){case1:addEmployee();break;case2:searchEmployee();break;case3:updateEmployee();break;case4:deleteEmployee();break;case5:attendanceManagement();break;case6:salaryManagement();break;case0:printf("退出系統\n");break;default:printf("無效選擇,請重新輸入\n");}}while(choice!=0);}```2.職工信息錄入模塊:提示用戶輸入職工的各項信息,并將其存儲到數組或文件中。```cvoidaddEmployee(){Employeeemp;FILE*fp;fp=fopen("employees.txt","a");if(fp==NULL){printf("文件打開失敗\n");return;}printf("請輸入職工編號:");scanf("%d",&emp.id);printf("請輸入職工姓名:");scanf("%s",);printf("請輸入職工性別:");scanf("%s",emp.gender);printf("請輸入職工年齡:");scanf("%d",&emp.age);printf("請輸入職工部門:");scanf("%s",emp.department);printf("請輸入職工職位:");scanf("%s",emp.position);

fprintf(fp,"%d%s%s%d%s%s\n",emp.id,,emp.gender,emp.age,emp.department,emp.position);fclose(fp);printf("職工信息錄入成功\n");}```3.職工信息查詢模塊:根據用戶輸入的查詢條件,在數組或文件中查找相應的職工信息并顯示。```cvoidsearchEmployee(){intid,found=0;Employeeemp;FILE*fp;fp=fopen("employees.txt","r");if(fp==NULL){printf("文件打開失敗\n");return;}printf("請輸入要查詢的職工編號:");scanf("%d",&id);

while(fscanf(fp,"%d%s%s%d%s%s",&emp.id,,emp.gender,&emp.age,emp.department,emp.position)!=EOF){if(emp.id==id){printf("職工編號:%d\n",emp.id);printf("職工姓名:%s\n",);printf("職工性別:%s\n",emp.gender);printf("職工年齡:%d\n",emp.age);printf("職工部門:%s\n",emp.department);printf("職工職位:%s\n",emp.position);found=1;break;}}if(!found){printf("未找到該職工信息\n");}fclose(fp);}```4.職工信息修改模塊:根據用戶輸入的職工編號,查找并修改相應職工的信息。```cvoidupdateEmployee(){intid,found=0;Employeeemp;FILE*fp,*temp;fp=fopen("employees.txt","r");temp=fopen("temp.txt","w");if(fp==NULL||temp==NULL){printf("文件打開失敗\n");return;}printf("請輸入要修改的職工編號:");scanf("%d",&id);

while(fscanf(fp,"%d%s%s%d%s%s",&emp.id,,emp.gender,&emp.age,emp.department,emp.position)!=EOF){if(emp.id==id){printf("請輸入新的職工姓名:");scanf("%s",);printf("請輸入新的職工性別:");scanf("%s",emp.gender);printf("請輸入新的職工年齡:");scanf("%d",&emp.age);printf("請輸入新的職工部門:");scanf("%s",emp.department);printf("請輸入新的職工職位:");scanf("%s",emp.position);found=1;}fprintf(temp,"%d%s%s%d%s%s\n",emp.id,,emp.gender,emp.age,emp.department,emp.position);}fclose(fp);fclose(temp);if(!found){printf("未找到該職工信息\n");remove("temp.txt");}else{remove("employees.txt");rename("temp.txt","employees.txt");printf("職工信息修改成功\n");}}```5.職工信息刪除模塊:根據用戶輸入的職工編號,在數組或文件中刪除相應的職工信息。```cvoiddeleteEmployee(){intid,found=0;Employeeemp;FILE*fp,*temp;fp=fopen("employees.txt","r");temp=fopen("temp.txt","w");if(fp==NULL||temp==NULL){printf("文件打開失敗\n");return;}printf("請輸入要刪除的職工編號:");scanf("%d",&id);

while(fscanf(fp,"%d%s%s%d%s%s",&emp.id,,emp.gender,&emp.age,emp.department,emp.position)!=EOF){if(emp.id!=id){fprintf(temp,"%d%s%s%d%s%s\n",emp.id,,emp.gender,emp.age,emp.department,emp.position);}else{found=1;}}fclose(fp);fclose(temp);if(!found){printf("未找到該職工信息\n");remove("temp.txt");}else{remove("employees.txt");rename("temp.txt","employees.txt");printf("職工信息刪除成功\n");}}```6.考勤記錄管理模塊:可以錄入考勤記錄,統計出勤天數、請假天數、曠工天數等。```cvoidattendanceManagement(){Attendanceatt;FILE*fp;intdaysWorked=0,daysAbsent=0,daysLeave=0;chardate[10];charstatus[10];

fp=fopen("attendance.txt","a");if(fp==NULL){printf("文件打開失敗\n");return;}printf("請輸入職工編號:");scanf("%d",&att.id);printf("請輸入日期(格式:YYYY-MM-DD):");scanf("%s",date);printf("請輸入考勤狀態(出勤、請假、曠工):");scanf("%s",status);

strcpy(att.date,date);strcpy(att.status,status);fprintf(fp,"%d%s%s\n",att.id,att.date,att.status);

if(strcmp(status,"出勤")==0){daysWorked++;}elseif(strcmp(status,"請假")==0){daysLeave++;}elseif(strcmp(status,"曠工")==0){daysAbsent++;}fclose(fp);

printf("考勤記錄錄入成功\n");printf("出勤天數:%d\n",daysWorked);printf("請假天數:%d\n",daysLeave);printf("曠工天數:%d\n",daysAbsent);}```7.工資信息管理模塊:可以錄入工資信息,計算總工資,并進行工資信息的查詢和修改。```cvoidsalaryManagement(){Salarysal;FILE*fp;intchoice;do{printf("\n工資信息管理\n");printf("1.錄入工資信息\n");printf("2.查詢工資信息\n");printf("3.修改工資信息\n");printf("0.返回主菜單\n");printf("請選擇:");scanf("%d",&choice);

switch(choice){case1:addSalary();break;case2:searchSalary();break;case3:updateSalary();break;case0:break;default:printf("無效選擇,請重新輸入\n");}}while(choice!=0);}

voidaddSalary(){Salarysal;FILE*fp;fp=fopen("salary.txt","a");if(fp==NULL){printf("文件打開失敗\n");return;}printf("請輸入職工編號:");scanf("%d",&sal.id);printf("請輸入基本工資:");scanf("%f",&sal.basicSalary);printf("請輸入績效工資:");scanf("%f",&sal.performanceSalary);printf("請輸入獎金:");scanf("%f",&sal.bonus);sal.totalSalary=sal.basicSalary+sal.performanceSalary+sal.bonus;

fprintf(fp,"%d%.2f%.2f%.2f%.2f\n",sal.id,sal.basicSalary,sal.performanceSalary,sal.bonus,sal.totalSalary);fclose(fp);printf("工資信息錄入成功\n");}

voidsearchSalary(){intid,found=0;Salarysal;FILE*fp;fp=fopen("salary.txt","r");if(fp==NULL){printf("文件打開失敗\n");return;}printf("請輸入要查詢的職工編號:");scanf("%d",&id);

while(fscanf(fp,"%d%f%f%f%f",&sal.id,&sal.basicSalary,&sal.performanceSalary,&sal.bonus,&sal.totalSalary)!=EOF){if(sal.id==id){printf("職工編號:%d\n",sal.id);printf("基本工資:%.2f\n",sal.basicSalary);printf("績效工資:%.2f\n",sal.performanceSalary);printf("獎金:%.2f\n",sal.bonus);printf("總工資:%.2f\n",sal.totalSalary);found=1;break;}}if(!found){printf("未找到該職工工資信息\n");}fclose(fp);}

voidupdateSalary(){intid,found=0;Salarysal;FILE*fp,*temp;fp=fopen("salary.txt","r");temp=fopen("temp.txt","w");if(fp==NULL||temp==NULL){printf("文件打開失敗\n");return;}printf("請輸入要修改的職工編號:");scanf("%d",&id);

while(fscanf(fp,"%d%f%f%f%f",&sal.id,&sal.basicSalary,&sal.performanceSalary,&sal.bonus,&sal.totalSalary)!=EOF){if(sal.id==id){printf("請輸入新的基本工資:");scanf("%f",&sal.basicSalary);printf("請輸入新的績效工資:");scanf("%f",&sal.performanceSalary);printf("請輸入新的獎金:");scanf("%f",&sal.bonus);sal.totalSalary=sal.basicSalary+sal.performanceSalary+sal.bonus;found=1;}fprintf(temp,"%d%.2f%.2f%.2f%.2f\n",sal.id,sal.basicSalary,sal.performanceSalary,sal.bonus,sal.totalSalary);}fclose(fp);fclose(temp);if(!found){printf("未找到該職工工資信息\n");remove("temp.txt");}else{remove("salary.txt");rename("temp.txt","salary.txt");printf("工資信息修改成功\n");}}```

文件操作設計系統將職工信息存儲在`employees.txt`文件中,考勤記錄存儲在`attendance.txt`文件中,工資信息存儲在`salary.txt`

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論