編寫簡單的C/C++源程序和MFC 應用程序
代碼倉庫:https://github.com/SKPrimin/HomeWork/tree/main/Socket/E1_C_program_and_MFC
實驗目的
- 了解本地計算機的網絡配置;
- 熟悉 Visual C ++中的 C/C++程序設計編程環境,掌握運行一個 C/C++程序設計的基本步驟,包括編輯、編譯和運行;
- 掌握 C/C++語言程序設計的基本框架,能夠編寫簡單的 C/C++程序;
- 基於 MFC 編寫簡單的應用程序
實驗任務
-
熟悉實驗環境;
-
查詢本地計算機的 IP 地址、MAC 地址、子網掩碼,ARP 緩存表,使用 ping 命令測試
和安大主頁的連接狀態;
-
分別使用 C、C++顯示本地網絡信息,並把相關信息保存為 TXT 文件;
-
在 MFC 環境下使用基於單文檔和對話框的方法,顯示本地網絡信息;
-
分別使用 C/C++和 MFC 完成課堂教學的例子:兩整數加法器,並比較兩者的區別。
實驗內容
1熟悉實驗環境,檢查計算機和相關軟件是否運行正常。
2查詢本地計算機網絡信息
運行“cmd”出現命令窗口,在此窗口中輸入相關命令:
ipconfig /all
arp –a
netstat –a
對以上相關結果進行記錄(IP 地址,MAC 地址,子網掩碼)
IPv4 地址 . . . . . . . . . . . . : 192.168.50.120(首選)
物理地址. . . . . . . . . . . . . : 30-C9-AB-A8-57-D5
子網掩碼 . . . . . . . . . . . . : 255.255.255.0
使用 Ping 命令測試本地和網站的連接情況:
ping www.baidu.com
3將以上獲取的網絡信息分別按標准 C 和 C++風格顯示出來並保存為 txt 文件
要求顯示和保存的內容格式為:
IP 地址: 192.168.***.***
MAC 地址:30-C9-AB-A8-**-**
子網掩碼:255.255.255.0
3.1 在磁盤(桌面)上新建一個文件夾,用於存放程序,文件夾的名字可以是學號,如C:\Users\admin\Desktop\你的學號。
3.3 相關網絡信息的顯示與保存示例代碼
源程序
#include<fstream>
using namespace std;
int main()
{
ofstream fout("message.txt");
fout << "IP 地址: 192.168.***.***\nMAC 地址:30 - C9 - AB - A8 - ** - **\n子網掩碼:255.255.255.0";
return 0;
}
運行結果
4.使用 MFC 分別在一個對話框和單文檔窗口中顯示以上獲得的主要本地網絡信息
- 使用基於單文檔 SDI 的工程,則在視圖類的 OnDraw(CDC *pDC)函數中添加代碼:
pDC->TextOut(0,0,("*你要顯示的內容!*"));
- 使用基於對話框的工程,直接在靜態文本控件上顯示即可。
5.分別使用 C、C++和 MFC 完成課堂教學例子:兩整數加法器,比較兩類方法
本身的差異和用戶主觀體驗的差異。MFC 部分內容與課堂授課內容完全一致,參照課堂授課內容)
MFC兩整數加法器
項目創建
-
創建新項目,搜索mfc應用
-
-
如果顯示沒有則是下載時未選擇,可以重新選擇
-
-
-
項目命名,並選擇位置
-
選擇基於對話框,其它不用管,點擊完成
窗口設計
-
添加``Edit Control`控件
-
右鍵進入類向導,或使用快捷鍵Ctrl+Shift+X,在成員變量部分設置變量類型
-
雙擊控件,為每一個控件ID設置類別、名稱變量類型
-
控件設置完畢后如圖所示
-
添加運算按鈕
功能實現
-
設置運算按鈕底層算法,雙擊按鈕
-
用戶在程序運行過程中通過鼠標或鍵盤修改了對話框控件的狀態后,對話框中與控件相關聯的變量值並沒有馬上更新。以參數TRUE調用函數UpdateData()的作用就是更新所有與對話框控件相關聯的變量值,而以參數FALSE調用此函數則更新與變量相關聯的控件的顯示狀態,使之與變量一致。也可以通俗地說,以TRUE和FALSE作為參數可分別實現控件關聯變量的“里傳”和“外傳”。下面的語句起刷新編輯框的作用。
-
UpdateData(true); m_sum = m_add1 + m_add2; UpdateData(false);
-
-
此時該整數加法器已經實現了,但為了美觀,提高可用率,我們可以加一些Static Text美化一些,並適當調整各組件位置,對齊
-
還可以完善一下,增加一個清空按鈕
-
具體實現也只需將變量重新復制為0即可
-
UpdateData(true); m_sum = 0; m_add1 = 0; m_add2 = 0; UpdateData(false);
-
-
運行效果圖示意圖
C++兩整數加法器
項目創建
-
創建新的空項目,這里我們可以選擇直接添加新項目,更方便體會兩種方法的使用感受
-
項目命名並選擇位置
-
在源文件中添加新建項,添加一個c++文件(.cpp)並命名
-
編寫代碼
-
# include <stdio.h> #include <iostream> int main() { int add1, add2, sum; std::cout<<"請輸入兩個想要相加的數"<<std::endl; std::cin>>add1>>add2; sum = add1 + add2; std::cout << "輸入的兩數 "<<add1<<" 與 "<<add2<<" 之和為 "<<sum << std::endl; }
-
-
運行效果如下