diff --git a/Wangzj b/Wangzj deleted file mode 100644 index e69de29..0000000 diff --git a/develop b/develop deleted file mode 100644 index e69de29..0000000 diff --git a/doc/软工10.10日.docx b/doc/软工10.10日.docx deleted file mode 100644 index bd7ec8b..0000000 Binary files a/doc/软工10.10日.docx and /dev/null differ diff --git a/doc/隔离酒店智慧管理系统(1).docx b/doc/隔离酒店智慧管理系统需求构思及描述.docx similarity index 100% rename from doc/隔离酒店智慧管理系统(1).docx rename to doc/隔离酒店智慧管理系统需求构思及描述.docx diff --git a/hello b/hello deleted file mode 100644 index e69de29..0000000 diff --git a/doc/07_200340119 辛雨雯-实践总结报告.docx b/other/07_200340119 辛雨雯-实践总结报告.docx similarity index 100% rename from doc/07_200340119 辛雨雯-实践总结报告.docx rename to other/07_200340119 辛雨雯-实践总结报告.docx diff --git a/doc/200140063杨镇昆-实践总结报告-.docx b/other/200140063杨镇昆-实践总结报告-.docx similarity index 100% rename from doc/200140063杨镇昆-实践总结报告-.docx rename to other/200140063杨镇昆-实践总结报告-.docx diff --git a/other/ros演示.mp4 b/other/ros演示.mp4 new file mode 100644 index 0000000..fea3a3c Binary files /dev/null and b/other/ros演示.mp4 differ diff --git a/other/演示视频1.mp4 b/other/演示视频1.mp4 new file mode 100644 index 0000000..c134de5 Binary files /dev/null and b/other/演示视频1.mp4 differ diff --git a/doc/软件开发项目的个人自评报告.xlsx b/other/软件开发项目的个人自评报告.xlsx similarity index 100% rename from doc/软件开发项目的个人自评报告.xlsx rename to other/软件开发项目的个人自评报告.xlsx diff --git a/sos b/sos deleted file mode 100644 index e69de29..0000000 diff --git a/README.md b/src/README.md similarity index 100% rename from README.md rename to src/README.md diff --git a/test.txt b/test.txt deleted file mode 100644 index 7dca741..0000000 --- a/test.txt +++ /dev/null @@ -1,260 +0,0 @@ -冒泡排序: -for(int i=0;iarr[j+1]) - { - int temp = arr[j]; - arr[j]=arr[j+1]; - arr[j+1]=temp; - } - } -} ------------------------------------------------------------------------ -函数高级 -函数的默认参数: -1如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须要有默认值 -2如果函数声明有默认值,函数实现的时候就不能有默认参数 - -函数的占位参数: -语法:返回值类型 函数名(数据类型) - ---------------------------------------------------- -结构体作为函数参数: -将结构体作为函数作为参数向函数中传递 -传递方式有两种: -值传递:形参不会改变实参 -地址传递:会改变实参 -总结:如果不想修改主函数中的数据,用值传递,反之用地址传递 -结构体中const的使用场景: ------------------------------------------------ -1 不带头结点的头插入法创建链表: -LinkList LinkListCreate(const int n) -{ - int i; - LinkList head; - Node *p; - head = NULL; - for(;idata); - p->next = head; - head = p; - - } -} ---------------------- -不带头结点的尾插入法创建链表: -LinkList LinkListCreate(const int n) -{ - int n= 0; - - //创建一个一直指向头结点,一直指向尾结点的指针。 - LinkList head; - Node *p,*rear; - rear = head = NULL; - for(;idata); - - if(NULL == head) head=p;//创建的第一个结点。 - else rear->next = p;//链表非空 - - - rear = p;//移动尾指针 - } -   rear->next = NULL;//最后将链表的结尾设置为NULL。 -} ------------------------------------------------------------- -3 创建带结点的头插入链表。 -1 LinkList LinkListCreate(const int n) - 2 { - 3 int i = 0;LinkList p; - 4 LinkList head = (Node*)malloc(sizeof(Node)); - 5 head->next = NULL; - 6 - 7 for(;idata); -11 p->next = head->next; -12 head->next = p; -13 } -14 -15 return head; -16 } ------------------------------------------------------------------ - -4 带头结点的尾插入法创建链表。 -LinkList LinkListCreate(const int n) -{ - int i = 0;Node *p,*rear; - LinkList head = (Node*)malloc(sizeof(Node)); - rear = head; - - for(;idata); - - rear->next = p; //尾指针 指向新建结点 - rear = p;//rear指针移动 - } - rear->next = NULL; - - return head; -} -vector容器 -头文件 -向vector中插入数据 -v.push_back( ); -通过迭代器访问容器中的数据 -vector<数据类型>::iterator itBrgin = v.brgin();其实迭代器指向容器中第一个元素 -vector<数据类型>::iterator itEnd = v.end();结束迭代器指向容器中最后一个元素的下一个位置 - -STL提供的for_each(起始迭代器,结束迭代器,函数名) - -vector容器中存放自定义数据类型 -class person -{ - 数据 -} -vector -vectorv1; -vectorv2; -vectorv3; - -string构造函数 -string() 创建一个空的字符串 例如:string str -string(const char* s); 使用字符串s初始化 -string(const string& str) 使用一个string对象初始化另一个stringduixiang -string(int n,char c) 使用n个字符c初始化 - -纯虚函数:virtual 函数类型 函数名 ( )= 0; -纯虚函数 -类中只要有一个纯虚函数就是抽象类 -抽象类不能创建对象 -抽象类的子类要重写抽象类中的纯虚函数才能创建对象,否则他也是属于抽象类 -虚析构和纯虚析构 - 共性: - 可以解决父类指针释放子类对象 - 都要有具体的函数实现 -区别: - 纯虚析构无法构建对象 -纯虚析构需要声明(在类内)也需要实现(类外 ) - - - - -一,操作符重载 -实质是利用已有的c++中的关键字operator(操作符)来重写 操作符 -1.成员函数重载加号 -本质调用: -Person p3 =p1.operator+(p2) -2.全局函数重载加号 -数据类型 operator+(数据类型 &p1,数据类型 &p2) -本质调用:Person p3 = p1+p2 -运算符重载也可以发生函数重载 -重载的操作符相同 传入的参数不同 - -二,左移运算符重载 -成员函数重载 -数据类型 operator<<(cout) 简化形式 p< -template ---声明创建模板 typename ---表明其后面的符号是一种数据类型,可以 用class代替 -T---通用的数据类型,名称可以替换,通常为大写字母 -两种方式使用函数模板 -1.自动类型推导 -2.显示指定类型 -函数名<例如:int >() - --函数名模板关键字template --使用函数模板有两种方式:自动类型推导、显式指定类型 --模板的目的是为了提高复用性,将类型参数化 - - -函数模板注意事项 -1.自动类型推导,必须推导出一致的数据类型T才可以使用 -2.模板必须要确定出T的数据类型,才可以使用 - -普通函数和函数模板的区别 -1、普通函数调用可以发生隐式类型转换 -2、函数模板 用自动类型推导,不可以发生隐式类型转换 -3、 用显示指定类型,可以 - -总结:建议使用指定类型的方式,调用函数模板,因为可以自己确定通用类型T ------------------------------------------------------------------------------------- -文件操作 -程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放 -通过文件可以将数据持久化 -c++中对文件操作需要包含头文件 -文件类型分为两种 -1文本文件 -文件以文本的ASCII码形式存储在计算机中 -2二进制文件 -文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂他们 - -操作文件的三大类: -1ofstream:写操作 -2ifstream:读操作 -3fstream:读写操作 - -文本文件 写文件 -步骤如下 -1包含头文件#include -2创建流对象 ofstream ofs; -3打开文件 ofs.open("文件路径",打开方式) -4写数据 ofs<<"写入的数据" - --读文件可以利用ifstream,或者fstream --利用is_open函数可以判断文件是否打开成功 --close关闭文件 - - -二进制文件 写文件 -1包含头文件#include -2创建流对象ofstream ofs("文件路径",ios::out|ios::binary) -3打开文件ofs.open("person.txt",ios::out|ios::binary) -4写文件 代码 -5关闭文件 ofs.close() -二进制文件 读文件 -1包含头文件 -2创建流对象 -3打开文件 并判断文件是否打开成功 -ifs.open("文件路径",ios::in|ios::binary) -if(!ifs.open_()){cout<<"文件打开失败"<