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

正文內(nèi)容

操作系統(tǒng)網(wǎng)上實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-閱讀頁(yè)

2025-07-13 10:15本頁(yè)面
  

【正文】 師 in (select ID from 老師表)實(shí)驗(yàn)級(jí)別 Varchar 5 Gb2312完成時(shí)間 Data 20220901說(shuō)明書名 Varchar 30 0 Gb2312示例結(jié)果 Varchar 30 Gb2312表 33 實(shí)驗(yàn)表實(shí)驗(yàn)完成表Field NameDatatype Len Default PK? Not Null?Charset Comment學(xué)號(hào) Varchar 6 ? ? Gb2312 學(xué)號(hào) in (select ID from 學(xué)生表)實(shí)驗(yàn)號(hào) Varchar 6 ? ? Gb2312 實(shí)驗(yàn)號(hào) in(select ID from 實(shí)驗(yàn)表)完成時(shí)間 Data陜西理工學(xué)院畢業(yè)設(shè)計(jì)第 14 頁(yè) 共 61 頁(yè)實(shí)驗(yàn)報(bào)告 Varchar 30 Gb2312實(shí)驗(yàn)結(jié)果 Varchar 30 Gb2312疑惑記錄 Varchar 100 2表 34 實(shí)驗(yàn)完成表實(shí)驗(yàn)評(píng)閱表Field NameDatatype Len Default PK? Not Null?Charset Comment學(xué)號(hào) Varchar 6 ? ? Gb2312 學(xué)號(hào) in (select ID from 學(xué)生表)實(shí)驗(yàn)號(hào) Varchar 5 ? ? Gb2312 實(shí)驗(yàn)號(hào) in(select ID from 實(shí)驗(yàn)表)老師工號(hào) Varchar 5 ? Gb2312 老師工號(hào) in(select ID from 老師表)評(píng)閱時(shí)間 Data得分 Int 2重修意見 Int 1 1 重修意見 in (1,0)點(diǎn)評(píng) Varchar 100 Gb2312表 35 實(shí)驗(yàn)評(píng)閱表注釋:重修意見 1 代表不重修,0 表示重修。在操作系統(tǒng)網(wǎng)上實(shí)驗(yàn)系統(tǒng)中,我們使用 ADO 技術(shù)實(shí)現(xiàn) mysql 與 VC的鏈接。(1)打開 工具欄 Tools 菜單下的 Options 選項(xiàng),在 Directories 的標(biāo)簽頁(yè)中右邊的“Show directories for:”下拉列表中選中 “Includefiles”,然后在中間列表框中添加你本地安裝 MySQL 的include 目錄路徑。Lib 目錄下還有 debug 和 opt 兩個(gè)目錄,建議選 debug。(4)在“Project settingsLink:Object/library modules”里面添加“”。(6)初始化 MYSQL 結(jié)構(gòu),使用庫(kù)函數(shù) mysql_init(),使用方法如下:MYSQL *mysql = NULL。(7)鏈接數(shù)據(jù)庫(kù),使用鏈接數(shù)據(jù)庫(kù)函數(shù) mysql_real_connect()。(8)操作數(shù)據(jù)庫(kù),使用數(shù)據(jù)庫(kù)函數(shù) mysql_real_query(),此函數(shù)基本可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的各項(xiàng)操作。(9)獲取數(shù)據(jù)庫(kù)的內(nèi)容,使用庫(kù)函數(shù) mysql_store_result()和 mysql_fetch_row()。應(yīng)用方法如下:MYSQL_RES * res。res = mysql_store_result(amp。//結(jié)果集記錄的集合While ( row = mysql_fetch_row(res)){}//逐行掃描檢索記錄集,為空時(shí)返回 NULL(10)關(guān)閉數(shù)據(jù)的讀取,使用庫(kù)函數(shù) mysql_free_result(res)。注意事項(xiàng),以上函數(shù)的使用方法可以查閱相關(guān)資料或網(wǎng)絡(luò)查詢,如果在操作中遇到漢語(yǔ)無(wú)法操作的時(shí)候在處理 mysql_set_character_set(mysql,gb2312)來(lái)設(shè)置字符集。用戶客戶端對(duì)數(shù)據(jù)的請(qǐng)求,必須通過網(wǎng)絡(luò)通信才能到達(dá)服務(wù)器端,進(jìn)行相應(yīng)的數(shù)據(jù)處理,之后把處理得到的數(shù)據(jù)通過網(wǎng)絡(luò)通信返回給客戶端。 網(wǎng)絡(luò)的基本構(gòu)架ISO 國(guó)際標(biāo)準(zhǔn)化組織對(duì)網(wǎng)絡(luò)的結(jié)構(gòu)提出了 OSI 七層參考模式,他們分別是:應(yīng)用層,主要處理網(wǎng)際應(yīng)用;表示層,用于數(shù)據(jù)表示;會(huì)話層,主要用于主機(jī)間的通信;傳輸層,主要用于端到端端的鏈接;網(wǎng)絡(luò)層,主要是尋址和最短路勁;數(shù)據(jù)鏈路層,主要是介質(zhì)訪問接入;物理層,主要是將轉(zhuǎn)化的二進(jìn)制數(shù)據(jù)進(jìn)行傳輸。在操作系統(tǒng)網(wǎng)上試驗(yàn)系統(tǒng)中,我們采用的是 TCP/IP 協(xié)議進(jìn)行網(wǎng)絡(luò)通信,TCP/IP 網(wǎng)絡(luò)協(xié)議棧和 OSI 七層模型不同,他只有四層,分別為應(yīng)用層,傳輸層,網(wǎng)絡(luò)層和鏈路層。陜西理工學(xué)院畢業(yè)設(shè)計(jì)第 16 頁(yè) 共 61 頁(yè)應(yīng)用層表示層會(huì)話層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層物理層應(yīng)用層傳輸層網(wǎng)絡(luò)層鏈路層圖 OSI 參考模式與 TCP/IP 的對(duì)應(yīng)關(guān)系 TCP/IP 數(shù)據(jù)包及通信模式從客戶端得到的數(shù)據(jù)不能直接從一臺(tái)計(jì)算機(jī)傳送到另一臺(tái)計(jì)算機(jī),必須經(jīng)過一定的數(shù)據(jù)處理生成相應(yīng)的二進(jìn)制代碼,才能傳送,這個(gè)過程稱為數(shù)據(jù)封轉(zhuǎn)。圖 TCP/IP 數(shù)據(jù)封轉(zhuǎn)過程數(shù)據(jù)封轉(zhuǎn)之后,就可以在通信鏈路上進(jìn)行數(shù)據(jù)的傳輸了。陜西理工學(xué)院畢業(yè)設(shè)計(jì)第 17 頁(yè) 共 61 頁(yè)圖 TCP/IP 的通信模式 Socket 網(wǎng)絡(luò)傳輸程序的設(shè)計(jì)在掌握了網(wǎng)絡(luò)的基本知識(shí)和 TCP/IP 的數(shù)據(jù)結(jié)構(gòu)或通信模式之后,就可以應(yīng)用系統(tǒng)提供的socket API 接口進(jìn)行編程,實(shí)現(xiàn)網(wǎng)絡(luò)的通信。(1)對(duì)于服務(wù)器端,他的實(shí)現(xiàn)過程如以下清單:1)使用 socket() 建立套接字,初始化 SOCKET 套接字,其中主要包括指定使用何種協(xié)議,地址,字節(jié)序的轉(zhuǎn)換(因?yàn)榫W(wǎng)絡(luò)字節(jié)序?yàn)榇蠖诵问蕉鳈C(jī)的字節(jié)序有大端也有小端,所以需要必須的轉(zhuǎn)換) 。3)通過 listen(),通知 TCP 服務(wù)器準(zhǔn)備好接收鏈接。5)通過 recv()/send()函數(shù),讀取客戶端的數(shù)據(jù)或向客戶端發(fā)送數(shù)據(jù)。7)使用 closesocket(),關(guān)閉原始套接字,結(jié)束服務(wù)。3)通過 recv()/send()函數(shù),讀取服務(wù)器端的數(shù)據(jù)或向服務(wù)器端發(fā)送數(shù)據(jù)。TCP/IP 協(xié)議實(shí)現(xiàn)通信的程序流程如圖 所示。 服務(wù)器端程序流程圖其大致流程是:當(dāng)服務(wù)器接收到數(shù)據(jù)請(qǐng)求時(shí),判斷是何種請(qǐng)求,根據(jù)請(qǐng)求類型尋找到相應(yīng)的數(shù)據(jù)請(qǐng)求條件,再對(duì)該條件進(jìn)行相應(yīng)的處理,更新或查詢數(shù)據(jù)庫(kù)系統(tǒng)或?qū)Ψ?wù)器本身做相應(yīng)的處理,獲取返回的數(shù)據(jù)信息,再根據(jù)需要把相應(yīng)的信息換回給客戶端或反饋給服務(wù)器。當(dāng)然,在實(shí)現(xiàn)的時(shí)候,還要設(shè)計(jì)很多的判決條件,以保證系統(tǒng)的健壯性。(1)CMyMySQL 類的具體函數(shù)和功能如下清單所示:public:BOOL DB_SELECT(char *)。 //執(zhí)行對(duì)數(shù)據(jù)庫(kù)的除查詢之外的所有操作,傳入操作字符串,如果操作成功返回 TURE 失敗返回 FALSEBOOL DB_CONNECT()。 //執(zhí)行查詢時(shí),獲取對(duì)于數(shù)據(jù)表的每一行,把結(jié)果集傳給 row 變量,陜西理工學(xué)院畢業(yè)設(shè)計(jì)第 20 頁(yè) 共 61 頁(yè)如果操作成功返回 TURE 失敗返回 FALSEvoid DB_GETNUMLENTH(unsigned long **)。unsigned int DB_GETNUMBER()。void DB_CLOSE_SELECT()。// 關(guān)閉數(shù)據(jù)庫(kù)鏈接private:MYSQL *mysql。 //搜索結(jié)果集public:MYSQL_ROW row。 // 關(guān)閉套接字int CloseConn()。 //接收客戶端數(shù)據(jù),傳入接收緩沖區(qū)和緩沖區(qū)大小,返回接收的字節(jié)數(shù)。// 向客戶端發(fā)送數(shù)據(jù),傳入要發(fā)送的數(shù)據(jù)和字節(jié)大小,返回發(fā)送的字節(jié)數(shù)。 //建立鏈接int Init()。 //創(chuàng)建套接字 SOCKET 結(jié)構(gòu)SOCKET sockConn。美觀的操作界面,簡(jiǎn)單的操作過程,功能的完善,是研發(fā)系統(tǒng)時(shí)必須充分考慮的一個(gè)因素,也是判斷一個(gè)系統(tǒng)性價(jià)比的一個(gè)重要的參照物。此時(shí)我們?cè)?BOOL CMainFrame::PreCreateWindow(CREATESTRUCTamp。為了美觀,我們?yōu)橹饕晥D添加一張圖片,其方法如下:(1)首先準(zhǔn)備好一張美麗的圖片(最好小于 16 色) ,保存為 BMP 格式(2)在 COnLineTestMSTView 類添加一個(gè)畫刷變量 CBrush m_brushBackground。(IDB_BITMAP)。bmp)。GetClientRect(rect)。m_brushBackground)。}現(xiàn)在就有一個(gè)美麗的主界面了,但是在主界面出現(xiàn)之前,需要先出現(xiàn)一個(gè)登錄界面,在用戶登錄之后,才能有權(quán)限進(jìn)行其他的操作。這時(shí)在運(yùn)行程序之前,就會(huì)先運(yùn)行該對(duì)話框,只有對(duì)該對(duì)話框進(jìn)行正確的操作之后才能進(jìn)入到住對(duì)話框。陜西理工學(xué)院畢業(yè)設(shè)計(jì)第 22 頁(yè) 共 61 頁(yè)開始獲取并處理個(gè)人信息正確 ?輸入個(gè)人信息與服務(wù)器建立鏈接發(fā)送查詢請(qǐng)求發(fā)送查詢條件返回查詢結(jié)果進(jìn)入主界面驗(yàn)證信息記錄登錄信息關(guān)閉鏈接 … … …YN 圖 登陸模塊程序流程圖 操作界面的設(shè)計(jì)和實(shí)現(xiàn)登錄成功之后,就進(jìn)入到相應(yīng)角色的操作界面了。此時(shí)進(jìn)入到主界面之后,可以看到有一張美麗圖片的主視圖,而我們需要的是可以在這個(gè)界面里面可以有相應(yīng)的用戶和機(jī)器的交互操作,我們需要在主界面添加必要的控件。當(dāng)?shù)卿洺晒r(shí),在網(wǎng)上實(shí)驗(yàn)系統(tǒng)的根目錄下有賬號(hào)管理和實(shí)驗(yàn)管理兩個(gè)目錄,在賬號(hào)管理下有查看基本信息、修改密碼和修改密碼三個(gè)葉子節(jié)點(diǎn),基本信息用一個(gè)對(duì)話框視圖表示出來(lái),修改資料和修改密碼可以直接用對(duì)話框操作。對(duì)于學(xué)生,主要有檢索實(shí)驗(yàn)(用列表視圖展示) ,查看說(shuō)明書(系統(tǒng)提供的 word 工具) ,查看示例結(jié)果(運(yùn)用多進(jìn)程調(diào)用執(zhí)行文件) ,已完成,未完成,重修實(shí)驗(yàn),查閱評(píng)閱(以上都用列表視圖) ,提交實(shí)驗(yàn)報(bào)告(對(duì)話框直接操作) ;對(duì)于老師,主要有根據(jù)專業(yè)檢索實(shí)驗(yàn)和查看完成情況(以上都用列表視圖) ,上傳實(shí)驗(yàn)資料和評(píng)閱(對(duì)話框直接操作) ,查看實(shí)驗(yàn)報(bào)告和查看示例結(jié)果(調(diào)用系統(tǒng)程序) 。2)添加 CSplitterWnd 變量 m_split。到此,運(yùn)行程序,我們可以看到主視圖被分為兩個(gè)部分,此時(shí)我們需要在左邊的窗口添加樹狀目錄,方法如下:陜西理工學(xué)院畢業(yè)設(shè)計(jì)第 23 頁(yè) 共 61 頁(yè)(2)為工程創(chuàng)建新類,名為 CLeftTreeView,繼承自 CTreeView。(4)根據(jù)登錄角色的不同構(gòu)造不同的目錄樹,具體的操作方法參照 MFC 或網(wǎng)絡(luò)查詢。} else if(teacher){CreateTeacherTree()。為了在點(diǎn)擊了目錄節(jié)點(diǎn)之后,右邊窗口有不同的動(dòng)作,在添加點(diǎn)擊觸發(fā)消息之前,我們需要設(shè)置右邊窗口視圖切換,方法如下:(6)在 CMainFrame 類添加 void CMainFrame::SwitchToView(int nViewType)函數(shù),傳入的參數(shù)表示要卻換到那個(gè)窗口,在該函數(shù)中添加 CView * 變量 pView,之后調(diào)用 pViewGetClientRect()函數(shù)加載視圖,之后使用 switch()函數(shù)來(lái)卻換不同的視圖,卻換使用()和 函數(shù)。(7)有了不同的視圖,現(xiàn)在我們需要處理點(diǎn)擊事件了,為 CLeftTreeView 類添加=NM_DBLCLK 消息,生成函數(shù) OnDblclk()函數(shù),在該函數(shù)中設(shè)置點(diǎn)擊事件的操作,具體的操作方法參照 MFC 或網(wǎng)絡(luò)查詢。} else if(teacher){ClickTeacher()。和服務(wù)器端一樣,為了操作的統(tǒng)一和數(shù)據(jù)的安全性,需要對(duì)網(wǎng)絡(luò)客戶端進(jìn)行封裝,具體過程如下:class CMyClient {public:int Cclosesocket()。 //接收來(lái)自服務(wù)器的數(shù)據(jù),和服務(wù)器端該函數(shù)相同陜西理工學(xué)院畢業(yè)設(shè)計(jì)第 24 頁(yè) 共 61 頁(yè)int CSend(char *,int)。//鏈接服務(wù)器,默認(rèn)為本機(jī)服務(wù)器,端口為6000CMyClient()。//清除緩沖區(qū)private:SOCKET sockClient。(9)在點(diǎn)擊事件中生成的各視圖或?qū)υ捒蛱砑颖匾目刂铺幚恚驯WC程序的正確性。陜西理工學(xué)院畢業(yè)設(shè)計(jì)第 25 頁(yè) 共 61 頁(yè)4 系統(tǒng)測(cè)試在系統(tǒng)構(gòu)造好之后,不一定就會(huì)達(dá)到用戶的需求,程序能正確的執(zhí)行。 測(cè)試策略在進(jìn)行測(cè)試之前,我們需要對(duì)操作系統(tǒng)網(wǎng)上實(shí)驗(yàn)系統(tǒng)制定一個(gè)測(cè)試策略。操作系統(tǒng)網(wǎng)上實(shí)驗(yàn)系統(tǒng)由服務(wù)器和客戶端兩部分組成,而服務(wù)器端和客戶端都由很多互不相關(guān)的小單元組成,對(duì)于操作系統(tǒng)網(wǎng)上實(shí)驗(yàn)系統(tǒng)的測(cè)試需要分為兩步進(jìn)行:?jiǎn)卧獪y(cè)試即模塊測(cè)試(包括對(duì)服務(wù)器端和客戶端組成的單元的測(cè)試和整合后的服務(wù)器端和客戶端進(jìn)行測(cè)試) ,系統(tǒng)測(cè)試也即系統(tǒng)整合折后的功能測(cè)試。在沒有語(yǔ)法錯(cuò)誤的情況下,需要進(jìn)行人為的檢測(cè),以保證程序的邏輯正確。如圖 所示,是以 select 查詢?yōu)槔?,查詢的結(jié)果。下面我們以網(wǎng)絡(luò)通信和數(shù)據(jù)庫(kù)操作相結(jié)合的實(shí)例說(shuō)明測(cè)試結(jié)果,如圖 所示,左邊表示服務(wù)器端,右邊表示客戶端,客戶端和服務(wù)器連接成功之后,客戶端向服務(wù)器發(fā)送了一個(gè)數(shù)據(jù)庫(kù)插入的請(qǐng)求,服務(wù)器接收到請(qǐng)求(0 或 1 字符串) ,之后客戶端發(fā)送插入語(yǔ)句(insert)給服務(wù)器服務(wù)器收到字符串之陜西理工學(xué)院畢業(yè)設(shè)計(jì)第 26 頁(yè) 共 61 頁(yè)后操作數(shù)據(jù)庫(kù),之后向客戶端返回操作信息(0 或 1 字符串,該串表示操作成功) 。在通過改正之后,基本達(dá)到設(shè)計(jì)的要求,各單元模塊能很好地運(yùn)行,邏輯及語(yǔ)法無(wú)誤。在把個(gè)單元整理之后,組成了一個(gè)完整的系統(tǒng)。首先開啟 mysql 服務(wù)器,運(yùn)行服務(wù)器端程序,在運(yùn)行客戶端,首先進(jìn)入到登錄界面。如圖 為學(xué)生登錄時(shí)主界面。圖 老師登錄時(shí)操作主界面其中賬號(hào)管理部分,老師和學(xué)生的操作權(quán)限相同,如圖 所示,為點(diǎn)擊查看基本信息之后的運(yùn)行結(jié)果。在實(shí)驗(yàn)管理部分,當(dāng)檢索實(shí)驗(yàn)室,右邊視圖窗口會(huì)出現(xiàn)一個(gè)列表視圖,視圖里面有查詢的相關(guān)的內(nèi)容,圖 所示,為學(xué)生點(diǎn)擊檢索實(shí)驗(yàn),查詢到
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1