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

正文內(nèi)容

嵌入式linux應(yīng)用程序設(shè)計(jì)課程設(shè)計(jì)-多用戶網(wǎng)絡(luò)版學(xué)生學(xué)藉管理系統(tǒng)說明書(留存版)

  

【正文】 登陸 請(qǐng)求 void handle_input() 學(xué)藉信息錄入 void handle_display() 發(fā)送顯示信息請(qǐng)求 void handle_delet() 發(fā)送刪除信息請(qǐng)求 void handle_update() 發(fā)送修改信息請(qǐng)求 11 void handle_select() 發(fā)送查詢信息請(qǐng)求 void handle_exit() 退出 服務(wù)器: void user_manage() 用戶管理函數(shù) void *pthread_accept(void *arg) 等待接收 socket 連接線程處理 void *pthread_handleclient(void *arg) 線程處理函數(shù) int reg_check(struct message sock_msg) 核對(duì)注冊(cè)請(qǐng)求 int log_check(struct message sock_msg) 核對(duì)登陸請(qǐng)求 計(jì)算參數(shù)所指定的文件中的記錄的個(gè)數(shù)的函數(shù) int count(char * a) 服務(wù)器信息存儲(chǔ) void handle_input(struct message sock_msg,Client_Inf client_inf) 讀出學(xué)藉信息 void handle_display(Client_Inf client_inf) 刪除信息查找 void handle_delete(struct message sock_msg,Client_Inf client_inf) 修改信息查找 void handle_update(struct message sock_msg,Client_Inf client_inf) 查詢信息查找 void handle_select(struct message sock_msg,Client_Inf client_inf) 詳細(xì)設(shè)計(jì) 主要函數(shù)功能詳細(xì)說明: 客戶端: void handle_regist() //提出注冊(cè)請(qǐng)求 { 輸 入用戶名和兩次密碼; 發(fā)送給客戶端; send_msg(sockfd,socket_msg)。 轉(zhuǎn)入到相應(yīng)處理函數(shù); } int reg_check(struct message sock_msg) //核對(duì)注冊(cè)請(qǐng)求 { 依次從文件中讀取信息 和接收到的信息相比; 都不相等則追加寫入,注冊(cè)成功; 否則注冊(cè)失??; } int log_check(struct message sock_msg) //核對(duì)登陸請(qǐng)求 { 依次從文件中讀取信息和接收到的 信息相比; 找到相等,登陸成功; 否則登陸失??; } int count(char * a) //計(jì)算參數(shù)所指定的文件中的記錄的個(gè)數(shù)的函數(shù) { if((fp=fopen(a,rb))==NULL)//只讀方式打開指定文件 { printf(\nCannot open file\n)。sock_student, sizeof(struct message),1,fp)。 } if (listen_sock(server_fd,10)==1) { perror(listen_sock:\n)。 } if(strcmp(,)==0) { close(fd)。user_msg,sizeof(struct message)))0) { perror(log:read )。 if((fp=fopen(,ab)) == NULL) //if((fp=fopen(,wb))==NULL) { printf(\t 打開信息文件失敗 !)。 } int count(char * a)//計(jì)算參數(shù)所指定的文件中的記錄的個(gè)數(shù)的函數(shù) { FILE *fp。 memset(,0,strlen())。 send_msg(,sock_msg)。 //struct Info info, info_temp。 // 指示是否保存修改 amount=count()。 total++。 conamount。 for(con=0。 memset(,0,strlen())。 int total=0。 getchar()。 } if(!strcmp(pfnum,no)) { if((fp=fopen(,rb+))==NULL) { printf(\n\n 文件打開失敗 !)。 } else { printf(修改失敗 ! \n)。 struct Node * head=NULL, * pf=NULL, * pb=NULL。 conamount。amp。 strcpy(,\n 你要查詢的信 息不存在 ! \n)。 28 五、運(yùn)行結(jié)果 圖 51 客戶端未登陸 界面 圖 52 服務(wù)器初始界面 29 圖 53 客戶端注冊(cè)界面 圖 54 客戶端登陸界 面 30 圖 55 客戶端學(xué)藉錄入界面 圖 55 客戶端學(xué)藉顯示界面 31 圖 56 客戶端顯示學(xué)藉刪除界面 圖 57 客戶端顯示學(xué)藉 修改 界面 32 圖 58 客戶端顯示學(xué)藉查詢界面 圖 59 通過以上操作后服務(wù)器顯示界面 33 六、參考文獻(xiàn) [1]孫天澤編著 .嵌入式 Linux 操作系統(tǒng) .北京:人民郵電出版社, 2020 [ 2] 張海藩 .《軟件工程導(dǎo)論》 .北京:清華大學(xué)出版社, 2020 [3] 楊路明 .C 語(yǔ)言程序設(shè)計(jì)教程 .北京:北京郵電大學(xué)出版社 2020 [4]百度文庫(kù)(搜索了一些 Linux 的課程設(shè)計(jì)論文的模塊) [5] 百度網(wǎng)頁(yè)(搜索了一些關(guān)于如何制作程序菜單和制作 word 目錄) 34 課程設(shè)計(jì)任務(wù)書及成績(jī)?cè)u(píng)定 課題名稱:多用戶網(wǎng)絡(luò)版學(xué)生學(xué)藉管理系統(tǒng) 完 成 者:甘云 設(shè)計(jì)的目的與要求: 1)通過課程設(shè)計(jì)更進(jìn)一步理解嵌入式 LinuxC 基礎(chǔ)知識(shí)和其應(yīng)用程序設(shè)計(jì)思想。 并且在本次課程設(shè)計(jì)的過程中,讓我進(jìn)一步認(rèn)識(shí)到了團(tuán)隊(duì)的力量,只有團(tuán)結(jié)才能發(fā)揮出一個(gè)集體的力量。 exit(1)。 pf=pb。 // 指示是否保存修改 char choice=0。 struct Node { char num[10]。 //printf(%s,%s\n,)。 pf=head。 getchar()。 }。 printf(已刪除學(xué)生 : %s\n,no)。 getchar()。 } if((fp1=fopen(,wb))==NULL) { printf(\n\n 文件打開失敗 !)。 } pb=(struct Node *)malloc(sizeof(struct Node))。 int offset=0。 struct Node * next。totaln。!feof(fp)。 send_msg(,sock_msg)。 return 0。 return 0。 if((fd=open(,O_RDWR|O_CREAT|O_APPEND,0666))0) { perror(open)。 exit(1)。sock_msg, sizeof(struct message), 1, fp) send_msg(,sock_msg)。)。//客戶通信 socket struct sockaddr_in addr。 6) 學(xué)生 學(xué)藉查詢 模塊: 客戶端提出 學(xué)生 學(xué)藉查詢請(qǐng)求(按學(xué)號(hào)),服務(wù)端完成對(duì)圖書信息查詢并將查詢結(jié)果返回給客戶端 。所以開設(shè)了這次課程設(shè) 計(jì),目的在于使學(xué)生達(dá)到熟練掌握嵌入式 LinuxC 編程基本知識(shí)的技能,掌握其應(yīng)用程序設(shè)計(jì)的基本思路和方法,能夠利用所學(xué)的基本知識(shí)和技能, 做一個(gè)簡(jiǎn)單的多用戶網(wǎng)絡(luò)版的管理系統(tǒng) 。因此必須強(qiáng)調(diào)多上機(jī)實(shí)踐。例如在錄入學(xué)生學(xué)籍信息時(shí),設(shè)計(jì)了關(guān)于數(shù)據(jù)有效性的操作等。 通過 這次 課程設(shè)計(jì), 達(dá)到更加靈活的運(yùn)用所學(xué)的理論和知識(shí)和方法, 以及獨(dú)立分析和解決問題的能力;培養(yǎng)實(shí)事求是、認(rèn)真、嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和刻苦鉆研不斷創(chuàng)新的精神 ,逐步建立正確的全局觀念。 7) 功能調(diào)試。 } void handle_login() //提出登陸請(qǐng)求 { 輸入用戶名和密碼; send_msg(sockfd,socket_msg)。 getchar()。 fwrite(amp。 exit(1)。 return 1。 close(fd)。 getchar()。 int i。 strcpy(, )。 } send_msg(,sock_msg)。 struct message sock_student,sock_temp。 if((fp=fopen(,rb)) == NULL) { printf(\t 打開信息文件失敗 !)。 } fclose(fp)。 con++) { // only one if(con==offset) {fseek(fp,(long)sizeof(struct message),1)。 conamount。 memset(,0,strlen())。 long offset=0。 exit(1)。 getchar()。 strcpy(,no)。 //struct Info info, info_temp。 con++) { if(fread(amp。 pfnext!=NULL) { pf=pfnext。 send_msg(,sock_student)。 2)訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),并在此過程中培養(yǎng)嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的工作作風(fēng)。 函數(shù)功能也得到了進(jìn)一步的完善。 getchar()。 pbnext=NULL。 // 在修改中用于重復(fù)的輸入 int Yes=0。 struct message sock_student。sock_student)。 } fclose(fp)。 if((fp=fopen(,rb)) == NULL) { printf(\t 打開信息文件失敗 !)。 22 struct Node * next。 strcpy(,\n 已刪除 ...\n\n)。 if((fp1=fopen(,rb))==NULL) { printf(\n\n 文件打開失敗 !)。 exit(1)。 exit(1)。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1