c++语言程序设计教程与实验实验报告,C++程序设计课程设计实验报告—网络五子棋...
C++程序設(shè)計(jì)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告—網(wǎng)絡(luò)五子棋
計(jì)算機(jī)學(xué)院 實(shí)驗(yàn)報(bào)告 課程名稱(chēng): C++程序設(shè)計(jì)課程設(shè)計(jì) 開(kāi)課學(xué)期: 2010—2011學(xué)年第2學(xué)期 院 班: 計(jì)算機(jī)學(xué)院 093 指導(dǎo)老師: 項(xiàng)目題目: 網(wǎng)絡(luò)五子棋 學(xué)生姓名(學(xué)號(hào)): 提交時(shí)間: 一、實(shí)驗(yàn)?zāi)康?………………. 二、實(shí)驗(yàn)內(nèi)容 編寫(xiě)程序具有如下功能(寫(xiě)明分工): ………………. 三、游戲描述 本游戲用C++語(yǔ)言編寫(xiě),運(yùn)行環(huán)境為Visual C++ 6.0 1、 菜單:在fivechess resources中插入菜單(IDR_MAIN_MENU) a) 菜單項(xiàng):新游戲(ID_NEW_GAME_MENU) b) 子菜項(xiàng):和棋(ID_DRAW_GAME_MENU) c) 子菜項(xiàng):退出游戲:(ID_EXIT_GAME_MENU) d) 成員變量有 2、在dialog中的fivechess resources里的IDD_FIVECHESS_DIALOG的屬性中把這個(gè)菜單(IDR_MAIN_MENU)加載進(jìn)來(lái)(在游戲開(kāi)始之后它就會(huì)自動(dòng)的加載進(jìn)來(lái)) 然后我們通過(guò)類(lèi)向?qū)Ыo它添加響應(yīng)函數(shù) Objects ID;ID_EXIT_GAME_MENU Messages; COMMAND Member function Name;OnExitGameMenu Objects ID;ID_NEW_GAME_MENU Messages; COMMAND Member function Name;OnNewGameMenu Objects ID;ID_DRAW_GAME_MENU Messages; COMMAND Member function Name;OnDrawGameMenu 2、 我們開(kāi)始實(shí)現(xiàn)函數(shù); a) 首先我們實(shí)現(xiàn)退出函數(shù);退出函數(shù)比較簡(jiǎn)單,我們只要調(diào)用基類(lèi)的CDialog::OnCancel()函數(shù)就可以實(shí)現(xiàn)退出函數(shù)的功能 b) 新游戲菜單OnNewGameMenu的實(shí)現(xiàn) 我們需要首先調(diào)用 設(shè)置對(duì)話框 void CFiveChessDlg::OnNewGameMenu() { if(IDOK==m_setup_dlg.DoModal())//在這里而我們暫且把這個(gè)對(duì)話框命名為本類(lèi)的一個(gè)子對(duì)象,當(dāng)他的模式彈出對(duì)話框 { Restart();// NewGameStart(m_setup_dlg. m_isHost);// 當(dāng)他點(diǎn)擊確定以后,我們就可以調(diào)用NewGameStart這個(gè)游戲開(kāi)始接口函數(shù),這個(gè)m_isHost是CSetupDlg中的一個(gè)成員變量,他描述了本次主機(jī)還是客戶機(jī)差別,調(diào)用這個(gè)函數(shù)后就可以開(kāi)始新游戲 } } 同樣和棋OnDrawGameMenu我們也需要游戲提供一個(gè)接口,這個(gè)時(shí)候我們可以在菜單中調(diào)用這個(gè)和棋函數(shù) void CFiveChessDlg::OnDrawGameMenu() { DrawGame(); } 好完成了菜單的設(shè)計(jì) 3、 接下來(lái)是網(wǎng)絡(luò)設(shè)置對(duì)話框的設(shè)計(jì) a) 我們?cè)谫Y源視圖中的Dialog中右鍵單擊InsertDialog加入一個(gè)對(duì)話框 ID:IDD_SETUP_DLGCaption:網(wǎng)絡(luò)設(shè)置 雙擊這個(gè)對(duì)話框上的OK按鈕,這里是給這個(gè)對(duì)話框建一個(gè)類(lèi)CSetupDlg 網(wǎng)絡(luò)設(shè)置 O主機(jī)類(lèi)型選擇O客戶機(jī) IDC_HOST_OPTION IDC_CLIENT_OPTION IP地址:IDC_IP_ADDRESS__EDIT 端口號(hào):IDC_NET_PORT_EDIT | 確 定 ||取 消| 然后我們給這兩個(gè)對(duì)象建立兩個(gè)相關(guān)的變量 Member number name:Category:Variable type: IDC_ID_ADDRESS_EDITControlCIPAddressCtrl Member number name:Category:Variable type: IDC_NET_PORT_EDITUNITm_net_port Minimum:1 Maximum:65530 現(xiàn)在來(lái)實(shí)現(xiàn)他的類(lèi) 首先要實(shí)現(xiàn)他其中的ok函數(shù)和cancel函數(shù) FiveChess.cppObject IDs:Messages: FiveChess.rcIDCANCELBN_CLICKED FiveChessDlg.cppIDOKBN_CLICKED ----------------------- |SetupDlg.cpp | ---------------------- StdAfx.cpp 在點(diǎn)擊了ok按鈕以后就需要把IP地址的端口號(hào)記錄下來(lái),那么我們就需要定義一個(gè)CString類(lèi)的一個(gè)IP地址和Port; void CSetupDlg::OnCancel() { CDialog::OnCancel(); } void CSetupDlg::OnOK() { CString strIP, strPort; UpdateData(TRUE);//然后我們更新數(shù)據(jù)朝變量 m_ip_addr.GetWindowText(strIP);//把IP地址得到 m_strHostIP = strIP; strPort.at(“%d“, m_net_port);//然后也得到端口號(hào),把它格式化出來(lái) if(m_isHost)//在SetupDlg.h頭文件中聲明一個(gè)Host是否是主機(jī)的標(biāo)識(shí)位,這里我們用BOOL型來(lái)代替(public:BOOL m_isHost;)并在初始化的時(shí)候設(shè)置為FALSE(在SetupDlg.cpp中的初始化函數(shù)中CSetupDlg::CSetupDlg(CWnd* pParent /*=NULL*/): CDialog(CSetupDlg::IDD, pParent) { //{{AFX_DATA_INIT(CSetupDlg) m_net_port = 0; m_is_Host = FALSE; /
總結(jié)
以上是生活随笔為你收集整理的c++语言程序设计教程与实验实验报告,C++程序设计课程设计实验报告—网络五子棋...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【愚公系列】2021年11月 攻防世界-
- 下一篇: 中国创新热血时代来临!12位正规军演讲精