坚持
Lange_Taylor
从零开始
展开
-
小型超市收银台
#收银台开发环境:C/C++、VS2017、MySQL Server 8.0项目功能:实现小型超市管理货物和收银。老板具有管理员超级权限可以对员工进行管理。员工可以对货物仓库进行管理。收银功能的简单实现。项目描述:用C++类封装对MySQL数据库的操作方法。使用DuiDersigner_d可视化工具搭建界面,操作XML文件。Duilib程序Win32消息循环进行事件响应完成功能实现...原创 2019-09-03 21:58:33 · 617 阅读 · 0 评论 -
宏与内联函数
宏常量const :C++中用来替换宏#define PI 3.14#define PI " 3.14"没有参数类型检测代码运行错误,(报错位置)难以调试C++中 const 修饰常量弥补缺乏类型检测缺点并且具有宏替换属性int main() { const int a = 10; int * pa = (int*)&a; *pa = 100;//c...原创 2019-07-10 17:45:44 · 142 阅读 · 0 评论 -
每日一题
题目描述考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。例如:“car” < “carriage” < “cats” < “doggies < “koala”2.根据字符串的长度排序。例如:“car” < “cats” < “koala” < “doggies” < “...原创 2019-07-15 00:00:17 · 155 阅读 · 0 评论 -
每日一题
题目描述二货小易有一个W*H的网格盒子,网格的行编号为0H-1,网格的列编号为0W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。输入描述:每组数组包含网格长宽...原创 2019-07-10 14:49:26 · 212 阅读 · 0 评论 -
堆和栈区别
堆区和栈区:程序运行时的内存区域 我们把内存分为堆空间和栈空间。 栈空间比较小,但是读取速度快 堆空间比较大,但是读取速度慢1.栈区 栈的特征: 数据只能从栈的顶端插入和删除 把数据放入栈顶称为入栈(push) 从栈顶删除数据称为出栈(pop) 简单地说:先进后出2.堆(区分数据结构中堆(Top k)二者没有任何关系)堆是一块内存区域,与栈不同,堆里的...原创 2019-07-09 21:09:26 · 178 阅读 · 0 评论 -
每日一题
链接:https://www.nowcoder.com/questionTerminal/e3954b75f99c43a5ab27b613329fabce来源:牛客网下面程序的输出结果是#include<iosteam.h>void main(){ int n[][3] = {10,20,30,40,50,60}; int (*p)[3]; p=n; ...原创 2019-07-09 16:16:17 · 198 阅读 · 0 评论 -
每日一题
题目描述A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。输入描述:输入为一行,一共4个整数,分别为A ...原创 2019-07-08 22:57:15 · 128 阅读 · 0 评论 -
二叉树概念
1.掌握树的基本概念树:是一类重要的非线性数据结构,是以分支关系定义的层次结构。每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树2. 掌握树的相关概念节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的为6叶节点或终端节点:度为0的节点称为叶节点; 如上图:B、C、H、I…等节点为叶节点...原创 2019-05-28 18:31:20 · 16068 阅读 · 2 评论 -
Linux入门命令
了解以下Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp1./proc Linux内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、 改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中, 而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接...原创 2019-05-13 11:18:54 · 215 阅读 · 0 评论 -
linux入门常用工具
常用的牛逼的编辑器VimVim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。EclipseEclipse是一款很酷的开源代码编辑器,它拥有代码高亮和智能提示等强大的功能。在Eclipse中,完全胜任以下编程语言的工作——Python, R, Ruby, JavaScript...原创 2019-05-25 22:16:31 · 289 阅读 · 0 评论 -
单链表
单链表的基本操作:SList.h文件#pragma oncetypedef int SDataType;// 链表的节点 typedef struct SListNode{ SDataType _data; struct SListNode* _pNext;}Node, *PNode;// 链表的结构,给一个头指针保存链表第一个节点的地址 typedef struct ...原创 2019-05-07 17:51:25 · 289 阅读 · 0 评论 -
线性结构之顺序表
什么是线性结构?线性结构是一个有序数据元素的集合.线性结构中都包含什么内容?线性表,栈,队列,双队列,数组,串。什么是顺序表?顺序表的分类?顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组 上完成数据的增删查改。顺序表一般可以分为:1.静态顺序表:使用定长数组存储。2.动态顺序表:使用动态开辟的数组存储。用c语言来实现顺序表的基本操...原创 2019-05-05 22:40:40 · 1027 阅读 · 0 评论 -
通讯录C语言
熟练结构体的使用转移表的方式降低代码复杂度#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>//通讯录可以用来存储1000个人的信息,每个人的信息包括://姓名、性别、年龄、电...原创 2019-04-24 22:46:46 · 147 阅读 · 0 评论 -
练习动态内存开辟
mallocvoid* malloc (size_t size);这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。1.如果开辟成功,则返回一个指向开辟好空间的指针。2.如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。3.返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。4.如果参数 s...原创 2019-04-24 22:39:57 · 131 阅读 · 0 评论 -
c总结
原创 2019-05-02 17:28:22 · 318 阅读 · 1 评论 -
文件操作函数
fopen fclose函数系统需要在内存中为每个读写的文件开辟一段缓存,缓存中保存文件信息的是FILE结构体,打开文件时就会获得指向FILE的指针。为什么要用缓存呢,因为硬盘读取时很慢的,机械硬盘的读写时间都是毫秒级,而内存读写是纳秒级的,差了一百万倍。函数原型为File* fopen(const char* filePath, const char* mode)和int fclose(F...原创 2019-04-27 20:10:51 · 1415 阅读 · 1 评论 -
结构体总结
知识点:结构体类型创建结构体初始化结构体内存对齐位段,位段计算机大小。枚举+联合。自定义结构体类型:用途:抽象现实中的事物,提取主要特征.结构体声明:例如描述一个学生:struct(结构体关键字) stu(结构体变量名称){ char name[1024];//成员类型+变量名称 int age; char sex[20]; char id[1024];};//...原创 2019-04-22 22:31:16 · 225 阅读 · 0 评论 -
每日一题
题目描述牛牛举办了一次编程比赛,参加比赛的有3 * N个选手,每个选手都有一个水平值A_I。现在要将这些选手进行组队,一共组成Ñ个队伍,即每个队伍3人。牛牛发现队伍的水平值等于该队伍队员中第二高水平值。例如:。一个队伍三个队员的水平值分别是3,3,3那么队伍的水平值是3一个队伍三个队员的水平值分别是3,2,3。那么队伍的水平值是3一个队伍三个队员的水平值分别是1,5,2。那么队伍的水平值...原创 2019-07-05 17:43:17 · 221 阅读 · 0 评论 -
每日一题
排序子序列牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列.如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2输入描述:输入的第一行为一个正整数n(1 ...原创 2019-07-06 19:35:42 · 637 阅读 · 0 评论 -
每日一题
从C/C++转到Java的程序员,一开始最不习惯的就是变量命名方式的改变。C语言风格使用下划线分隔多个单词,例如“hello_world”;而Java则采用一种叫骆驼命名法的规则:除首个单词以外,所有单词的首字母大写,例如“helloWorld”。请你帮可怜的程序员们自动转换变量名。输入描述:输入包含多组数据。每组数据一行,包含一个C语言风格的变量名。每个变量名长度不超过100。输出描述...原创 2019-08-23 14:19:08 · 289 阅读 · 0 评论 -
Linux软链接文件与硬链接文件 静态链接与动态链接
软链接文件与硬链接文件区别硬链接文件是一个文件别名(目录项)--与源文件操作同一个inode节点软链接文件是一个单独的文件,数据中存储源数据路径软链接可以对目录创建,硬连接不可以软链接可以跨分区建立,硬连接不可以删除源文件,软链接文件失效,硬链接文件无影响(链接数-1)静态链接与动态链接静态链接:链接静态库,将代码拷贝,程序大,运行时不依赖静态库,运行时大概率代码冗余动...原创 2019-08-17 20:48:35 · 363 阅读 · 0 评论 -
每日一题
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,...原创 2019-08-25 15:12:51 · 171 阅读 · 0 评论 -
线程
有了进程,为什么还要有线程?线程产生的原因:进程可以使多个程序能并发执行,以提高资源的利用率和系统的吞吐量;但是其具有一些缺点:进程在同一时间只能干一件事 进程在执行的过程中如果阻塞,整个进程就会挂起,即使进程中有些工作不依赖于等待的资源,仍然不会执行。因此,操作系统引入了比进程粒度更小的线程,作为并发执行的基本单位,从而减少程序在并发执行时所付出的时空开销,提高并发性。和进程相...原创 2019-08-14 21:22:56 · 159 阅读 · 0 评论 -
每日一题
NowCoder每天要给很多人发邮件。有一天他发现发错了邮件,把发给A的邮件发给了B,把发给B的邮件发给了A。于是他就思考,要给n个人发邮件,在每个人仅收到1封邮件的情况下,有多少种情况是所有人都收到了错误的邮件?即没有人收到属于自己的邮件。输入描述:输入包含多组数据,每组数据包含一个正整数n(2≤n≤20)。输出描述:对应每一组数据,输出一个正整数,表示无人收到自己邮件的种数。示例1...原创 2019-08-19 23:23:04 · 342 阅读 · 0 评论 -
内存泄露 智能指针
为什么要使用智能指针:智能指针的作用是管理一个指针,因为存在以下这种情况:申请的空间在函数结束时忘记释放,造成内存泄漏。使用智能指针可以很大程度上的避免这个问题,因为智能指针就是一个类,当超出了类的作用域是,类会自动调用析构函数,析构函数会自动释放资源。所以智能指针的作用原理就是在函数结束时自动释放内存空间,不需要手动释放内存空间。RAII://RAII(Resource Acquisit...原创 2019-08-13 20:31:29 · 326 阅读 · 0 评论 -
网络基础
网络层:负责地址管理与路由选择:在复杂网络通讯环境中,为每一条数据选择一条合适的路径进行传输而选择路径是根据每一条数据中的目的端地址决定的并且路由选择也依托良好的地址管理IP协议字段:4位协议版本:4位头部长度:以4字节为单位 20~608位服务类型:4位TOS字段16位数据报长度: 包括IP头在内,一个IP报文的长度----一个udp报文的最大数据段大小64k-20-81...原创 2019-08-01 23:15:09 · 214 阅读 · 0 评论 -
进程基础
进程概念:进程是操作系统调度程序运行的灵魂,在操作系统中这个灵魂就是pcb–linux下是task_struct进程查看: ps -aux -ef /proc getpid()进程创建:—fork()—操作系统通过调用进程创建一个新的子进程 复制:复制父进程的pcb(代码共享,数据独有)创建子进程的意义:分摊压力,让子进程完成其它任务返回值:对于...原创 2019-08-02 15:19:53 · 133 阅读 · 0 评论 -
C++异常
1.C语言传统的处理错误的方式传统的错误处理机制:终止程序,如assert,缺陷:用户难以接受。如发生内存错误,除0错误时就会终止程序。返回错误码,缺陷:需要程序员自己去查找对应的错误。如系统的很多库的接口函数都是通过把错误码 放到errno中,表示错误C 标准库中setjmp和longjmp组合。这个不是很常用,了解一下 实际中C语言基本都是使用返回错误码的方式处理错误,部分情况下使...原创 2019-08-03 19:27:51 · 227 阅读 · 0 评论 -
网络基础
TCP/IP重要解析:目的:为了了解底层协议,使得编程得心应手应用层:负责应用程序之间的数据沟通;自定制协议:结构化数据的传输序列化:将数据对象按照指定协议组织成为可持久化存储/数据传输的二进制数据格式串反序列化:二进制数据串按照指定协议解析出数据对象知名协议:HTTPURL:统一资源定位符http://username:password@server_ip:serv...原创 2019-07-30 16:41:05 · 208 阅读 · 0 评论 -
每日一题
题目描述二货小易有一个W*H的网格盒子,网格的行编号为0H-1,网格的列编号为0W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。输入描述:每组数组包含网格长宽...原创 2019-07-17 14:45:46 · 167 阅读 · 0 评论 -
每日一题
题目描述Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者...原创 2019-07-12 16:32:59 · 174 阅读 · 0 评论 -
每日一题
题目描述根据输入的日期,计算是这一年的第几天。。详细描述:输入某年某月某日,判断这一天是这一年的第几天?。接口设计及说明:/*****************************************************************************Description : 数据转换Input Param : year 输入年份Month 输入...翻译 2019-07-23 17:39:02 · 172 阅读 · 0 评论 -
Linux套接字编程
**套接字编程:*网络通讯编程ip地址:功能:在网络唯一标识一台主机本质:IPv4: uin32_t在网路中的数据都必须带有源IP地址和目的IP地址PORT端口:功能:在主机上标识一个进程–表示一个数据应该由那个进程处理本质:uint16_t 0~65535在网络中的数据都必须带有源端口和目的端口特性:一个段口只能被一个进程占用,一个进程可以使用多个端口五元组:源IP地址...原创 2019-07-23 17:07:39 · 194 阅读 · 0 评论 -
每日一题
题目描述有两个32位整数n和m,请编写算法将m的二进制数位插入到n的二进制的第j到第i位,其中二进制的位数从低位数到高位且以0开始。给定两个数int n和int m,同时给定int j和int i,意义如题所述,请返回操作后的数,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1。测试样例:1024,19,2,6返回:1100class BinInsert {public...原创 2019-07-16 16:35:08 · 180 阅读 · 0 评论 -
每日一题
读入一个字符串str,输出字符串str中的连续最长的数字串输入描述:个测试输入包含1个测试用例,一个字符串str,长度不超过255。输出描述:在一行内输出str中里连续最长的数字串。示例1输入复制abcd12345ed125ss123456789输出复制123456789#include <iostream>#include <string>us...原创 2019-07-07 14:18:57 · 135 阅读 · 0 评论 -
strchr
strchr函数实现#include <stdio.h>#include <stdlib.h>#include <assert.h>char* Strchr(const char *str, int ch) { assert(*str != NULL); if (*str == '\0') { return NULL; } char* ptr...原创 2019-04-15 12:42:40 · 124 阅读 · 0 评论 -
strcmp
strcmp函数实现#include <stdio.h>#include <stdlib.h>#include <assert.h>char *Strcmp(const char *str1, const char *str2) { assert(*str1 != NULL); assert(*str2 != NULL); int i = 0...原创 2019-04-15 11:50:35 · 118 阅读 · 0 评论 -
0.0
完成猜数字游戏。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <time.h>void menu() { printf("***************************\n"); printf("********1. 开始游戏***...原创 2019-03-27 22:38:51 · 114 阅读 · 0 评论 -
题目
写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)#include <stdio.h>#include <stdlib.h>int bin_search(int arr[], int right, int key) { int left = 0; int mid = 0; while (left <= right) ...原创 2019-03-27 22:53:56 · 117 阅读 · 0 评论 -
嗯嗯
编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。由于键盘每一个符号在c语言中是使用asscii码实现,可以使用范围来判断具体键盘输入的内容.#include <stdio.h>#include <stdlib.h>int main(){ char ch = '0';...原创 2019-03-27 22:50:13 · 10878 阅读 · 0 评论