- 博客(13)
- 资源 (5)
- 收藏
- 关注
原创 C++控制台坦克大战
C++控制台坦克大战最近接了一个企业的C++定制培训班,在语法阶段结束后要求带学生做一个项目。思来想去就做一个控制台的坦克大战吧,在这里分享给大家。工具类坐标点类class Point{public: Point(); Point(int x, int y); inline int getX(){return x;} inline int getY(){return y;} inline void setX(int x){this->
2021-08-22 20:58:22 801
原创 QTcpServer实现多线程服务器
QTcpServer实现多线程服务器当QTcpServer收到一个客户端连接的时候,会发送一个信号void newConnection()。在接收信号的槽函数中调用nextPendingConnection()函数获得与客户端连接的QTcpSocket对象。但是这个对象只能在主线程中使用,在多线程时是不能使用的。我们查看nextPendingConnection()函数的文档说明。说明很清楚的告诉我们这个QTcpSocket是不能在其他线程中使用的。并且还告诉我们应该如何实现多线程。那就是重写in
2021-01-28 10:11:35 1275
原创 QT实现显示聊天信息的控件
QT实现显示聊天信息的控件准备写一个局域网的聊天小软件。UI部分首先考虑的就是显示聊天信息的界面。下面是测试界面。思路就是自定义聊天项的控件添加到QListWidget中,控件中包含两个QLabel分别显示头像和消息信息。根据不同的聊天角色调整两个QLabel的位置。下面是代码。ChatItem是控件的名字,头文件如下#define CHATITEM_H#include <QWidget>#include <QLabel>class ChatItem :
2021-01-27 15:56:36 1187
原创 针对在校大学生的C语言入门学习——学生管理系统
针对在校大学生的C语言入门学习——学生管理系统有了前面的链表作为数据结构,接下来我们就开始学生管理系统的项目。项目的功能主要就是对学生信息的增、删、改、查。我简单画了一个图来表达一下我们的需求。主界面显示学生的信息,可以根据姓名和各科的成绩升序降序排序。修改、删除、添加都会切换到其他界面进行。数据的持久化我就使用C语言的文件读写来实现。学生结构体封装/*学生信息结构体*/typedef struct Student{ char name[32]; float langu
2021-01-26 17:16:21 328
原创 针对在校大学生的C语言入门学习——链表
针对在校大学生的C语言入门学习——链表看到标题可能大家会觉得我怎么说话不算,不是说好的这次要给大家带来《学生管理系统》项目吗?其实我没有食言,只是整个项目太大了,一篇文章很难说完。为什么这次要聊一聊链表呢,因为《学生管理系统》肯定是要对学生的数据进行各种操作。既然涉及到了大量的数据,选择一个合适的数据结构来存放数据就是这个项目成功的关键。无论是从实际效果考虑,还是以大家的学习基础考虑,链表都是一个非常不错的选择。今天给大家带来一个我对链表的封装,链表是所有数据结构中最好实现的数据结构。对数据结构的封
2021-01-26 12:20:09 282
原创 针对在校大学生的C语言入门学习——扫雷算法讨论
针对在校大学生的C语言入门学习——扫雷算法讨论在上一篇文章《针对在校大学生的C语言入门学习——扫雷》我使用分治算法作为扫雷扩散的解决方案。分治算法一般都使用递归的写法。如果有些同学感觉递归实在是抽象不好理解,那么今天我使用广度遍历的算法作为解决方案给大家再做演示。这次我只写算法,也就是上一篇文章中的open函数。其他部分代码不做任何修改。队列既然使用广度遍历,那我就不能免俗的使用队列。学习过计算机的同学应该都知道,队列是一种先进先出的数据结构。说的国际化一些就叫FIFO。这次我使用一个一维数组
2021-01-19 15:43:19 236
原创 针对在校大学生的C语言入门学习——扫雷
针对在校大学生的C语言入门学习——扫雷聊完了C语言的语法,咱们该回归学习C语言的本质了,那就是编程。编程是需要刻苦训练的,仅仅是刻苦还不够,训练要有针对性。今天给大家带来一个C语言的扫雷项目来练练手。下面是项目的运行截图,整个项目在控制台运行。结构体封装首先我要用一个二维数组表示游戏中所有的点。前面我们聊过,二维数组经常用来表示平面直角坐标系。考虑到每个点至少包含两个信息:1.显示,2.雷。所以我要将点封装成一个结构体类型,表示游戏界面的二维数组自然就是结构体类型的二维数组。typedef
2021-01-19 11:47:23 219
原创 针对在校大学生的C语言入门学习——高级语法
针对在校大学生的C语言入门学习——高级语法对于一门语言,什么才算是高级语法呢?个人认为是一些比较难以理解的语法。之所以难以理解,是因为这类语法往往都是为了处理一些高级的问题,而这些高级问题对于没有开发经验的新手来说是从未遇到过的。比如我跟一个南方的学生聊东北的铁锅炖有多么多么的好吃,任我说的唾沫横飞他也不会真的明白有多好吃,因为他从来没吃过。今天想跟大家聊的一些语法并非嵌入式笔试题中经常问到的一些难题,因为很多笔试题没有实际意义。这里顺便提一下,大家如果找工作的话,需要像应付升学考试一样刷题才行,因为
2021-01-13 12:10:31 605
原创 针对在校大学生的C语言入门学习——指针和数组
针对在校大学生的C语言入门学习——指针和数组存储地址的变量学习过C语言的人都知道,指针变量绝对是一个让人很头疼的学习难点。首先我们来分析一下“指针变量”这个词的中心词吧。中心词是“变量”,那么变量是用来干什么的呢?当然是存储数据以及做相应的运算。变量中存储的数据类型是由变量类型来决定的,比如整型变量存储整数、浮点型变量存储浮点数。那么指针变量存储什么呢?答案是地址!地址的运算我们知道,变量本身并没有什么运算能力,所谓变量的运算一定是变量中存储的数据运算。比如int a;a++;这段代码是没有意
2021-01-09 12:28:17 218
原创 针对在校大学生的C语言入门学习——函数
针对在校大学生的C语言入门学习——函数为什么要使用函数如果你没有接受过系统的训练就能主动想要封装函数,说明你在编程上是一个天才,千万不要辜负自己的天赋!函数在语法上并不难理解,但是什么时候使用函数才合理呢?我们不妨来做一个猜谜游戏——“手持筷子将食物放入嘴中,然后用牙齿将嘴中的食物咬碎,咬碎到可下咽的程度后将食物咽下。期间可以用舌头感知食物的味道。”猜一猜这是在干什么?虽然我描述的还不是很到位,但是我想还不是难猜的,答案就是“吃饭”。我们可以认为“吃饭”这个词就是对上述一系列行为的“封装”。在我们
2021-01-04 11:50:53 321 1
原创 针对在校大学生的C语言入门学习——编码示例
针对在校大学生的C语言入门学习——编码示例学习编程最重要的就是练习,对于新手而言练习也是最痛苦的。编程没有思路、编译出错不会改等问题让很多人止步学习编程的大门。编程是需要训练的,训练就要讲究方法。方法不外乎“循序渐进”四个字。今天我就拿一个非常常见的编程入门习题带大家分析一下,希望能够帮助大家成功开启学习编程的大门。这次我使用的编译器是GCC 4.6.3,向大家介绍编译器版本是因为后面我会和大家分享一下如何解决编译报错问题。不同的编译器版本对于同一个错误报错可能有一些差别,但是差别不大。练习题
2021-01-01 11:33:13 1813
原创 针对在校大学生的C语言入门学习——三种结构
针对在校大学生的C语言入门学习——三种结构大学教材里一般都喜欢将程序的结构分为三种,既顺序结构,选择结构,循环结构。我们今天就来聊聊这三种结构。这三种结构总的来说是干嘛用的呢?它们决定了代码的执行顺序,或者说计算机执行你下达的指令的顺序。顺序结构顺序结构很好理解,当我们读一篇文章的时候,我们是不是按照从上到下的顺序一行一行的读呢?我想这个世界上绝大多数的人都是这样读的。顺序结构也是这样,计算机就是从上到下一行一行的执行我们的代码。很简单吧。比如我们参考菜谱学做木须柿子这道菜,菜谱会这样写:“鸡
2020-12-28 14:19:47 376 2
原创 针对在校大学生的C语言入门学习——变量运算
针对在校大学生的C语言入门学习前言本人是一名国内知名嵌入式培训机构的讲师,常年给高校的大学生做嵌入式的实训。发现90%以上的大学生在校期间都不能很好的掌握C语言。难道是大部分同学都不喜欢自己千辛万苦报考的专业吗?显然并不是,而是高校的C语言教学方式存在问题。我这么说可能会得罪一些人,但是事实就是这样的!于是我有了一个想法,就是想换一种轻松的方式向大家介绍如何学习C语言,抛开书本上那些枯燥的文字描述。希望能够给广大的相关专业的同学们提供一些帮助。首先我们得先弄清楚什么是编程。简单的说就是跟计算机说话
2020-12-21 14:43:27 954 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人