新增打卡機任務
主要增加結構體陣列\陣列排序的內容
to be continued …
#include
#include
#include
#include
#include
#include
//clock_t start_time1;
//clock_t end_time1;
#define workday 3
#define programstarttime 7.0
//程式開始時間為周一早上7點
#define workstarttime 9
//上班時間
#define workendtime 18
//下班時間
//用於程式測試
#define hour_per_second 2
//測試時以2s表示乙個小時
#define day_per_hour 24
//測試時以24h表示一天
timeval program_start_time;
timeval program_end_time;
int date_count_hour=
0,date_count_day =0;
struct staff_msg
;typedef
struct struct_staffss;
ss staff[20]
;void
log_in()
void
printworkmsg
(ss staffx)
void
printrewardlist()
}}ss *
sortworktime
(ss *staff)}}
return arr[0]
;}void
printpunishlist()
//計時函式clock() 經測試發現該計時方法不准
/*void mytimer(clock_t start_time1,clock_t end_time1)
;//判斷編號是否符合規範
//及匹配到人to do
intjudge_verification
(char
*p);
strcpy
(s,p)
;int i =
strlen
(s);
int flag =0;
for(
int j=
0;j<
20;j++
)//查詢有無該id}if
(i==
6&& s[0]
=='1'
&& flag)
else};
//校驗碼檢查函式
intverification
(char
*p1,
char
*p2)
//s陣列反序
for(
int i=
1;i<
6;i++
)//新陣列
for(
int i=
1;i<
6;i++)if
(strcmp
(s,p2)==0
)return1;
else
return0;
};//根據輸入的id匹配員工
ss *
match
(char number[7]
)}};
void
clock_in
(double time_cpy)
//上班打卡
;while
(flag)
}char check[7]
=;flag =1;
while
(flag)
else
}else
printf
("校驗碼錯誤\n\n");
}}void
clock_out
(double time_cpy)
//下班打卡
;int flag =1;
while
(flag)
//else judge_verification();
} ss *staffx;
staffx =
match
(number)
;printf
("下班打卡成功\n\n");
if(time_cpy>workstarttime && time_cpy>check3 =1;
else
if(time_cpy>workendtime) staffx-
>check4 =1;
gettimeofday
(&staffx-
>out_time,
null);
staffx-
>workhour_count +
=mytimer1
(staffx-
>in_time,staffx-
>out_time);}
void
clockin_machine_start()
//打卡機
else
printf
("指令錯誤,輸入1開啟打卡機\n");
}log_in()
;//start_time1 = clock();
//程式總的執行時間
double time = programstarttime;
//此處必須重新整理一次即輸入3,再打卡為正確時間
docase
'2':
default:}
break;}
while
(time_cpy>workstarttime && time_cpycase
'2':
default:}
for(
int i=
0;i<
3;i++
)//只錄入三個人用於測試
break;}
while
(time_cpy>=workendtime)
//下班打卡時間
printf
("輸入1上班打卡,輸入2下班打卡,輸入其他重新整理\n");
char s =
getchar()
;char ss =
getchar()
;//存入換行符
switch
(s)case
'2':
default:}
break;}
//每經過一天的操作
while
(time_cpy2>1)
//彈性打卡制,若前一天上班時長超過規定時長3小時以上,第二天遲到2小時以內不算遲到if(
mytimer1
(staff[i]
.in_time,staff[i]
.out_time)-3
>=
(workstarttime-workendtime)
)//狀態歸零
staff[i]
.check1 =0;
staff[i]
.check2 =0;
staff[i]
.check3 =0;
staff[i]
.check4 =0;
}break;}
gettimeofday
(&program_end_time,
null);
time =
mytimer1
(program_start_time,program_end_time)
+ programstarttime;
}while
(time < day_per_hour * workday)
;//列印員工的打卡資訊
printf
("*******************************\n"
"考勤週報\n\n");
for(
int i=
0;i<
3;i++
)printworkmsg
(staff[i]);
printf
("*******************************\n\n");
//列印獎懲資訊
printf
("*******************************\n");
printrewardlist()
;printpunishlist()
;printf
("*******************************\n");
}int
main()
AIoT學習筆記(一)
cat 用法 find h l p olevel d help tree search stat rates opt exec time path expression sudo find root size 10m 查詢 root目錄下大小大於10m的檔案 find mtime 3 查詢3天前更改...
學習筆記 三
在經過不斷的失敗後,山寨qq專案已基本完成 登入介面 主介面 聊天介面比較簡陋。就不展示了。目前,並沒有資料庫相關的操作,不是因為不會連線資料庫進行增刪改查。是我沒想好這個資料庫具體怎麼搭建。所以在以後的學習中,會慢慢完善這個專案。實現的主要功能 1.使用者輸入賬號密碼,在伺服器驗證,登入 2.和好...
學習筆記三
1.database 2.用於儲存和管理資料的倉庫。3.資料庫的特點 1.持久化儲存資料的。2.方便儲存和管理資料。3.使用統一的方式運算元據庫。sql 4.常見的資料庫軟體1.運算元據庫 crud 1.c create 建立 create database 資料名 2.r retrieve 查詢 ...