C語(yǔ)言/C++編程大神?打造——火車訂票系統(tǒng)!

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)、游戲輔助等

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容