0.前言
上次發(fā)了一個(gè)嵌入式的學(xué)習(xí)路線,很多粉絲問(wèn)我各個(gè)階段的入門項(xiàng)目,其中第二階段的《基于socket聊天室》寫了4篇循序漸進(jìn)的文章,而第一階段的《電話號(hào)碼本管理》也非常想要。
一口君必須安排。該項(xiàng)目,一口君同樣采用循序漸進(jìn)的步驟,一點(diǎn)點(diǎn)為大家講解這個(gè)小項(xiàng)目是如何從頭開始點(diǎn)點(diǎn)寫出來(lái)的。
1. 項(xiàng)目說(shuō)明
運(yùn)行環(huán)境:ubuntu16.04
語(yǔ)言???????:C語(yǔ)言
1) 功能說(shuō)明
本項(xiàng)目功能包括簡(jiǎn)易菜單、單鏈表、包括增刪改查等基本操作。鏈表插入采用尾插法。
2) 后續(xù)可在此基礎(chǔ)上增加功能:
信息保存,數(shù)據(jù)庫(kù)操作、CS/架構(gòu)遠(yuǎn)程管理等。
3) 實(shí)現(xiàn)說(shuō)明
現(xiàn)在要?jiǎng)?chuàng)建新節(jié)點(diǎn)newstudent,并通過(guò)尾插法插入到該鏈表中
p?=?head;
PHONE?*newstudent?=?(PHONE?*)malloc(sizeof(PHONE));
newstudent->next?=?NULL;
while(head->next?!=?NULL)
{
head?=?head->next;
}
這幾行代碼執(zhí)行完畢后,各指針結(jié)果如下:
head->next?=?newstudent;
執(zhí)行完該行代碼后,各指針結(jié)果如下:
head?=?p;
執(zhí)行完該行代碼后,各指針結(jié)果如下:
其他鏈表的操作,就不再過(guò)度敘述。
4) 代碼流程圖
2. 執(zhí)行結(jié)果
文件如下:
peng@ubuntu:/mnt/hgfs/code/test$?tree?.
.
├──?list.c
├──?main.c
└──?phone.h
0?directories,?3?files
編譯運(yùn)行
peng@ubuntu:/mnt/hgfs/code/test$?gcc?*.c
peng@ubuntu:/mnt/hgfs/code/test$?./a.out
程序截圖
登錄界面:
進(jìn)入電話管理主界面,并添加一個(gè)電話條目:
顯示添加的電話信息:
3. 代碼閱讀方法
為了方便讀者閱讀代碼,一口君給這個(gè)小項(xiàng)目創(chuàng)建了git工程,這樣大家可以很方便的追述一口君編寫代碼的記錄,便于學(xué)習(xí)。
同時(shí)git是現(xiàn)在軟件開發(fā)必須掌握的一門版本管理技術(shù)。
1. 安裝git
然后需要設(shè)置一下郵箱和用戶名
git?config?--global?user.email?21689991@qq.com
git?config?--global?user.name?yikoupeng
修改默認(rèn)提交commit的打開軟件為vim
git?config?--global?core.editor?"vim"
2. 顯示歷史修改記錄
輸入以下命令,顯示所有commit信息。
git?log
3. 如何讓代碼更新到最開始的那個(gè)狀態(tài)?
比如我們想切換到最開始的那個(gè)版本節(jié)點(diǎn)
git?checkout?61b662ad92e8115f012f6247046eb4756a532a15
大家可以看到,這個(gè)是我最初的版本,只有1個(gè)main.c文件,這個(gè)代碼只有最簡(jiǎn)單的菜單功能,并且字體也都沒有設(shè)置顏色。
要想切換到最新的版本,可以執(zhí)行以下命令
git?checkout?b3004eef8a1c7828095af1a87181d58a7230e91e
4. 如何提交一個(gè)commit?
比如我們?cè)诟鱾€(gè)文件增加一個(gè)文件頭
下面命令可以查看到修改過(guò)的文件內(nèi)容
git?diff
通過(guò)下面命令提交新版本
然后輸入以下命令提交commit
git?commit
然后退彈出下面界面,我們可以用vim操作命令來(lái)提交這個(gè)commit的信息,紅框內(nèi)是我輸入的信息
用git log查看,可以看到,我們提交的信息已經(jīng)更新了。
注意這樣提交的代碼是放置到了本地倉(cāng)庫(kù),還沒有上傳到服務(wù)器,用于自己學(xué)習(xí)足夠了,還可以上傳到服務(wù)器,這樣我們就可以和眾多開發(fā)者同步維護(hù)這套代碼,如果運(yùn)氣好,該項(xiàng)目吸引到了風(fēng)投,那不僅可以揚(yáng)名立萬(wàn)還可以早日財(cái)務(wù)自由。在此我們要非常感謝linus,正是這位大神開發(fā)了git,才實(shí)現(xiàn) 了同時(shí)和全球上百萬(wàn)的開發(fā)者高效維護(hù)Linux內(nèi)核,而git也被眾多軟件公司作為版本管理的首選。