永发信息网

c语言编写职工考勤系统怎么做

答案:3  悬赏:60  手机版
解决时间 2021-02-06 18:30
  • 提问者网友:临风不自傲
  • 2021-02-06 11:11
某公司考勤执行指纹打卡考勤方式,每周工作日为周一至周五
上午:8:30---12:00
下午:2:00—5:30
考勤规定:每天打卡四次,上午上下班,下午上下班,共计4次打卡
迟到规定:上、下午上班时间推迟10分钟后打卡的视为迟到,迟到时间超过一小时的视为当前班次缺勤;
早退规定:下班前5分钟内打卡不计入早退,超过5分钟的视为早退,早退1小时以上者视为当前班次缺勤;

工资计算方式:
每位员工工资为5000.00元/月;
每个班次工资计算方式:如当前月上班天数为20天,则每个班次工资额为5000/(2*20),缺勤一个工作班次,则扣除本班次全额工资;
迟到或者早退一次扣除20元;

特例:
1. 部分员工离驻地较远,每天可只打卡两次,即只打上午上班卡和下午下班卡
2. 周五下午4:30分为公司工会活动时间,可4:30分后打卡,不计入缺勤。

读取考勤记录的文本文件,包括如下内容:
人员编号登记号码姓名刷卡日期刷卡时间签到方式设备编号上下班标志操作员

完成如下工作:
1. 输出每位员工的缺勤、迟到、早退信息;(屏幕输出+文件输出)
2. 输出每位员工的本月工资表(屏幕输出+文件输出)
3. 查询任意一位员工的迟到、早退、缺勤信息
4. 依据员工考勤情况,计算每月的最优秀员工(缺勤、迟到、早退情况最少者)
最佳答案
  • 五星知识达人网友:蕴藏春秋
  • 2021-02-06 11:56
你好!
是用C语言编程,模拟考勤系统吗
全部回答
  • 1楼网友:毛毛
  • 2021-02-06 13:17
发私信给你了
  • 2楼网友:西岸风
  • 2021-02-06 13:03
其他地方拷来的,可作参考:) 参考资料:百度:学生成绩管理系统c语言不用链表而用结构体数组如何实现这是我用的,我同学做的,我也没仔细看,如果可以的话就用这个吧。 #include #include #include #include typedef struct { char num[10]; char name[20]; int score; }student; student stu[80]; int menu_select() { char c; do{ system("cls"); printf("\t\t****students' grade management system****\n"); printf("\t\t | 1. input records |\n"); printf("\t\t | 2. display all records |\n"); printf("\t\t | 3. sort |\n"); printf("\t\t | 4. insert a record |\n"); printf("\t\t | 5. delete a record |\n"); printf("\t\t | 6. query |\n"); printf("\t\t | 7. statistic |\n"); printf("\t\t | 8. add records from a text file|\n"); printf("\t\t | 9. write to a text file |\n"); printf("\t\t | 0. quit |\n"); printf("\t\t*****************************************\n"); printf("\t\t\tgive your choice(0-9):"); c=getchar(); }while(c<'0'||c>'9'); return(c-'0'); } int input(student stud[],int n) {int i=0; char sign,x[10]; while(sign!='n'&&sign!='n') { printf("\t\t\tstudent's num:"); scanf("\t\t\t%s",stud[n+i].num); printf("\t\t\tstudent's name:"); scanf("\t\t\t%s",stud[n+i].name); printf("\t\t\tstudent's score:"); scanf("\t\t\t%d",&stud[n+i].score); gets(x); printf("\t\t\tany more records?(y/n)"); scanf("\t\t\t%c",&sign); i++; } return(n+i); } void display(student stud[],int n) { int i; printf("\t\t\t-----------------------------------\n"); printf("\t\t\tnumber name score\n"); printf("\t\t\t-----------------------------------\n"); for(i=1;i1&&i%10==0) {printf("\t\t\t-----------------------------------\n"); printf("\t\t\t"); system("pause"); printf("\t\t\t-----------------------------------\n"); } } printf("\t\t\t"); system("pause"); } void sort_by_num(student stud[],int n) { int i,j,*p,*q,s; char t[10]; for(i=0;i0) {strcpy(t,stud[j+1].num); strcpy(stud[j+1].num,stud[j].num); strcpy(stud[j].num,t); strcpy(t,stud[j+1].name); strcpy(stud[j+1].name,stud[j].name); strcpy(stud[j].name,t); p=&stud[j+1].score; q=&stud[j].score; s=*p; *p=*q; *q=s; } } int insert_a_record(student stud[],int n) {char x[10]; printf("\t\t\tstudent's num:"); scanf("\t\t\t%s",stud[n].num); printf("\t\t\tstudent's name:"); scanf("\t\t\t%s",stud[n].name); printf("\t\t\tstudent's score:"); scanf("\t\t\t%d",&stud[n].score); gets(x); n++; sort_by_num(stud,n); printf("\t\t\tinsert successed!\n"); return(n); } int delete_a_record(student stud[],int n) { char s[20]; int i=0,j; printf("\t\t\ttell me his(her) name:"); scanf("%s",s); while(strcmp(stud[i].name,s)!=0&&istud[i].score) j=i; if(stud[k].score
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯