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

正文內(nèi)容

基于c的網(wǎng)絡(luò)聊天軟件的設(shè)計(jì)與實(shí)現(xiàn)(參考版)

2025-06-23 12:30本頁面
  

【正文】 在論文撰寫階段初期。 } ()。 } } catch (Exception ex) { ()。 = sql。 int num = (())。 try { SqlCommand mand = new SqlCommand(sql, )。窗口如圖521所示:圖521 系統(tǒng)消息界面 如無好友請(qǐng)求消息,則顯示如圖522所示:圖522 無好友請(qǐng)求消息 窗體加載時(shí)的流程圖如圖523所示:窗體加載掃描數(shù)據(jù)庫N有未讀信息?YN信息為添加好友信息?Y將該信息置為已讀 讀出信息顯示在窗體中圖523系統(tǒng)消息界面流程圖單擊“同意”按紐,實(shí)現(xiàn)對(duì)方添加當(dāng)前用戶為好友的操作。 // 設(shè)置個(gè)人信息窗體中顯示的頭像 ()。 } }// 雙擊時(shí)選擇頭像 private void lvIcons_MouseDoubleClick(object sender, MouseEventArgs e) { int faceId = [0].ImageIndex。 // 獲得當(dāng)前選中的頭像的索引 (faceId)。關(guān)鍵代碼如下:// 確定選擇頭像 private void btnOK_Click(object sender, EventArgs e) { if ( == 0) { (請(qǐng)選擇一個(gè)頭像!, 提示, , )。如圖520所示:圖520 頭像選擇界面頭像列表要求使用Listview 控鍵實(shí)現(xiàn)。 return sql。{2}39。 } else if () { friendshipPolicyId = ()。 if () { friendshipPolicyId = ()。 , sql, ())。 if (() != ) // 如果修改了密碼就更新密碼字段 { sql = ({0} ,LoginPwd=39。{2}39。{0}39。安全設(shè)置選項(xiàng)界面如圖519所示:圖519 安全設(shè)置 在“安全設(shè)置”選項(xiàng)窗口中能進(jìn)行密碼修改與身份驗(yàn)證設(shè)置。 } finally { ()。 // 指定要執(zhí)行的SQL語句 int result = ()。 // 打開數(shù)據(jù)庫連接 foreach (string id in messageIds) { if (id != ) { updateSql = sql + id。 // 創(chuàng)建Command對(duì)象 = 。 // 更新狀態(tài)的SQL語句的固定部分 string updateSql。 } } /// summary /// 把顯示出的消息置為已讀 /// /summary private void SetMessageRead(string messageIdsString, char separator) { string[] messageIds = (separator)。_39。 } // 把顯示出的消息置為已讀 if ( 1) { ( 1)。 } catch (Exception ex) { ()。 // 轉(zhuǎn)換為日期類型 += (\n{0} {1}\n {2}, nickName, messageTime, message)。 message = (reader[Message])。 SqlDataReader reader = ()。 try { SqlCommand mand = new SqlCommand(sql, )。 // 消息內(nèi)容 string messageTime。 } }讀取信息的流程圖如圖517所示:定時(shí)掃描數(shù)據(jù)庫N有未讀信息?YN未讀信息為聊天信息?Y讀出信息顯示在窗體中將顯出的信息置為已讀圖517 讀取信息流程圖讀取消息部分的關(guān)鍵代碼如下:/// summary /// 讀取所有的未讀消息,顯示在窗體中 /// /summary private void ShowMessage() { string messageIdsString = 。 } = 。 } finally { ()。 result = ()。 try { // 執(zhí)行命令 SqlCommand mand = new SqlCommand(sql, )。{2}39。 } else // 發(fā)送消息,寫入數(shù)據(jù)庫 { // MessageTypeId:1表示聊天消息,為簡(jiǎn)化操作沒有讀取數(shù)據(jù)表,到S2可以用常量或者枚舉實(shí)現(xiàn) // MessageState:0表示消息狀態(tài)是未讀 int result = 1。 } else if (().Length 50) { (消息內(nèi)容過長(zhǎng),請(qǐng)分為幾條發(fā)送!, 提示, , )。} 聊天界面設(shè)計(jì)當(dāng)有消息時(shí),主窗體中好友頭像閃爍,雙擊頭像,彈出“聊天”窗口,如圖515所示:圖515 聊天界面 NNYY將信息寫入數(shù)據(jù)庫信息過長(zhǎng)?發(fā)送空消息?用戶輸入發(fā)送信息發(fā)送信息的流程圖如圖516所示:圖516 發(fā)送信息流程圖發(fā)送消息部分的關(guān)鍵代碼如下: // 發(fā)送消息 private void btnSend_Click(object sender, EventArgs e) { if (() == ) // 不能發(fā)送空消息 { (不能發(fā)送空消息!, 提示, , )。 = true。// 設(shè)置控件的屬性 = 。 [0].Clear()。, ageCondition, sexCondition)。 } else { sql += ( WHERE {0} AND Sex=39。{0}39。amp。 sexCondition == ) { sql += ( WHERE {0}, ageCondition)。 } else { if (ageCondition != amp。 sexCondition == ) { (還沒有選擇查詢條件呢!, 提示, , )。 }if (ageCondition == amp。 default: ageCondition = 。 case 6: ageCondition = Age=50。 case 5: ageCondition = Age=40 AND Age50。 case 4: ageCondition = Age=30 AND Age40。 case 3: ageCondition = Age=20 AND Age30。 case 2: ageCondition = Age=10 AND Age20。 // 性別條件// 確定年齡的范圍 switch () { case 1: ageCondition = Age=0 AND Age10。string ageCondition = 。 //“上一步”按鈕可見 } /// 高級(jí)查找 private void AdvancedSearch() { string sql = 。 = true。// 設(shè)置控件可見的屬性 // 調(diào)整顯示結(jié)果的panel的位置,讓它和顯示條件的Panel的位置相同 = 。 = sql。, ())。 } // 按昵稱查找 else { sql += ( WHERE NickName like 39。 return。amp。 // 查詢語句的前半部分 sql = SELECT Id,NickName,Age,Sex FROM Users。如果需要身份驗(yàn)證,不要求輸入驗(yàn)證消息內(nèi)容,直接發(fā)送驗(yàn)證消息即可。要求以DataGridView 控件顯示查找的結(jié)果。“高級(jí)查找”界面如圖513所示:圖513 高級(jí)查找操作方法同基本查找類似。 // 啟動(dòng)閃爍頭像定時(shí)器 } } 查找/添加好友界面設(shè)計(jì) 在主界面中單擊“查”字樣按鈕后,出現(xiàn)查找/添加好友界面如圖510所示:圖510 查找/添加好友界面 直接點(diǎn)擊“查找”后,即查找所有用戶,查詢結(jié)果如圖511所示:圖511 基本查找單擊“上一步”則回到“基本查找”頁面。 ()。 } // 如果發(fā)消息的人沒有在列表中就添加到陌生人
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1