1. clrscr(void) 清屏 clear screen;
gotoxy(x,y); 移动光标至指定位置;
2.定义活动文本模式窗口函数window
void window(int left,int top,int right,int bottom);//参数顺时针依次传入
textcolor(int newcolor);
BLACK
BLUE
GREEN
CYAN(青色)
RED
MAGENTA(洋红)
BROWN(棕色)
LIGHTGRAY
DARKGRAY
LIGHTBLUE
LIGHTGREEN
LIGHTCYAN
LIGHTRED
LIGHTMAGENTA
YELLOW
WHITE
textbackground(int newcolor);//newcolor 同上面textcolor的符号常量;
标准的stdout 1 (printf(格式输出到stdout),fprintf(输出对象是文本文件或是stdout 1/stderr 2),cprintf(控制光标,文件及文本背景颜色))
CPP新术语(inhrit,polymorphic,dataHide,encapsulation,class,object-oriented);
c++3种不同的编程方式:
C语言代表的过程性编程;
C++在C语言基础上添加的类代表的面向对象编程
C++模板支持的泛型编程;
使用c++编程的一个主要原因是使用面向对象的编程特性
(提供基本数据类型,运算符,控制结构,语法规则)C基础
(对象,类),模板(泛型)
操作系统是"能够管理计算机资源,处理计算机与用户之间交互的一组程序";
汇编assembly针对特定的CPU
low-level 直接操作硬件(直接访问CPU register(templete storage),memory);
编译器程序将高级语言翻译成特定计算机的内部语言
C编译原理
计算机语言需要处理的2个概念(数据(程序使用和处理的信息),算法(程序使用的方法))
procedural (强调的是编程的算法方面)
过程化编程首先要确定计算机应采取的操作,然后用编程语言来具体实现操作;
mongoDB 通过预先建立对象,再保存到集合中
在mongoDB shell命令提示符下操作
对象defined
rui01 = {name:"byRuiy"};
rui02 = {x:78};
use ruiy;
db.ruige.save(objectName);
mongoDB配置auth
mongoDB设置权限,用户账户
mongoDB远程用户连接语法结构
mongo -uuserName -ppwd serverIP:port/dbName;
开启mongodb服务室不添加任何参数时,所有的C端均可对数据库进行操作,而起可以远程访问,启动指定--auth,则可以对数据库进行用户验证
mongod --auth >> mongodb.log &
2,mongodb添加用户(超级管理员账号(在admin库中创建的用户 false/true指定是否是只读账号)和普通账号(指在除了非admin数据库下创建的用户,此账号仅仅能对数据下的Collections进行相关操作,至于权限问题,还有待跟进你在创建此账号指定的相关参数,此中一个非常关键的是true or false))
use dbName,不插入数据到指定的collections,单单在此数据库下,创建用户即可创建数据库;
在相关的数据库下创建用户后,在进行auth
C鼓励程序员开发程序单元(findction)来表示各个任务模块
过程化(procedural)-结构化(structured programming)->等待进化!
结构化编程技术反映了过程性编程思想
OOP(Object Oriented Programming)强调的是数据,与C面向过程的编程思路强调的是算法;
过程性编程,试图使问题满足语言的过程性
OOP试图让语言来满足问题的要求;
c++中,类是一种规范,描述了这种新型的数据格式
对象是类规范的构造的特定数据结构;
mongoDB循环插入多行数据
类class描述对象-->"公司管理人员的"基本特征(姓名,头衔,工资,特长);
对象则代表特定的管理人员(ruiy,副总裁,$20000,linux运维\编程通吃);
类规定了可以使用那些数据来表示对象以及对这些数据执行那些操作,
eg:开发绘制矩形的计算机绘图程序,此时可以定义一个描述矩形的类
定义的数据部分可以初步包括顶点的位置,长和宽,4条边的颜色和样式,矩形内部的填充颜色和图案;
定义的操作部分可以包括移动,改变大小,旋转,改变颜色和图案,将矩形复制到另一个位置等等的操作
此类定义完成后,当使用该程序来绘制矩形时, 将根据类定义创建一个对象,对象保存了描述矩形的所有数据值,可以使用类方法修改矩形
OPP程序设计方法首先设计类,设计的类准确的标示了程序要处理的东西
从低级组织(类)到高级组织(程序) 自下而上bottom-up
数据和方法合并为类定义,多态(运算符和函数创建多个定义)
继承能够使用旧类派生新类
OOP不是讲重点放在任何上,而是放在表示概念上(class defined)
C++编程的核心点(设计编写有用,可靠的class)
泛型编程(generic programming)强调的是独立于特定数据类型,OOP强调泛型数据(使问题适应语言),面向过程(C)强调算法,是语言适应问题
泛型编程提供了执行常见任务(数据排序,合并链表)
术语(generic)指的是创建独立于类型的代码
关于程序的可移植性方面存在2个障碍:硬件(硬件特定的程序是不可移植的),将依赖硬件的部分放在函数模块中
程序可移植性问题的第二个障碍是:语言上的差异,
RTTI(run-time type infomation)
module,STL(stanard module library)
语言标准的目标是消除不一致性
C在发展过程中也借鉴和增加了C++的一些特性,(函数原型,const)
C++程序编译时可能需要连接C++库
-lg++(取决于g++编译器版本)
-lm
cygwin/minGW(包含丰富的GNU工具集)
查看程序的debugInfo
在每个程序的尾行添加如下代码
cin.get();//读取下一次键盘输入(Enter回车键),语句让程序等待类似在windows下Dos system("pause");
不管是恩师还是忘年交,没有李经纬“扶上马送一程”,就没有今日李宁(自己很争气,也很NB,"体操王子",非阿斗!)的成就!还何来李宁运动品牌.-->我将永远困惑,也将永远寻找
程序debug
让C++程序一直打开,直到按Enter or pause ,在return 0语句前添加
cin.get();
main()中最后一条语句叫做返回语句(return statement),作用是结束main函数运行;
翻译器,将C++翻译成C,C++(header file)没有扩展名
C++对老式的C头文件部分保留了扩展名(C++使用这种头文件),有些C头文件被转化成C++头文件,这些头头文件被重新命名(从C原本头文件演变而来的C++头文件命名规则是在头文件名前加c)
eg,从C头文件math.h修改演变而来的cmath
通常编译器等根据扩展名来判断文件的类型
使用名称空间编译指令使用其中定义对程序可用
using namespace std;
using编译指令;
C++的另一个特性是(对名称空间的支持),(便于组织多个厂商之间的代码)
用于将产品封装在一个叫名称空间的单元中,此时便可以用名称空间的名称来支持想使用哪个厂商的产品;
程序使用名称空间来区分不同产品的不同版本
Microflop::wanda();
piscine::wanda();
C++编译器的标准组件(class,functions,variables),这些都被放置在叫std的名称空间中,仅当头文件没有扩展名h时才是这样;
这意味着iostream中定义的用于输出cout变量实际是std::cout
std::endl;
因此可以省略using namespace std;
直接使用std::cout<<
std::cin>> .....;
using namespace std;
经过上面的语句我们就可以直接使用std名称空间定义的名称了,而不必使用std:前缀
using 编译指令使得std名称空间中的所有名称都可用
但通常在大型的项目中使需要的名称可用,使用using 来进行逐个申明
using std:cout;
using std:endl;
using std:cin;
对象是类的特定实例,类定义了数据的存储和使用方式
预定义的对象,c++从概念上如何解析这个过程
cout <<"he he! \n" \n换行符(转义序列)按键组合
cout << endl 控制符std 对象;
一行代码中不可分割的元素叫做标记(token),空白,制表符,回车统称为空白(white space)
赋值 动作是从右向左进行的;
对象知识(类简介)
class是C++面向对象编程(OOP)的核心概念
类是一行定义的一种数据类型(类,描述它能表示什么信息和可对数据执行那些操作)
类和对象的关系就像类型和变量的关系;
类定义描述的是数据格式及其用法
对象是根据数据格式规范创建的实体,
类描述了一种数据类型的全部属性(可执行的操作,数据格式),对象是根据类描述创建的实体
类描述指定了可对类对象执行的所有操作,
unix C++ compile
type functionName(argumentlist)
{
statements;
}
高级语言(使用的指令更接近考虑问题的方式,而非接近计算机使用的详细操作步骤)
C中程序暂停getchar()
system("pause")
C++中程序暂停 cin.get();
C compiler(linker)是将C语言源代码转换为可执行程序的程序工具;
int main(void)
{
.....;
return 0;//在函数头中请求函数调用返回的值是0,但在客观上无函数调用此main,(但请注意,不要忘了,系统哦,win/unix/linux,就是系统在调用main,因此在main中return 0;语句返回的值是返回给OS);
}
函数中的return 语句的作用是将相关返回值返回给此函数的调用者;
需要能够访问位于名称空间std中的cout;
std nameSpace;
using compile instruct
using namespace std;位置决定此的作用域,
一般情况下让程序访问std namespace的 methods:
让该函数可以使用指定的std名称空间元素,则在特定的函数中使用using std::cin >>
或是直接使用 std::cout <<"byRuiy"<<std::endl;
使用std名称空间中的元素,使用std::前缀,
类是用户定义的数据类型规范,详细描述了如何表示信息以及可对数据执行的操作
对象是根据类规范创建的实体,类似简单变量根据类型创建的实体;
为类定义的插入运算符(<<(将数据流插入到输出流),>>(从输入流中抽取信息));
数据存储在computer中,必记录的property
存储位置(memory.registr,disk...),存储 值 存储何种类型的信息 sizeof() strlen();
检索一块能够存储整型的内存,将内存单元标记为变量名称,并将初始化的数值 复制到内存单元;
上面的事情料理完后,在后面你就可以使用变量来访问内存单元了,并使用内存单元中存储的数组,进行计算.
(变量被申明完后,内存地址随即确定,是内存程序自动协商搞定的,并记录在&variableName中)
1bytes(字节,指8位内存单元) = 8bits(位)
整型限制header files(climits,limits.h)
climits
INT_MAX,SHRT_MAX;
类型名称,变量名称使用sizeof();
C++编译过程中最先过 的是将代码传递给预处理器,
#define compile instruct 是C遗留下来的,C++有更好的创建符合常量(const char *env[]);
C++新增大括号初始化器,
变量声明并初始化
int var = 78;
int var{78};
int var = {78};
decimal //cout<<dec,
hexadecimal //cout<<hex;
octal //cout<<oct; namespace std中提供的控制符(endl,dec=decimal,oct=octal,hexadecimal),control symbol(控制输出数据流的进制,基数)
using compile instruct;
std::cout,std::endl,std::hex,std::oct;
程序的申明将特定的整型变量的类型告诉了C++编译器,编译器如何知道常量的类型的?
cout<<"Year = "<<1492<<"\n";
类定义了如何表示和控制数据;
类使用特定对象来使用成员函数
句点连接对象和成员函数
双引号字符用来分割字符串字面值,
应该像处理常规字符一样处理转义序列,即将他们作为字符常量时,应该用单引号或是双引号括起来
cout<<"\n";
cout<<'\n' charactrt constant
放在字符串中则就不用使用单引号了
cout<<"bu Ruiy \n";
universal character name;
符号常量,预处理器;
#define Ruiy 578;
const int byRuiy 58;
常量被初始化后其值就被固定了(编译器不允许修改该常量的值)
阅读程序时简单区分常量与变量(字符常量首字母 大写)
浮点缩放因子(10 100,1000)作用是移动小数点的位置;
exponent negative(浮点,小数点可以*移动);
significant figure