![](/lib_static/assets/images/user_logo/e9910b86c3fa6e8ec5002e801db438e32c129b95.jpg)
首先是选题,一般老师都会提供若干个选题给你选,其中必然包括几个“XX系统的设计与开发”,这样的选题就是符合我们前面的假设和预想的。盘他!假设我现在选了一个题目是“基于SSM的XX网上商城的设计与开发”。选完题目就面临着一个问题:是先做开发还是先写文章,或者是一边写一边开发。我的建议是一边写一边开发。原因是:开发的过程是需要写一些文案的,比如需求分析、数据库的表结构的关系、整个系统的交互逻辑等等。而这些文案是可以出现在我们的论文当中的。那接下来就说一下如何开发和写文论,当然某些开发过程我只能粗略的说一下。1.摘要:这是所有论文的第一个小title,说他恶心有时候也恶心,说他简单也是蛮简单的。那么这一部分究竟是要写什么的?由于这一部分需要展现出做这个系统的必要性、开发这个系统的实现方式、系统的功能和系统的作用。所以可以这样写:随着中国经济的高速发展以及网络技术的普及,互联网的技术得到全面的发展,中国的各行各业都在互联网的影响下发生了变革。互联网的快速发展催生了许多产业,其中最具代表性的便是电子商务,电子商务使得企业和客户的营销关系由实体店销售准换为网络电子商务营销。马云曾说:“让天底下没有难做的生意”,越来越多的店家选择在网上开店,使得交易不再限制于天南地北,同时也大大降低了店家的经营成本,在提高收益的同时,也方便了客户,本课题正式在这种背景下应运而生。本课题介绍了“基于SSM的XX网上商城”的开发环境、需求分析、界面设计和数据库设计以及涉及到的框架。本系统采用了B/S架构,使用了Java、HTML、JS等语言,使用了主流的后台开发框架SSM(spring+springMVC+Mybatis),以及采用了开源的轻量级数据库Mysql进行开发,为网络商城提供了前端展示和后台管理的模块,实现了注册、登录以及购物等主要功能,为消费者提供了便捷快速的购物体验,以及为提高了店家的销售效率。关键字:网上商城,SSM,Java,HTML,JS,MySQL(关键字一般就是把摘要中提及到的关键性技术提取出来,让阅读者一目了然,知道哪些是重点)Abstract:......(英文摘要建议谷歌翻译,然后把明显错误的地方修改一下即可)2.第一章:引言这一部分也是比虚的,其实随便扯一扯就可以了,一般包含以下几部分1.背景2.研究内容。其中背景主要讲一些关于社会发展的趋势导致了一些什么问题,而这些问题又应该如何去解决,多说几句,写到两三百字即可。研究内容就是针对上述的背景我们如何进行改进。细心的同学可能会说,感觉跟摘要有些重复。是的!这两部分内容其实是挺重复的,但是没关系,不过不要使用完完全全一样的话去描述,因为最后论文查重的时候会对文章自引用进行查重的。这一部分也是三五百字即可。3.第二章:系统的开发技术介绍这一部分是需要我们在正式开发之前做好的技术调研,然后对这一部分的技术进行详细的介绍。这一部分我不可能细讲,因为内容太多了,而且对于不同的项目有不同的内容,在查阅资料的过程也是提升技术的一个重要的环节,你可以真真切切的了解到开发一个工程是需要哪方面的知识,因此我就对我所选的这个课题应该使用到的技术栈进行一下介绍,也算是抛砖引玉,各位同学可以根据自己的实际情况进行撰写。开发不同的系统虽然涉及到的业务逻辑不同,处理方式也千差万别,但是本质上都是一样的,都是前端界面通过服务器跟数据库进行数据交互的一个过程,涉及到的内容也无非就是前端、后台和服务器。但是有一个需要注意的点,就是不要把HTML、JAVA等使用的语言介绍也给堆在这里,老师没细看还好,细看还是会显得太水字数了,记住,写工程性的课题不怕没字数。那问题来了,语言介绍不给写那应该些什么呢?应该写涉及到的框架、使用的工具。这些就够了,随随便便就几千字了。下面举例简单说明一下。a. 前端强调一下,不要把HTML、CSS等一下前端的规范展开来写,可以轻描淡写,但篇幅不能过多。这里可以写前端框架的使用,比如使用npm管理包(可以介绍一下npm以及在工程中的使用)、vue的使用(同样可以介绍vue框架以及应用)、element(element以及使用他的好处)等等。也希望同学在做毕设的过程中要真的去了解这些技术并且去使用它,相信我,看完再去用你的技术会有质的飞跃。b. 后台这一部分是重点,对于本课题来说,标题就写了是基于SSM的。对于这个java框架并不熟悉的同学来说建议先去查一下资料,而且很多同学会有疑问,使用技术框架的目的就是为了让开发更加的便捷和快速,但是为什么我们自己在开发的过程中会感觉好像变得更加复杂?很负责任的告诉你,是正常的。因为框架不仅会帮我们封装好一些常用的方法,而且会考虑到更新迭代以及代码可读性等等的一系列的问题,某些规定和配置我们之所以没有感受到他的好处是因为这种校园内的开发并不涉及生产问题,也不会有很多的更新迭代,更加不会考虑到代码的可读性。例如spring的工厂,一开始使用的时候很多同学会觉得为什么我new一个类的时候还要去改配置文件,直接new不香吗?直接new是很香,但是你考虑到真正去工作的时候,假设你要改类的一些关系的时候,还要去改代码,当工程一大,代码去哪里找呢?一个一个文件看吗?显然是非常不可取的,效率非常低,这个时候配置文件的优势就发挥出来了,直接修改配置文件,不需要更改代码,耦合性也大大的降低。好像跑题了,说了这么多就告诉同学们,要沉住气,理解框架这样设计背后的原因,对大家自身技术的提高非常的有帮助!那这一部分我们就可以介绍spring(包括spring的IOC、spring的工厂、spring的AOP等等,并且可以在论文中强调如何应用到我们的系统当中)、springMVC(这一部分可以讲解srpingMVC作为一个连接前端和数据库的工具在实际工作过程中的具体流程,也可以讲述springMVC的分层的概念以及如何应用)、Mybatis(包括跟JDBC的关系、mybatis依赖的配置、使用到的接口、动态代理、一级缓存和二级缓存以及延迟加载等等的一些技术问题)c. 服务器和数据库这一部分可以介绍一下用来搭建服务器的工具和所使用的数据库。假设你是使用了云服务器来搭建了,可以详细介绍一下云服务器的搭建过程包括防火墙、端口等等内容。一般服务器使用tomcat进行搭建,可以把tomcat介绍一下并且介绍一下tomcat是如何监听和解析用户请求的具体流程。一般小型的项目采用MySQL作为数据库,可以详细说一下选择MySQL的原因,比如相对于Oracle的好处。可以介绍一下MySQL数据库的一些特点包括分页、是否支持事务等等。4.第三章:需求分析这一部分是针对具体的业务场景来分析需要开发哪些功能,这一部分可以让你感受一下产品经理的职责,只不过不需要跟程序员对接,因为你自己就是程序员哈哈。一般来说分成两部分就可以了,一部分是对于前端的业务流程,另一部分就是后台服务器的业务流程,可以使用一些软件来绘画流程图,想图个方便可以直接使用word自带的图形进行编写,也不至于难看,就比较简约。想做的好看点的话个人推荐使用xmind,非常简单,可以快速做出美观的流程图。如果没有什么思路,那前端就按照着使用者的逻辑去写,比如用户需要注册、登录、找回密码、购物、退货等操作,那后端就对应着这些前端逻辑需要有相应的业务处理。个人感觉这一部分比较好写,就不再赘述。5.第四章:系统的设计和实现这一部分可以挑选一些有代表性的功能出来细讲,有些同学可能会有疑问,论文可不可以贴代码呢?答案是可以的。但是我个人的建议是贴伪代码,不要把你写的长篇大论的代码全部放进去,不好看而且逻辑混乱,应该做的是把代码抽取为伪代码,贴代码的目的是为了让阅读者清晰地读懂你是如何实现这个功能的,他并不会在意你的语法你的命名。下面列举若干个可以写的内容,并不限于此。a. SSM框架的整合。如何使用Spring来整合并且管理SpringMVC和Mybatis.b. 客户登录状态保存的实现。这一部分可能会涉及到cookies,sessions以及http报文解析等等,都可以详解。c. 后台商品管理的功能。这一部分可以根据管理员的后台管理功能进行描写。d. 商品搜索功能。可以涉及到数据库的模糊搜索。e. 数据库表格的设计。可以体现数据库表格设计的时候如何遵守三范式。f. 可以写在开发过程中遇到的一些疑难杂症。g. 可以写开发过程中使用到的一些比较具有亮点的语言特性。比如java的多线程、lambda表达式。又比如实现注册功能的时候使用的正则表达式。……等等数不胜数。6.第五章:运行结果这一部分非常好写了。截取一些关于你的系统的界面并且介绍一下功能,尽量说详细点,就ok了。7.第六章:总结以及展望这一部分也是比较水的一部分,但是也希望同学们认真写一写。可以写一下你开发这个项目的过程中学习到了什么,可以是XX技术,也可以是艰苦奋斗的精神……。展望可以写有望发展成另外一个淘宝……开玩笑开玩笑,总之劈里啪啦凑个几百字即可。8.参考文献把你开发过程中参考过的文章、论文贴进去之后,往往会发现参考文献不够,太少了!那怎么办呢?那就贴一些关于使用的技术的文章或者参考手册咯,虽然大部分是没看过的,但是还是希望大家可以多少看一看(正义之气跃然纸上)。去知网查找参考文章然后添加到你的参考文献是非常方便的,只需要找到对应的文章并且选择“引用”功能,即可自动生成引用的文字,直接复制到你的论文中。9.致谢第一步,感谢你的导师,感谢你的院领导,感谢你的校领导。说的好听后可能答辩的时候不会太为难你……然后你要感谢你的家人你的舍友你的朋友或者是你家的狗(开玩笑),都可以的,这一部分又轻轻松松两百字。至此,一篇计算机论文就写完了,是不是觉得挺简单的呢?以上内容皆由学术堂提供整理。
课题研究虽然做法多样,但有一个基本程序。在研究中应注意以下几个问题: 一、研究什么?——怎样确定研究课题 一切科学研究始于问题——问题即课题;教学即研究(掌握方法很重要,否则就不是研究);进步与成果即成长。 教育科研课题主要来源于两大方面: 1、实践来源——客观存在的或潜在的教育实际问题教育教学实践本身存在的问题(这是大量的);教育教学与其外部的矛盾(教师与家长、教师与学校、学校与社会、教育与社会发展。举例)。 2、理论来源——现有教育理论所揭示的问题以及理论体系中的空白和矛盾点(例如《关于“信息技术与课程整合”的冷思考》一文产生的过程)。 3、实践创新、理论创新——例如:南通特级教师李吉林从语文教学的弊端出发,从外语教学中运用情景进行语言训练中得到启示,借鉴我国古代文艺理论中的“境界学说”,吸取传统教学注重读写以及近代直观教学有效因素,探索创造出“小学语文情景教学法”…… 二、怎样进行研究课题的论证? 选定了一个课题,就必须对这个课题的所有情况进行全面的了解。了解这个课题目前在国外、国内的研究情况,包括研究已取得的成果和存在的问题,了解这一课题所属的理论体系等等。对课题的全面了解,可以使我们在研究过程中少走弯路,确立研究的主攻方向,这就是我们常说的:“知己知彼,百战百胜”。 论证一个课题主要是弄清如下几个问题: A.所要研究的问题是什么性质和类型的问题? B.要研究的问题具有什么现实意义?它的理论价值(即在理论上预计有哪些突破?) C.要研究的问题目前已有哪些研究成果?研究的方向是什么? D.要研究的问题所应具备的条件分析。 E.课题研究的策略和步骤如何? F.课题研究的成果及其表现形式有哪些? 三、教育课题研究的基本方法主要有: ⑴ 观察法⑵ 调查法⑶ 测验法⑷ 行动研究法⑸ 文献法 ⑹ 经验总结法⑺ 个案研究法⑻ 案例研究法⑼ 实验法 (在一个课题研究过程中,根据不同的研究目的和要求,往往会用到两种以上方法) 1、观察法:为了解事实真相,从而发现某种现象的本质和规律。观察法实施的步骤是: 步骤之一就是进行观察研究的设计,此步骤可分为如下几个方面 (1)作大略调查和试探性观察。这一步工作的目的不在于搜集材料,而在于掌握基本情况,以便能正确地计划整个观察过程。例如:要观察某一教师的教学工作,便应当预先到学校大致了解这位教师的工作情况,学生的情况,有关的环境和条件等等。这可以通过跟教师和学校领导人谈话,查阅一些有关的材料,如教案、教学日记、学生作业以及听课等方式进行。 (2)确定观察的目的和中心。根据研究任务和研究对象的特点,考虑弄清楚什么问题,需要什么材料和条件,然后作明确的规定。如果这规定不明确,观察便不能集中,结果就不能深入。观察不能有几个中心,范围不能太广,全部观察要围绕一个中心进行。如果必须要观察几个中心,那就采取小组观察,分工合作。 (3)确定观察对象。一是确定拟观察的的总体范围;二是确定拟观察的个案对象;三是确定拟观察的具体项目。比如,要研究新分配到小中学任教的大专或本科毕业生在课余时间进行业务、文化进修的情况,那么,拟观察总体就是教师工作年限达一年或两年的新教师。在这一总体范围内,再定下具体观察哪几所小学,哪几个教研组中的哪些教师。具体观察名单确定以后,再把拟观察的时间、场合、具体观察项目确定下来。 (4)制定观察计划。观察计划除了明确规定观察的目的、中心、范围,以及要了解什么问题、搜集什么材料之外,还应当安排观察过程:观察次数、密度、每次观察持续的时间,如何保证观察现象的常态等。 (5)策划和准备观察手段。观察手段一般包括两种:一种是获得观察资料的手段;一种是保存观察资料的手段。获得观察资料的手段主要是人的感觉器官,但有时需要一些专门设置的仪器来帮助观察,如观察屏、计算机终端装置、更高级的如动作反应器等。这些仪器主要起两方面作用:保证观察的客观性与提高观察的精确性。在保存资料的手段中,人脑是天然器官。这种与观察主体连在一起的保存手段缺乏精确性和持久性,也不能实现资料的客体化。因此,人们先利用文字、图形等符号手段,进而又利用摄影、录音、录像等技术手段,把观察时瞬间发生的事、物、状况以永久的方式,准确地、全面地记录下来,供研究地反复观察资料和分析资料所用。 无论哪一类手段,都应在观察开始前就准备好,对观察中使用的种仪器也须事先作好功能检查,以保证在使用过程中不出现障碍。对于观察人员来说,必须掌握使用仪器的基本方法,并知道在观察中应做些什么。如要详细、全面拍摄一堂课,一部摄像机是不够的。观察者应准备几部摄像机,并事先作好分工。即使是作观察记录,也需要事先作好设计。在记录纸上印好以一定的格式排列的必须记录的项目,还可以约定一些记录符号,以尽量减少现场记录时书写文字的时间. 以中学生课堂行为记录为例。在记录中,根据研究需要,列出认为在课堂上学生可能发生的行为。但估计所列不会完全,所以留出一些空格,让观察员在需要时使用。研究者如果要请别人帮助观察,必须事先和观察人员讲清楚每一个项目的具体所指,遇到意外情况的处理方法,要求他们熟悉每一个项目的所在位置。为了稳妥起见,还可以在正式观察前先作几次观察练习,帮助观察人员熟悉记录的内容;如发现记录的缺陷,可在正式观察前作出调整。 (6)规定统一性标准。为了增加观察的客观性,为了便于衡量和评价各种现象,为了易于用数量来表达观察的现象,为了使观察结果可以核对、比较、统计和综合,必须事先考虑自己的观察可能涉及到的各种因素,并对每一因素规定出统一的标准。每次观察或观察同一现象的不同观察者,要坚持采用统一的标准去衡量。这主要在于,不同的研究项目常会涉及到不同性质的标准。如:有的涉及到单位问题,如怎样衡量学生表现的知识质量;有的涉及到定义问题,如怎样才算违反纪律;有的涉及计算方式问题,如怎样登记和表达学生之间产生的矛盾的频率,等等。对类似问题,都应事先做好统一规定。 (7)逐段提出观察提纲。在观察计划的基础上,应对每次或每段(几次同一性质上一内容的观察组成一段)观察提出具体提纲,以便使观察者对每一次观察的目的、任务和要获得什么材料非常明确。观察提纲可以包括本次观察要解决的具体问题,并且应当在前一次观察的基础上,经过深思熟虑之后提出来。亦可采用表格的方式,以便于分类统计观察实际过程,加以分析研究,得出某种结论。也许可以形成某个研究课题。 2、调查法:同样是为了了解事实情况,分析事实情况,得出结论,证实某种问题,以便改进工作(包括改进研究方法)或形成新的研究课题。 调查法包括问卷调查、访问调查等。了解事实情况、分析情况、认真研究,得出结论,寻找解决办法或进一步研究的方案。举例说明抽样调查法的操作过程,整个过程可大致分为如下步骤: (1)确定调查的目的(确定问题,形成假说;通过调查验证假说,使问题明确化,得出结论)。(2)确定抽样总体。要从中进行抽样的总体应与要得到信息的总体(目标总体)一致。从样本得出的结论适用于被抽样总体,超出这个范围结论的适用程度取决于被抽样总体与目标总体的差异程度。 (3)确定待收集的数据。一般只收集与调查目的有关的数据,过长的调查表会降低回答的质量。 (4)选择抽样方法。这时总体中的哪种单位作为个体基本上可定下来。 (5)编制抽样框。如学校名录、学生花名册等。 (6)确定需要的精确度。因抽样调查是要由样本推断总体,会带有某些不确定性。一般是对相对误差或绝对误差作出概率水平上的要求。 (7)估计样本容量,估计费用。 (8)抽样试验,在小范围内试填一下调查表,做些必要的改进。 (9)实地调查工作的组织。按抽样方案进行调查。对收回的调查表的质量及时进行检查,对不回答的表要有处理方案。 (10)根据所用的抽样方法进行数据分析。 (11)可对同样的数据采用其它的分析方法,以作比较。 (12)写出调查报告。留存有关总体的信息,它们可能对将来的抽样起指导作用。对于教育现象,有时难于进行严格意义上的概率抽样,可以考虑采用下列方法抽样:从总体中选出若干有代表性的大单位(群),在群内进行概率抽样;从一个小总体中选出接近于研究者对总体平均数的印象的那些个体;样本限于总体中易于取到的部分;样本是随便选取的;样本由自愿被调查的人员组成等等。但对这样得到的样本要选择适当的数据分析方法,对结论也要慎重,应充分利用其它信息进行核查、确认。在教育现象的研究中,研究者的智恝、经验和抽样技术的有机结合,是获取好样本的关键。 3、测验法:是想描述某些行为的状况或推论某些行为的状况(包括:能力与成就,个性、兴趣、动机、态度、观念及心理需要等);从而考虑改建的策略或方案,或进一步形成新的研究课题。在教育学和心理学中,测量被用作定量研究的重要方法,主要功能是评估、诊断和预测(举例,如XXX老师所做的“学生自学能力测验”(试验),就是为了了解小学中高年级学生的自学能力究竟能达到何种程度)。所谓测量就是根据一定的法则,将某种物体或现象所具有的属性或特征用数字或符号表示出来的过程。测验法是教育和心理学测量的一项主要内容和形式。测验的客观性是关于测验系统化过程好坏程度的指标。测验的控制,在不同时间对于同一个被试或同一时间对于不同的被试,其意义都应该是相同的。保持刺激的客观性则要遵照一定的程序予以控制。 推论的客观性指对同一结果不同的人所做的推论应该一致,同一个人在不同的时间对同一结果的所做解释应该相同。 4、行动研究法:行动研究法是一种适应小范围内教育改革的探索性的研究方法,其目的不在于建立理论、归纳规律,而是针对教育活动和教育实践中的问题,在行动研究中不断地探索、改进工作,解决教育实际问题。行动研究将改革行动与研究工作相结合,与教育实践的具体改革行动紧密相连。(特点是边执行、边评价、边修改)。 模式基本是:计划——行动——考察——反思(即总结评价)。教师个体比较适用。 另一种模式:预诊——搜集资料初步研究——拟订总体计划——制订具体计划——行动——总结评价 从上述行动研究法的几个步骤中可以发现三个明显的特征:一是具有动态性,所有的设想、计划、,都处于一个开放的动态系统中,都是可修改的;二是较强的联合性与参与性,研究者、教师、行政人员的全体小组成员参与行动研究法实施的全过程;三是在整个研究过程中,诊断性评价、形成性评价、总结性评价贯穿于行动研究法工作流程的始终。 具体操作方法: (1)预诊:这一阶段的任务是发现问题。对教学或学校工作中的问题,进行反思发现问题,并根据实际情况进行诊断,得出行动改变的最初设想。在各步骤中,预诊占有十分重要的地位。 (2)收集资料初步研究:这一阶段成立由教研人员、教师和教育行政人员组成的研究小组对问题进行初步讨论和研究,查找解决问题的有关理论、文献,充分占有资料,参与研究的人员共同讨论,听取各方意见,以便为总体计划的拟定做好诊断性评价。 (3)拟定总体计划:这是最初设想的一个系统化计划。行动研究法是一个动态的开放系统,所以总体计划是可以修订更改的。 (4)制定具体计划:这是实现总体计划的具体措施,它以实际问题解决的需要为前提,有了它,才会导致旨在改变现状的干预行动的出现。 (5)行动:是整个研究工作成败的关键。这一阶段的特点是边执行、边评价、边修改。在实施计划的行动中,注意收集每一步行动的反馈信息,可行的,则可以进入下一步计划和行动。反之,则总体计划甚至基本设想都可能需要作出调整或修改。这里行动的目的,不是为了检验某一设想或计划,而是为了解决实际问题。在行动研究中,过程性资料的搜集、整理也是非常重要的。 (6)总结评价:首先要对研究过程进行考察。考察内容有:一是行动背景因素以及影响行动的因素。二是行动过程,包括什么人以什么方式参与了计划实施,使用了什么材料,安排了什么活动,有无意外的变化、如何排除干扰。三是行动的结果,包括预期的与非预期的,积极和消极的。要注意搜集三方面的资料,背景资料是分析计划设想有效性的基础材料,过程资料是判断行动效果是不是、由方案带来和怎样带来的考察依据;结果资料是分析方案带来的什么样的效果的直接依据。考察要灵活运用各种观察技术以及数据、资料的采集和分析技术,充分利用录象、录音等现代化手段。总结评价实际上是对行动研究过程及其结果的“反思”。反思是行动研究第一个循环周期的结束,又是过渡到另一个循环周期的中介。这一环节包括:整理描述,评价解释,写出研究报告。这是对整个研究工作的总结和评价。这一阶段除了要对研究中获得的数据、资料进行科学处理,得到研究所需要的结论外,还应对产生这一课题的实际问题作出解释和评价。 5、经验总结法:这是教师可以常用的方法。教育经验总结法是根据教育实践所提供的事实,分析概括教育现象,挖掘现有的经验材料,并使之上升到教育理论的高度,以便更好地指导新的教育实践活动的一种教育科学研究方法。关键是要能够从透过现象看本质,找出实际经验中的规律;从而更好地更加理性地改进自己的教学。进行教育经验总结要遵循以下基本要求: (1)要注意经验的先进性(观念必须更新)。 (2)要全面考察总结的对象,充分占有原始的事实材料;且做到有“点”有“面”,“点”“面”结合,防止以偏概全的片面性。 (3)要以教育实践活动为依据,不能凭空想当然,那是毫无价值。 (4)要善于进行理论分析 6、文献法:分类阅读有关文献(包括文字、图形、符号、声频、视频等具有一定历史价值、理论价值和资料价值的材料),得出一般性结论或者发现问题,寻找新的思路。文献按内容性质分有:零次文献、一次文献、二次文献和三次文献。零次文献是未经发表和有意识处理的最原始的资料。一次文献指直接记录事件经过、研究成果、新知识、新技术的专著、论文、调查报告等文献。二次文献是指对一次文献进行加工整理,包括著录其文献特征、摘录其内容要点,并按照一定方法编排成系统的便于查找的文献。三次文献是指工具书和在二次文献的基础上,又对众多一次文献的综合研究结果。
计算机专业C与C++程序设计研究论文
摘要 :首先介绍了目前高校计算机学院C族语言相关程序设计课程的建设状况。然后从C族语言的相互衍生关系出发,提出了在高校计算机课程体系中去除C语言的基础课程,将其综合成一门C++程序设计课程来供学生学习,并对课程内容、参考教材和课时安排上给出了自己的建议。
关键词 :C语言;C++语言;程序设计
高校的C族语言教学总是按照先学C语言,再学C++的顺序进行,这种学习顺序随着C++标准的不断升级改革后变得越来越不适用。早期的C++属于多面性语言,即可以像C一样进行模块化的面向过程的编程设计,也可以像Java一样进行抽象的面向对象程序设计。那时的教学者考虑的是学生应当从较为便于理解的面向过程的编程思路入门学习C语言编程,然后在熟练了面向过程的编程方式后再从C语言延伸到C++,转而学习面向对象的程序设计。可是随着面向对象的程序设计在应用市场上占领了绝对的主导地位后,再让学生从面向过程着手就等于是浪费学习时间。加上C++和C两门语言的初级语法思想是完全一致的,开设两门课程浪费了学时,也耽误后续更重要的核心课程的学习。
1程序设计语言C与C++的比较
1.1C与C++的共性。一般简要的介绍是把C++当作C的加强版,这种认知当然是错误的,C++语言的设计者在设计之初为了保障自家语言会受到开发者的关注,所以兼容了的C的语法,这就自然使得C++可以使用C的编程方式进行程序设计,所以也导致了很多人对这两种语言的关系产生了错误的认知。同时由于C语言本身设定上的优越性,所以C++在进行自我定义的时候也沿用了C语言很多优良的性质。基础数据结构一致,C与C++的基础数据类型都是以变量和常量作为基本属性划分,类型上有字符型、整型、长整型、单精度浮点型和双精度浮点型,不过C++额外增设了布尔型。复合型数据结构上也都同时具有数组、多维数组、结构体、枚举类型和共同体,但是C++增设了字符串类型以替代C语言中的字符数组,功能上更加强大,也更加便捷。在语法方面,声明、赋值、循环、选择的结构和实现都是一致的,并且C++虽然提倡使用类和对象的概念去设计程序结构,可也同样支持函数体结构的程序设计结构。并且C语言中函数的赋值都是间接调用,在使用C语言函数时总是会在指针上出现各种纰漏,但是C++的函数体可以使用引用参数,这就使得C++的函数体比之C的更加好用。总的说来就是,C++标准下用户可以完全使用C语法进行编程而不会出现任何BUG,同时C++自身的优越设定和标准使得其设计能力比C要强大数倍,是目前市场上大型程序开发的首选语言。
1.2C与C++的不同。上一节介绍了C++和C的.基础语法上的区别,这些区别都是C++的作者在C的基础之上修订而来的结果,是为了让C++标准下得面向过程的程序设计比之单纯的C更加便捷方便。但是C++的诞生伊始,就是一门向上使用面对对象的程序设计思想的高级编程语言。它的封装性、继承性、多态性和对象唯一性才是C++成为强大高级语言的重要原因,这些特性都是C语言不可能拥有的。所以C能够实现的程序,C++能够实现并且实现的更为方便,C不能实现的程序,C++同样可以实现。
1.3C++的特色。承接上一节,C++和C之间最大的不同,也是C++自身最值得夸耀的特性,就是面向对象程序设计思想。这种思想使得C++语言设计出来的程序,变成了类和对象的有机结合,这种结合的代码比之面向过程的函数体架构的代码更加易读,共同开发起来容易上手,后续的维护者也不用费更多的脑筋去理解前人的代码含义。而类和对象的设计思路,使得开发者合作时相互之间的工作变的更为独立,双方之间只需要知道对方所写的类实现的功能和包含的数据就行。这种特性我们称之为良好的封装性,开发者之间不需要去知道对方的代码是如何实现,甚至在此之上还可以保证良好的代码健壮性。因为类的引入,更先进的作用域机制也被引入进来,类的书写者往往会将自己类中的数据进行严格的作用域限定,防止其他合作者擅自去修改和使用自己类中的数据。合作者想要知道类中的数据或者使用类中的数据,只能通过类的书写者定义的带有检查机制的方法才行。这样会使得很多人合作开发的大型项目的稳定性和安全性比之用C语言开发时再上一个台阶。同时类的概念中还有一个先进的设定就是继承性,并且由这个继承性还延伸出了接口的概念。有了可以继承的接口和类,那么开发者在对程序进行迭代的瀑布开发流程时,就可以很好的使用自己曾经开发的源代码,或者借用其他项目的源代码,因为只要学会科学的使用继承机制,就不仅仅是节约程序员的代码时间,也减少了程序员在回顾曾经代码时发生的错误和歧义。而与继承机制配合使用的是多态性,曾经C语言中定义的函数,其灵活度非常差,特定的函数只能满足特定程序定义的需求,想要重用曾经的源代码是几乎不可能的事情。我们刚才提到的继承机制使得C++开发者复用源代码成为了一种习惯,但是复用时不可避免的修改问题又摆到了台面上,多态机制顺应而生了。多态机制使得类不仅可以继承其他类,将父类的数据和方法都在本类体中自如的使用,同时还可以用本类中新的定义和代码去覆盖父类中的数据定义和方法。这就让程序员变的更加自由,想用父类的数据和方法时就去继承,但是不想全部使用时就加上多态机制去覆盖。这样代码之间的重复利用率变得十分客观,节约了大量的开发时间和开发成本。
2程序设计语言C与C++开设建议
C++课程的内容应当如下安排:第一部分,教授C++的基础语法,让学生可以编写出在DOS命令行下输入输出的程序,了解编程的基本概念和思想。并且这时应当同时进行C和C++的双向语法教学,为日后学生进入高年级后的方向选择打下基础。此部分使用半个学期最为适宜,并且此时并不灌输学生何为面向对象何为面向过程,而主在让学生使用基础语法进行最基本的编程探索。第二部分,在学生有了基础编程知识后,将数据结构的内容放入课程中去,用半学期的时间教授学生用C++实现的各类常见数据结构。并且结合实际开发项目中的代码作为阅读补充,让学生明白数据结构的知识对程序开发的意义,然后将简化后的小项目作为课堂的主要内容,用实际的代码让学生去理解那些枯燥的数学定理和概念。而且在实现数据结构的过程中,必然会面对一些更为高级的C++语法和概念。总的来说,用大一上的一个学期让学生对于基础编程有了良好的认知和深入,是十分值得和有效的。第三部分,在学生有了数据结构的基础和C++的基本语法掌握后,应当面对一些实际的开发项目和问题。当然实际的问题还是需要老师进行简化,其主要目的是让学生掌握C++的高级特性和实际软件开发的过程与思路,并且想学生传授基础的算法。这一部分较为困难,应当使用一个学期让学生慢慢的掌握和熟悉。第四部分,在学生算是对C++语言和数据结构与算法都有了基础的入门后,再进行课堂教学意义就不大了,应当再大二上学期开设一门课程设计实验课,让学生完成几个难度从小到大的项目,循序渐进的掌握基本的实际开发技巧和思维。
参考文献
[1]罗莉.计算机程序设计的多应用型开发与实现[J].产业与科技论坛,2015(14):54-55.
[2]邓薇,何锫,钱俊彦,等.深度优先的多基因表达式程序设计[J].模式识别与人工智能,2013(9):819-828.
[3]宛西原,汪霞.非计算机本科专业计算机程序设计课程的改革思考[J].计算机工程与科学,2014(z1):56-59.
先下载,后修改。
170 浏览 4 回答
144 浏览 3 回答
163 浏览 2 回答
306 浏览 6 回答
178 浏览 2 回答
311 浏览 3 回答
354 浏览 2 回答
105 浏览 2 回答
306 浏览 4 回答
291 浏览 3 回答
135 浏览 7 回答
347 浏览 4 回答
294 浏览 5 回答
231 浏览 4 回答
256 浏览 2 回答