c語言電子地圖
❶ c語言有什麼發展前景
C語言的應用領域大致的分兩大塊:系統軟體開發和應用軟體開發。
一、伺服器端開發:很多游戲或者互聯網公司的後台伺服器程序都是基於C++開發的,而且大部分是linux操作系統,所以說,你需要熟悉linux操作系統及其在上面的開發,熟悉資料庫開發,精通網路編程。
二、對性能要求嚴格的領域。一般對性能有嚴格要求的地方都是用C語言編寫的,比如網路程序的底層和網路伺服器端底層、地圖查詢等。
三、系統軟體和圖形處理。C語言具有很強的繪圖能力和可移植性,並且具備很強的數據處理能力,可以用來編寫系統軟體、製作動畫、繪制二維圖形和三維圖形等。
例如虛擬現實,這個領域一直在發展,目前VR眼鏡比較火,需要大量基於這些的C++開發。
四、嵌入式設備開發。手機、PDA等時尚消費類電子產品相信大家都不陌生,其內部的應用軟體、游戲等很多都是採用C語言進行嵌入式開發的。
五、游戲軟體開發。游戲大家更不陌生,很多人就是由玩游戲而熟悉了計算機。利用C語言可以開發很多游戲,比如推箱子、貪吃蛇等。
六、數字計算。相對於其他編程語言,C語言是數字計算能力超強的高級語言。
除了上面這些以外,還有就是電子設備,就是什麼手機軟體,網路方面什麼的,都是運用了C語言開發。
❷ c語言的主要應用有哪些
因為C語言比較接近硬體,又能做到匯編語言的高效率,又比匯編語言更接近於自然語言.也就是說更好懂,所以C語言一直接以來都有廣泛的應用,目前,C語言主要應用在嵌入式開發,低級操作系統(比如類似於linux的NOS操作系統)上應用程序的開發,還有可以寫一些簡單的應用軟體,LINUX和UNIX都是很C寫的,C還是很有用處的,也得到了很廣泛的應用,所以潛力也大!
❸ 電子地圖C語言代碼
fscanf(p , "%s" , s[i].flag);
//
道路信息放入內存中
fscanf(p , "%s" , s[i].brunch);
//
道路信息放入內存中
fscanf(p , "%s" , s[i].dispclass);
//
道路信息放入內存中
fscanf(p , "%s" , s[i].Roadname);
//
道路信息放入內存中
fscanf(p , "%s" , s[i].sign_two);
//
道路信息放入內存中
}
if(s[1].sign_one!="")
//
判斷文件信息是否寫入成功
printf("\n\t\t\t
文件信息
-------
寫入內存成功
\n\n");
ma_interf();
//
返回主界面
}
else
{
ma_interf();
//
返回主界面
}
}
/******************************************************************************
********
*
Functionname: SortData
*
*
Function Description:
對讀取出來的文件信息進行排序並將排序結果顯示在屏幕上
*
*
Date:2012/6/21
*
*******************************************************************************
*******/
void SortData(tagMap_t s[])
{
int
i=0 , k=0 , j=0 , m=0 , n=7;
//i k
為循環控制變數
n
記錄
linkid
的長度
m
標記成功排序的個數
char temp[50];
printf("\n\n\t\t\t
排序中…………請等待
!
…………
\n\n\t\t
排序完成後將自動按
LinkID
編號由小到大顯示所有道路信息
\n\n");
for(n=8; n<13; n++)
{
for(i=0; i<(nsizecount-2); i++)
{
if((int)strlen(s[i].linkid) == n)
//
判斷
linkid
的長度是否為
n
{
k=i;
//
記錄
Linkid
長度為
n
時
數組
s
的下標
i
j=i;
//
記錄
Linkid
長度為
n
時
數組
s
的下標
i
for(k=k+1; k<(nsizecount-2); k++)
//
繼續進行下一次循
環
{
if((int)strlen(s[k].linkid) == n)
//
判斷
linkid
的長度
是否為
n
{
if(strcmp(s[i].linkid , s[k].linkid)>0)
//
比較
linkid
的長度同為
n
時它們的大小
{
i=k;
//
記
錄
下
當
前
檢
索到最小
linkid
的
s
數組的下標
}
}
}
strcpy(ss[m].linkid , s[i].linkid);
//
此時最小
linkid
把
數組
s
的信息存放到
ss
數組中
strcpy(ss[m].flag , s[i].flag);
//
此時最小
linkid
把
數組
s
的信息存放到
ss
數組中
strcpy(ss[m].brunch , s[i].brunch);
//
此時最小
linkid
把
數組
s
的信息存放到
ss
數組中
strcpy(ss[m].dispclass , s[i].dispclass);
//
此時最小
linkid
把
數組
s
的信息存放到
ss
數組中
strcpy(ss[m].Roadname , s[i].Roadname);
//
此
時
最
小
linkid
把數組
s
的信息存放到
ss
數組中
strcpy(temp , s[j].linkid);
//
交
換
s[i]
和
s[j]
中
linkid
的信息
strcpy(s[j].linkid , s[i].linkid);
strcpy(s[i].linkid , temp);
strcpy(temp , s[j].flag);
//
交換
s[i]
和
s[j]
中
flag
的信息
strcpy(s[j].flag , s[i].flag);
strcpy(s[i].flag , temp);
strcpy(temp , s[j].brunch);
//
交換
s[i]
和
s[j]
中
brunch
的信息
strcpy(s[j].brunch , s[i].brunch);
strcpy(s[i].brunch , temp);
strcpy(temp , s[j].dispclass);
//
交
換
s[i]
和
s[j]
中
dispclass
的信息
strcpy(s[j].dispclass , s[i].dispclass);
strcpy(s[i].dispclass , temp);
strcpy(temp , s[j].Roadname);
//
交換
s[i]
和
s[j]
中
Roadname
的信息
strcpy(s[j].Roadname , s[i].Roadname);
strcpy(s[i].Roadname , temp);
m++;
//
記
錄
已
排
序成功道路信息的個數
i=j;
if(m%830
==
0)
//
排序進度提示符
.
的輸出控制
830
時剛好輸出
1
行
.
且進度剛好
100%
{
printf(".");
}
if(m%100==0) //
控制百分數輸出
{
if(((float)m/(nsizecount-2))*100<10)
{
printf("%.1f%%%\b\b\b\b"
,
((float)m/(nsizecount-2))*100);
}
else if (((float)m/(nsizecount-2))*100>=10)
{
printf("%.1f%%%\b\b\b\b\b"
,
((float)m/(nsizecount-2))*100);
}
}
}
}
}
system("cls");
for(i=0;i<m;i++)
{
printf("
%s
%s
%s
%s
%s
\n"
,
ss[i].linkid
,
ss[i].flag
,
ss[i].brunch
,
ss[i].dispclass , ss[i].Roadname);
}
printf("\n\n\t\t
排序成功
-----
按
LinkID
編號由小到大顯示完成
\n\n");
ma_interf();
//
排序完成
返回主界面
}
/******************************************************************************
********
*
Functionname:Update
*
*
Function Description:
對數據進行更新,並將更新後的結果存入新的文件中
*
*
Date:2012/6/22
*
*******************************************************************************
*******/
void Update (tagMap_t s[])
{
FILE *pp;
//
定義文件指針
用來創建新的
newfile
文件
char pc[60];
int i=0;
//
循環控制變數
if((pp=fopen("e:\\newfile.txt " , "w")) == NULL)
//
判斷穿件文件是否成功
{
printf("
更新文件創建失敗……
");
exit(0);
}
for(i=0; i<(nsizecount-2); i++)
{
fprintf(pp , "#\t");
fprintf(pp , "%s\t" , ss[i].linkid);
//
文件信息寫入
newfile
文件中
fprintf(pp , "%s\t" , ss[i].flag);
//
文件信息寫入
newfile
文件中
fprintf(pp , "%s\t" , ss[i].brunch);
//
文件信息寫入
newfile
文件中
fprintf(pp , "%s\t" , ss[i].dispclass);
//
文件信息寫入
newfile
文件中
fprintf(pp , "%s\t" , ss[i].Roadname);
//
文件信息寫入
newfile
文件中
fprintf(pp , "#");
fprintf(pp , "\n");
}
fclose(pp);
//
關閉文件指針
pp
if((pp=fopen("e:\\newfile.txt" , "r")) == NULL)
//
打開文件
newfile
為更新文件提
供數據
{
printf("the newfile open fail\n");
exit(0);
}
FILE *ppp;
//
文件指針
用來創建
update
文件
if((ppp=fopen("e:\\update.dat" , "wb")) == NULL)
//
判斷文件創建是否成功
{
printf("
更新文件創建失敗
\n");
exit(0);
}
system("cls");
printf("\n\n\t\t\t\t
文件更新中……
\n");
//
給出提示信息
for(i=0; i<(nsizecount-2); i++)
{
fread(pc , 56 , 1 , pp);
//newfile
文件信息寫入
pc
數組中
fwrite(pc , 56 , 1 , ppp);
//
數組
pc
的信息寫入
update
二進制
文件中
}
printf("\n\n\t\t\t\t
文件更新成功
\n\n\n\t\t\t
更新文件存放在
update.dat
文件中
\n\n\n");
ma_interf();
//
返回主界面
}
void main()
{
ma_interf();
//
進入主界面
}
❹ C語言代碼怎麼編譯成.o文件再怎麼變成.exe文件
簡單的說,由編譯器做一些工作,把c語言轉換成機器可以識別的機器語言(.exe)
一般把.c到.o稱之為編譯,.o到.exe稱之為連接
編譯+連接整個過程的統稱也叫編譯
具體的過程,你可以認為是翻譯,如果真的很感興趣,學一下編譯原理也可以。
我想我在這說一堆詞法分析 語法分析 語義分析什麼的 估計你也不會感興趣的
❺ C語言主要用在哪些方面
1、上層開發
其實用 C 語言做上層應用程序開發和寫界面不是明智的選擇,比如 Windows 上面,畫個窗口,寫個消息處理函數,麻煩的要死。
做上層應用程序開發,其實大家都在用:
Windows: C++,MFC/QT
Android: Java
IOS: ObjecTIve-c / swift
Linux: C\C++,GTK+/ QT(Linux 圖形界面應用程序)
2、底層開發
C 語言主要的用途還是底層編程,例如系統軟體:編譯器,JVM,驅動,操作系統內核,還有各種嵌入式軟體,固件。
下面列舉了C語言一些常見的領域。
(1)應用軟體。Linux操作系統中的應用軟體都是使用C語言編寫的,因此這樣的應用軟體安全性非常高。
(2)對性能要求嚴格的領域。一般對性能有嚴格要求的地方都是用C語言編寫的,比如網路程序的底層和網路伺服器端底層、地圖查詢等。
(3)系統軟體和圖形處理。C語言具有很強的繪圖能力和可移植性,並且具備很強的數據處理能力,可以用來編寫系統軟體、製作動畫、繪制二維圖形和三維圖形等。
(4)數字計算。相對於其他編程語言,C語言是數字計算能力超強的高級語言。
(5)嵌入式設備開發。手機、PDA等時尚消費類電子產品相信大家都不陌生,其內部的應用軟體、游戲等很多都是採用C語言進行嵌入式開發的。
(6)游戲軟體開發。游戲大家更不陌生,很多人就是由玩游戲而熟悉了計算機。利用C語言可以開發很多游戲,比如推箱子、貪吃蛇等。
學習C語言,就來北京尚學堂!