自定义博客皮肤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)
  • 收藏
  • 关注

原创 C++读dat文件

编程实现简易的学生成绩管理系统。(1)文件score.dat中存放了30名学生的序号和6次考试成绩,请从该文件中读取数据;(2)计算每名学生的总分;(3)输出总分最高和最低的学生序号及分数;(4)根据输入的学生序号,输出该生各次考试成绩和平均成绩;各要求比较简单,我只实现读数据部分,将结果存在结构体中,也可以存在vector中。代码如下:#include #inclu

2015-07-31 21:51:30 20374 1

原创 MySQL连接之C语言API

本篇内容主要讲解如何在Linux下用C语言来连接并操作MySQL数据库。一.C API数据类型1.MYSQLMYSQL结构代表一个数据库连接的句柄,包含有关服务器的连接状态的信息,几乎所有的函数都要使用到它。要连接MySQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接。MYSQL结构定义如下:typedef struct st_mysql{

2015-07-31 15:35:30 638

原创 LAMP环境的搭建(ubuntu)

首先下载安装apache2输入:sudo apt-get install apache2安装完毕后,在浏览器中输入:localhost显示如下图,说明安装正确。紧接着安装php5输入:sudo apt-get install php5 安装完毕后,再安装MySQL输入:sudo apt-get in

2015-07-31 12:47:52 271

原创 复杂查询

一.案例扩展1.new_info,仍存储主要数据信息,只是将字段emp_dep与emp_pos的数据类型改为int。2.emp_pos_table用于表示职位的映射信息,它是由两个字段组成,即职位的代号与职位名称。mysql> CREATE table emp_pos_table( -> emp_pos_id int primary key, -> emp_

2015-07-30 23:33:46 295

原创 查询技术

一.查询案例(员工信息管理系统)1.数据库与表的建立

2015-07-30 21:43:00 601

原创 MySQL函数

一.字符串操作函数1.字符串比较1)利用Like语句,其原型为:expr Like ['XXX']其中,expr代表待比较的字符串,XXX为模式串,在MySQL中正则表达式的模式字符的定义如下:编号             字符                                含义 1                    %

2015-07-30 13:04:27 297

原创 MySQL运算符

一.比较运算符比较操作可以用于数字和字符串,如果待比较的既有数字,也有字符串,MySQL中会进行自动转换,如下图:在比较操作中,通常会采用如下规则:1)除安全等于()外,只要待比较的任一参数为NULL,则比较结果为NULL。2)如果待比较的是字符或数字,则按数字或字符串的方式进行比较。1.算数比较1)大于,大于等于2)小于,小于等于3)等于,安全等于

2015-07-30 10:29:32 328

原创 事务和锁

一.什么是事务在计算机科学中,事务(transaction)是指访问并可能更新数据库中各种数据项的一个程序执行单元。事务由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如Begin Transaction和End Transaction语句(或函数调用)来界定。事务由事务开始和事务结束之间执行的全体操作组成。例如,在关系数据库中,一个事务可以是

2015-07-29 17:17:41 248

原创 索引

一.什么是索引索引是对数据库表中一列或多列的值进行排序的一种结构。索引是一个单独的,物理的数据结构,他是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引与驻留内存的数据结构(如二叉树,B树和散列表)有些类似,数据库索引区别于驻留内存的数据结构的地方在于,数据库索引包含的数据量比一次能调入内存的数据量大。因此,数据库索引的数据是放在磁盘上的,只有被访

2015-07-29 15:53:22 354

原创 字符串数字转为double

经常要用到将输入的字符串数字转为double,特写了一个函数,供以后直接调用。//string to doubledouble StringToDouble(char *str){ int i=0; int integer=0; //the integer part double decimals=0.0; //the dec

2015-07-29 12:29:34 1414

原创 存储过程操作

一.什么是存储过程简单地说,存储过程(stored procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。由于SQL语句执行的时候要先编译,然后执行,用户通过指定存储过程的名字并给出参数(如果带有参数)来执行它。(1).存储过程增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。(2).存储过程

2015-07-28 21:55:06 533

原创 触发器操作

一.什么是触发器触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由某个事件来触发,比如当对一个表进行操作(insert,delete,update等)时就会激活其执行。在有数据修改时自动强制执行其业务规则,经常用于加强数据的完整性约束和业务规则等。二.触发器的语法 CREATE [DEFINER = { user | CURRENT_

2015-07-28 21:15:22 486

原创 视图操作

一.视图一个视图是从特定角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表,即视图是由一张或多张表中的数据组成的。视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。二.视图的语法mysql在处理视图时有两种算法,分别为 merge 和 temptable, 可以指定使用哪种算法。 merge是

2015-07-28 20:34:13 672

原创 Ubuntu安装MySQL及MySQL基本使用

一.安装1.   sudo apt-get install mysql-server2.  sudo apt-get install mysql-client3.  sudo apt-get install libmysqlclient-dev二,基本使用1.连接到MySQL数据库mysql -h IP -u root -p其中,-h后面要给出链接的数据库的IP地址或者

2015-07-28 19:23:35 428

原创 笔试题3:链表的结点结构操作

一个链表的结点结构:struct Node{ int data; Node *next;};typedef struct Node Node;(1)已知链表的头结点head,写一个函数把这个链表逆序template void Chain::Reverse(){ if (head == NULL || head->Next == NULL) re

2015-07-23 18:41:54 914

原创 1>Source.obj : error LNK2019: unresolved external symbol "public: __thiscall Chain<int>::~Chain<int>

错误提示:1>Source.obj : error LNK2019: unresolved external symbol "public: __thiscall Chain::~Chain(void)" (??1?$Chain@H@@QAE@XZ) referenced in function _main1>G:\C++\CutRod\Debug\CutRod.exe : fatal e

2015-07-23 15:30:15 402 1

原创 笔试题2:面向对象的基本特征

题目:面向对象的基本特征,并简单述之。1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private, protected,public)

2015-07-23 13:03:57 480

转载 fork()函数详解

一、fork入门知识     一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来

2015-07-23 10:52:09 248

原创 sql server 2008基本语句

1.创建数据库CREATE DATABASE 机票预订信息系统ON --默认第一个文件为主文件PRIMARY( NAME = '机票预订信息系统', FILENAME = 'G:\数据库\机票预订信息系统.mdf', SIZE = 10MB,--初始大小由于没有填写MB或者KB, 此种情况会默认用MB MAXSIZE = 100MB,

2015-07-22 23:06:01 881

原创 红黑树的插入与删除

1.红黑树性质1)每个结点要么是红的,要么是黑的。2)根结点是黑的。3)每个叶结点,即空结点(NIL)是黑的。4)如果一个结点是红的,那么它的俩个儿子都是黑的。5)对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点。2.红黑树的插入的几种情况(只有z为红且z的父为红才需要维护)实现代码见RBTree

2015-07-21 21:05:37 247

原创 C++读取屏幕输入

1.C++读取屏幕一行的多个字符串,字符串用空格隔开#include #include #include using namespace std;int main(){ stack str; cout<<"Please enter some strings separated by space! Q to quit!"<<endl; string

2015-07-21 16:56:13 3677

原创 STL中stack用法

stack的插入好说,主要是取出元素时,可以用stack.top()来赋值,然后用stack.pop()来删除栈顶元素。// stack::empty#include #include using namespace std;int main (){ stack mystack; int sum (0); for (int i=1;i<=10;i++)

2015-07-21 16:53:42 308

原创 红黑树的插入过程

题目:将关键字41,38,31,12,19,8连续地插入一棵初始为空的红黑树后,试画出该结果树。

2015-07-20 17:12:08 708

转载 面试题4:哈希表

哈希表与应用1.介绍数组的特点是:寻址容易,插入和删除困难; 而链表的特点是:寻址困难,插入和删除容易。 这个世界上有没有一种能够综合两者优点的,既寻址容易又插入和删除容易的数据结构?Yes,它就是Hash表。2.哈希散列方法1)除留取余法 2)平方散列法 3)Fibonacci散列法3.哈希表使用范围快速查找,删除的基本

2015-07-17 11:13:26 988

原创 C++重载输出操作符

说明:这里要声明成友元函数的原因是,为类重载运算符调用:DataInfo dataInfo;cout上面重载运算符dataInfovoid operator<<(ostream& out, const DataInfo& dataInfo) //重载输出操作符{ out << "姓名:" << dataInfo.name << " 电话:" << dataInfo.

2015-07-17 09:46:06 454

转载 二维数组做形参

可以用二维数组名作为实参或者形参,在被调用函数中对形参数组定义时可以可以指定所有维数的大小,也可以省略第一维的大小说明,如:    void Func(int array[3][10]);    void Func(int array[][10]);    二者都是合法而且等价,但是不能把第二维或者更高维的大小省略,如下面的定义是不合法的:    void Func

2015-07-15 11:46:45 2562

转载 深入A*算法

深入A*算法一、前言  在这里我将对A*算法的实际应用进行一定的探讨,并且举一个有关A*算法在最短路径搜索的例子。值得注意的是这里并不对A*的基本的概念作介绍,如果你还对A*算法不清楚的话,请看姊妹篇《初识A*算法》。  这里所举的例子是参考AMIT主页中的一个源程序,使用这个源程序时,应该遵守一定的公

2015-07-15 09:52:34 288

转载 初识A*算法(转)

初识A*算法  写这篇文章的初衷是应一个网友的要求,当然我也发现现在有关人工智能的中文站点实在太少,我在这里抛砖引玉,希望大家都来热心的参与。  还是说正题,我先拿A*算法开刀,是因为A*在游戏中有它很典型的用法,是人工智能在游戏中的代表。  A*算法在人工智能中是一种典型的启发式搜索算法,为了说清楚A

2015-07-15 09:50:57 295

转载 面试题3:替换空格和清除空格

一、替换空格请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.",则输出”We%20are%20happy."分析:在空间复杂度尽可能低的情况下,不允许开辟一个新的数组来存放替换空格后的字符串。如果从前往后替换字符串,那么保存在空格后面的字符串肯定会被覆盖。假设字符串的长度为n。对每个空格字符,需要移动后面O(n)个字符,因此对含有O(n)个

2015-07-10 16:32:53 256

转载 面试题2:二维数组中的查找

 查找思路:首先选取数组中右上角的数字。(1)如果该数字等于要查找的数字,查询过程结束;(2)如果该数字大于要查找的数字,剔除这个数字所在的列;(3)如果该数字小于要查找的数字,剔除这个数字所在的行。也就是说,如果要查找的数字不在数组的右上角,则每次都在数组的查找范围中剔除一行或一列,这样每一步都可以缩小查找的范围,直到找到要查找的数字,或者查找范围为空。 

2015-07-10 16:25:53 313

转载 面试题1:如何实现C++单例模式

1. 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。 2. 当仅允许类的一个实例在应用中被创建的时候,我们使用单例模式(Singleton Pattern)。它保护类的创建过程来确保只有一个实例被创建,它通过设置类的构造方法为私有(

2015-07-10 14:02:55 365

原创 计数排序和基数排序

基本思想:对每一个输入元素x,确定小于x的元素个数。利用这一信息,就可以直接把x放到它在输出数组中的位置了。//计数排序#ifndef COUNTINGSORT_H_#define COUNTINGSORT_H_void CountingSort(int *A,int n, int *B, int k) //A为输入数组,n为A的长度,B为输出数组,A

2015-07-05 22:31:20 289

原创 出现“此计算机上的windows防火墙阻止了远程调试”

sql 对外提供服务的端口是1433端口,在防火墙上创建一个允许的规则,选择tcp端口,输入1433如何设置windows防火墙允许规则http://jingyan.baidu.com/article/c843ea0b7d5c7177931e4ab1.html

2015-07-05 18:43:07 12850 1

原创 快速排序C++

快速排序算法和合并排序算法一样,也是基于分治模式。对子数组A[p...r]快速排序的分治过程的三个步骤为:分解:把数组A[p...r]分为A[p...q-1]与A[q+1...r]两部分,其中A[p...q-1]中的每个元素都小于等于A[q]而A[q+1...r]中的每个元素都大于等于A[q];解决:通过递归调用快速排序,对子数组A[p...q-1]和A[q+1...r]进行排序;合并

2015-07-04 21:37:21 258

原创 堆排序C++

用类来实现:#ifndef HEAP_H_#define HEAP_H_class Heap{private: int *A; int heapSize; //堆中元素的个数 int Parent(int i){ return (int)(i / 2); } //返回父节点的序号 int Left(int i){

2015-07-04 20:21:43 368

原创 C++获取数组大小

首先想到的是sizeof()函数但经过试验发现这个函数返回的是数组的字节数,不是元素个数 int a[5]; a[1] = 1; a[3] = 2; cout 这个就可以得到元素个数了。但是整型元素怎么只占4个字节啊?

2015-07-04 17:19:20 7509

空空如也

空空如也

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

TA关注的人

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