- 博客(71)
- 资源 (6)
- 收藏
- 关注
原创 MediaRecorder中的Binder机制
一、从MediaRecorder到StagefrightRecorder的调用关系图:二、解析相关调用流程:1、Service Manager管理了多个Service,包括了AudioFlinger,MediaPlayerService。CameraService,AudioPolicyService,任何一个service需要使用时,都必须向其注册。例如,MediaPlayerservice:在main_mediaserver.cpp中注册相应的service到serviceMana.
2021-06-02 13:52:12
220
转载 MediaExtractor浅析
1. JAVA层file: frameworks/base/media/java/android/media/MediaExtractor.java class: MediaExtractorMediaExtractor上层接口。 其中有3个调用JNI的接口: private static native final void native_init();
2018-01-07 15:35:12
2437
原创 视频容器和格式
1、视频容器格式简介一般而言,视频文件的扩展名就是视频的容器名。比如“avi文件”或者“mp4文件,avi和mp4只是容器格式。好比zip文件,里面可以包含各种文件,视频容器格式只是定义了怎么存储数据,而不论存储什么类型的数据。不过视频容器格式比这个更复杂一些,因为不是所有的视频流格式兼容所有的视频容器格式。 一个视频文件一般包含多个track,而每个视频track(没有音频)又
2018-01-07 13:52:09
2114
转载 “面向对象”和“面向过程”的区别
面向对象:狗.吃(屎)面向过程:吃.(狗屎)这个比喻好形象啊,23333面向过程&面向对象(角度改变观念)a) 认识问题角度:面向过程,死物受规则被动操控;面向对象,活物主动交互。b) 解决问题模块:面向过程,函数;面向对象,对象。c) 解决问题中心角度:面向过程,Hwo,“如何做?”(流程封装为函数,“如何”就是过程,谁来做仅是参数);面向对象,Who,“谁来
2017-10-04 20:51:19
407
原创 基于栈和队列的停车场管理系统
1、头文件#ifndef _HEAD_H_#define _HEAD_H_#include #include #include #include #define MAX 5#define PRICE 16.8enum m{ STACK_FULL, STACK_NOFULL, STACK_EMPTY, STACK_NOEMPTY, PUSH_OK, QUEUE_
2017-09-21 20:50:21
1083
原创 VS2010下的银行管理系统
这是学习C++以来做的一个稍微复杂一点的项目,仅供大家的学习和参考。下面是对这个项目的一些介绍和实现。首先介绍一下这个项目所实现的功能:1)职工注册和登录2)开户3)销户4)存钱5)取钱6)转账7)查询明细8)查询账单9)修改密码10)推出登陆http://img.blog.csdn.net/20170911191000128?watermark/2
2017-09-11 19:15:32
1355
1
原创 C++所学的相关知识点整理(不定期更新)
1、C语言和C++的区别C语言是面向过程的语言,结构为数据结构+算法,适合用于需求简单的科学计算。C语言没有深思熟虑的思考过程,残留量过多,指针进行内存操作,目的是高效运行。C++是面向对象的语言,结构为C语言+面向对象的方法论。由现实世界建立软件模型,构建的软件适应用户需求变化。2、变量定义位置C中,所有局部变量必须在函数开头定义;C++中只要在使用之前定义好就可
2017-08-25 12:18:06
709
原创 C++网络编程原理及实现
WINSOCK介绍Winsock是一个基于Socket模型的API,在Windows系统中广泛使用。它在Berkeley接口函数的基础上,还增加了基于消息驱动机制的Windows扩展函数。Winsock1.1只支持TCP/IP网络,Winsock2.2增加了对更多协议的支持。包含的头文件Winsock2.h导入库ws2_32.lib#pragma comment(l
2017-08-09 15:26:47
2132
原创 (linux系统)图书管理系统
闲来无事,用C++做了一个图书管理系统,主要有借书、还书、图书管理、用户管理等功能,主要用到的技术有容器和文件,以及类的封装#include #include #include #include #include #include using namespace std;class Mybook;class Book;class Book{public: int i
2017-07-28 15:44:07
4301
原创 容器+文件版本的通讯录
#include #include #include #include using namespace std;typedef struct node{ char name[20]; char sex[20]; char tel[20]; char QQ[20]; char address[20]; char addition[20];}Per;bool Comin
2017-07-28 15:40:42
391
原创 用C++写一个日历程序,要求输入年份,显示全年的日历
#include #include #include using namespace std;class Caldendar{protected: int m_year; //年份 int m_month; //月份 static long long t_d
2017-07-17 18:57:00
3764
原创 用C++实现链表版本通讯录
#include #include using namespace std;class Address;class Contact{private: string name; string sex; string tel; string QQ; string address; string addition; Contact *next;public:
2017-07-13 21:30:51
1725
原创 笔试题小练2(链表)
1、/*编写代码,移除未排序链表中的重复结点*/#include #include #include typedef struct node{ int data; struct node *next;}Link;typedef Link* linken;linken head;void insert_tail(int num){ linken p = head;
2017-07-13 17:15:29
399
原创 笔试题小练1
1、/***题目:编写一个方法,将字符的空格全部替换为%20。假设该字符的尾部有足够的空间存放新增字符,并且知道字符串的真实长度。输入:“Mr John Smith”输出:“Mr%20John%20Smith”***/#include #include using namespace std;int main(){ string str; cout<<"please in
2017-07-11 13:33:25
407
原创 基于UDP协议下的客户端与服务器之间的通信
1、myhead.h#ifndef _MYHEAD_H_#define _MYHEAD_H_#include #include #include #include #include #include #define MYPORT 6666#define MYADDR "192.168.1.100"#endif2、udp_client.c#include "
2017-06-20 16:15:48
1188
原创 实现客户端和服务器之间的通信(TCP协议、多线程)
1、myhead.h#ifndef _MYHEAD_H_#define _MYHEAD_H_#include #include #include #include #include #include #include #include #define MYPORT 6666#define MYADDR "192.168.1.100"#endif2、tcp_s
2017-06-20 16:12:15
1745
原创 实现多客户端和服务器之间的通讯(TCP协议下,多进程)
1、myhead.h#ifndef _MYHEAD_H_#define _MYHEAD_H_#include #include #include #include #include #include #include #define MYPORT 6666#define MYADDR "192.168.1.100"#endif2\tcp_server.c#
2017-06-20 16:08:36
1177
原创 用C实现一个计算器(带小数点和括号以及运算优先级)
/*************************************************************************功能:利用栈结构做一个简易的计算器描述:括号为最高优先级,其次乘除为次优先级,加减法的优先级最低作者:566********************************************************************
2017-06-13 11:01:21
10962
4
转载 DNS在什么时候使用TCP,在什么时候使用UDP
DNS什么时候用UDP什么时候用TCP来传输解释一、DNS报文角度来看主要是查看DNS报文首部中的标志字段[QR][opcode][AA][TC][RD][RA][(zone)][rcode] 主要关注字段为TC字段,当TC字段为1时,表示应答总长度超过512字节,只返回前512个字节,这时DNS就需要使用TCP重发原来的查询请求。因为在UDP的应用程序中,其应用程序被
2017-06-11 21:07:03
3069
原创 队列的链式存储相关操作
#include #include enum s{ QUEUE_EMPTY, QUEUE_NOEMPTY, IN_OK, OUT_OK, OUT_NO};struct node{ int data; struct node *next;};struct Queue{ struct node *front; struct node *rear;};void
2017-05-21 22:15:47
378
原创 循环队列的相关操作
#include #include #define MAX 10 enum s{ QUEUE_EMPTY, QUEUE_NOEMPTY, QUEUE_FULL, QUEUE_NOFULL, IN_NO, IN_OK, OUT_NO, OUT_OK};struct node{ int queue[MAX]; int rear; int front;};voi
2017-05-21 22:10:53
391
原创 关于队列的相关操作(初始化,判断队满队空,以及入队出队)
#include #include #define MAX 10enum s{ QUEUE_EMPTY, QUEUE_NOEMPTY, QUEUE_FULL, QUEUE_NOFULL, IN_NO, IN_OK, OUT_NO, OUT_OK};struct node{ int front; int rear; int queue[MAX];};void
2017-05-20 22:40:32
1208
原创 关于链式栈的相关操作
#include #include enum s{ STACK_EMPTY, STACK_NOEMPTY, POP_NO, POP_OK};struct node{ int data; struct node *next;};struct Stack{ struct node *top; //
2017-05-20 22:38:03
311
原创 对于栈的相关操作
#include #include #define MAX 10enum st{ STACK_EMPTY, STACK_NOEMPTY, STACK_FULL, STACK_NOFULL, PUSH_OK, PUSH_ERR, POP_OK, POP_ERR};typedef struct node{ int stack[MAX]; int top;}STACK
2017-05-15 18:57:12
325
原创 关于双链表的相关操作
#include #include #include struct node { int data; struct node *next; struct node *prev;};struct node *create_node(int num){ struct node *p = (struct node*)malloc(sizeof(struct node));
2017-05-15 18:55:27
314
原创 对于带头结点的单链表的相关操作
#include #include #include struct node{ int data; //数据域 struct node *next; //指针域};struct node *create_node(int num){ struct
2017-05-15 18:51:59
472
原创 编写函数fun(int *a,int n,int *odd,int *even),功能是:求出数组a[]中所有偶数之和,利用指针even返回偶数之和
/*编写函数fun(int *a,int n,int *odd,int *even),功能是:求出数组a[]中所有偶数之和,利用指针even返回偶数之和。例如:a[]的值依次为:1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数之和8*/#include #define N 10void fun(int *a,int n,int *odd,int *eve
2017-05-10 20:45:21
7983
原创 编写函数int stat(int a[],int n,int c[][2]).a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。
/*编写函数int stat(int a[],int n,int c[][2]).a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的整数,从而生成有n/2个元素组成的整数数列;统计该数列中不同整数各自出现的次数,并将统计结果保存到C指向的二维数组中。函数返回不同整数的个数*/#include #define N 20int
2017-05-10 20:44:31
753
原创 编写函数 void count(char a[],char w[][10],int n,int b[]).功能是:统计w指向的数组中的n个单词在a指向的字符串中各自出现的次数(将非字符字符看作单词分割
/*编写函数 void count(char a[],char w[][10],int n,int b[]).功能是:统计w指向的数组中的n个单词在a指向的字符串中各自出现的次数(将非字符字符看作单词分割符),将统计结果依次保存在b指向的数组中*/#include #include #include #define N 10void count(char a[],char w[][10
2017-05-10 20:40:52
2100
原创 【C编程】对一个二维数组中的数据排序
/*对一个二维数组中的数据排序,方法如下:将整个数组中值最小的元素所在行调整为数组第一行,将除第一行外的行中最小元素所在行调整为第2行,将除第1,2行外的行中最小值元素所在行调整为第3行,以此类推*/#include #define N 10void change(int (*a)[N],int row,int line){ int m = 0;
2017-05-01 12:56:51
2603
原创 【C编程】找出7个默森尼数。法国数学家默森尼曾提出下列公式:Mp=2^p-1。当p是素数并且Mp也是素数时,称Mp为默森尼数,
/*找出7个默森尼数。法国数学家默森尼曾提出下列公式:Mp=2^p-1。当p是素数并且Mp也是素数时,称Mp为默森尼数,例如,p=5,Mp=2^5-1=31,5和31都是素数,因此31是默森尼数;而Mp=2^11-1=2047,11是素数,2047不是素数,因此2047不是默森尼数.*/#include #include #include int juge_prime(int num
2017-05-01 12:55:42
1290
原创 【C编程】合并两个字符集合为一个新集合,每个字符串在新集合中仅出现一次,函数返回新集合中字符串。
/*合并两个字符集合为一个新集合,每个字符串在新集合中仅出现一次,函数返回新集合中字符串。 如: s1集合{“while”,”for”,”switch”,”if”,"break",”continue”} s2集合{“for”,”case”,”do”,”else”,”char”,”switch”} 运行结果: while for swi
2017-05-01 12:54:33
985
原创 【C编程】找出符合以下条件的Troitsky数,将该数的首位数字移动到末位数字之后得到的数是原数的整数倍
/*找出符合以下条件的Troitsky数,将该数的首位数字移动到末位数字之后得到的数是原数的整数倍 例如:将142857的首位数字1移动到末位之后得到的数是428571,而428571=3*142857,因此142857是Troitsky数 编程要求: (1) 编写函数int Troitsky(long a[]),其功能是求出10000以内的所有Troitsky
2017-05-01 12:53:27
846
原创 C语言编程练习——对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序
/*对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序*/#include #define N 100void swap(int *a,int *b){ int temp; temp = *a; *a = *b; *b = temp;}void my_sort(int num,int a[][N]){ int k = 0; int i
2017-05-01 12:51:53
3313
1
原创 C语言编程练习5——编写函数void change(char *a,char *b,char*c)。 函数功能是首先把b指向的字符串逆向存放
/*5、编写函数void change(char *a,char *b,char*c)。 函数功能是首先把b指向的字符串逆向存放,然后将a指向的字符串和b指向的字符串按排列顺序交叉合并到c指向的数组中,两个字符串中过长的剩余字符接在c指向数组的尾部。例如,当a指向的字符串为"abcdefg",b指向的字符串为"1324"时,c指向的数组中字符串应为"a4b2c3d1efg"。*/#inclu
2017-04-30 16:44:26
4639
原创 C语言编程练习——查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数:
/*查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数:(1)该数的十进制表示中有且仅有两个相同的数字位;(2)该数是素数*/#include int juge_prime(int num){ int i = 2; int flag = 0; for(i = 2;i < num;i++) { if(num%i == 0) { break
2017-04-30 16:39:57
1721
原创 C语言编程练习——字符串数组的冒泡排序,从小到大
/*字符串数组的冒泡排序,从小到大*/#include #include #include #define N 10void swap(char *a,char *b) //交换两个字符{ char *temp; temp = a; a = b; b = temp;}void bubble(ch
2017-04-30 16:38:51
3287
原创 C语言编程练习——从一个字符数组中读出相应的整数、实数
/*从一个字符数组中读出相应的整数、实数*/#include #include void my_seek(char *str,int a[],float b[]){ int i = 0; //存放整数的个数 int j = 0;
2017-04-30 16:37:36
1215
原创 编程练习4.25
1. 统计一个字符串中个字符的百分比:如输入字符串asdfs a ----- 20%s ----- 40%d -----20%f -----20%/*统计一个字符中个字符的百分比,如输入字符串asdfs,a--20% s--40%,d--20%,f--20%*/#include #include void fun(char *str,int a[]){ int len =
2017-04-26 20:57:53
305
银行管理系统(C++)
2017-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人