C語(yǔ)言是面向過(guò)程的,而C++是面向?qū)ο蟮?/p>
C和C++的區(qū)別:
C是一個(gè)結(jié)構(gòu)化語(yǔ)言,它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計(jì)首要考慮的是如何通過(guò)一個(gè)過(guò)程,對(duì)輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過(guò)程(事務(wù))控制)。
C++,首要考慮的是如何構(gòu)造一個(gè)對(duì)象模型,讓這個(gè)模型能夠契合與之對(duì)應(yīng)的問(wèn)題域,這樣就可以通過(guò)獲取對(duì)象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過(guò)程(事務(wù))控制。 所以C與C++的最大區(qū)別在于它們的用于解決問(wèn)題的思想方法不一樣。之所以說(shuō)C++比C更先進(jìn),是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”。
C與C++的最大區(qū)別:在于它們的用于解決問(wèn)題的思想方法不一樣。之所以說(shuō)C++比C更先進(jìn),是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”,而就語(yǔ)言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,錯(cuò)!算法是程序設(shè)計(jì)的基礎(chǔ),好的設(shè)計(jì)如果沒(méi)有好的算法,一樣不行。而且,“C加上好的設(shè)計(jì)”也能寫(xiě)出非常好的東西。
其實(shí)C語(yǔ)言的話,做出來(lái)的東西,各種系統(tǒng)挺多的,需要的是不斷地去挖掘,有人說(shuō),C語(yǔ)言學(xué)了不就是一些簡(jiǎn)單的語(yǔ)法,函數(shù),數(shù)據(jù)結(jié)構(gòu)什么的嘛,就一些知識(shí)點(diǎn)會(huì)了不就行了。
在我看來(lái)這個(gè)只是大學(xué)里面需要掌握的一些,其實(shí)C語(yǔ)言很強(qiáng)大的,可以做的東西,項(xiàng)目挺多的,各種小游戲,管理系統(tǒng)什么的,所以說(shuō)不要說(shuō)會(huì)了那些C語(yǔ)言的知識(shí)點(diǎn)就說(shuō),C很簡(jiǎn)單很會(huì)了,其實(shí)當(dāng)我們?nèi)?dòng)手做項(xiàng)目的時(shí)候就是一臉懵逼的,大學(xué)時(shí)候我想問(wèn)問(wèn),有多少人動(dòng)手去做過(guò)什么項(xiàng)目,或許嘗試做個(gè)推箱子或者貪吃蛇有可能,但是這肯定只局限于百分之十五的大學(xué)生吧。
前面有人說(shuō),要我用C語(yǔ)言做個(gè)火車訂票系統(tǒng),這不很簡(jiǎn)單麼,主要是好笑的,下面有人說(shuō)只能Java才能做,這也太逗比了吧,Java本身就是C C++開(kāi)發(fā)出來(lái)的好麼。而且這個(gè)火車訂票系統(tǒng)也是很容易的,下面的話我發(fā)一下代碼吧,代碼的話也有好幾百行,我就發(fā)一部分,后面的各個(gè)點(diǎn)思路我就總結(jié)一下在下面吧,
#include
#include
#include
#include
#include
#include
#define HEADER1 " -------------------------------BOOK TICKET----------------------------------"
#define HEADER2 " | number |start city|reach city|takeofftime|receivetime|price|ticketnumber|"
#define HEADER3 " |----------|----------|----------|-----------|-----------|-----|------------|"
#define FORMAT " |%-10s|%-10s|%-10s|%-10s |%-10s |%5d| %5d |"
#define DATA p->data.num,p->data.startcity,p->data.reachcity,p->data.takeofftime,p->data.receivetime,p->data.price,p->data.ticketnum
int saveflag = 0;
/*定義存儲(chǔ)火車信息的結(jié)構(gòu)體*/
struct train
{
char num[10];/*列車號(hào)*/
char startcity[10];/*出發(fā)城市*/
char reachcity[10];/*目的城市*/
char takeofftime[10];/*發(fā)車時(shí)間*/
char receivetime[10];/*到達(dá)時(shí)間*/
int price;/*票價(jià)*/
int ticketnum;/*票數(shù)*/
};
/*訂票人的信息*/
struct man
{
char num[10];/*ID*/
char name[10];/*姓名*/
int bookNum;/*訂的票數(shù)*/
};
/*定義火車信息鏈表的結(jié)點(diǎn)結(jié)構(gòu)*/
typedef struct node
{
struct train data;
struct node * next;
}Node, *Link;
/*定義訂票人鏈表的結(jié)點(diǎn)結(jié)構(gòu)*/
typedef struct Man
{
struct man data;
struct Man *next;
}book, *bookLink;
/* 初始界面*/
void menu()
{
puts("");
puts("|--------------------------------------------------------|");
puts("| Booking Tickets |");
puts("|--------------------------------------------------------|");
puts("|0:退出系統(tǒng) |");
puts("|1:加入火車信息 |");
puts("|2:查找火車信息 |");
puts("|3:訂購(gòu)火車票 |");
puts("|4:修改火車信息 |");
puts("|5:瀏覽火車信息 |");
puts("|6:保存火車信息 |");
puts("|--------------------------------------------------------|");
}
/*添加一個(gè)火車信息*/
void Traininfo(Link linkhead)
{
struct node *p, *r, *s;
char num[10];
r = linkhead;
s = linkhead->next;
while (r->next != NULL)
r = r->next;
while (1)
{
printf("請(qǐng)輸入車次(0-return)");
scanf("%s", num);
if (strcmp(num, "0") == 0)
break;
/*判斷是否已經(jīng)存在*/
while (s)
{
if (strcmp(s->data.num, num) == 0)
{
printf("車次 '%s'已經(jīng)存在!", num);
return;
}
s = s->next;
}
p = (struct node*)malloc(sizeof(struct node));
strcpy(p->data.num, num);/*輸入車號(hào)*/
printf("請(qǐng)輸入出發(fā)城市:");
scanf("%s", p->data.startcity);/*輸入出發(fā)城市*/
printf("請(qǐng)輸入到達(dá)城市:");
scanf("%s", p->data.reachcity);/*輸入到站城市*/
printf("請(qǐng)輸入出發(fā)時(shí)間:");
scanf("%s", p->data.takeofftime);/*輸入出發(fā)時(shí)間*/
printf("請(qǐng)輸入到達(dá)時(shí)間:");
scanf("%s", &p->data.receivetime);/*輸入到站時(shí)間*/
printf("請(qǐng)輸入票價(jià):");
scanf("%d", &p->data.price);/*輸入火車票價(jià)*/
printf("請(qǐng)輸入訂購(gòu)數(shù)量:");
scanf("%d", &p->data.ticketnum);/*輸入預(yù)定票數(shù)*/
p->next = NULL;
r->next = p;/*插入到鏈表中*/
r = p;
saveflag = 1;
}
}
/*打印火車票信息*/
void printheader() /*格式化輸出表頭*/
小編推薦一個(gè)學(xué)C語(yǔ)言/C++的學(xué)習(xí)裙【 ?二六三,六八八,二七六 ?】,無(wú)論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開(kāi)發(fā)工具,很多干貨和技術(shù)資料分享!
{
printf(HEADER1);
printf(HEADER2);
printf(HEADER3);
}
void printdata(Node *q) /*格式化輸出表中數(shù)據(jù)*/
{
Node* p;
p = q;
printf(FORMAT, DATA);
}
/*查詢火車信息*/
void searchtrain(Link l)
{
Node *s[10], *r;
int sel, k, i = 0;
char str1[5], str2[10];
if (!l->next)
{
printf("沒(méi)有信息!");
return;
}
printf("請(qǐng)選擇:1:按車次查詢;2:按城市查詢");
scanf("%d", &sel);/*輸入選擇的序號(hào)*/
if (sel == 1)
{
printf("請(qǐng)輸入車次:");
scanf("%s", str1);
r = l->next;
while (r != NULL)
if (strcmp(r->data.num, str1) == 0)/*檢索是否有與輸入的車號(hào)相匹配的*/
{
s[i] = r;
i++;
break;
}
else
r = r->next;
}
else if (sel == 2)
{
printf("請(qǐng)輸入到達(dá)城市:");
scanf("%s", str2);
r = l->next;
while (r != NULL)
if (strcmp(r->data.reachcity, str2) == 0)/*檢索是否有與輸入的城市相匹配的火車*/
{
s[i] = r;
i++;
r = r->next;
}
else
r = r->next;
}
if (i == 0)
printf("沒(méi)有信息!");
else
{
printheader();
for (k = 0; k
printdata(s[k]);
}
}
后面的話還有幾個(gè)功能沒(méi)發(fā)出來(lái),分別是:1、訂票子模塊 2、修改火車信息 3、保存火車信息 4、保存訂票人信息。 下面我發(fā)一下界面,效果圖。
涉及到的C語(yǔ)言的知識(shí)點(diǎn)也不是很多,也就是:C語(yǔ)言的基本語(yǔ)法+三大控制結(jié)構(gòu)+數(shù)據(jù)結(jié)構(gòu)鏈表+文件操作,所以說(shuō)不要小看C語(yǔ)言,它是很強(qiáng)大的,其實(shí)什么Java,Python我不是反感它們,當(dāng)有人說(shuō),現(xiàn)在Java很強(qiáng)大,什么做個(gè)小小的火車訂票系統(tǒng)都不能用C語(yǔ)言,我只想站出來(lái)說(shuō)下自己的觀點(diǎn),最好的改正這個(gè)觀點(diǎn)就是自己去把這個(gè)系統(tǒng)用C語(yǔ)言去做出來(lái),我覺(jué)得才是最好的!這個(gè)的話代碼也有一些,思路也寫(xiě)了,所以說(shuō),希望各位能自己摸索出來(lái)吧,實(shí)在覺(jué)得有難度的,,打手不易,勿噴哈,這個(gè)知識(shí)點(diǎn)里面有我自己的說(shuō)法,全屬個(gè)人的見(jiàn)解,蟹蟹大家。



這些是C/C++能做的
服務(wù)器開(kāi)發(fā)工程師、人工智能、云計(jì)算工程師、信息安全(黑客反黑客)、大數(shù)據(jù) 、數(shù)據(jù)平臺(tái)、嵌入式工程師、流媒體服務(wù)器、數(shù)據(jù)控解、圖像處理、音頻視頻開(kāi)發(fā)工程師、游戲服務(wù)器、分布式系統(tǒng)、游戲輔助等