从0写一个《电话号码管理系统》的C入门项目【适合初学者】

开发 后端
上次发了一个嵌入式的学习路线,很多粉丝问我各个阶段的入门项目,其中第二阶段的《基于socket聊天室》写了4篇循序渐进的文章,而第一阶段的《电话号码本管理》也非常想要。

[[422033]]

0.前言

上次发了一个嵌入式的学习路线,很多粉丝问我各个阶段的入门项目,其中第二阶段的《基于socket聊天室》写了4篇循序渐进的文章,而第一阶段的《电话号码本管理》也非常想要。

一口君必须安排。该项目,一口君同样采用循序渐进的步骤,一点点为大家讲解这个小项目是如何从头开始点点写出来的。

1. 项目说明

运行环境:ubuntu16.04语言 :C语言

1) 功能说明

本项目功能包括简易菜单、单链表、包括增删改查等基本操作。链表插入采用尾插法。

2) 后续可在此基础上增加功能:

信息保存,数据库操作、CS/架构远程管理等。

3) 实现说明

现在要创建新节点newstudent,并通过尾插法插入到该链表中

  1. p = head; 
  2. PHONE *newstudent = (PHONE *)malloc(sizeof(PHONE)); 
  3. newstudent->next = NULL
  4. while(head->next != NULL
  5.  head = head->next

这几行代码执行完毕后,各指针结果如下:

  1. head->next = newstudent; 

执行完该行代码后,各指针结果如下:

  1. head = p; 

执行完该行代码后,各指针结果如下:

其他链表的操作,就不再过度叙述。

4) 代码流程图

2. 执行结果

文件如下:

  1. peng@ubuntu:/mnt/hgfs/code/test$ tree . 
  2. ├── list.c 
  3. ├── main.c 
  4. └── phone.h 
  5.  
  6. 0 directories, 3 files 

编译运行

  1. peng@ubuntu:/mnt/hgfs/code/test$ gcc *.c 
  2. peng@ubuntu:/mnt/hgfs/code/test$ ./a.out  

程序截图

登录界面:

进入电话管理主界面,并添加一个电话条目:

显示添加的电话信息:

3. 代码阅读方法

为了方便读者阅读代码,一口君给这个小项目创建了git工程,这样大家可以很方便的追述一口君编写代码的记录,便于学习。

同时git是现在软件开发必须掌握的一门版本管理技术。

1. 安装git

然后需要设置一下邮箱和用户名

  1. git config --global user.email 21689991@qq.com 
  2. git config --global user.name yikoupeng 

修改默认提交commit的打开软件为vim

  1. git config --global core.editor "vim" 

2. 显示历史修改记录

输入以下命令,显示所有commit信息。

  1. git log 

3. 如何让代码更新到最开始的那个状态?

比如我们想切换到最开始的那个版本节点

  1. git checkout 61b662ad92e8115f012f6247046eb4756a532a15 

大家可以看到,这个是我最初的版本,只有1个main.c文件,这个代码只有最简单的菜单功能,并且字体也都没有设置颜色。

要想切换到最新的版本,可以执行以下命令

  1. git checkout b3004eef8a1c7828095af1a87181d58a7230e91e 

4. 如何提交一个commit?

比如我们在各个文件增加一个文件头

下面命令可以查看到修改过的文件内容

  1. git diff 

通过下面命令提交新版本

然后输入以下命令提交commit

  1. git commit 

然后退弹出下面界面,我们可以用vim操作命令来提交这个commit的信息, 红框内是我输入的信息

用git log查看,可以看到,我们提交的信息已经更新了。

注意 这样提交的代码是放置到了本地仓库,还没有上传到服务器, 用于自己学习足够了,还可以上传到服务器, 这样我们就可以和众多开发者同步维护这套代码, 如果运气好,该项目吸引到了风投, 那不仅可以扬名立万还可以早日财务自由。在此我们要非常感谢linus, 正是这位大神开发了git,才实现 了同时和全球上百万的开发者 高效维护Linux内核, 而git也被众多软件公司作为版本管理的首选。

本文转载自微信公众号「一口Linux 」

 

责任编辑:姜华 来源: 一口Linux
相关推荐

2023-02-27 09:49:31

Java开发工具

2015-09-28 11:15:03

java初学者建议

2011-08-16 14:14:22

MySQL数据库初学者

2021-05-10 08:50:32

网络管理网络网络性能

2020-03-01 14:57:47

Python编程函数

2011-08-17 12:03:36

Objective-C

2011-08-01 16:10:00

SQL Server

2024-08-20 00:00:08

2011-04-08 15:07:40

C++

2009-06-15 13:17:37

Java初学者Java概念

2021-12-09 05:58:51

编程语言开发代码

2023-10-25 16:16:27

2014-03-12 10:11:57

Python设计模式

2020-05-10 16:59:56

Python装饰器开发

2024-03-22 12:32:56

开源C++

2011-08-10 19:16:50

Objective-C变量

2011-08-24 17:05:01

Lua

2020-08-16 13:10:46

TensorFlow深度学习数据集

2021-08-05 14:40:45

操作系统UNIXLINUX
点赞
收藏

51CTO技术栈公众号