【摘 要】 文章根据本人多年对C语言和Java语言教学过程中遇到的一些实际问题,诸如Java语言是不是C语言发展和衍生的产物等。基于此,文章将从它们的起源、特点、开发环境、程序调试过程、应用领域等方面的异同进行比较、归纳。 中国论文网 【关键词】 C语言 Java语言 异同 比较 归纳 1 举例 (1)C程序。 #include “” void main() {printf(“大家好!\n”); } (2)Java程序。 public class java1 { public static void main(String args[]) { (“大家好!”);} } 从以上程序代码上看,二者既有相似之处,又有不同。相似的是二者完成的都是向输出终端输出字符串“大家好!”,不同的是前者是用C语言的main函数来实现的,C语言中main函数是程序执行的入口;后者用Java语言的类方法main的定义实现的, Java程序中main方法是程序执行的入口。 2 起源 C语言是在70年代初由两位程序员和在美国贝尔实验室研究出来的。后来由美国国家标准学会制定了一个C语言标准,于1983年发表。通常称之为ANSI C,是当代最优秀的程序设计语言。 Java语言是在1995年5月由Sun Microsystems公司推出的面向对象的程序设计语言。 3 特点 C语言的特点 C语言具有简洁、紧凑,方便、灵活;运算符丰富;数据类型丰富;具有结构化的流程控制语句(if、switch、for、while语句等);语法限制不是很严格,程序设计自由度大;允许直接访问物理地址,能进行位操作,能够实现汇编语言的一些功能,可以直接对计算机硬件进行操作。因此有人又把它称作中级语言。生成目标代码的质量高,程序执行效率也非常高;程序可移植性非常好[1]。 Java语言的特点 Java语言的特点可以概括为:平台无关性、简单、面向对象、分布式、解释执行、健壮、安全性等[2]。 平台无关性是指Java语言能运行于不同的计算机平台,数据类型也与机器无关。安全性是指Java程序运行时,内存由操作系统分配,可以避免病毒侵入。另外,Java还对程序提供了安全管理器,防止非法访问;面向对象是指Java将数据和类封装在一起,利用类的特点,实现程序的简洁性和可维护性。通过类的继承性和封装性的特性,使程序代码只需编译一次,然后就可以反复利用。分布式是指Java建立在TCP/IP网络平台上。库函数提供了使用FTP和HTTP协议传送和接受信息的方法。健壮性是指Java主要致力于检查程序在编译和运行时的错误。由于Java本身操纵内存,这样会大大减少内存出错的可能性。 4 开发环境 C是面向过程的语言,运行环境主要有:TC、VC、Visual C++等,现主要使用Visual C++,它是一个功能非常强大的集成开发环境。 Java是面向对象的语言,JDK是许多初学者使用的开发环境,由一个标准的类库和一组测试及建立文档的Java应用程序组成。在Java语言学习的初期,可以在普通的文本编辑器编写Java源程序,利用Javac命令完成编译,利用Java命令完成程序的解释执行。在具备一定的的程序开发基础后,可以选择一些集成开发环境如Eclipse、NetBeans等,以便提高开发效率。 5 程序调试过程 (1)C语言程序调试以Visual C++为例:下载Visual C++并安装、运行, 进入后,点击文件(File)->打开(Open),选择你要打开的C语言文件,点击打开选择打开文件后,依次点击Build->Compile,编译文件无误后,按Ctrl+F5运行程序。 (2)Java语言程序调试介绍两种方法: dos命令行运行步骤: 1)下载并安装JDK、环境变量设置:PATH、CLASSPATH和 JAVA-HOME。 2)编写:在记事本中编写Java代码,存为.java文件,文件名为代码入口类的名称。 3)编译:运行CMD进入dos系统。 输入javac代码文件名.java生成.class文件。 4)运行java程序:java*(*为主文件名)。 Eclipse运行步骤: 1)下载并安装JDK->下载并安装Eclipse 并运行,进入后点击文件(File)->新建(New)->Java项目(Java project)->输入项目名称->确定。 2)右键单击包资源管理器右键单击1)中的项目下的src节点,依次选择 新建(New)->类(class)->输入类名称->确定。 3)编写Java程序并保存。 4)运行Java程序:右键单击创建好的类文件,依次选择“run as” ->“Java Application(Java 应用程序)”—>确定。 6 应用领域 C语言是即具有高级语言的特点,又具有汇编语言的特点。它已先后被移植到大、中、小及微型机上。它可以作为系统设计语言,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写图形、动画和系统软件。 Java语言的应用领域:(1)行业和企业的信息化:如现在正在以惊人的速度发展起来的Android,它就是基于Java语言实现的手机操作系统。通过J2ME让手机可以运行Java程序,Java在手机世界的兴起对手机时代起着划时代的作用。(2)嵌入式设备及消费类电子产品:通过将Java虚拟机嵌入到其他设备中,就可以让Java在这些设备中发挥强大的作用。比如,非智能手机、机顶盒、嵌入式芯片及其他低功耗设备中都有Java的影子。(3)办公自动化:目前基于Java技术设计的办公自动化系统应用也非常广泛,如:军队办公自动化系统、网上书店系统、银行网上代缴费管理系统等。(4)辅助教学:远程教学系统、远程教育、交互式电站仿真系统等。 7 结语 在多年的C语言和Java语言课程的教学过程中,通过不断探索、学习和阅读文献,我对两种编程语言从以上几方面进行归纳,并将上述内容运用到教学中,采取比较式教学法,取得了较好的教学效果。 参考文献: [1]姜雷,施泽全.C/C++程序设计教程.中国铁道出版社,2007,2-3. [2]刘志成.Java程序设计实例教程.人民邮电出版社,2010,4-5.转载请注明来源。原文地址:
差别太远了,没多少可比的
微软MVP解读,C#与java的语言之争
C表示该参考文献类别属于论文集。根据GB3469-83《文献类型与文献载体代码》规定,各类常用文献以单字母标识:M——专著(含古籍中的史、志论著)C——论文集N——报纸文章J——期刊文章D——学位论文R——研究报告S——标准P——专利A——专著、论文集中的析出文献Z——其他未说明的文献类型电子文献类型以双字母作为标识:DB——数据库CP——计算机程序EB——电子公告
可以帮忙写哒
没问题,有全套!
写代码还是写论文?
C语言程序设计实际上是一个非常艰难的事情,因为很多人在这方面做了许多的尝试,当然了,作为一种新的一种格式,请要学会这种技术也是一个非常困难的事情,当然在很多时候,我们都会在这个事情要做很多的努力,毕竟这种程序设计一旦做好的话,确实有很大的前途,但是想要整体的了解确实是非常困难的事情,所以说想要了解很多。c语言程序设计方面的知识,那么想要了解的文献就非常的多了,建议你还是从最基础的一些学科开始练习,因为这些基础的参考文献才是最有用的,比如说c语言入门。课程300级,这个就是非常有用的一个基础类书籍,这部书籍其实你自己好好的去看一下,基本上有一些关键的一些技术就能够掌握了,但是这种技术的掌握只是一个初步的阶段。当你把这个他会之后,再看一些更深层次的创设经验书籍,这些书籍就会给你说很多相关的专业的知识,当你看好上面的那个基础书籍之后,那么再看这些就非常的明显了,当然了,在这些研究的时候,你还是要有更多的毅力,暑假给自己设定好一个目标,当你看完一个基础书籍之后,再去寻找另一个。要知道这种语言程序设计是非常枯燥的,如果没有一个明确的目标,就会陷入一个非常尴尬的设计之中。所以说在这样的情况之下只要你自己考虑好才能够让自己的整个的事业和工作做得更好这种设立的时候,一定要让自己有更多的目标,从而才能过上自己,在目标的达成上做到一定的发展,从而就会让自己在整个的语言程序设计方面处取得更好的战绩,可多人在学习的时候,就是因为刚开始的基础打的不牢铐,所以说后来在关键的技术方面却反而是落下了很多,所以说上面给你推荐的两部书记一定要重点去参考,这样的情况下,你才会获得成功,假设如果自己不去好好的努力,反而是喜欢好高骛远的话,那么在语言程序设计方面就很难取得突破了,因为这方面的基础知识是非常必要的,也是非常重要的,如果你能坚持下来的话,就会获得成功,如果你自己坚持不下来,而且没有这样的耐心那么你最好提前放弃因为学习对于每一个人来说要根据自己的个性如果的个性不适合这种语言程序设计的话那么就要离开毕竟这是一个非常枯燥的这种设立的时候,一定要让自己有更多的目标,从而才能过上自己,在目标的达成上做到一定的发展,从而就会让自己在整个的语言程序设计方面处取得更好的战绩,可多人在学习的时候,就是因为刚开始的基础打的不牢铐,所以说后来在关键的技术方面却反而是落下了很多,所以说上面给你推荐的两部书记一定要重点去参考,这样的情况下,你才会获得成功,假设如果自己不去好好的努力,反而是喜欢好高骛远的话,那么在语言程序设计方面就很难取得突破了,因为这方面的基础知识是非常必要的,也是非常重要的,如果你能坚持下来的话,就会获得成功,如果你自己坚持不下来,而且没有这样的耐心,那么你最好提前放弃,因为学习对于每一个人来说,要根据自己的个性,如果的个性不适合这种语言程序设计的话,那么就要离开,毕竟这是一个非常枯燥的学问,想要在短期内获得成功是完全不可能的,而是需要长时间,而且还需要更多的精力才能够成功,所以说在这样的情况下,你必须要在长期打仗的基础上,还要不断地去努力提高自己其他方面的知识,所以说是一个艰难的过程,你想要完全实现的话,那么就需要自己做更多的努力了,所以在这方面自己一定要更加的去研究,从基础上去了解,这样才能够慢慢的让自己的这种语言是设计程序能力慢慢的吐钱出来,当然这需要一个很漫长的过程,需要你的坚持。
C语言程序设计实际上是一个非常艰难的事情,因为很多人在这方面做了许多的尝试,当然了,作为一种新的一种格式,请要学会这种技术也是一个非常困难的事情,当然在很多时候,我们都会在这个事情要做很多的努力,毕竟这种程序设计一旦做好的话,确实有很大的前途,但是想要整体的了解确实是非常困难的事情,所以说想要了解很多。c语言程序设计方面的知识,那么想要了解的文献就非常的多了,建议你还是从最基础的一些学科开始练习,因为这些基础的参考文献才是最有用的,比如说c语言入门。课程300级,这个就是非常有用的一个基础类书籍,这部书籍其实你自己好好的去看一下,基本上有一些关键的一些技术就能够掌握了,但是这种技术的掌握只是一个初步的阶段。当你把这个他会之后,再看一些更深层次的创设经验书籍,这些书籍就会给你说很多相关的专业的知识,当你看好上面的那个基础书籍之后,那么再看这些就非常的明显了,当然了,在这些研究的时候,你还是要有更多的毅力,暑假给自己设定好一个目标,当你看完一个基础书籍之后,再去寻找另一个。要知道这种语言程序设计是非常枯燥的,如果没有一个明确的目标,就会陷入一个非常尴尬的设计之中。所以说在这样的情况之下只要你自己考虑好才能够让自己的整个的事业和工作做得更好这种设立的时候,一定要让自己有更多的目标,从而才能过上自己,在目标的达成上做到一定的发展,从而就会让自己在整个的语言程序设计方面处取得更好的战绩,可多人在学习的时候,就是因为刚开始的基础打的不牢铐,所以说后来在关键的技术方面却反而是落下了很多,所以说上面给你推荐的两部书记一定要重点去参考,这样的情况下,你才会获得成功,假设如果自己不去好好的努力,反而是喜欢好高骛远的话,那么在语言程序设计方面就很难取得突破了,因为这方面的基础知识是非常必要的,也是非常重要的,如果你能坚持下来的话,就会获得成功,如果你自己坚持不下来,而且没有这样的耐心那么你最好提前放弃因为学习对于每一个人来说要根据自己的个性如果的个性不适合这种语言程序设计的话那么就要离开毕竟这是一个非常枯燥的这种设立的时候,一定要让自己有更多的目标,从而才能过上自己,在目标的达成上做到一定的发展,从而就会让自己在整个的语言程序设计方面处取得更好的战绩,可多人在学习的时候,就是因为刚开始的基础打的不牢铐,所以说后来在关键的技术方面却反而是落下了很多,所以说上面给你推荐的两部书记一定要重点去参考,这样的情况下,你才会获得成功,假设如果自己不去好好的努力,反而是喜欢好高骛远的话,那么在语言程序设计方面就很难取得突破了,因为这方面的基础知识是非常必要的,也是非常重要的,如果你能坚持下来的话,就会获得成功,如果你自己坚持不下来,而且没有这样的耐心,那么你最好提前放弃,因为学习对于每一个人来说,要根据自己的个性,如果的个性不适合这种语言程序设计的话,那么就要离开,毕竟这是一个非常枯燥的学问,想要在短期内获得成功是完全不可能的,而是需要长时间,而且还需要更多的精力才能够成功,所以说在这样的情况下,你必须要在长期打仗的基础上,还要不断地去努力提高自己其他方面的知识,所以说是一个艰难的过程,你想要完全实现的话,那么就需要自己做更多的努力了,所以在这方面自己一定要更加的去研究,从基础上去了解,这样才能够慢慢的让自己的这种语言是设计程序能力慢慢的吐钱出来,当然这需要一个很漫长的过程,需要你的坚持。
数据结构论文参考文献
[1]严蔚敏.数据结构C语言版[M].清华大学出版社,2007.
[2]舞动的排序算法..
[3]丽水学院在线联系和考试系统..
[4]范德宝,于晓聪,丁伟祥.提高数据结构课程教学效果的探讨[J].黑龙江科技信息,2007.
[5]董丽薇.“数据结构”课程教学方法的.改进[J].沈阳师范大学学报(自然科学版),2012.
数据结构论文参考文献:
[1],2006,49(3):33-35.
[2]教育部高等学校计算机科学与技术专业教学指导委员会.高等学校计算机科学与技术专业人才专业能力构成与培养[M].北京:机械工业出版社,2010.
[3].数学建模方法与分析[M].第2版.刘来福,杨淳,黄海洋,译.北京:机械工业出版社,2005.
[4]孟凡荣,贾杰,王兴伟.网络工程专业创新性实践课程体系构建与实施[J].计算机教育,2013,(194)14:104-108.
[5]刘昕,石乐义,元雪东.面向计算思维的数据结构课程教学改革[J].计算机教育,2013,(196)16:35-38.
数据结构论文参考文献:
[1]逯鹏,张赞.数据结构课程教学方法的研究和实践[J].教育教学论坛,2015(18):121-123.
[2]贾丹,周军.基于创新应用型人才培养模式的数据结构课程教学改革[J].辽宁工业大学学报:社会科学版,2015(2):132-134.
[3]郭艳燕,童向荣,孙雪姣,等.程序设计基础与数据结构两门课程的教学衔接[J].计算机教育,2014(10):47-50.
[4]高贤强,化希耀,陈立平.引入计算思维的《数据结构》教学改革研究[J].现代计算机:专业版,2015(7):16-19.
[5]严太山,郭观七,李文彬.课堂设问的技巧及其在《数据结构》课程教学中的应用[J].湖南理工学院学报:自然科学版,2015(1):81-83.
[6]南淑萍.电子商务专业数据结构教学方法探讨[J].湖北科技学院学报,2014(10):13-14.
[7]杨夏.基于微信公众平台的对外汉语口语教学研究[D].四川师范大学,2014.
一·基于MSP430 单片机的电源监控管理系统(单片机论文)引言大功率直流开关电源由PFC 和DC-DC 变换器组成,为了提高可靠性,并能够对其进行脱机或远程监控管理,在开关电源模块内设置监控管理系统。该系统对电源故障类进行监控,对电源输出的电压电流进行自动设定和调节,通过串行通信接口,与远程中心监控站进行远程监控和管理,这一功能在通信系统基站供电系统中尤为重要。本文提出了一种基于MSP430单片机的电源监控管理系统的设计和实现。1 系统结构和硬件电路设计系统的整体设计结构如图1所示。本系统采用的核心芯片为TI公司推出16位系列单片机MSP430。MSP430具有集成度高,外围设备丰富,超低功耗等优点。单片集成了多通道12bit的A/D转换、片内精密比较器、多个具有PWM功能的定时器、片内USART、看门狗定时器、片内数控振荡器(DCO)、大量的I/O端口以及大容量的片内存储器,采用串行在线编程方法,单片可以满足绝大多数的应用需要。 MSP430的这种高集成度使应用人员不必在接口、外接I/O及存储器上花太多的精力,而可以方便的设计真正意义上的单片系统,在许多领域得到了广泛的应用。下面介绍该系统可以实现的功能和基于MSP430F149的电控系统的设计。 系统功能:a.开机控制。上电后,单片机开始工作,按下电源键,点亮指示灯后,将电网220V接入PFC,开关电源启动工作,然后接于负载。b.电压设定和调节。用单片机A/D口采集开关电源的输出电压值,并显示于液晶屏上,通过单片机控制数字电位计调节输出电压值,实现自动调节;或者通过键盘的左右键选出电压调节页面,用上下键进行手动调节;也可以通过通信接口实现远程调节。c.电流调节。多台开关电源并联使用时,要求各台电源的负载电压相等。单片机A/D口采集转换成电压值的负载电流值,通过通信口得到各台电流值,取电流平均值,控制数字电位计调节输出电压,使输出负载电流达到平均值;或者通过键盘的左右键选出电流调节页面,用上下键进行手动调节。d.故障报警。单片机通过光电耦合器检测到各项输入输出故障时,扬声器产生蜂鸣,相应的报警灯闪烁,并在液晶屏上显示故障类型及处理方法。e.监测。单片机A/D口对电网电压,输出电压,输出电流进行采集测量,当出现超限时进行报警。f.通信。包括单片机与各台开关电源间的通信和单片机与中心监控站的通信。 电压调节电路电压调节电路由单片机、数字电位计X9313和可调分流基准芯片TL431组成,其电路原理图如图2所示。Xicor9313是固态非易失性电位器,可用作数字控制的微调电位器。TL431是TI生产的一个有良好的热稳定性能的三端可调分流基准源,它的输出电压用两个电阻就可以任意地设置到从VREF()到36V范围内的任何值。工作时,单片机的一个IO控制INC计数输入脚,为其提供计数脉冲,此输入端为下降沿触发。另一个IO控制U/D升降输入端,当U/D为高电平时,X9313内部计数器进行加法计数,VW端的输出电压上升,由于VW接地,使VH端电压降低,而TL431的REF输出端电压为恒定的,从而使Vcc处输出电压升高;同理当U/D为低电平时,Vcc处输出电压降低,这样就实现了电压输出调节。 模拟数据采集MSP430F149内嵌入一个高精度的,具有采样与保持功能的12位ADC转换模块,内部提供各种采样与保持时钟源。MSP430有8个外部输入通道可选, 最高采样速度可达200KHZ,并且还内置温度传感器,可以测量芯片内的温度,如果测量温度高于或低于预设的温度是,可以通过外接部件显示告警信息,同时具有6种可编程选择的内部参考电压。该转换模块为一些需要模拟量采集的场合提供了便利。我们选择的参考电压是0~,这样MSP430F149的AD分辨率就是 = 左右。由于输入的模拟电压量较高,不能直接与单片机的ADC采样端口相连,因此用串联一个滑动变阻器的方法进行了降压处理,成功解决了上述问题。 人机对话设计系统的人机操作界面由液晶显示屏、指示灯和键盘组成。液晶选用的是基于T6963C 的液晶模块YM12864。键盘采用的是3×3 的阵列接法,系统采用了图形用户界面,操作简单易行,显示实用美观。工作时,液晶屏可以实时显示采集到的电网电压、输出电压、输出电流及各种报警信息,操作相应键盘可以进行显示页面的切换,对输出电压,输出电流进行自动、手动及远程控制调节。当有报警信息产生时,相应得指示灯会闪烁警示,同时与单片机连接的扬声器会产生报警蜂鸣声,以提醒操作人员做出相应的处理。2 系统软件设计430 支持汇编语言和C 语言两种语言编程,因此可以在一个工程文件中同时用两种语言,使用汇编语言,便于在调试时寻找逻辑和指令的联系及地址的定位正确与否。使用C 语言进行编程大大减少了工作量,编好后的程序可读性好,易于修改和维护。开发工具使用IARSystems 公司的IAR Embedded Workbench,它集成了编辑、编译、链接、下载与在线调试(Debug)等多种功能,使用方便,并具备高效的C 语言编译能力。考虑到软件开发效率及可维护性,系统软件设计遵循模块化的编程思想,将系统功能划分为几个相对独立的功能模块。它们包括:液晶显示模块、AD 转换模块、按键监测响应模块、报警监测响应模块、电压电流调节模块、数据处理模块、通信模块。每个模块都要进行独立的测试,最后结合到一起。整个系统的软件流程图如图3 所示。按键监测模块是其中的重要组成部分,它控制着AD转换的启动,显示页面的切换,及电压电流的自动调节,手动调节,远程调节的启动和切换。报警监测模块对开关电源的保护起着至关重要的作用,它实时的监测着开关电源是否出现故障,当发生输入电压过压,输入电压欠压,PFC故障时应切断总电源,当发生输出电压过压,输出电压欠压,模块过热,及IPM保护故障时应关断DC-DC变换器。在对各模块进行整合时,要注意各中断之间的冲突。由于在MSP430 的中断优先级中,ADC12 采样转换中断优先级高于TIMERA 中断,因此当在响应TIMERA 中断的过程中会执行ADC12 采样转换中断,或者TIMERA 的中断响应被迫延迟,这样就会影响在TIMERA中断中执行的报警监测响应程序,不能达到对开关电源故障类的实时检测。在本系统中,利用按键控制ADC12 采样转换中断的启动和关闭,从而解决中断冲突。3 结论本文在基于MSP430F149电源监控管理系统的设计和实现的基础上对MSP430的系统设计做了讨论,提出并解决了在设计中出现的问题。本文作者的创新点:利用MSP430的系统结构简单,外围电路少,效率高的特点,设计实现了简洁直观、使用方便、操作全程汉字提示、监控能力强、运行稳定、安全可靠的电源监控管理系统,大大降低了成本,取得了相当可观的经济效益,满足实际需求。二·C语言论文:嵌入式以门槛高,入门难的方式拦截了无数的学者。然而单片机作为嵌入式的入门课,如何以一种正确的方法学习单片机将关系到是否能学习好嵌入式。纵所周知,学习嵌入式先玩ptotel,再做单片机。Protel简单的来说就是一个做PCB板的纯英文的软件。学习ptotel前必需具备一定的电路基础和英语能力,电路基础我想大部分同学都是有的,而英语这一块却是许多人所头疼的。这对英语基础差的同学是一种打击,再者如果毅力不强,我想你是自学不下去的。毅力是学任何东西所必需的一种能力、素质,是一种遇挫折而不言败的决心。不管学的是protel还是单片机,首先要找一个能够指导你的人。何谓指导,指导并不是说他要一步一步地教你去做,而是一个在关键时刻能够为你指出一条道路的人。我认为学习嵌入式方法最重要,在学protel和单片机之前应该想办法了解关于学习它们的方法。比如说protel吧,许多人理科的学生都是以一种纯理解的角度去学的,画一个导线、元件问一下为什么要这样画,生成网络表也追根溯源地问个网络表的由来。其实许多东西只是懂用就行,理论的东西懂得再多不懂用也是枉然的。所以学习protel有地方不懂你就问你的指导员,有许多的东西是规定死了的,不是你想半天一夜就可以为你而改变的。这不同于软件设计,软件设计在你的苦思之下也许可以找到另一种更好的方法。 单片机嘛,不得不承认中国没一本单片机好书。我学习单片机的时候看过的单片机书有七本,大多数都是不尽人意的。在这里我冒昧地说:中国人写书确实缺乏一点“读者至上”的原则。我所看过的单片机书我想有很多都是以他的角度去写的,没有几个人是站稳在读者的角度上写的。书上的章节注释极不清楚,许多重要的地方都是没有说明的,说句不好听的话,作者似乎以为读者的水平也像他一样高。而外国人的书呢,同样的书,同样的知识点,有同样的中国人的书的两三倍那么厚,这是为什么。这是因为外国人的书点点滴滴都是面向着读者的。注释、说明、总结应有尽有。所以,我在这里发表一个也许同胞会扔鸡蛋到我身上的观点,那就是:不管学什么,优先选择外文翻译书,或是纯英文书。得到一本好书对我们的影响极为巨大。这一部分我用一句话来总结就是:中国人的书适合教学,而外国人的书不仅适合教学还适合自学。 中国人的单片机书往往都是先介绍单片机的内部结构、中断,定时器,然后再到I/O口。一开始就让我们学习单片机内部结构,中断、定时器的内部结构和原理,把我们弄得一塌糊涂的时候再和我们讲例子,怎样去操作实验板。如果自学的话我想许多同学是学不下去的,干嘛要把非得把单片机的内部结构像解剖学一样弄个彻底才实践去应用它呢?即使你把单片机全解剖清楚了还是不会用你手中的这块实验板的。我觉得如果在学单片机之前没有学过汇编语言就直接用C语言学的话,即使学完了单片机,对单片机的内部结构和单片机的工作原理也是不清楚的。学了汇编之后再学单片机的话效果将会好得多,所以不要心急,有些东西是急不来的。所以我认为学习单片机要在实践中学习,先实践再去了解它的结构和原理,如果你实在不能了解它的结构和原理那也无所谓的,只要你懂得用就可以了!(没学过汇编的只能这么说了)我们可以先从 I/O口学习,看一些例子烧录些程序,再看一下现象,之后再尝试了解一下所要用到的单片机的内部结构,最后在这个现象的知识基础上,编一个自己想要的程序、现象出来。这样学习的话既不无聊,成就感也有了。为什么有些人可以把学习当一种快乐,而许多人在唉声叹气,我想有一部分是出自这个原因。不同的实验板有不同的PCB图,所以I/O的操作也是有所不同的。不过操作的原理都是一样的,有些同学可能会抱怨教程里的实验板和自己手中的实验板不同,这是大可不必多虑的。I/O这一步在调试中看现象的理念很重要,比如改变一个语句会产生何种现象,为什么会产生,这些都是要在调试中掌握的。中断的学习方法也是类似的,先实践发现有陌生的地方就去查看相应的寄存器,等实现了自己想要的现实再慢慢地解剖一下单片机的寄存器,这样学起来会更有意义,记得更牢。中断也没复杂的东西的,只不过学几个中断函数,优先级之类的。有一定C语言基础的同学在优先级这一块可以联系C语言中运算符的优先级,我相信有了C语言基础定义一两个中断函数也不是什么问题了的。我学过的单片机的内容在我文档的实例之中,实例的数量不多,但这些都是直接点击单片机知识点的。随着我的学习渐渐地深入后我再把我实现过的东西写入实例之中吧。希望对你有所帮助,祝成功!
要么是某某管理系统要么是某种常见软件。你可以做个根据人的照片做成表情包的,就像iphone x上那个相机一样。另外就是面部识别,跟踪,这个也比较新
这个具体得知道你的专业呀,还有就是选的是什么题目,每个题目的要求和要的功能那些都是不一样的,总之计算机的就是这样,比较独立的。所以要知道你所学的方向才能确定的。
论文写作,先不说内容,首先格式要正确,一篇完整的毕业论文,题目,摘要(中英文),目录,正文(引言,正文,结语),致谢,参考文献。学校规定的格式,字体,段落,页眉页脚,开始写之前,都得清楚的,你的论文算是写好了五分之一。然后,选题,你的题目时间宽裕,那就好好考虑,选一个你思考最成熟的,可以比较多的阅读相关的参考文献,从里面获得思路,确定一个模板性质的东西,照着来,写出自己的东西。如果时间紧急,那就随便找一个参考文献,然后用和这个参考文献相关的文献,拼出一篇,再改改。正文,语言必须是学术的语言。一定先列好提纲,这就是框定每一部分些什么,保证内容不乱,将内容放进去,写好了就。参考文献去中国知网搜索,校园网免费下载。 合适采纳
近年来,随着全球网际网路技术的普及、计算机技术的迅猛发展、数字技术的瞬息万变,计算机工程在人们生活、生产中的应用越来越广泛。下面是我为大家整理的计算机工程毕业论文,供大家参考。
计算机软体大体分为三类,一种是总述,一种是系统软体,一种是应用软体,系统软体的作用是促使各个硬体按照一定的规律协调工作,保证计算机处于正常运转状态。而应用软体的作用则是为了实现某种使用愿望而开发出来的软体。
1计算机软体工程专案管理的基本概念
工程专案管理的含义工程专案管理主要是业主通过委托从事工程专案管理的企业,签署相关协议,工程专案管理企业有义务和权力代表业主在工程专案进行的情况卜干预和服务。工程专案管理企业可以协助业主同项目工程总承包签订一系列合同,只是起到辅助性作用,不直接与总承包企业或者施工、勘察、供货和设计签署协议或合同,工程专案管理企业有责任在施工过程中监督合同的完成情况。
软体工程专案的概况
管理人员开展有序的专案计划
企业必须把人员管理放在重要位置,在软体工程专案的开发上人员的调配问题是保证工程顺利进行的重要因素,因此,专案能否成功和工作人员的工作能力、写作能力息息相关,针对工程专案的操作类别不同,可以分配成各个研究小组,进行科学合理的针对性开发和高效的协作,有利于工程的快速推进和更加完善。小组内的人员根据自身优势,确定自己的工作内容和工作时间。对专案进行正确的认识和对风险进行评估,与此同时从节约成木的方而出发,形成科学的人力资源调配机制,使专案得以顺利开展。
质量和配置管理工作
软体的质量管理工作是整个专案的核心工作,质量管理决定着计算机软体工程专案管理是否真正的成功,通过一系列保证质量的手段,有计划的编制、控制和保证专案质量。保证专案质量的方式可以通过定期的进行质量评估得以实现,在日常专案管理中要不断的对工作进行考查,对于专案不合格的地方要提出意见并且考虑整改措施,不断完善整个软体配置管理的记录工作,使专案的质量能有一定的检测体系,这样开发者会对专案工程的质量问题有比较深入的了解。
风险评估和管理工作
风险管理大致分为两种工作,一种是风险识别,另一种是风险评估。得到评估结果以后要针对问题提出相应的解决办法,定期检测计算机软体工程的好处是可以减小产生风险的概率,还可以避免一些因疏忽而产生风险,使专案的损失减少到最低,也减少了因专案风险而造成的一些相关责任人的利益冲突。
2计算机软体工程专案管理中存在的问题
管理团队的协作问题
分工合作是我们完成一个专案的基木因素,在软体开发方而更需要每个人的智慧一起凝聚出果实,共同享受成果,而目前在计算机软体工程专案管理方而资讯的交流方而存在一些问题,例如分工不清、团队不合作等问题。
需求分析和实际中的业务存在差距问题
计算机软体工程专案没有结合实际的活动需求,也没有调查有效的资料分析,因此计算机软体工程专案管理在开发出新的产品以后并没有取得理想的业务效果。
风险管理的问题
专案的风险工作是企业需要考虑的很重要的问题,如果风险没有相应科学管理,很容易带来巨大的损失,但是很多员工并不懂得如何规避风险,缺乏相应的专业知识,更是缺少对风险工作的管理,导致很多企业在风险来临时无法做出正确行动,造成巨大的经济损失。
3计算机软体工程专案管理的对策
对风险管理和工作进度进行有效管理
制定风险管理制度。计算机软体工程专案管理的工作人员必须具有一定的风险识别意识和相应的遇到风险的专业知识,并且能有效的控制风险的能力。在平时要做好风险评估的管理报告,针对可能发生的风险要及时预测并且做出相应的解决行动。设定专门的人员对计算机软体工程专案定期进行风险的评估和检查工作。在整个专案中,根据需要进行多次的风险管理工作,因为风险无时无刻都有可能存在,检查的目的是尽量减少风险发生,在一般情况卜处理风险的措施一般有三种:减缓、规避和转移。提高工程的进度,不断的推进工程的工作效率。要制定详细的工作计划表,并且尽可能达到最高的工作目标。工作人员有严谨的工作态度和高效的作息时间安排,管理人员要密切关注工程进度,不断的督促员工完成应做的工作量,有条理、高效的完成对员工的工作任务的监督工作。
建立完善的管理体系针对计算机软体工程的人员日常管理工作,要建立科学有效的管理方案。合理安排人才资源,确保在进行计算机软体专案工程时人员调配顺利进行。专业知识的培训对于工作人员来说
是必不可少的,可以极大的丰富计算机软体工程专案人员的专业水平和实践能力,减少工作上的失误,提高工作效率和工作人员的素质。奖罚制度是对企业员工优劣的衡量标准,所以在计算机软体工程专案管理方而采取奖罚制度可以极大程度上调动员工的积极性,使员工主动为企业创造效益,企业的发展才能有长远的未来。
建立合作的团队
在员工内部建立有效的交流机制。员工的内部工作经验交流是非常重要的,因此要完善沟通方法,开辟多种交流方式和渠道,不断的增强各个部门的沟通意识,使团队的力量不断凝聚起来。明确分工,责任落实到个人。计算机软体工程管理非常复杂,需要的人员也众多,因此必须要使每个员工明确自己的工作内容和范围,清晰的划分自己所需要负责的区域,清楚自己的责任,这样能够确保每一个步骤都井井有条,非常有秩序。调动整个团队的工作积极性。通过一些活动、奖励措施等使每一个工作人员全身心的投入到工作中去,愿意并想要去做的更好,不断激发团队的潜力和员工的协作能力,这样专案不仅会做的越来越好,员工内部也会越来越和谐并且充满正能量,企业的效益也会不断得到提升。
4结语
计算机软体工程专案管理的工作内容十分的复杂,要保证软体工程按照工程原计划进度顺利开展工作,并且要节约成木、保证质量,必须熟练对计算机软体进行操作,在现在的大多数生产计算机软体的企业中最为重要的就是软体工程专案的管理效率,软体工程专案的成功条件是软体专案要具有科学性和高效性,在此基础上企业的合理管理也是企业走向成功的关键。
1现状分析
培养高质量的软体开发人才一直是社会和行业关注的焦点。早在11年前,对于工程教育的迫切性就被人提出来[1]。工程教育本身也作为一个系统问题被讨论[2]。现在从国家层面在战略上建立了软体学院进行专门培养,各个高校也不断推出新的课程、新的措施方案。在这一领域虽然比过去似乎已经有了翻天覆地的变化,但来自企业的呼吁似乎一直反映出诸多不尽如人意。更多的思路希望将企业的力量直接引入到教学,比如实训基地等[3];而国家层面也非常关注实训[4]。但实际效果可能变得流于表面,因为企业往往难以将核心的工作拿给学生做,而其训练的专案也并未从更全面系统的角度去设计,其锻炼效果就有限了。在软体开发这一领域,由于其具有变化迅速,新技术不断涌现的特点,导致不少在教育内容上选择了追逐新技术、新语言、新平台,以能用会用这些流行主流技术为目标。典型的代表就是北大青鸟,有些二本的学生在毕业前专门花钱去青鸟学习,似乎可以看到这种教育的优势。但另一个矛盾的情况是,往往那些关注员工后劲的公司却不愿意招聘青鸟的学生。如果将目光投向国外的顶级大学,例如斯坦福,其教学上并没有去“依赖”校企合作,以及很热门的“实训”。其核心课程依然是过去的传统经典课程。以一个研究生为例,一学期能修2门课是正常,3门就很优秀。它并没有追逐所谓的新技术。但无人质疑其学生的工程能力、科研能力和创造能力。
2什么是计算机工程能力的核心
什么才是我们软体开发教育的核心知识架构,怎样才能培养学生可持续发展的核心竞争力?我们调查过一些非常高水准的软体开发者,发现他们往往在底层软体上持之以恒地进行长时间深刻的锻炼,然后在未接触的新领域才能非常迅速地掌握核心。例如,一个非计算机专业的系统分析员曾经“只”在DOS这种原始的作业系统下玩了10年,甚至自己写过一个汉化的DOS。他只有书本上的一点点网路知识时,就用一两天时间解决了一个学通讯的研究生1个月都不能解决的网路故障。这是一个典型的例子,他并没有“实际的”网路经验,什么使得他如此轻松地进入了新的领域呢?而另一个曾就职于vmware、google等顶级公司的程式设计师,在Unix下只用C语言做了10年系统级程式设计。当用Java,C++甚至是javascript时,其学习时间只是1天,很快就比做了几年专门java程式设计的程式设计师还精通。如何才是软体开发人员的本质力量?什么才能让他们在变化万千的新技术面前屹立不倒,乘风破浪?
计算机工程能力
我们认为计算机工程能力包含两方面的内容:1核心知识架构;2计算机的思维方式。什么是核心知识架构呢?是反应该领域最基本规律和支撑技术的知识。简单地说就是传统的作业系统、编译、资料库。作业系统将硬体、软体、高阶语言和汇编融汇在一起,它几乎包括了软体工程中所有重要的因素。举一个简单的例子,似乎只有面向物件这种“高阶东西”才有的虚拟函式运用,其实在Linux中就有相应的虚档案系统。作业系统是最为复杂的计算机工程之一。编译融汇了大量的演算法,而且能让大家真正看“穿”语言的外表,深入到其内里,体现了最根本的计算机技术。其优化技术,也深刻地和硬体交融在一起,很好体现了底层风范。资料库,不仅是运用演算法最多的地方,甚至是超越作业系统的一个复杂的系统,从快取技术到i/o优化,到索引,再到事务处理,无一不是反映计算机最深刻规律。大家可以发现,所谓核心知识架构,都具有两个特点,反映本质规律,体现软硬融汇交织。也只有这样,才能建立下面谈到的“计算机思维方式”。
核心知识架构
为什么我们没包括一些新兴的语言和技术呢?似乎它们很“实用”。而且已经出现的问题是,按照传统科目和方式学习后,学生在企业什么都不会。这也正是大家关注工程教育的初衷。为什么不强调这些新兴实用技术的教育还在强调“古老”的“基础”。计算机领域一个显著的特点是,表面上知识更新非常快,新技术、语言层出不穷。这很容易导致当我们发现学生能力欠缺时,将问题归罪于新技术的学习不得力,知识结构老化。但其实目前的问题可以从另外一个角度考虑,是否是基础教育不得力?分析国外著名大学,如斯坦福、伯克利的课程,我们发现两个特点:1关键的基础课程,如作业系统、编译原理、资料库,始终是其最重要的课程,并没有过分追逐各种“新潮”技术。2学生一学期能修的课程非常有限,一般为3门课。而国内却呈现相反的状况,比如编译原理被降到了选修课的角色,新潮课程层出不穷,一个学生二年级一学期要修13门课。在这种走马观花的状况下,计算机这种具有强烈“手艺”色彩和工程实践的学科,被完全纸上谈兵化。而一些可怜的实验内容,还被学生的复制拷贝所湮没。我们认为,恰恰是这种情况,使得基础核心知识教育没有工程化,没有充分动手,导致了基础知识教育某种程度上的巨大失败。从以下鲜明的对比可以窥见问题的端倪:国内学生反映作业系统课程是文科课程只需要背条款考试即可;而相对地,国外著名高校作业系统课程要求学生实现“小”作业系统。国内资料库只讲其应用如大量讲解sql等运用,sql即使非计算机专业人士也很容易学习,这也是它被发明的初衷。斯坦福的资料库课程中有一门需要实现一个数据库系统。在笔者走访的计算机工程上优秀的人才,发现其共同的特点就是在诸如作业系统或资料库上都有很深入的学习经历,比如前面提及的自己构建过汉化DOS系统,或者在Unix下,做核心以及驱动很多年等。而当他们接触新技术时,之前深刻的经验和淬炼的思维就让他们如虎添翼,快人一等。更有甚者,国外真正的最顶级专家,都是在这些领域有无与伦比水平的专家,从delphi的缔造者,转战到微软并入主平台的开发,也可看到雄厚的底层知识和能力的巨大作用。所以“老”知识并不是障碍,而是通向天堂的阶梯。究其原因,就涉及到工程能力的第2个方面,计算机思维方式。
计算机思维方式
对非专业人士它是很抽象的概念,而对真正专业人士,这又是一个非常鲜活的概念。这里限于篇幅,我们只举一个简单的例子。面对在C++中外部程式码如何直接修改私有变数的问题,计算机的思维方式就是:物件也是放在记忆体中,只要能拿到物件的地址,并知道物件的布局,那么就可修改。而没有建立这种思维的人,就完全被高阶语言的语法所左右,无从下手。一句话,无法看到本质,没有从下而上的底层思维。核心知识课程的有效深入教学和计算机思维方式建立有何直接关系呢?我们认为核心知识因为其反应了计算机本质规律,而且从底层建立起来,所以对其深入掌握运用后,它从开始的逼迫到最后的陶冶,最终潜移默化地让受众建立起“计算机思维方式”。而这正是计算机工程师安身立命之本,就如同音乐家有其独特的音乐思维方式一样。为什么诸如java之类的课程于建立计算机基本思维不太合适呢?因为它更高层,无法让学生看到最下面。而唯有彻底、深刻和系统的底层淬炼,才能真正建立起“计算机思维方式”。
3如何打造强大的计算机工程能力
大家一方面指责基础课程的“空洞”、“无用”、“陈旧”;另一方面在不断开设的海量新课和技术中压得学生更加远离程式设计,远离实践。即使能培养出熟悉某种语言的学生,也无法看到他们和培训学校有何不同。实训也似乎没有根本解决问题,我们在实践中发现,往往是那些自己醉心于程式设计的学生最后有着卓越的表现。让基础知识能支撑和指导实践,而非仅仅“符号”,并引导学生进行高效的实践。
“3块连一线”,4门基础课程整合打造核心知识架构
我们将4门基本课程进行贯通式整合,着力塑造学生的“计算机思维”。下层的是3门基础课在上一小节探讨了其在工程能力训练上不可替代的重要地位,对软体开发环境产生支撑。而软体开发环境又通过精心的设计和工程实践,从应用角度将3门课程所学的知识串联起来。从而将基础知识和工程开发更有机整合在一起。首先,阐述为什么将以上课程整合在一起的理由。要回答这个问题,必须先回答什么东西支撑了优秀程式设计师。在我们的调查人员中,无一例外地都具有很深厚的底层软体开发背景。有长期从DOS的Hack入手的;有长期从事Unix核心程式设计的;有从Windows的driver起步的;有以反汇编逆向为根基的。长期在最底层的经历,使他们建立了最真实和能触控的系统观,能以计算机的方式思考。所以面临新技术时,他们能透过新形式很快把握其精髓,深刻地把握其实质。“太阳下面没有真正的新事物”,例如号称21世纪最新的重要的软体技术AOPAspectOrientedProgramming,AOP,其实在20世纪60年代就出现在了汇编一级的软体技术中,它本质就是钩子技术的系统化。在底层的软体世界,我们不仅能够用到那些所谓的最新的技术,而且能看到其本质我们可能就是用机器码自己构建出来的,而不被新技术的华丽外衣障目。这些使得具有底层经验的开发者,更有创造力,更能创造,也更能洞察迷乱后的本质,庖丁解牛,解决那些异常复杂的工程问题。举一个笔者遇到的真例项子,一个具有深刻底层经验的程式设计师一直只有C语言和作业系统程式设计经验和一个只有深刻Java经验的程式设计师,在同时学习Javascript的闭包概念时,后者一个礼拜都还有些似是而非。前者很快就能自如运用,且最后指点了后者1个小时,后者顿时豁然开朗。这是典型的“新”与“老”,上层和底层经验在面对新事物时的对比。既然底层软体赋予我们如此强大的能力,那么哪些是底层软体呢?大家公认,作业系统、编译和资料库由来就是计算机工程自身的根基。所以,我们必须将这3门课涉及的知识好好淬炼。而如何将3门课的知识和我们日常的软体开发联络起来呢?如何用它们指导平时程式的开发呢我们大多数是开发使用者级软体,不会开发核心软体,因此许多人认为几乎整个在核心中的作业系统对使用者级软体开发无从指导?另一门课,《软体开发环境》解决了这一问题。它有一条主线,通过反汇编将C语言和汇编串联起来,让系统级的知识从高阶语言的面纱下展现出来。同时用逆向工程这把庖丁之刃,将编译、连结、面向物件等软体开发中的重要知识块剖剔,让底层与上层贯通一气。而逆向的技术技巧,本身也是非常高阶的软体开发技术。因此,我们用“3块连一线”来总结4门课的关系是最好不过了。为什么不纳入语言课程,比如C/C++语言?从我们的工程经验来看,语言只是计算机原理和思想的载体,是表述方式而已。为了表述形式而专门花大力气是不值得的。比如,国外的著名大学很多都不开设语言课,在其他课程作业中必须用C语言程式设计,学生们就在那里锻炼了。真正的语言的力量并非来自语言本身,而是底层知识为支撑的专案锻炼。我们的思路是以构建式完成大量的完整系统的编写,这样就很好锻炼了软体开发和工程能力。同时,“软体开发环境”本身从逆向层面也对语言有了深刻的剖析,这是纯粹的语言课难以完成的。另外,从大纲安排上,我们在大一就会让学生用C语言来初步接触程式编写,这时并不适合放入太高阶主题。而在教学中,语言的力量已经渗透到一个个工程构建中,随风潜入夜了。为什么不纳入演算法课程?从某种程度上,“程式就是演算法与资料结构吗”?我们认为在系统中运用演算法,演算法才具有生命力。而编译、作业系统、资料库以及我们专门设立的一些课程设计将全面运用各种演算法和资料结构。在实战中运用并学习提升才是王道。这也正是构建式学习的精髓所在,这也正是探索式学习培养学生的创造能力的精髓所在。演算法课已经为我们准备了元件,就看你怎么去组装甚至改造。
以构建主义的思路,深度实践的风格改革课程
前面我们论述了底层知识架构的重要性,那么怎么来将它们实际地建立在学生的工程实践中呢?简单地说就是“构建一个具体而微的系统”。讲作业系统就构建一个小作业系统,讲编译原理就构建一个我译器。同时,设计一些跨度较大的课程设计覆盖这些课程的一些重点内容。构建完整系统本身就可真实淬炼工程能力,而这些内容的复杂性、难度以及运用知识点的广度,本身就超越了简单的企业实训专案,在培养人才方面具有系统性、完整性、挑战性独特优点。我们需要的是运用团队的思路和现代软体工程的手段,将其开发过程管理发起来,从而熟悉企业级开发的工具链,将软体工程学到的知识贯通到实作中。这也回答了“和以前相似的强调基础课程教育,什么特点使得我们的做法能获得强大的工程能力?”这一问题。以前更多注重理论知识的学习,而现在的做法是回归计算机工程的自身科学规律———实践为王。
改革考核评价标准,充分强调动手实践
以前我们一直是卷面考试,实验分数只是象征性的点缀。这本身违反了计算机工程的特点。只有改变评价考核标准,才能真正驱动学生充分锻炼工程。在课程软体开发环境中,我们采取了平时的考试结合期末考试的方式,而两者均为软体编写。期末考试在实验室上机编撰指定题目。不强调对一些函式名等死知识点的记忆,可以用线上帮助。这本身也符合软体开发的规律。
4结束语
我们在计算机工程教育上试图做一些回归本质的工作,也取得了一些效果。比如在软体开发环境中,学生普遍认为:“似乎将3年学的程式课全学习了,收获很大”。更有同学,在外企公司的面试中,直接运用了课堂上的知识,这在传统的教学环节中是难以获取的。但整个工作尚在起步阶段,所以仍有很多工作需要做,许多环节需要优化。我们希望在以后的工作中更深入探索工程教育的规律和本质。
要论文自己写嘛,求人不如求己!
论文写作,先不说内容,首先格式要正确,一篇完整的毕业论文,题目,摘要(中英文),目录,正文(引言,正文,结语),致谢,参考文献。学校规定的格式,字体,段落,页眉页脚,开始写之前,都得清楚的,你的论文算是写好了五分之一。然后,选题,你的题目时间宽裕,那就好好考虑,选一个你思考最成熟的,可以比较多的阅读相关的参考文献,从里面获得思路,确定一个模板性质的东西,照着来,写出自己的东西。如果时间紧急,那就随便找一个参考文献,然后用和这个参考文献相关的文献,拼出一篇,再改改。正文,语言必须是学术的语言。一定先列好提纲,这就是框定每一部分些什么,保证内容不乱,将内容放进去,写好了就。参考文献去中国知网搜索,校园网免费下载。 合适采纳
谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能非常强大、应用广泛,一旦掌握了后,你就可以理直气壮地对他人说“我是电脑高手!”,而且以后若是再自学其他语言就显得轻而易举了。忧虑的是,C语言犹如“少林武功”一般博大精深,太难学了。其实就笔者认为C语言并非是“difficult(困难)”的,只要你能理清思路,掌握它的精髓,那么自学C语言是一件非常容易且又其乐无穷的事。今天本人就与大家一起谈谈如何学习C语言或者说学习C语言应从哪几方面着手。了解一些基本知识一.C语言的背景就个人感触,无论学习哪门语言首先应该了解一下自己所学语言的背景,也可以说它的发展史。C语言属于高级程序语言的一种,它的前身是“ALGOL”。其创始人是布朗·W·卡尼汉和丹尼斯·M·利奇。C语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。然而随着科学技术的进步,计算机工业的发展,C语言逐渐脱离UNIX。1987年美国标准化协会制定了C语言的国际标准,简称“ANSI C”,从此以后它便成为一种广泛使用的程序语言。C语言的优点很多,主要的有如下四点:1.兼备高级语言与低级语言的优点,属于一种中间语言。2.它是一种结构化程序设计语言,非常适合结构化程序设计。3.有较丰富的数据类型、运算符以及函数供以选用。4.直接与内存打交道,使修改、编辑其他程序与文档变得轻松,简单。二.二大语系二种不同的学习方法其实高级程序语言分为两大语系。例如:C,C++(C语言的扩展),QBASIC,VB(BASIC的可视化),JAVAs cript,Js cript ,VBs cript,JAVA,ASP,FOXPRO,PERL等等。一路是以C为主的程序语言,例如:JAVAs cript,JAVA等,这类语言在函数的调用,程序语句的书写,循环的控制都极为相似。另一路是以BASIC为首的程序语言,例如:FOXPRO,VBs cript等,此类语言同样具有相似的函数调用,程序语句书写以及循环控制,但与C语系是不同的。因此若是您以前是从QBASIC起家的,那么在学习C语言前最好是先洗洗脑,千万不要把学习BASIC的方法以及思路用在C身上。讲到这里,我想大家对C语言一定有了感性认识吧!下面让我们再升华一下,全方位亲密接触它。学习C语言必须从以下四点入手,也就是说,只要你能掌握这四点的内容,那么基本上就大功告成了。亲密接触C语言一.输入输出C语言的输入输出是非常严格的,或许在其他程序语言中我们可以不关心这个问题,但在C语言中,我们必须要彻底了解它。由于篇幅有限,因此笔者不能详谈,有兴趣的朋友可以参考由著名程序语言教授谭浩强先生主编,由清华大学出版社出版的《C程序设计第二版》。不过这里笔者还是有几点要简单的谈一下。1.二维浮点数数组的输入二维浮点数数组的输入(即:通过键盘给二维浮点数数组赋值)在很多专业书中都没有详细讲过这个问题。在给二维浮点数数组赋值时一定要先声明一个变量,接着把数值赋予这个变量,最后把变量数值赋予二维浮点数数组赋值。2.注意输出格式中“%”后的字符C语言的输出说复杂不复杂,因为常用的都很简单。可说不复杂也未必,记得曾在一次等级考前辅导我们C语言的教授讲道:“如果C语言要考得很难的话,根本不用考什么指针,只要专考输出格式,我想百分之九十九的学生都不及格。”当时我们无不认同。从这则事例中可以看出C语言的输出格式之复杂程度。因此大家在学习它时千万要学会辨别输出格式中“%”后的字符,每个字符都有其意义,也都有其作用。二.优先级说道优先级,有很多朋友都不是很了解或说很模糊。为此笔者想先通过一个例子让各位有个概念。什么叫优先级?比方说,我们在公交车终点站排座队时总会遇到70岁以上的老人不需要排队就能上车的情景,这就是优先级的涵义。C程序在运行时也象排队坐车一样,首先照顾那些优先级高的运算符,若是优先级相同,那么就象遇到两位(或两位以上)70岁以上的老人那样,让他们依次上车。但是C语言中的优先级的运算并不是千篇一律的,只能说是在大多数情况下,有些运算符的优先级有其自己的特点,因此这点大家要注意。例如条件表达式:条件?结果1:结果2,这种表达式很多朋友都知道,它的作用与IF…ELSE…条件判断语句很雷同,它运算时的优先级就不是按照C语言的规则来完成的。所以说对于优先级各位编程爱好者一定灵活掌握,不要死记硬背。三.指针就个人认为,C语言中的指针是最有特色的,当然也是最难学的。指针说穿了,其实是变量的一种表现形式,只不过这种变量记载的不是数值而是地址。就象一个人可以用姓名来表示自己,也可以用身份证号码来表示自己一样。笔者涉足编程已经有三年多了,在这期间曾经收到过很多网友的电子邮件询问学习指针的方法。就本人感触,学习指针最好是先学些计算机硬件工作的原理,例如:直接寻址,间接寻址等,只有了解了这些内容以后,你再学指针就比较容易理会,毕竟C语言是一门介于机器语言与高级语言中间的语言,没有一些硬件工作知识是很难领悟它的真谛的。然而事事并非绝对,如果你没有这些知识也不要紧,只要清楚知道以下笔者总结的二点再加上多练习便可:1.指针是地址变量:它的值有两种:其一是地址,其二是内容。不同的表达方式可以取不同的值,这有点象一个家庭地址在不同的场合标识的人物也不同。例如:父母亲在他们的单位所登记的家庭地址就代表他们自己,而你在学校中登记的同样的家庭地址就代表你自己。2.指针是可以运算的,它的运算法则与变量是一致的。另外,在编写一个程序时,除非万不得已,一般不要使用指针变量。因为指针是比较复杂的,用不好就“当机”。所以笔者建议各位对于指针只要能看懂就行,当然如果你是准备参加考试的就另当别论了。四.函数虽说很多程序语言都有函数这一内容,但笔者觉得C语言的函数是最有魅力的。如果你能完全掌握C语言的函数,那么学习C++就不成问题了(C++是一门建立在C语言上,但又不同于C语言的高级程序语言,它增添了很多函数。)。学习函数的方法是比较简单的,只有两个字“牢记”,即:牢记函数的功能,牢记函数的用途以及如何输入输出。有些朋友认为,程序语言中的函数没有多大用处,其实这并不正确,函数从本质上讲是一段通用程序,用它可以帮助我们节约很多编程的时间,一个聪明的编程者在编写程序前往往总是先找自己所编写的程序中有多少是可以用函数来代替的。笔者曾经作过一个比较字符串的实验,用C语言中的strcmp()函数只要一句话,而自己编写的话30句话都摆不平,可想而知函数是多么实用呀!
对于许多初尝文献综述的科研工作者而言,在写作的时候,常常不知如何动笔,建议你多看看计算机科学与应用这本期刊,,然后自己写吧,