自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 MFC-为动态控件绑定事件方法1

知识点: 认识窗口过程 GetWindowLong SetWindowLong 为动态控件绑定事件一、获取窗口过程二、设置新窗口过程 1、书写一个新窗口过程函数 窗口过程格式 LRESULT CALLBACK WindowProc(HWND hwnd, // 窗口句柄UINT uMsg, // 消息事件WPARAM wPar

2017-12-28 10:10:00 2110

原创 MFC-动态创建控件

知识点: CEdit::Create dwStyle参数 动态创建Edit控件 CRect类一、CEdit::Create函数CEdit::Create BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );以下风格在 Edit控件属性里 几乎都有对应,请自行对比。 返回值 成功创建返回非

2017-12-27 10:05:14 807

原创 MFC-ClistCtl报表格式的使用

知识点: CListCtrl报表格式 CListCtrl报表格式添加列 CListCtrl报表格式添加行 CListCtrl报表格式设置单元格一、CListCtrl报表格式 类名:SysListView32 属性 view:report; 二、CListCtrl报表格式添加列 int InsertColumn(intnCol,LPCTSTR lpszColumnHeadi

2017-12-22 10:53:34 943

原创 MFC-CTabCtrl选项卡控件

CTabCtrl常用属性 CTabCtrl类常用成员函数 CTabCtrl代码示例一、CTabCtrl控件属性 Bottom:底部样式 Vertical:垂直样式 与Bottom结合使用,可以使选项卡显示在上下左右四个位置 Buttons:按钮式选项卡 Flat Button:平面按钮选项卡,结合Buttons使用 MultiLine:多行显示选项卡 Style:右对齐

2017-12-20 15:23:38 1976

原创 MFC-CProgressCtrl进度条控件

知识点: CSpinButtonCtrl常用属性 CSpinButtonCtrl类常用成员函数 CSpinButtonCtrl代码示例一、CSpinButtonCtrl控件属性 1.添加EDIT控件 2.添加Spin控件 如果不是这样的顺序的话,使用ctrl+D改变Tab顺序,使spin紧靠edit后面 3.在EDIT控件上面设置group属性(特别注意) 4.设置Spin属性

2017-12-20 11:20:18 663

原创 MFC-滑块控件的使用

知识点: CSliderCtrl(滑块)控件 CSliderCtrl常用属性 CSliderCtrl类常用成员函数 CSliderCtrl运用示例一、CSliderCtr常用属性 Orientation 水平,还是垂直 Point 滑块样式 Tooltips 刻度提示 //由于视频录制软件的问题,这个无法在视频上显示出来 Tick Mark

2017-12-20 09:49:50 2748

原创 MFC-实现菜单部分功能的实现

计算器大概的界面是出来了,但是我们的电脑上自带的计算器可是有菜单功能的,我们也来添加一下。 首先我们进入资源视图,右键选择“添加资源” 然后点击“Menu”“新建” 然后先把界面做好,就是简单的输入,注意的是这些下划线在输入的时候应该这样写:编辑(&E),你输入好后它就显示下划线了 接着点击计算器的资源视图,这个时候最右边有它的属性框,选择 运行一下即可插入到计算器的界面

2017-12-14 15:42:37 1160

原创 MFC-实现计算机完善(+-*/%的完善)

经过几天的努力,总算把之前遗留的问题给解决了,长话短说代码奉上// MyWindowDlg.cpp : 实现文件//#include "stdafx.h"#include "MyWindow.h"#include "MyWindowDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// 用于应用程序“关于”菜单项的 CAboutDlg 对话框cl

2017-12-14 08:56:02 384

原创 MFC-实现计算机编程初始(实现“+”的功能)

这个计算机的界面已经做好了 其实实现+,-,*,/的功能都差不多,但这里先实现“+”的功能 先把代码上上来吧,手还有点生,之后几天会把代码详细的呈上来// MyWindowDlg.cpp : 实现文件//#include "stdafx.h"#include "MyWindow.h"#include "MyWindowDlg.h"#ifdef _DEBUG#define new

2017-12-12 19:25:46 1203

原创 MFC-UpdateData(false)和UpdateData(true)的区别

MFC在编程过程中有两个函数我们经常用到: UpdateData(false)和UpdateData(true) UpdateData() MFC的窗口函数,下面是MSDN的说明; Call this member function to initialize data in a dialog box, or to retrieve and validate dialog data. BO

2017-12-12 10:09:29 1404

原创 C++虚函数

今天,我来讲一种在C++编程中实现多态的机制,叫做虚函数。对于多态来说,实际上就是用父类型的指针指向子类的实例,然后通过父类的指针调用子类的成员函数,这种技术使得父类型的指针有多种形态,这是一种常见的泛型技术,除虚函数外,还有模板技术,RTTI技术也属于泛型技术。 代码:#include <bits/stdc++.h>using namespace std;class Base{public:

2017-10-26 10:30:17 188

原创 浅谈C到C++的扩展

1、如果一个函数没有参数,C++会认为这是一个无参函数,不能给它传参;C语言中一个无参函数定义是用void进行填充void func(void) //等价于func(){}C++函数必须要有类型。2、C++中三目运算符可以作为左值实用,三目运算符返回的是变量本身,但是返回的表达式中不能有常量。int a = 10;int b = 20;(a > b ? a : b) = 100; // *

2017-09-16 11:18:56 323

原创 c++条件语句的实战编程

1、字符串大小写转换数字变更 要求:字符串大小写转换,数字加1,9加1则变为0,其他字符不变。#include <iostream>using namespace std;int main(){ int i; int n; char buf[100] = {0}; cout <<"please input a string:"; cin >> buf;

2017-09-14 15:15:01 1783

原创 Linux下C语言项目—聊天室的搭建1.0

之所以为1.0,是因为虽然能运行,但有些地方的边际条件并没有得到补充,很容易产生错误,先上代码吧。 一个在 Linux 下可以使用的聊天软件,要求至少实现如下功能: 1. 采用 Client/Server 架构 2. Client A 登陆聊天服务器前,需要注册自己的 ID 和密码 3. 注册成功后,Client A 就可以通过自己的 ID 和密码登陆聊天服务器 4. 多

2017-08-30 13:54:53 4437 11

原创 进程间通信1

管道通信 管道是单向、先进先出的,他把一个进程的输出和另一个进程的输入连在一起。两个程序之间传递数据的一种简单方法是使用popen和pclose。#include <stdio.h>FILE *popen(const char *command, const char *type);int pclose(FILE *stream);popen函数允许一个程序将另一个程序作为新进程来启动,并可以

2017-08-14 20:35:36 272

原创 进程通信—卖票系统的实现

#include <stdio.h>#include <sys/ipc.h>#include <sys/shm.h>#include <sys/types.h>#include <string.h>#include <time.h>typedef struct _shm{ int flag; int ticket;}SHM;void sellTicket(SHM* ps

2017-08-14 18:28:23 452 1

原创 进程控制3—父子进程の恩怨情仇

子进程比父进程先退出:僵尸进程 僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸。 如何产生? 如果一个进程在其终止的时候,自己就回收所有分配给它的资源,系统就不会产生所谓的僵尸进程了僵尸进程产生的过程: 1. 父进程调用fork创建子进程后,子进程运行直至其终止,它立即从内存中移除,但进程描述符仍然保留在内存中(进程描述符占有极少的内存空间)。子进程的状态变

2017-08-10 17:12:21 435

原创 进程控制2—进程编程

紧接着上一篇,我们来写写关于进程的编程。获取ID通过man getpid这个命令我们可以在Linux终端上获取到这个函数详细的讲解#include <sys/types.h>#include <unistd.h>//头文件//获取本进程IDpid_t getpid(void)//获取父进程IDpid_t getppid(void)下面通过一段代码来看看查找进程ID#include <stdio

2017-08-10 15:31:27 251

原创 进程控制1之初识进程

1.首先我们要区分进程与程序之间的区别。程序是可执行的文件,它就躺在我们的磁盘里;而进程则是运行的程序,进程的内存由一系列段组成(代码段,初始化数据段和为初始化数据段)。2.进程的状态(进程有三个状态) 执行状态:占用着cpu, 就绪状态:等待分配cpu, (阻塞)等待状态:不能占用cpu,若等待的事件发生则可将其唤醒。3.每一个进程都有一个id(为整数),每一个进程都有一个创建它的进程,叫父

2017-08-10 11:04:43 226

原创 文件系统编程—系统调用与标准IO

首先需要明白的是,所有的操作系统都提供多种服务的入口点,程序由此向内核请求服务。这些可直接进入内核的入口点被称为系统调用。 在Linux中,为了更好地保护内核空间,程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的。因此,用户进程在通常情况下不允许访问内核数据,也无法使用内核函数,它们只能在用户空间操作用户数据,调用用户空间的函数

2017-08-08 20:35:38 366

原创 C语言项目——通讯录

那个,我为了添加娱乐效果,在程序中加入了一些哲学♂,大家复制的时候记得改一下printf里的内容即可首先是头文件#ifndef _TEST_H__#define _TEST_H__#define FALSE 0#define TRUE 1typedef struct friend //朋友相关信息的结构体{ int ID; char name[20]

2017-08-07 20:35:47 689

原创 栈和队列的区别

首先,栈和队列都是线性表的重要家族成员,栈(stack)是一种只在表尾进行插入或删除的线性表,又称作后进先出(LIFO)的线性表;队列则相反,它是一种先进先出的线性表,即只允许一端进行插入,一端进行删除,有点类似超市里的排队。栈的一些基本代码思想: 基本操作: InitStack(&S) 操作结果:构造一个空栈S。 Destroy

2017-08-07 10:10:52 1872

原创 班级40位同学,随机分配4人一组。

#include <stdio.h>#include <time.h>//交换函数void swap (int *a, int i, int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}//打印函数void printA (int *a, int len){ int i; for (i =

2017-08-07 09:51:05 3376 1

原创 排序之三:插入排序

基本思想:当插入第i (i ≥ 1)个对象时, 前面的V[0], V[1], …, V[i-1]已经排好序。这时,用V[i]的排序码与V[i-1], V[i-2], …的排序码顺序进行比较,找到插入位置即将V[i]插入,原来位置上的对象向后顺移。 void swap (int a[],int i,int j) { int tmp = a[i]; a[i

2017-08-06 20:58:22 179

原创 排序之四:二分插入

基本思想:因为 R[1..i-1] 是一个按关键字有序排列的有序序列,因此可以利用折半查找实现“在R[1..i-1]中查找R[i]的插入位置”,由此实现的插入排序称为二分插入排序。void swap (int a[],int i,int j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; }void printA (int *a,int len)

2017-08-06 20:54:46 191

原创 排序之五:希尔排序(高效)

基本思想:设待排序对象序列有 n 个对象,首先取一个整数 gap < n 作为间隔,将全部对象分为 gap 个子序列,所有距离为 gap 的对象放在同一个子序列中,在每一个子序列中分别施行直接插入排序。然后缩小间隔 gap,例如取 gap = 【gap/2】,重复上述的子序列划分和排序工作。直到最后取 gap == 1, 将所有对象放在同一个序列中排序为止。void swap (int a[],in

2017-08-06 20:51:50 241

原创 其他三种排序:堆排序,归并排序,快速排序

//交换函数 void swap (int a[],int i,int j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; }//打印函数 void printA (int *a,int len) { int i; for (i = 0; i < len; i++) { p

2017-08-06 20:48:10 320

原创 排序之三:插入排序

#include void swap (int a[],int i,int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}void printA (int *a,int len){ int i; for (i = 0; i < len; i++) { printf ("%-4d",a[i]); } printf ("\

2017-08-06 18:58:55 207

原创 十进制转换为十六进制

#include #define BASE 16void tran(int n){ if (n == 0) return; tran(n/BASE); if (n%BASE > 9)//每一次循环后定义比9大的余数 printf ("%c",n%BASE - 10 + 'A'); else //否则继续循环输出 printf ("%d",n

2017-07-20 20:47:57 372

原创 编写函数实现strcat(),strcmp()以及strcpy()的功能

#include #include //实现stract的功能:把str2的字符串放到str1的后面。int main(){ char str1[100]; char str2[10]; gets(str1); gets(str2); char *p1 = str1; char *p2 = str2; int k =strlen(str1); p1 = p

2017-07-17 19:15:16 4710 1

原创 今天学习的时候偶然发现了一个有趣的题目,可以用编程实现。

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手(在中国,警察:都TM别废话,都和我去局里一趟,破案要紧!手动滑稽)#include int main(){ char kill

2017-07-12 20:11:37 402

原创 用C语言计算一条语句中的空格、字母、数字的个数。

#include int main(){ int space_count = 0; int letter_count = 0; int number_count = 0; char ch = 0; while (ch != '\n')//读到语句末尾,退出循环 { ch = getchar(); if (ch == ' ')//为空格的时候计数+1 {

2017-07-12 20:07:47 7175 3

原创 常见的排序方式之二:选择排序

选择排序。

2017-07-11 17:00:32 264

原创 常见的排序之一:冒泡排序

两种排序方式之一:冒泡排序。

2017-07-11 16:49:55 245

原创 经典的报数退出问题,以前叫猴子选大王。n个人排成一圈报数,报到3的退出,循环直至最后一个,问,最后一个的原来号码是多少。

#includevoid main(){int i,k,m,n,num[50],*p;printf("input number of person: n=");scanf("%d",&n);p=num;for(i=0;i*(p+i)=i+1;i=0;k=0;m=0;while(m{if(*(p+i)!=0)//判断这个号(原来的序号)是否出局

2017-07-11 11:22:12 898

原创 初试博客(hello world!)

#include int main(){    printf("hello world!");    return 0;}今天第一次开博客,也是第一次在网上码代码,比较紧张,毕竟大牛很多,萌新瑟瑟发抖*——*

2017-07-10 20:36:46 361

VA_X_Setup1925完美支持VS2010

完美支持VS2010,下载安装后将VA_X.dll复制到C:\Program Files (x86)\Visual Assist X下面覆盖即可

2018-01-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除