A. 怎麼用C來實現演算法的可視化
斗膽猜測你的可視化感念,我理解你要的可視化不是2D,3D渲染之類的東西,而是有圖形化界面的概念。right?
debug就是演算法的可視化, 這是文本形式的可視化
如果圖形的話,使用MFC寫出Application也能實現可視化
B. c語言,計算機視覺方面,在vc++或c#下完成軟體編程。設計一個車牌識別軟體。大家可以先說說有什麼計劃
如果正面拍攝的圖片還行,但是如果通過不同角度、環境、模糊度來的話實現貌似太難了。
先要確定有效顏色的范圍, 對有效顏色進行獲取
然後要收集所有有關 漢字 字母 數字的唯一標識
然後通過演算法來判斷獲取有效顏色點的規律 和 收集的數據的相似度
反正感覺數據量很大
C. c語言 怎麼對位進行替換
就是交換兩個變數是吧。另設一個中間變數即可實現。
sbit CY=PSW^7;
sbit K= P1^0;
sbit temp;
temp=CY;
CY=K;
K=temp;
這個思想您應該能明白吧。呵呵。
實現循環左移是吧,就是最高位移到最低位,然後順次左移。
左移指令是把最高位移到C(進位/借位標志)裡面,所以需要把這個標志放到最低位,也就是說使最低位和進位標志一樣。
設最高位為A,最低位為B,可得最低位應該為 A非*B+A*B
因此不能用一個獨立的邏輯運算(與、或、非、異或)實現,按照上面給出的公式即可運算,注意最高位A是在C進位標志中的。
呵呵,這個明白了嗎?
D. C語言程序源代碼怎麼實現其可視化
先回答你的問題,可以使用以下三種方法中的任意一種:
1、使用 C++ Builder。
2、使用VC6,建立MFC工程。
3、使用VS2005,建立Windows應用程序。
另外補充說明:
VB是一種開發工具,不是語言,她使用的是Basic語言,本身語言是沒有什麼可視化的。VB的V就是Visual,可視化的意思。
同理,C/C++也是一樣的。
C++ Builder/VC6/VS2005,都可以直接建立在Windows下運行的應用程序,並且進行可視化的界面設計。
E. 為什麼C語言能進行對位(bit)操作 對位操作有什麼效果
當然可以對位進行操作。
一般來說,用位運算就是對位操作。位運算包括
^ 異或
| 位或
& 位與
~ 位求反
>> 右移位
<< 左移位
對位操作的好處是快,並且基本上和匯編一一對應,可以直接算出運算時間,計算速度。
很多要表達硬體計算,或者提高運算速度的時候,都會直接用位運算。
比如乘16,位運算就是左移4位等等。
另外一種是位域。
就是定義一種特殊的結構體,裡面的成員只有規定的幾位。
比如
struct instruction{
unsigned short sr:5;
unsigned short tr:5;
unsigned short op:6;
};
就定義了一個16bit指令的結構,其中
sr : tr : op
1-5 : 6-10 :11-16
然後就可以這樣操作
struct instruction mov_r1_r3 = {0x01, 0x03, 0x01};
那麼mov_r1_r3實際上等於0x0461
這樣編代碼一般是為了和硬體介面容易,完全的底層操作
實際代碼中極少出現,一般出現於與硬體的介面當中.
F. 怎麼用C語言實現
#include <stdio.h>
#include <stdlib.h>
#define Name xzh /*用戶名*/
#define Pass xzh /*密碼*/
int admin(void); /*管理系統*/
int commodity(void); /*商品系統*/
int main(void)
{
char name[20], pass[20];
int choice;
printf("************************\n");
printf("倉庫管理員系統\n");
printf("************************\n");
printf("用戶名:");
scanf("%s", name);
fflush(stdin);
printf("密碼:");
scanf("%s", pass);
fflush(stdin);
printf("************************\n");
printf("歡迎登陸\n");
printf("************************\n");
printf("1、修改管理員信息\n");
printf("2、修改商品信息\n");
printf("請輸入1或2:");
scanf("%d", &choice);
fflush(stdin);
switch(choice)
{
case 1:
admin();
break;
case 2:
commodity();
break;
}
getchar();
return 0;
}
int admin(void)
{
int choice;
printf("************************\n");
printf("0、退出\n");
printf("1、添加管理員\n");
printf("2、刪除管理員\n");
printf("3、顯示所有管理人\n");
printf("4、返回\n");
printf("************************\n");
printf("請輸入0~4:");
scanf("%d", &choice);
fflush(stdin);
return choice;
}
int commodity(void)
{
int choice;
printf("************************\n");
printf("0、退出\n");
printf("1、錄入商品信息\n");
printf("2、顯示所有商品信息\n");
printf("3、查找商品信息\n");
printf("4、統計商品種類\n");
printf("5、修改商品信息\n");
printf("6、插入商品信息\n");
printf("7、刪除商品信息\n");
printf("8、按商品總額排序\n");
printf("9、返回\n");
printf("************************\n");
printf("請輸入0~9:");
scanf("%d", &choice);
fflush(stdin);
return choice;
}
ps:大致就是這樣了,用戶名跟密碼的判斷沒寫。
G. 怎麼實現c語言窗口的可視化
c還是比較麻煩的 你還是用cpp 的 裡面有一個mfc
H. 單片機C語言對位操作
首先
num%10
這個結果可能是0到9
所以
至少要對應4位
否則只能顯示結果為0或者1
(0到9的二進制為
0000到1001)
其次
如果要想對某一位操作
可以用位運算
比如
將第m位賦值為0,其它不變
可以
PA_ODR&=~(1<
追問:
謝謝啦,我也是這么想的,結果我用錯了,用到邏輯與去了。
評論
0
0
載入更多
I. C++怎麼實現打開本機攝像頭並獲取圖像
C語言本身是無法直接控制外設的。但可以通過各種應用編程介面(api),間接調用外部設備。例如opencv庫。
OpenCV的全稱是:Open Source Computer Vision Library。OpenCV是一個基於(開源)發行的跨平台計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的介面,實現了圖像處理和計算機視覺方面的很多通用演算法。
OpenCV用C++語言編寫,它的主要介面也是C++語言,但是依然保留了大量的C語言介面。該庫也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的介面。這些語言的API介面函數可以通過在線文檔獲得。如今也提供對於C#,Ch, Ruby的支持。
常式:
#include"cv.h"
#include"highgui.h"
intmain(intargc,char**argv){
cvNamedWindow("win");
CvCapture*capture=cvCreateCameraCapture(0);//創建並獲取攝像設備
IplImage*frame;
while(1){
frame=cvQueryFrame(capture);//創建並獲取一張攝像截圖
if(!frame)break;//如果失敗終止循環
cvShowImage("win",frame);//在一個"win"窗口,並當中顯示該截圖
charc=cvWaitKey(50);
if(c==27)break;
}
cvReleaseCapture(&capture);//釋放攝像設備
cvDestroyWindow("win");//釋放窗口"win"
return0;
}
J. 遠程監控的原理和實現如何用c語言實現
以人工氣候室遠程監控系統為例2.1通信介面-----套接字的創建本文所要實現的是對一個小型人工氣候室的遠程監控,在異地或同一個區域網范圍內,可以不必親臨現場就可以觀測到人工氣候室當前的溫度狀況和運行中的溫度曲線,由於在遠端只是需要查詢和觀察,因此只要處理好現場監控計算機和遠端客戶機之間的通信和數據傳輸就可以了。這樣不用佔用現場計算機的CPU處理時間,從而能節省資源以便做更多的處理現場的工作。和遠端伺服器的連接可以分為以下幾個過程:(1) 服務進程總是先於客戶進程啟動,服務進程首先創造套接字。(2) 將本地地址綁定到所創建的套接字上以使在網路上標識該套接字。 (3) 將套接字置於監聽模式並准備接受連接請求。(4) 客戶端創建套接字,調用SOCKET函數,方法同上。(5) 客戶向伺服器提出連接請求。(6) 當請求到來時,被阻塞服務進程的accept()函數如(3)中所述生成一個新的套接字與客戶端建立連接,並向客戶端返回接收信號。(7) 一旦客戶機的套接字收到來自伺服器的接收信號,則表示客戶機與伺服器的連接已就緒,則可以進行數據傳輸了。(8) 關閉套接字。一旦任務完成,就必須關掉連接已釋放套接字佔用的資源。創建連接的伺服器端和客戶端代碼簡述如下:伺服器端:void CServerView::OnStart ()
{ Started=TRUE;
m_Start.EnableWindow(!Started);
try
{ g_sListen.Create(6802,SOCK_DGRAM,NULL);
g_sListen.Bind(6802,m_IP);//,6802為埠號,m_IP為伺服器端IP地址
g_sListen.Listen();
((CServerDoc*)GetDocument())->g_pchatListen=new CChatLsnSock(
(CAnyServerDoc*)GetDocument());
CChatLsnSock* g_pchatListen=((CAnyServerDoc*)GetDocument())->g_pchatListen;
g_pchatListen->Create(9999,SOCK_STREAM);//偵聽聊天室連接套接字創建
g_pchatListen->Listen();
GetDlgItem(IDC_RESPONSE)->SetWindowText("開始對客戶端服務!");
}
服務端開啟後的運行界面如圖1所示。
客戶端:
void CClientView::OnClientStart()
{m_sockRecv.Create(6801,SOCK_DGRAM,m_ClientIP);//6801為埠號,m_ClientIP為客戶端IP<br>m_sockRecv.Bind(6801,m_ClientIP);<br>m_timer1=SetTimer(1,1000,NULL);<br>m_timer2=SetTimer(2,250,NULL);<br>GetLocalTime(&SysTime);<br>m_StartTime=SysTime;<br>m_WavePlay.SetStartTime(SysTime.wYear,SysTime.wMonth,SysTime.wDay,SysTime.wHour,SysTime.wMinute,SysTime.wSecond);//畫出曲線初始時間<br>this->m_CurrentSysTime.SetFocus();<br>}
2.2網路中的數據傳輸與監控實現基於網路的遠程式控制制和測量應用中,一般數據傳輸採用二進制格式是主叢式,在人工氣候室的遠程監控系統中,通信雙方需要傳輸的數據流量少,下位機一般是微控制器等嵌入式系統,數據處理能力較慢,通信雙方也不必保持緊密聯系,因此大多採用UDP協議,基於點對點的方式,雙方通信的數據可靠性可以通過定義數據表示格式來保證。另外採用把通過網路傳輸過來的數據在客戶端用曲線的形式重畫顯示,用了一個本人自做的一個ActiveX控制項來顯示接收的數據,在數據傳輸過程中存在的滯後時間很短,可以忽略不計。在設備運行時,伺服器端的狀態一直保持開啟,測溫元件把測量到的溫度值傳入到控制微機,同時通過網路傳到遠程客戶端,遠程連接通過輸入伺服器端的IP地址,輸入指定的用戶名和密碼,就可以連接上,從而就實現了遠程監控。建立連接後客戶端就可以接收發送過來的溫度值且用曲線形式顯示出來:void CClientView::OnDataReceive()
{
extern CListBox* pmyListBox;
char szTempRecv[20];
CString szIP(m_IP);//得到伺服器端的IP
UINT uPort=6802;//指出埠
int iTempRecv=m_sockRecv.ReceiveFrom(szRecv,10,szIP,uPort,0);
szRecv[iRecv]='\0';
m_szRecv=szTempRecv;
m_listBox.AddString((LPCTSTR)m_szRecv);
int nCount=m_listBox.GetCount();
if (nCount > 0)
m_listBox.SetCurSel(nCount-1);
GetLocalTime(&SystemTime);
m_NowTime=SystemTime;
CString strSysTime;
strSysTime.Format(_T("%d-%d-%d %d:%d:%d"),SystemTime.wYear,SystemTime.wMonth,SystemTime.wDay,SystemTime.wHour,SystemTime.wMinute,SystemTime.wSecond);
UpdateData(FALSE);
CurABSTime=(m_NowTime-m_StartTime).GetTotalSeconds();
m_WavePlay.SetPoint2(CurABSTime,atoi(m_szRecv));//用自做ActiveX控制項畫出溫度曲線
完成後通過遠程登錄看到的運行界面