當前位置:首頁 » 編程語言 » 畫彩虹c語言程序虛擬機
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

畫彩虹c語言程序虛擬機

發布時間: 2023-08-17 12:29:39

1. c語言都有哪些用啊能編寫軟體嗎

初學者大多會有你這種疑惑,而且說實話,確實很難在初學的時候讓你對這些問題有全面的了解,只能簡單地讓你這樣來理解:
計算機最底層是硬體(電路),然後中間是一些固件(非常底層的程序),再上面是操作系統(本質上是一種很底層的程序),再上面驅動、服務和系統軟體(底層程序),再上面是應用程序(高層程序,比如記事本程序等),當然,現在還發展出了基於虛擬機的程序(比如java程序),對這些程序來說,前面提到的應用程序就是中層程序(虛擬機)。那麼在這個層次模型裡面,C語言是可以應用在從固件一直到應用程序的所有編程階段的。C語言作為一種語言,它本身只是一種表達方法,在不同的編程階段,都有其具體的應用C語言的「環境和方法」。比如你現在就處在編寫DOS應用程序的階段,所以你看到的C語言就是在一個DOS窗口裡寫出一些同樣是在DOS窗口裡運行的程序出來,而且你看不到用這種方法如何才能寫出一個極品飛車游戲。
但是當你按照老師的要求扎扎實實學好語言本身的規則、語法之後,你就有了去了解其他「環境和方法」的資本了,你會發現這種過渡是自然、容易的。比如要編寫一個Windows窗口應用的話,你只是需要一個合適的編譯開發環境(比如VC)和調用幾個與過去不同的函數而已(如果你語言掌握得非常扎實,則「合適的編譯器」或許也是不需要的,不過這已經不是通常的編程方法了,現在還沒有辦法跟你解釋怎樣通過TurboC來編寫一個Windows窗口程序,但那確實是可能的)。
所以你問「怎麼學」,我的建議就是腳踏實地,一步一步,先把眼前的掌握好。如果你想一步登天,那麼結果就是,要麼最終也只能寫點給外行人看的程序,要麼花更多時間回過頭來不基礎。c是讓你用來入門的,因為開始學時水平肯定不能寫底層的東西,只是讓你用來了解程序設計的一些方法,大致學學就行,然後轉到Win32開發吧,用c++,c#,vb,java之類的。

2. C語言有什麼用,如何C用寫窗口程序

1、C語言的應用很廣的,比如 單片機,嵌入式,都需要C語言,而C語言也是非常合適類似開發的,這個是和硬體電路密切相關的,雖然很少用C語言開發可視化界面
(目前我沒有用過),但可以控制各種硬體的運行動作。此外.C語言可以開發可視化的程序界面,但這是高級的C語言編程,需要繼續學習才能了解的。更重要的
一點,學習C語言個人一種編程開發的思想,計算機的各種語言很多,但都有類似的地方,學過C語言在學習其他語言如java等就簡單了.
2、下面是一個在windows窗體上顯示樹形圖的程序。在vc6中新建win32工程(注意不是控制台)。然後新建c++源文件,粘貼代碼進去,編譯運行即可。

#include<windows.h>
#include<math.h>
#defineAD3.14159265*45/180//相鄰樹枝的旋轉角度
#defineGold0.618//相鄰樹枝的長度比例范圍0-1
#defineLen100//樹根的長度
HDChdc;
structNode
{
doublex;//節點坐標x
doubley;//節點坐標y
doubleAM;//節點的左右分支的中線方向
doubleLength;//節點的原支長度
structNode*LeftNode;//左分支
structNode*RightNode;//右分支
};
LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);
voidDL(doublex1,doubley1,doublex2,doubley2);
voidDrawNode(structNode*ThisNode);
voidDrawTree(void);
//畫一條直線
voidDL(doublex1,doubley1,doublex2,doubley2)
{
MoveToEx(hdc,x1,y1,NULL);
LineTo(hdc,x2,y2);
}
voidDrawNode(structNode*ThisNode)
{
//左分支的地址、角度、長度、坐標
ThisNode->LeftNode=(structNode*)malloc(sizeof(structNode));
ThisNode->LeftNode->AM=ThisNode->AM+AD;
ThisNode->LeftNode->Length=ThisNode->Length*Gold;
ThisNode->LeftNode->x=ThisNode->x+cos(ThisNode->LeftNode->AM)*ThisNode->LeftNode->Length;
ThisNode->LeftNode->y=ThisNode->y+sin(ThisNode->LeftNode->AM)*ThisNode->LeftNode->Length;
//右分支的地址、角度、長度、坐標
ThisNode->RightNode=(structNode*)malloc(sizeof(structNode));
ThisNode->RightNode->AM=ThisNode->AM-AD;
ThisNode->RightNode->Length=ThisNode->Length*Gold;
ThisNode->RightNode->x=ThisNode->x+cos(ThisNode->RightNode->AM)*ThisNode->RightNode->Length;
ThisNode->RightNode->y=ThisNode->y+sin(ThisNode->RightNode->AM)*ThisNode->RightNode->Length;
//畫圖
DL(ThisNode->x,ThisNode->y,ThisNode->LeftNode->x,ThisNode->LeftNode->y);
DL(ThisNode->x,ThisNode->y,ThisNode->RightNode->x,ThisNode->RightNode->y);
//遞歸終點
if(ThisNode->Length>5)
{
DrawNode(ThisNode->LeftNode);
DrawNode(ThisNode->RightNode);//
}
}
voidDrawTree(void)
{
structNodeTreeRoot;
TreeRoot.x=500;//樹根的橫坐標
TreeRoot.y=Len;
TreeRoot.AM=3.14159265/2;
TreeRoot.Length=Len;
DrawNode(&TreeRoot);
}
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,
PSTRszCmdLine,intiCmdShow)
{
staticTCHARszAppName[]=TEXT("SineWave");
HWNDhwnd;
MSGmsg;
WNDCLASSwndclass;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=szAppName;
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("ProgramrequiresWindowsNT!"),
szAppName,MB_ICONERROR);
return0;
}
hwnd=CreateWindow(szAppName,TEXT("SineWaveUsingPolyline"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
returnmsg.wParam;
}
LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam)
{
PAINTSTRUCTps;
switch(message)
{
caseWM_SIZE:
return0;
caseWM_PAINT:
hdc=BeginPaint(hwnd,&ps);
DrawTree();
return0;
caseWM_DESTROY:
PostQuitMessage(0);
return0;
}
returnDefWindowProc(hwnd,message,wParam,lParam);
}

3. 怎麼用codeblocks編寫c語言的圖形程序

在codeblocks中,可以通過集成EGE庫,來實現C語言圖形程序的編寫,具體方式如下:

一、安裝:

1、下載ege安裝包;

2、將安裝包解壓;

3、把壓縮包里include目錄下所有文件,復制到編譯器安裝目錄下的include目錄內,例如D:MinGWinclude;

4、把lib目錄下對應編譯器名目錄下的文件,復制到編譯器安裝目錄下的lib目錄內,例如D:MinGWlib。

二、建立工程:

只要第1步做好以後,其實已經安裝好ege了,剩下的只是配置build option.
點擊file-new-projects,選擇Console application:

4. c語言如何編寫界面程序

一、C語言中要做圖形界面,首先需要設置為圖形模式,確定顯卡類型,對屏幕進行初始化等等。

二、相關的函數如下:

1.detectgraph()顯示卡檢測函數

2.initgraph()圖形初始化函數

3.getdrivername()獲取圖形驅動程序名的指針

4.getgraphmode()獲取圖形模式函數

5.getmoderange()獲取模式值范圍函數

6.getmaxmode()獲取最大顯示模式函數

7.getmodename()獲取顯示模式名函數

8.graphdefaults()圖形設擾耐置復位預設值函數

9.setgraphmode()設置圖形模式函數

10.restorecrtmode()恢復文本顯示模式函數

11.graphresult()圖形操作結果函數

12.grpaherrormsg()圖形錯誤信息函數

13.setgraphbufsize()設置圖形緩沖區大小函數

14.setactivepage()設置可輸出顯示頁函數

15.setvisualpage()設置可見顯示頁數

16.closegraph()關閉圖形模式函數GTK+去這本書的pdf看看吧GTK+2.0編程範例QT啊不過安裝QT環境有點復雜貌似QT是C++,GTK是C.......C語方下可以在文本模式下作出,也可以在圖形模式下畫出,用的是一些擴展庫,就是說不是C標准庫,下面給一個框架,不知道建悉李舉不建議學,感覺過時了,看你自已的興趣了,感興趣下了功夫肯定能學好,睜碧因為它根本就不難,只不過用了些非標准庫的所謂高級函數而已