freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計論文-linux下遠程考試服務(wù)器端處理系統(tǒng)(參考版)

2024-09-15 21:05本頁面
  

【正文】 printf(父進程正?;厥兆舆M程 %d\n,schildpid)。 schildpid=wait(amp。當 數(shù)據(jù)文本中無法讀到匹配的用戶且文本中的數(shù)據(jù)已讀完前提下,證明用戶輸入的學號是合法的,將此用戶的學號和 口令 加入到 數(shù)據(jù)文本末尾, 并將指針移到 文本中字節(jié)的開頭, 詢問用戶是否要繼續(xù)進行用戶的添加,判斷下一步要進行的操作。 goto loop。){ goto ccloop。yn[2]==39。amp。yn[1]==39。amp。||yn[0]==39。 if(yn[0]==39。 printf(想要繼續(xù)添加用戶? (yes/no):)。 lseek(userfd,0,SEEK_SET)。//set the position to write write(userfd,usernamebuf,9)。amp。 goto ccloop。 if(strncmp(usernamebuf,amebuf,9)==0){ lseek(userfd,0,SEEK_SET)。){ byte6=read(userfd,amebuf,9)。當用戶輸入要刪除的用戶的學號時,循環(huán)體開始循環(huán)讀 文本中的字節(jié) ,沒有讀到且文本中的數(shù)據(jù)字節(jié)已經(jīng)結(jié)束,證明沒有這個用戶,返回主菜單; 當一開始在 文本中 讀到 的 9個字節(jié)跟用戶輸入的學號 匹配時,即大循環(huán) for 中的 if 條件語句成功, 用 lseek 函數(shù)往后移動 6個字節(jié),作 用 是 跳過此用戶的 口令 , 馬上進入一個內(nèi) for 循環(huán),將此 要刪除 用戶的下一個用戶到最后一個用戶的所有數(shù)據(jù) (字節(jié) )寫到 文本中,然后刪除 文件,將 文件重命名為 文件,此時的 文件中便沒有了要刪除的用戶的數(shù)據(jù),接著在打開 文件,詢問用戶是否要繼續(xù),以判斷下一步要進行的操作;當一開始在 中 讀的 9 個字節(jié)沒能匹配 用戶 輸入的用戶學號時,證明此用戶不是要刪除的用戶,將此用戶學號寫入,再讀 6 個字節(jié) (用戶的 口令 )寫入 ,此時文件中指向字節(jié)的指針已經(jīng)指向下一個用戶,馬上開始下一個用戶的循環(huán), 直到讀到匹配的用戶或者 文本中的數(shù)據(jù)已經(jīng)讀完 ,實現(xiàn) 跳 出循環(huán)。 continue。 read(userfd,sharebuf,6)。 } else break。){ tempfd=open(C:\\cygwin\\home\\bochi\\,\ O_RDWR|O_CREAT,0666)。yn[2]==39。amp。yn[1]==39。amp。||yn[0]==39。 if(yn[0]==39。 printf(想要繼續(xù)刪除用戶? (yes/no):)。 rename(C:\\cygwin\\home\\bochi\\,\ C:\\cygwin\\home\\bochi\\)。 close(tempfd)。 } printf(操作成功 \n)。 } lseek(tempfd,0,SEEK_END)。){ byte7=read(userfd,sharebuf,15)。 } //when equal, write behind data if(strncmp(amebuf,usernamebuf,9)==0){ //cycle write behind data to lseek(userfd, 6, SEEK_CUR)。 printf(沒有用戶數(shù)據(jù)或者沒有這個用 戶 \n)。){ byte6=read(userfd,amebuf,9)。在題量少的情況下,此種操作還可行,但當題量多時,要在大循環(huán)里再設(shè)計一個小循環(huán),用來 循環(huán) 讀取某一個用戶的答案,同時還要循環(huán)比較讀出的答案與標準答案 ,直到讀完所有試題時輸出該用戶答案退出小循環(huán),進行下一個用戶的循環(huán)。 continue。 sa3buf[2]==sa3[2]) { mark=mark+100。 sa3buf[0]==sa3[0] amp。 sa2buf[2]==sa2[2]amp。 sa2buf[0]==sa2[0] amp。 sa1buf[2]==sa1[2]amp。 } else if(sa1buf[0]==sa1[0] amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。amp。 sa3buf[2]==sa3[2]) { mark=mark+30。 sa3buf[0]==sa3[0] amp。 sa2buf[2]!=sa2[2]amp。 sa2buf[0]==sa2[0] amp。 sa1buf[2]!=sa1[2]amp。 sa3buf[2]!=sa3[2]|| sa1buf[0]==sa1[0] amp。 sa3buf[0]==sa3[0] amp。 sa2buf[2]==sa2[2]amp。 sa2buf[0]==sa2[0] amp。 sa1buf[2]!=sa1[2]amp。 sa3buf[2]!=sa3[2]|| sa1buf[0]==sa1[0] amp。 sa3buf[0]==sa3[0] amp。 sa2buf[2]!=sa2[2]amp。 sa2buf[0]==sa2[0] amp。 sa1buf[2]==sa1[2]amp。 //judge(confirm the score) if(sa1buf[0]==sa1[0] amp。 byte6=read(answerfd,sa2buf,3)。i++){ printf(%c,mark_name[i])。 for(i=0。 } mark=0。){ byte6=read(answerfd,mark_name,10)。 printf( 接 受 連 接 來自 %s:%d\n,i_ntoa(),ntohs())。name_len)。 if(pid==0){ }//child process data_sock=accept(listen_sock,(struct sockaddr*)amp。 exit(0)。 alarm(sum_sec)。 exit(0)。 continue。min_int(st_d+60)){ system(clear)。st_dmin_int\ ||hour_int==(st_i1)amp。 } else if(hour_int==st_iamp。min_intst_d){ printf(設(shè)置時間過早,請重試 \n)。min_int==st_d) // Examination time {. . . . . .} //服務(wù)器工作 else if(hour_int==st_iamp。 if(hour_int==st_iamp。 //now the int hour time min_int=min_intf()。 while( goal clock() ) 。 //test time(Chang examination) 時間設(shè)置界面: 計時器: void mysleep( clock_t wait ) { clock_t goal。 hour_sec=(ov_ist_i)*3600。 min_sec=(ov_dst_d)*60。 } if((ov_dst_d)0) { ov_i=ov_i1。ov_d=st_d||ov_ist_i) { printf(設(shè)置時間有誤,請重試 )。 if(st_i==ov_iamp。 ov_i=atoi(over_int)。 st_i=atoi(start_int)。 over_dec[2]=39。 over_dec[0]=strt2[3]。 over_int[2]=39。 over_int[0]=strt2[0]。 start_dec[2]=39。 start_dec[0]=strt1[3]。 start_int[2]=39。 start_int[0]=strt1[0]。 printf(設(shè)置考試結(jié)束時間 (HH:MM): )。 } 接著服務(wù)器要求設(shè)置考試的開始與結(jié)束時間: printf(設(shè)置考試開始時間 (HH:MM): )。 //save minute to str2 m_int=atoi(str2)。t)。 t = time(NULL)。 time_t t。 } 服務(wù)器獲取當前分鐘的函數(shù),返回分鐘的整型值: int min_intf(void) { int m_int。 //save hour to str1 h_int=atoi(str1)。t)。 t = time(NULL)。 time_t t。 5 系統(tǒng)詳細設(shè)計 服務(wù)器父進程監(jiān)聽連接 服務(wù)器獲取當前小時的函數(shù),返回小時的整型值: int hour_intf(void) { int h_int。 保存提交答案出錯信息文本 用 戶 學 號lo g e r r .t x t錯 誤 原 因 圖 ER圖 保存用戶連接中的錯誤,包括用戶的學號 ,每個用戶的錯誤之間用“ \n”標識。 存放試題數(shù)據(jù)文本 圖 ER圖 所有字符為 char 類型,長度為輸入結(jié)束的長度。 用戶信息數(shù)據(jù)文本 用 戶 學 號u s e r .t x t用 戶 口 令 圖 ER圖 用戶學號和口令被定義是 char 類型,用戶學號長度是 9 字節(jié),口令長度是 5字節(jié) ,每個用戶之間用“ \n” 標識 。 4 數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫總體設(shè)計 數(shù)據(jù)庫總 體 設(shè)計 ER圖 : 用 戶 學 號用 戶用 戶 口 令用 戶 學 號答 案用 戶 答 案用 戶 學 號登 錄 記 錄讀 取 試 題用 戶 學 號錯 誤 記 錄錯 誤 原 因用 戶 學 號臨 時 答 案用 戶 答 案出 錯提 交登 錄 圖 ER圖 系統(tǒng)數(shù)據(jù)流圖: D 1 u s e r . t x tP 1添 加刪 除 服 務(wù)器D 2 q u e s t i o n . t x tP 2讀 取發(fā) 送客 戶P 3服 務(wù) 器登 記D 3 l o g g e d . t x tP 4服 務(wù) 器登 記學 號 , 錯 誤D 4 l o g e r r . t x tP 6服 務(wù) 器接 收D 6 a n s w e r . t x tD 5 c a n s w e r . t x tP 5客 戶發(fā) 送學 號 口 令學 號 , 答 案學號試題 圖 作為一個實時考試系統(tǒng)無需過于復(fù)雜的數(shù)據(jù)表項,用戶 數(shù)據(jù)文本 保存用戶的登錄學號與登錄口令 ,要實現(xiàn)在添加用戶時防止添加相同學號的用戶。最后讀取服務(wù)器返回的響應(yīng)信息,當返回 的是成功信息時,提示用戶是否想保留作答記錄,進行相應(yīng)操作。 客戶端父進程模塊 客戶端父進程流程圖: 父 進 程成 功 ?發(fā) 起 連 接否退 出 輸 入 學 號是輸 入 口 令發(fā) 送接 收服 務(wù) 器 響 應(yīng)成 功 ?是 否接 收 考 試 時 間
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1