黑马程序员培训多少钱

2025-02-05

黑马程序员培训多少钱(精选10篇)

1.黑马程序员培训多少钱 篇一

Linux安装-5

第二十五步:设置时区,默认即可,直接点击【下一步】

第二十六步:设置密码,密码对用的用户名是root

密码有限制:最少是6位,并且建议是大写+小写+数字的组合 设置完成之后点击【下一步】

第二十七步:选择安装类型,这个时候选择【使用所有空间】,然后点击【下一步】

然后选【将修改写入磁盘】

第二十八步:选择Linux系统的安装模式,默认desktop-现在自定义-下一步

下一步中勾选【开发】中的【开发工具】

注意:一定要确保【开发工具】前面有一个√。

然后再点击【下一步】

第二十九步:等待安装完成重新引导,这个过程需要安装1160多个软件,时间大概消耗20分钟左右

第三十步:完成之后点击【重新引导】,系统会重新启动

第三十一步:在欢迎界面点击【前进】

在许可协议界面同意协议,再点击【前进】

2.黑马程序员培训多少钱 篇二

循环输出1到100之间所有的数字

循环输出1到100之间所有的偶数

求1到100之间所有数字的和(求和思想)

求和思想:

1,找一个变量用来记录总和

2,把前一次的和加上新的值再赋值给变量

求1到100之间偶数的个数(计数思想)

dowhile循环

语法:

Var i=1;do{

//循环体

循环变量的改变

i++;}while(i<=100)执行:循环变量的初始化=》立刻执行一次循环体=》循环变量的改变=》循环条件的判断(true)=》循环体=》循环变量的改变=-》循环条件判断(false)=》跳出循环

注意:必定会执行

for循环

语法:

for(【循环变量的初始化】;【循环条件的判断】;【循环变量的改变】){

【循环体】

} 执行:

【循环变量的初始化】=》【循环条件的判断】(true)=》【循环体】=》【循环变量的改变】=》循环条件的判断】(true)=》【循环体】=》【循环变量的改变】=》【循环条件的判断】(tfalse)=》=》跳出循环

for循环的案例:

For循环的扩展

For循环的嵌套

For(){

For(){

} } 案例:

九九乘法表

代码:

效果:

3.黑马程序员培训多少钱 篇三

路径

路径分为两种

1、绝对地址:从盘符开始

2、相对地址:以自身文件为准

注意:../代表上一级目录./代表当前目录

点击./代表当前目录

链接

连接的标记是 内部链接

网站内部页面和页面之间的连接,参照前面路径那一节

外部链接

外部连接就是连接到其他网站上去

空连接

有超链接的样子,但是点击不会跳转。这种就是空连接,空连接用#表示。

下载链接

链接的文件,浏览器无法打开,就自动出现下载。

锚链接

新建一个锚点

Id表示唯一的编号。

点击超链接,连接到指定的锚点处

#表示id的意思,六种标题级别

到h6,标题也是有权重的。H1权重最高

列表

有序列表()

每一项是一个li 无序列表()

4.黑马程序员培训多少钱 篇四

进入2018年,很多财会证书都迎来了新一轮的考试,CMA也是一样。那么,CMA培训费用一般多少?CMA要多少钱?

CMA培训费用一般多少?

每个CMA培训机构的培训费用不尽相同,都有差别的。选择培训机构考生一定要擦亮自己的眼睛,以下是一些需要考虑的问题:

1,你是在哪个地方,本身的专业是什么?

2,选择面授还是网课?

4,对CMA考试了解多少?

考CMA要多少钱?

不同IMA会员所需缴纳的费用如下:

如果想要了解考取CMA需要多少人民币,只需用相应的费用乘以美元兑换人民币的汇率即可。

注意事项:

1、当考生在注册完CMA考试和考试授权信后,一定要在规定时间内预约考位,超时则会

中国CMA考试网: 取消之前的费用。

2、一些考生中途有事情,如果不能按预约日期参加考试,则表示该门考试作废,需要重新注册并支付考试费用。(注:取消预约Prometric需要收取50美元费用)

3、对于CMA英文考试,注册考试成功30天后,考试费用不可退。

4、CMA年费是每年都要交的,在欠交会费时,会当该会员退会,重新申请会员时要补交中间年份的会费及一定的行政费。

5、CMA年费不可退。如果你想参加CMA考试,就必须要保持会员身份,也就是说需要按时缴纳CMA年费。

由于我国严重缺乏管理会计人才,因此2009年CMA被作为引智工程引进中国,经过长时间的发展和实践,管理会计CMA深受相关部门和企业的信赖,不少企业更是明确表示CMA持证者优先录取。广大考生们,也抓紧时间加入到CMA大军中吧。

5.黑马程序员培训多少钱 篇五

“四面荷花三面柳,一城山色半城湖”,这便是泉城济南。72处名泉汇成河湖,一条环城湖,牵起各处名泉,泉水汇聚处,便是夏雨荷的大明湖畔。

从古至今除了拼学历,拼智慧,拼家底儿,拼爹拼妈,还有一条路是自己拼。上大学有出路,这曾经是父母口中的定律。然而大学往往没能让你掌握一个熟练的技能。大专毕业、本科毕业,当走出神圣的高等教育殿堂,你将面对的是残酷而激烈的社会竞争,你会看到面对企业招聘,那些在学校学到的理论知识根本就用不上。隔绝你和工作的是处处标示着的“工作经验”。或者你正在待业,或者你凭着自己的努力找到一份工作,但是枯燥的工作内容,遥遥无期的升职机会,同样支撑不起你的梦想。这些时候职业培训往往是职场新人的一根救命稻草。

java是当前全球主流的开发工作,其使用简洁、方便,给整个程序界造成了极大地冲击。据权威机构统计发现,目前对java工程师的需求已经达到所有软件开发类人才总需求量的60%以上,而且java工程师的薪水比较吸引人,一般有2-5年开发经验的工程师,其年薪都可以达到10万的水平。这一现象引起了不少人的注意,许多有志于此的人都会选择java培训来提升自己。

那么报个java培训多少钱呢?这是家长和学员都普遍关注的话题,下面一起来了解一下。

有关于java培训的费用,根据不同的地区、不同的培训机构,其价格不等,这些我们都可以理解。小编通过对几家比较出名的培训机构的多方面了解发现,翡翠教育中心的java培训班不管在培训费用方面,还是从教学质量以及与之匹配的就业保障方面,都算是首屈一指的,有其它机构无可比拟的优势。

翡翠教育java培训学费价格合理、学习效果好,这在业内众所周知,得到了众多学员及其家长的认可。

翡翠教育成立于2012年,是大学生职业教育新锐品牌,致力于互联网新兴领域技术培训,包括Java大数据、PHP、安卓/IOS开发、WEB前端、UI设计、网络营销、影视动漫、数字娱乐等培训课程项目。公司在北京、上海、广州、深圳、西安等30多个城市设立62家分公司,在职员工1700余人,年培训学员超过1万人,同时为6000余家企业输送技术人才,年营业额超过5亿。

翡翠教育

翡翠教育专注IT教育培训,以创新的教学方式和完善的就业服务享誉业内,已覆盖全国30多个城市,拥有70家教学中心。

不知道看完上述小编介绍的您是否有什么想法呢?希望能给您的选择提供帮助!

翡翠教育专注IT教育培训,以创新的教学方式和完善的就业服务享誉业内,已覆盖全国30多个城市,拥有70家教学中心。

6.黑马程序员培训多少钱 篇六

武汉是国家历史文化名城、中国楚文化的重要发祥地。是中国民主革命的发祥地,武昌起义作为辛亥革命的开端,具有重要历史意义。

大家对于计算机技术培训一定有所了解吧,今天,小编就为大家收集和整理了有关计算机培训的信息,希望能让各位职场新人对于培训机构有更深一步的了解!

java是当前全球主流的开发工作,其使用简洁、方便,给整个程序界造成了极大地冲击。据权威机构统计发现,目前对java工程师的需求已经达到所有软件开发类人才总需求量的60%以上,而且java工程师的薪水比较吸引人,一般有2-5年开发经验的工程师,其年薪都可以达到10万的水平。这一现象引起了不少人的注意,许多有志于此的人都会选择java培训来提升自己。

那么报个java培训多少钱呢?这是家长和学员都普遍关注的话题,下面一起来了解一下。

有关于java培训的费用,根据不同的地区、不同的培训机构,其价格不等,这些我们都可以理解。小编通过对几家比较出名的培训机构的多方面了解发现,翡翠教育中心的java培训班不管在培训费用方面,还是从教学质量以及与之匹配的就业保障方面,都算是首屈一指的,有其它机构无可比拟的优势。

翡翠教育java培训学费价格合理、学习效果好,这在业内众所周知,得到了众多学员及其家长的认可。

翡翠教育成立于2012年,是大学生职业教育新锐品牌,致力于互联网新兴领域技术培训,包括Java大数据、PHP、安卓/IOS开发、WEB前端、UI设计、网络营销、影视动漫、数字娱乐等培训课程项目。公司在北京、上海、广州、深圳、西安等30多个城市设立62家分公司,在职员工1700余人,年培训学员超过1万人,同时为6000余家企业输送技术人才,年营业额超过5亿。

作为IT培训的行业翘楚,翡翠教育的网络营销培训已经迈入第五个年头,每年在校学员超过10,000人,从这里走出的学员,如今很多都就职于知名IT公司,薪资优厚,有的薪水甚至超越同学历同年龄人群一倍之多。他们当初面对工作也都迷茫无助,却因为翡翠教育而获得了一个成就梦想的机会。

翡翠教育的就业服务贯穿于整个培训课程之中,完善的就业服务体系与教师指导团队,加上众多的合作企业的支撑,让你的就业变得更容易。

看小编说了的这么多,大家肯定有了自己的计划吧!希望小编介绍的这些信息能帮助到大家呢!

翡翠教育专注IT教育培训,以创新的教学方式和完善的就业服务享誉业内,已覆盖全国30多个城市,拥有70家教学中心。

7.黑马程序员培训多少钱 篇七

1、赋值构成一个表达式,具有值,其值为赋值符左边表达式的值。表达式和语句的一个重要区别是,表达式有值,而语句没有值。

2、隐式类型转换总是朝着表达数据能力更强的方向,并且转换总是逐个运算符进行的。如 float f=3.5;int n=6;long k=21;double ss=f*n+k/2;//在计算ss时,首先将f和n转换成double,算得21,然后计算k/2得10,再将10(long int)转换成double,最后得31。

27、C++基础笔记(一)墨涵天地 有符号数向无符号数转换。

3、当又有声明又有定义时,定义中不允许出现默认参数,如果函数只有定义,才允许默认参数出现在定义中。默认值可以是一个全局变量,全局常量,或是一个函数,但是不能是局部变量,因为默认参数的函数调用是在编译时确定的,而局部变量的位置和值在编译时是无法确定的。如 int a=1;void fun(){ int i;void g(int x=i);//not right int g(int x=a);//right

}

4、define宏定义指令

1)使用其定义常量已被C++中的const定义语句所代替。2)用来定义带参数的宏,已被C++的内联函数所代替。3)其一个有效的使用是在条件编译中。

5、编译时必须知道数组的大小。如

int a[]={1,2,3,4,5};//编译器会自动去数 for(int i=0;i

7、Free和malloc int* a;a=(int*)malloc(sizeof(int));cout<

8、指向常量的指针,指针常量,指向常量的指针常量

指向常量的指针:通过指针不能改变所指向的变量的值,但是指针的值可以变化(即指针可

以指向其它变量的地址)。形式如const int* pi=&a;原来的变量的访问属性也不会发生改变,如原来是普通变量,则其值可以变化,原来是常变量,则其值不能变化。

指针常量:在定义时必须初始化,且一旦赋值,则以后该指针的值将不会再发生变化(即不能再指向其它地址)。形如char* const pc=“abcd”;注意,pc的值是不能再改变了,但是*pc的值可以变化,如*pc=b;指向常量的指针常量:具有上述两具指针的特点,须在定义时初始化,且一旦赋值,则以后该指针的值将不会再发生变化,且通过指针不能改变所指向的变量的值,形如const int* const cpc=“perfect”;注意,这种情况下,*cpc的值也是不能改变的,如*cpc=n是不对的。int main(){ char* const pc=“abcd”;cout<

}

9、sum(int array[],int n)与sum(int* array,int n)是等价的。

10、函数返回值,可以返回堆地址,也可以返回全局或静态变量的地址,但是不能返回局部变量的地址。

11、void指针是空类型指针,它不指任何类型,它仅仅是一个地址,不能进行指针运算,也不能进行间接引用。

NULL与void* 是不同的概念,NULL是一个指针值,任何类型的指针都可赋予该值。而void* 是一种类型(语法上是一个类型,本质上不是,没有任何一个变量或对象,其类型为void),是一种无任何类型的指针。不允许对void进行引用。

12、由引号(“ ”)标识,但不是用来初始化数组的字符串,是字符串常量,如cout<<“hello”<

由于字符串常量的地址属性,两个同样字符组成的字符串常量是不相等的,字符串常量的比较是地址的比较。

字符串常量,字符数组名(常量指针),字符指针均属于同一种数据类型。

13、不能建立引用的数组,因为数组是某个数据类型的集合,数组名表示起始地址,它不是数据类型。如 int a[10];int& a1[10]=a;//not right 引用本身不是一种数据类型(int&不是类型,定义时也不产生内存空间),所以没有引用的引用。也没有引用的指针。引用是变量或对象的引用,而不是类型的引用,所以有空指针,但是没有空引用。Int& ri=NULL //没有意义

可以用引用返回值。在通常情况下,C++会建立一个临时变量以将函数返回值带回。但是如果用引用,则不用建立临时变量。

C++规定,临时变量或对象的生命周期在一个完整的语句表达式结束后便宣告结束。所以如果以返回值初始化一个引用,应当先建立一个变量,将函数返回值赋于这个变量,作如下处理:

int x=fn1(5.0);//在这一句后临时变量生命周期将结束 int& b=x;************************* float temp;

float& fn2(float r){ temp=10*r;return temp;} 用如上的方法,则函数返回值将不再创建临时变量,而直接与全局变量temp共享内存单元 ******************************* 以引用的初始化,可以是变量,也以是常量,也可以是一定类型的堆空间变量,但是引用不是指针,如下表达是不对的: int& a=new int(2);

//not right

下面是用堆空间变量初始化引用的一个例子: #include #include using namespace std;int main(){ double* pd=new double;if(pd==NULL){printf(“failed”);exit(1);} cout<

//...{

cin>>rd;

cout<

cout<<&rd;

} delete& rd;//或delete pd return 1;}

注意:用double& rd来定义引用,而&rd则是取引用所指向的空间的地址。

14、声明一个结构并不分配内存,内存分配发生在定义这个新数据类型的变量中。结构不像数组,结构变量不是指针,&结构变量 取到的是结构中第一个成员变量的地址。结构变量可以相互赋值。结构成员不能作自身的结构变量,但是可以用结构指针作为成员。

15、将类定义和其它成员函数定义分开,是目前开发程序的通常做法。我们把类定义(头文件)看成是类的外部接口,类的成员函数定义看成是类的内部实现。

8.黑马程序员培训多少钱 篇八

“一般情况卜首先留下日常牛活所需的现金,外加—“部分保障未来养老、看病、买房等重大必需支小的定期存款,剩余的闲钱才能进行投资。

投资者的第一个决定是,把你的钱分成两份,多少钱买股票,多少钱买债券。股票和债券是一个通称,股票包括股票基金,债券包括债券基金、国情、公司恢。

外汇投资股票投资占多人比例,债券人多大比例,这是第一个决定的一个决定。为什么说公股票与债券之间的资产配置最员要呢?

学术研究表明:投资赢利的90%以k取决于投资者如何进行资产分配,5%取决于证券选择,2%取决十市场时机选择,3%取决下其他因素。

把钱投到股票资产上,收搜高,风险也高,波动性很大,投资收益很个稳定。

把钱投到债券资产上,收益低,风险也低定。你可以把存款看成债券类资产,风险最低 率只能与通货膨胀率持平,实际收益率是零。波动性很小,投资收益很稳最稳定,但长期而吉存款利

如果你不俊资产配胃这样的专业术语,你就记住一点:你在股票上投资的钱越多,你的投资风险越大,收益有可能越高,但也有可能更低,很不稳定;你在债券上投资的钱越多,你的投资风陆越小,收益越稳定,仅个可能很高。如果你能在不同的时期合理分配股票和债券,就能让仿;的投资总体收益最大化。

比如,在股市过度F跌之后,增加股票投资比例,减少债券投资比例末来市场反弹时就能赚得更多。

9.黑马程序员培训多少钱 篇九

--在Where语句中使用子查询

-----雇员中最高薪水的人员名称--1,先求出最高薪水

--2,再求雇员中最高薪水的人员名称

select ename from emp where sal=(select max(sal)from emp)

--有哪些人的薪水是在整个雇员的平均薪水之上的

select ename,sal from emp where sal >(select avg(sal)from emp)

-----雇员中哪些人是经理人

--1,首先查询mgr中有哪些号码--2,再看有哪些人员的号码在此出现

select distinct mgr from emp where mgr is not null order by mgr

select ename from emp where empno in(select distinct mgr from emp where mgr is not null)--where in 中不让写orderby select ename from emp where empno in(select distinct mgr from emp where mgr is not null order by mgr)

-----在From子句中使用子查询

----

--部门平均薪水的等级

--1,首先将每个部门的平均薪水求出来

--2,然后把结果当成一张表,再用这张结果表和salgrade表做连接,以此求得薪水等级

select deptno,avg(sal)from emp group by deptno select * from(select deptno,avg(sal)avg_sal from emp group by deptno)t join salgrade on avg_sal between losal and hisal;

-----每个部门最高薪水的人员名称

--1,首先将每个部门的最高薪水求出来

--2,然后把结果当成一张表,再用emp和这张结果表做连接,以此求得每个部门最高薪水的人员名称

select deptno,max(sal)from emp where deptno is not null group by deptno

select ename from emp e join(select deptno,max(sal)max_sal from emp where deptno is not null group by deptno)t on sal = max_sal and e.deptno = t.deptno

-----哪些人的薪水在部门的平均薪水之上--1,首先将每个部门的平均薪水求出来

--2,然后把结果当成一张表,再用emp和这张结果表做连接,以此求得哪些人的薪水在部门的平均薪水之上

select deptno,avg(sal)avg_sal from emp group by deptno

select * from emp join(select deptno,avg(sal)avg_sal from emp group by deptno)t on(sal>avg_sal and emp.deptno=t.deptno)-----求部门中(所有人的)平均的薪水等级,形式如:--deptno avg_grade--10 3.67--20 2.8--30 2.5--1,先求每个人的薪水等级--2,再按照部门分组,求平均数

select deptno,sal,grade from emp join salgrade on sal between losal and hisal select deptno,avg(grade)from(select deptno,sal,grade from emp join salgrade on sal between losal and hisal)t group by deptno

------------------------------使用伪字段:rownum,----------------------------------------------------用来标识每条记录的行号,行号从1开始,每次递增1

select rownum,emp.* from emp;--oracle下rownum只能使用 <<=,不能使用 = >>= 等比较操作符,select rownum,emp.* from emp where rownum<5;--当rownum和order by 一起使用时,会首先选出符合rownum条件的记录,然后再排序

--(错误的写法)例如,当我们要求薪水最高的前5个人时,最直接的想法可以这样写: select * from emp where rownum<5 order by sal desc--(正确的写法)可以这样写

10.黑马程序员培训多少钱 篇十

C语言是很多程序猿的入门语言,而且C语言也是一门用不过时的语言。编写高效简洁的C语言代码,是许多软件工程师追求的目标。今天传智播客C/C++培训专家针对编程工作中的一些体会和经验给大家做相关的阐述。

第一招:以空间换时间

计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值: 方法A:通常的办法 #define LEN 32 char string1 [LEN];memset(string1, 0, LEN);strcpy(string1, “This is a example!”);方法B:

const char string2[LEN] =“This is a example!”;char * cp;cp = string2;

从上面的例子可以看出,A和B的效率是不能比的。在同样的存储空间下,B直接使用指针就可以操作了,而A需要调用两个字符函数才能完成。B的缺点在于灵活性没有A好。在需要频繁更改一个字符串内容的时候,A具有更好的灵活性;如果采用方法B,则需要预存许多字符串,虽然占用了大量的内存,但是获得了程序执行的高效率。

第二招:数学方法解决问题

现在我们演绎高效C语言编写的第二招--采用数学方法来解决问题。数学是计算机之母,没有数学的依据和基础,就没有计算机的发展,所以在编写程序的时候,采用一些数学方法会对程序的执行效率有数量级的提高。举例如下,求 1~100的和。方法C: int I , j;for(I = 1;I<=100;I ++){ j += I;} 方法D int I;I =(100 *(1+100))/ 2;

这个例子是我印象最深的一个数学用例,是我的计算机启蒙老师考我的。当时我只有小学三年级,可惜我当时不知道用公式 N×(N+1)

/ 2 来解决这个问题。方法E循环了100次才解决问题,也就是说最少用了100个赋值,100个判断,200个加法(I和j);而方法F仅仅用了1个加法,1 次乘法,1次除法。效果自然不言而喻。所以,现在我在编程序的时候,更多的是动脑筋找规律,最大限度地发挥数学的威力来提高程序运行的效率。

第三招:使用位操作

实现高效的C语言编写的第三招——使用位操作。减少除法和取模的运算。在计算机程序中数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。举例如下: 方法E int I,J;I = 257 /8;J = 456 % 32;方法F int I,J;I = 257 >>3;J = 456-(456 >> 4 << 4);在字面上好像F比E麻烦了好多,但是,仔细查看产生的汇编代码就会明白,方法E调用了基本的取模函数和除法函数,既有函数调用,还有很多汇编代码和寄存器参与运算;而方法F则仅仅是几句相关的汇编,代码更简洁,效率更高。当然,由于编译器的不同,可能效率的差距不大,但是,以我目前遇到的MS C ,ARM C 来看,效率的差距还是不小。相关汇编代码就不在这里列举了。

运用这招需要注意的是,因为CPU的不同而产生的问题。比如说,在PC上用这招编写的程序,并在PC上调试通过,在移植到一个16位机平台上的时候,可能会产生代码隐患。所以只有在一定技术进阶的基础下才可以使用这招。用移位实现乘除法运算

a=a*4;

b=b/4;

可以改为:

a=a<<2;

b=b>>2;

说明:

除2 = 右移1位 乘2 = 左移1位

除4 = 右移2位 乘4 = 左移2位

除8 = 右移3位 乘8 = 左移3位

......通常如果需要乘以或除以2的n次方,都可以用移位的方法代替。大部分的C编译器,用移位的方法得到代码比调用乘除法子程序生成的代码效率高。

第四招:汇编嵌入

高效C语言编程的必杀技,第四招——嵌入汇编。“在熟悉汇编语言的人眼里,C语言编写的程序都是垃圾”。这种说法虽然偏激了一些,但是却有它的道理。汇编语言是效率最高的计算机语言,但是,不可能靠着它来写一个操作系统吧?所以,为了获得程序的高效率,我们只好采用变通的方法--嵌入汇编,混合编程。举例如下,将数组一赋值给数组二,要求每一字节都相符。char string1[1024],string2[1024];方法G int i;for(i =0;i<1024;i++)*(string2 + i)= *(string1 + i)方法H #ifdef _PC_ int I;for(I =0;I<1024;I++)*(string2 + I)= *(string1 + I);#else #ifdef _ARM_ __asm

{ MOV R0,string1 MOV R1,string2 MOV R2,#0 loop: LDMIA R0!, [R3-R11] STMIA R1!, [R3-R11] ADD R2,R2,#8 CMP R2, #400 BNE loop } #endif 方法G是最常见的方法,使用了1024次循环;方法H则根据平台不同做了区分,在ARM平台下,用嵌入汇编仅用128次循环就完成了同样的操作。这里有朋友会说,为什么不用标准的内存拷贝函数呢?这是因为在源数据里可能含有数据为0的字节,这样的话,标准库函数会提前结束而不会完成我们要求的操作。这个例程典型应用于LCD数据的拷贝过程。根据不同的CPU,熟练使用相应的嵌入汇编,可以大大提高程序执行的效率。

虽然是必杀技,但是如果轻易使用会付出惨重的代价。这是因为,使用了嵌入汇编,便限制了程序的可移植性,使程序在不同平台移植的过程中,卧虎藏龙,险象环生!同时该招数也与现代软件工程的思想相违背,只有在迫不得已的情况下才可以采用。

上一篇:写给青春作文下一篇:现代教育技术教学应用检查与考评制度