C语言可以开发哪些项目?(转)
原文地址:https://www.cnblogs.com/shiyanlou/p/6098661.html
知乎:https://www.zhihu.com/question/20564904
C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中……,这些迷茫也导致了我们在学习的过程中不知道如何学、学什么,所以,总结这个列表,希望对C语言初学者可以有所帮助~
C语言可以做什么?
从最简单的、最熟悉的说起吧,毕竟我们在学校学习的时候,老师几乎都会让我们去开发:
一、C语言可以实现一些常见的应用
以下几个几乎是我们学习C语言到一定阶段之后必开发的一个小项目了,简单。
1、C语言制作简单计算器
项目用C语言做一个简单的计算器,进行加、减、乘、除操作。
2、C语言实现通讯录
项目使用 C 语言完成一个简单的通讯录。会涉及到结构体、数组、链表等重要概念。
3、C语言利用epoll实现高并发聊天室
项目实现客户端和服务端编程,服务端使用epoll机制,高并发必备,支持多客户聊天室聊天;客户端使用epoll和fork,父进程与子进程通过pipe通信。
4、C语言编写万年历
使用 C 语言完成一个简单的日历功能。输入相应的年/月即可看到当月的日历。
二、C语言可以开发游戏
当然C语言也可以开发一些小游戏,有趣的同时也掌握了相应的知识点。
5、C语言制作2048
使用 C 语言完成一个2048游戏。
6、C语言版flappy_bird
使用 C 语言来实现一个字符版 Flappy Bird
7、C语言版扫雷游戏
使用 C 语言完成一个简单的扫雷游戏。
8、C语言快速实现五子棋
使用C语言实现五子棋游戏。
三、 C语言可以开发的其他应用
如果你以为C语言只能开发上面介绍的小游戏以及一些耳熟能详的应用呢,那么就大错特错了,因为C语言还可以开发很多东西,如下:
9、C语言实现一个支持PHP的简易WEB服务器
用C语言实现一个简易的WEB服务器,并能支持动态解析PHP程序。主要涉及到的技术有:Linux Socket编程,HTTP协议(只实现GET请求),Fast-CGI协议。
10、C语言实现ping程序
项目用C语言实现ping命令。通过项目可以更深入地理解TCP/IP协议,掌握C语言进行网络编程的技巧方法。
11、C语言实现 Linux 网络嗅探器
项目通过原生套接字的方式,监听所有本地主机收发的数据链路层帧结构,然后解析数据包的类型,并记录到日志文件。实现一个轻量级的网络嗅探器。
12、C语言实现文件类型统计程序
通过实现一个文件类型统计程序,对Linux的文件系统有一个更加深入的了解,尤其在文件类型的判断,目录的操作上的理解会加深。
13、C 语言实现多线程排序
项目在 Linux 环境下使用 C 语言多线程模型实现了排序算法,通过该项目的学习,可以理解并实践 Linux 环境的编程基础及多线程模型。
14、C语言实现 FTP 服务器
本项目实现了支持 list,get
四、用C语言实现Linux命令
最后,再介绍如何用C语言实现Linux命令,通过学习可以了解Linux操作系统。
15、C 语言实现 Linux Shell 命令解释器
通过完成 C 语言实现 Linux Shell 命令解释器项目,学习基于 Linux 的进程环境,进程控制。同时了解强大的 Linux Shell 命令解释器到底是如何运作的,使得对 Linux 系统有一个更加深入的认识。
16、C语言实现Linux touch命令
C语言实现Linux touch命令项目,学习基于LINUX环境的系统编程技术,尤其 Linux 文件 IO 操作相关技术。
17、C 语言实现Linux cp 命令
C 语言实现Linux cp 命令项目的学习,可以掌握Linux操作系统中的文件IO相关的系统函数和目录相关操作的系统函数,比如open, write, opendir, readir。深入了解Linux环境系统编程。
18、C语言实现Linux ls命令
使用C语言实现Linux ls命令,学习linux目录与文件属性。
19、C 语言实现Linux who命令
通过 C 语言实现Linux who命令 项目的学习,可以掌握 Linux 操作系统为上层提供的访问系统数据文件的接口。更好的理解 Linux 操作系统工作的原理。
最后的话:
以上19的大大小小的项目包含各个方面,可以当做是C语言新手的项目练手列表,也可以当做是看看C语言可以做什么的列表。
当然C语言可做的事情不止以上介绍的,还可以做更多你想不到的事情,这就需要熟练的掌握C语言了,需要不断的动手实践操作学习了。
C语言可以开发哪些项目?(转)的更多相关文章
- C语言可以开发哪些项目?
C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中--,这些迷茫也导致了我们在学习的过程 ...
- 高质量,高效率的多国语言软件开发(Web/PC/Mobile),使用接口约束/调用不同语言资源
偶然间翻出了几年前写的一个小程序,把当时的资料整理整理分享一下. 当时为了给自己的软件实现多国语言功能,而开发的辅助工具:SE String Resource. 这是当时基于自己另一款 IDE 软件抽 ...
- .Net语言 APP开发平台——Smobiler学习日志:快速在手机上实现n×m形式的菜单(IconMenuView)
最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的"S ...
- .Net语言 APP开发平台——Smobiler学习日志:实现手机上常见的ListMenuView
最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的"S ...
- JVM 平台上的各种语言的开发指南
JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...
- .Net语言 APP开发平台——Smobiler学习日志:用MenuView控件仿钉钉APP的首页菜单
最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的”Smobil ...
- 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- 循序渐进开发WinForm项目(4)--Winform界面模块的集成使用
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- 循序渐进开发WinForm项目(3)--Winform界面层的项目设计
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
随机推荐
- Spark、Hadoop、Hive相关文章
1.Spark On Yarn(HDFS HA)详细配置过程 2.Hive安装与配置详解
- 设计模式入门——Head First
设计模式是被前人发现.经过总结形成了一套某一类问题的一般性解决方案.使用模式最好的方式是:把模式装进脑子,然后在设计和已有的应用中,寻找何处可以使用它们.以往是代码复用,现在是经验复用. 从模拟鸭子游 ...
- oracle第二天笔记
多表查询 /* 多表查询: 笛卡尔积: 实际上是两张表的乘积,但是在实际开发中没有太大意义 格式: select * from 表1,表2 */ select * from emp; select * ...
- 转: python requests的安装与简单运用
requests是Python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢? 官方文档中是这样说明的: python的标准库urlli ...
- 使用javap进行反编译Java枚举
这是一个枚举类Day.java public enum Day { MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY(" ...
- Spring-Cloud的版本是如何定义的
https://blog.csdn.net/peterwanghao/article/details/79633275 Finchley 与 Spring Boot 2.0.x, 兼容,不支持 Spr ...
- vue set
Vue 可以通过数组变异的方法可以控制数组的增减,却不能更改数组及对象,vue可以通过set方法改变数组的长度,改变某项的值,在组件中可以使用$set方法改变数组长度和某项的值 调用方法:Vue.se ...
- springMVC :interceptors
1.配置拦截器 在springMVC.xml配置文件增加: <mvc:interceptors> <!-- 日志拦截器 --> <mvc:interc ...
- 1.3.6、CDH 搭建Hadoop在安装之前(端口---DistCp使用的端口)
DistCp使用的端口 列出的所有端口都是TCP. 在下表中,每个端口的“ 访问要求”列通常是“内部”或“外部”.在此上下文中,“内部”表示端口仅用于组件之间的通信; “外部”表示该端口可用于内部或外 ...
- 响应式的账号登录界面模板完整代码,内置form表单和js控件
响应式的账号登录界面模板,内置form表单和js控件 <!DOCTYPE html> <html lang="en"><head><met ...