AIOT學習筆記 三

2021-10-24 07:18:27 字數 4431 閱讀 3128

新增打卡機任務

主要增加結構體陣列\陣列排序的內容

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 查詢 ...