C++控制檯視窗介面的程式設計(基礎)
阿新 • • 發佈:2018-12-23
前言
作為初學者,每一個學習 C、C++的人所面對的都是一個黑黑的視窗,從初識C++,再到一道一道的刷題,到進一步的ACM,這個黑色的視窗都一直陪伴著我們。無聊之餘,自己用C++做了一個控制檯的小介面,希望能讓C++初學者對如何用C++做一個簡單控制檯視窗介面有初步瞭解。
控制檯介面程式設計---->參考網址:點選開啟連結
介面
這只是單純的介面,本來是一個小遊戲。(因為遊戲還有很多bug,所以此處沒有分享 :0 )
程式碼附上:
程式碼
#include <bits/stdc++.h>//C++萬能頭 #include<windows.h>//控制檯程式設計主要標頭檔案 #include<conio.h>//getch()函式 #include<stdlib.h>//system()函式 using namespace std; void pos(int x,int y);//確定游標位置 void blue_border();//藍色字型 void white_back();//還原亮白色字型 void cyan_choose();//青色字型 void on_Select();//被選中時的樣式 void onChoose(int x,int y);//確定所選中的位置 void star();//初始化介面 HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);//獲取標準輸出控制代碼 int main() { system("color 7F");//設定控制檯介面背景顏色和前景顏色 system("mode con cols=100 lines=40");//初始化緩衝區大小 SetConsoleTitle("StathamJ的程式");//設定控制檯視窗標題 cyan_choose(); cout<<"w,a,s,d 控制游標選擇;空格 確定"<<endl; blue_border(); pos(5,5); cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>";//上邊框 pos(5,25); cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<";//下邊框 for(int i=5,j=6; j<25; j++) //左邊框 { pos(i,j); cout<<"*"; } for(int i=85,j=6; j<25; j++) //右邊框 { pos(i,j); cout<<"*"; } cyan_choose(); pos(65,10); cout<<"2. 選擇 "; pos(25,20); cout<<"3. 繼續 "; pos(65,20); cout<<"4. 退出 "; on_Select(); pos(25,10); cout<<"1. 開始 "; //wsad控制游標對進行自由選擇 int x=25,y=10; char sel; sel=getch(); while(sel!=' ') { star(); switch(sel) { case 'w': y=y-10; break; case 's': y=y+10; break; case 'a': x=x-40; break; case 'd': x=x+40; break; } //防止超出範圍 if(x>=65) { x=65; } if(y>=20) { y=20; } if(x<=25) { x=25; } if(y<=10) { y=10; } pos(x,y); onChoose(x,y); sel=getch(); } pos(0,30); white_back();//還原預設字型 CloseHandle(hOut);//關閉標準輸出控制代碼 return 0; } //設定游標位置 void pos(int x,int y) { COORD posPoint = {x,y}; //設定座標 SetConsoleCursorPosition(hOut,posPoint); } void blue_border() { WORD blue=FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED|FOREGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN;//設定字型顏色、背景顏色 SetConsoleTextAttribute(hOut,blue);//字型樣式 } void white_back() { WORD white=FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY; SetConsoleTextAttribute(hOut,white); } void cyan_choose() { WORD cyan=FOREGROUND_GREEN|FOREGROUND_INTENSITY|BACKGROUND_GREEN|BACKGROUND_BLUE; SetConsoleTextAttribute(hOut,cyan); } void on_Select() { WORD select=FOREGROUND_GREEN|FOREGROUND_INTENSITY|BACKGROUND_RED; SetConsoleTextAttribute(hOut,select); } void onChoose(int x,int y) { if(x==25&&y==10) { on_Select(); cout<<"1. 開始 "; } else if(x==25&&y==20) { on_Select(); cout<<"3. 繼續 "; } else if(x==65&&y==10) { on_Select(); cout<<"2. 選擇 "; } else if(x==65&&y==20) { on_Select(); cout<<"4. 退出 "; } } void star() { cyan_choose(); pos(25,10); cout<<"1. 開始 "; pos(65,10); cout<<"2. 選擇 "; pos(25,20); cout<<"3. 繼續 "; pos(65,20); cout<<"4. 退出 "; }