程序设计论文汇总十篇

时间:2023-04-08 11:26:22

程序设计论文

程序设计论文篇(1)

负责人

1.专业(或专业课群)确定题目及指导教师,并填写题目报表经主管院长认可

每学年第一学期12—14周

院教学秘书、教学院长

2.确定题目、学生报名、各学院汇总报表。各项准备工作就绪

每学年第一学期15—16周

院教学秘书、专业(或专业课群)负责人

3.各学院做好指导教师及有关人员的思想动员工作,并公布毕业设计(论文)工作要求及评分标准等有关规定

每学年第一学期末

教学院长

4.各学院做好学生的思想动员工作,下达任务书,向学生公布毕业设计(论文)要求及评分标准等有关管理规定。毕业设计(论文)环节开始运行

每学年第一学期末或第二学期第一周

教学院长

5.学生每人作开题报告或开题综述(文字的或宣讲。含文献综述、方案论证、进程计划等)各学院检查开题情况、教务处随机抽查

第二学期第1—4周

专业(或专业课群)负责人、院教学秘书、教学院长

6.期中检查,各学院教学院长领导,各专业(或专业课群)组织检查,学生每人口头汇报、解答问题。各学院对达不到教学要求的学生应给予警告;对优秀学生予以注意培养。各学院检查日程报教务处备案

第8—10周

专业(或专业课群)负责人、院教学秘书、教学院长,教务处随机抽查

7.毕业设计(论文)评阅

第16周

毕业环节指导小组

8.答辨:学生将毕业设计说明书或论文,按要求装订成册,由所在毕业环节指导小组答辨。必须有院级抽查答辨,并检查评分标准执行情况,不符合标准的,由教学院长、组织调整平衡,教务处抽查

毕业教学环节的最后一周内

专业(或专业课群)负责人、院教学秘书、教学院长

9.毕业设计说明书或论文由专业(或专业课群)负责人依据《规定》归档,并推荐评选优秀毕业设计(论文)及参加学校的优秀毕业设计(论文)答辩。

毕业教学环节的最后一周内

专业(或专业课群)负责人、院教学秘书

10.校优秀毕业设计(论文)答辩:各学院各专业推荐2—3名获优秀毕业设计(论文)学生,参加学校组织的优秀毕业设计(论文)答辩。

毕业教学环节的最后一周内

教务处

11.各学院总结毕业设计(论文)工作,并写出一份书面报告(含主要工作经验;毕业设计(论文)完成情况;成果、成绩评定;优秀的和最差的学生典型情况;指导教师工作突出的和差的情况,存在的问题和建议等)交教务处

第19周以前

教学院长

程序设计论文篇(2)

1通信协议的制定

协议是用来管理通信的法规,是网络系统功能实现的基础。由于DSP可以实现对网卡的直接操作,对应于OSI网络模型,网卡包含了物理层和数据链路层的全部内容,因此,规定了数据链路层上数据帧封装格式,就可以为基于DSP的局域网络中任意站点之间的通信提供具体规范。因为以太网是当今最受欢迎的局域网之一,在以太网中,网卡用于实现802.3规程,其典型代表是Novell公司的NE2000和3COM公司的3C503等网卡,所以研究工作中的具体试验平台是以DSP为核心构成的以太局域网,主要用于语音的实时通信,所使用的网卡为Novell公司的NE2000网卡。NE2000网卡的基本组成请见参考文献[2],其核心器件是网络接口控制器(NIC)DP8390。该器件有三部分功能:第一是IEEE802.3MAC(媒体访问控制)子层协议逻辑,实现数据帧的封装和解封,CSMA/CA(带碰撞检测功能的载波侦听多址接入)协议以及CRC校验等功能;第二是寄存器堆,用户对NE2000网卡通信过程的控制主要通过对这些寄存器堆中各种命令寄存器编程实现;第三是对网卡上缓冲RAM的读写控制逻辑。DP8390发送和接收采用标准的IEEE802.3帧格式。IEEE802.3参考了以太网的协议和技术规范,但对数据包的基本结构进行了修改,主要是类型字段变成了长度字段。所以,以DSP为核心的局域网内通信数据包基本格式如图1所示。

DSP读出数据包和打包从目的地址开始。目的地址用来指明一个数据帧在网络中被传送的目的节点地址。NE2000支持3种目的地址:单地址、组地址及广播地址。单地址表示只有1个节点可以接收该帧信息;组地址表示最多可以有64个字节接收同一帧信息;而广播地址则表示它可以被同一网络中的所有节接收。源地址是发送帧节点的物理地址,它只能是单地址。目的地址和源地址指网卡的硬件地址,又称物理地址。

在源地址之后的2个字节表示该帧的数据长度,只表示数据部分的长度,由用户自己填入。数据字段由46~1500字节组成。大于1500字节的数据应分为多个帧来发送;小于46字节时,必须填充至46字节。原因有两个:一是保证从目的地址字段到帧校验字段长度为64字节的最短帧长,以便区分信道中的有效帧和无用信息;二是为了防止一个站发送短帧时,在第一个比特尚未到达总线的最远端时就完成帧发送,因而在可能发生碰撞时检测不到冲突信号。NE2000对接收到的从目的地址字段后小于64字节的帧均认为是“碎片”,并予以删除。在数据字段,根据系统的具体功能要求,用户可以预留出若干个字节以规定相应的协议,以便通信双方依据这些字节中包含的信息实现不同的功能。

2基于DSP的网络通信程序设计

如果基于网络操作系统,用户可以利用一些软件对网络操作系统的支持,很容易地编写出优秀的网络通信程序,但这些程序必须依附于网络操作系统。而在DSP环境下,必须深入了解网络接口控制器(NIC)的工作原理[2],通过对网络直接编程,实现局域网内任意站点之间的通信而完全抛开网络操作系统。

DSP对网卡的通信过程控制就是DSP对DP8390中各种寄存器进行编程控制,完成数据分组的正确发送和接收。DP8390的所有内部寄存器都是8位,映像到4个页面。每个页面有16个可供读写的寄存器地址(RA=00H~0fH)。页面的选择由命令寄存器CA控制。第0页寄存器用于收发过程,第1页寄存器主要用于DP8390的初始化,第2页寄存器则用于环路诊断。DSP对寄存器的操作是将寄存器作为DSP的端口设备,其实际物理端口地址(PPA)为网卡基本I/O端口地址(BIOA)与寄存器地址(RA)之和(即PPA=BIOA+RA)。应注意的是,PPA与寄存器间并不存在一一对应关系,对PPA的读操作与写操作并不一定是对同一寄存器进行的,这种情况在第0页尤其明显。用户数据分组在DSP和网卡交互是通过网卡的数据端口实现的,既可以用DMA方式也可以用PIO方式读入数据分组或将数据分组送至网卡RAM缓冲区。在本系统中,DSP采用DMA方式对网卡进行数据读写。网卡的数据端口地址(NDPA)为网卡基本I/O地址(BIOA)加偏移地址10H(即NDPA=BIOA+10H)。

网卡通信过程控制可分为网卡初始化、接收控制和发送控制。下面分别予以讨论。

2.1网卡初始化

网卡初始化的主要任务是设置所需的寄存器状态,确定发送和接收条件,并对网卡缓冲区RAM进行划分,建立接收和发送缓冲环。具体过程请参阅参考文献[2]。需要说明的是,每一块网卡被赋予一个物理地址,以便通信站点的标识。这个物理地址存在网卡的PROM(存储地址为0000~0005H)六个单元中,在网卡初始化时,通过远程DMA读入DSP内存中,并送入网卡物理地址寄存器。在一步的意义在于:一方面,如果能正确读出网卡的物理地址,则说明网卡硬件基本没有问题,网卡的上电复位和DSP对网卡的初始化顺利通过;另一方面,这个物理地址可以用于DSP网络系统中的点名、包的过滤丢弃等服务,也就是说,在链路层根据数据帧携带的源地址和目的地址确定数据报从哪里来,是否接收或丢弃。网卡初始化时另一个重要的工作就是接收缓冲环的设置,为了有效利用缓冲区,NIC将接收缓冲区RAM构成环形缓冲结构,如图2所示。

接收缓冲区RAM分成多个256字节的缓冲区,N个(N最大为256)这样的缓冲区通过指针控制链接成一条逻辑上的缓冲环。缓冲环的开始页面地址存入PSTART寄存器,环页面结束地址存入PSTOP寄存器。PSTART和PSTOP确定了接收缓冲环的大小和边界。为便于缓冲环读写操作,还需要2个指针:当前页面指针CURR和边界指针BNRY。CURR确定下一包放在何处,起着缓冲环写页面指针作用;BNRY指向未经DSP取走处理最早到达的数据包起始页面,新接收的数据包不可将其覆盖,起着缓冲环读页面指针的作用。也就是说,CURR可以告诉用户网卡接收的数据分组当前放到了什么位置,而BNRY则用于确定DSP读缓冲环到了什么地方。由于接收缓冲区为环形结构,BNRY和CURR相等时,环缓冲区可能满也可能空。为了使NIC能辨别这两种状态,规定当BNRY等于CURR时,才认为环缓冲区满;当缓冲区空时,CURR比BNRY指针值大1。因此,初始化时设置:BNRY=PSTART,CURR=PSTART+1。这时读写指针不一致,为了保证正确的读写操作,引入一软件指针NEXTPK指示下一包起始页面。显然,初始化时NEXTPK=CURR。这时,缓冲环的读指针对NEXTPK,而BNRY只是存储分组缓冲区的起始页面边界指示,其值为NEXTPK-1。

2.2接收控制过程

DSP完成对DP8390的初始化后,网卡就处于接收状态,一旦收到分组,就自动执行本地DMA,将NIC中FIFO数据送入接收缓冲环,然后向主机申请“数据分组接收到”中断请求。DSP如果响应中断,则启动网卡远程DMA读,将网卡缓冲区中的数据分组读入学生机存储区,然后对接收缓冲环CURR、NEXTPK、BNRY指针内容进行修改,以便网卡能从网上正确接收后续分组。DSP响应网卡接收中断后,接收控制过程如下:

①设置远程DMA的起始地址;RSAR0=00H,RSAR1=Nextpk。

②设置远程DMA操作的字节数,这个长度在46~1500字节范围内根据具体要求自己确定。

③0AH送命令寄存器CR,启动远程DMA读。

④从网卡数据端口依序读入数据分组,注意,最先读入的4字节非数据分组内容,第1字节为接收状态,第2字节为下一包页地址指针,3与4字节为接收字节数。第2字节内容应该送入Nextpk,其它字节根据用户要求处理。

⑤修改边界指针BNRY=Nextpk-1。

⑥清除远程DMA字节数寄存器RBCR0和RBCR1。

2.3发送控制过程

DSP先执行远程DMA写操作,将内存中的数据分组传至网卡发送缓冲区,然后启动发送命令进行数据分组发送。发送控制过程如下:

①设置远程DMA的起始地址为网卡发送缓冲区起始地址;

②设置远程DMA操作的字节数;

③12H送命令寄存器CR,启动远程DMA写;

④依序送出数据分组至网卡发送缓冲区;

⑤清除远程DMA字节数寄存器;

⑥设置发送字节数寄存器TBCR0和TBCR1;

⑦12H送命令寄存器CR,启动数据分组发送。

3发送方发送频率的控制

发送方发送频率的正确控制主要保护两点:一是有一个最小发送时间间隔,否则会因为接收方不能及时接收而导致系统瘫痪;二是发送频率能够足具体的功能实现要求。譬如在语音的实时通信中,发送频率就取决于声卡的采样频率。在8kHz采样频率时,声卡每秒钟采样8000字节,采用1024字节需用时128ms,如果通信协议规定发送1次传送1024字节有效数据,则必须每128ms发送一次才能保证缓冲区有新数据待发送,也才能保证接收方有新数据播放。128ms是一个理论计算数值,在实际的操作中采样速度和发送频率之间总是不能完全匹配,而存放数据的缓冲区大小是有限的,如果没有良好的控制技巧来实现正确发送,就会造成声音抖动和延时。解决的办法是双缓冲技术和双指针控制,并且根据采样速度和发送频率之间的匹配情况送入不同的发送通信进行处理后发送。正确发送的含义有两方面,一是每次发送的都是新数据,二是能满足接收方总在播放新数据的需求。

4接收方防止数据包的丢失

程序设计论文篇(3)

二、教法学法

1、教法:本节课的教学,贯彻了启发式教学原则。通过游戏引入新课,由教师引导学生进行观察思考和归纳总结,同时充分发挥多媒体的功能,通过课件演示、具体实例的分析,使抽象的事物形象化,尽可能的通俗易懂,再配以恰当的课堂提问与练习,让学生分析、探究,更进一步的加深理解。因此本节课采用的教学方法有:游戏、引导、演示、问答、练习等。2、学法:为了充分发挥学生的主观能动作用,在上述教学方法的指导下,引导学生运用“观察”、“讨论”、“练习”、“展示”等方法,彻底掌握if语句的使用,能够自己分析问题,认真思考,耐心实践。让学生不但要学会知识,更要会学知识,会用知识。

三、教学过程

1、新课引入:采用提问的方式,复习已学习过的知识,如选择结构的概念。并通过创设情境,引入新课内容。先编写一个程序引导学生参与游戏,游戏内容是随机抽取一个学生的学号作为当天的幸运星,程序会根据输入号码的大小,给出不同的提示。在学生被激发出兴趣后立刻提出问题:为什么程序会根据输入数据的大小,显示出不同的提示信息?由此引入了新课:If语句。在这一环节中,主要应用了游戏法、问答法等教学方法。不但引入了新课,更激发了学生的学习兴趣。

2、新课讲解:课程第一部分就是本节课的重点,if语句的语法格式。为了突出重点,加深学生的印象,讲解前,首先用举例法,通过表格显示几个常用的自然语言中进行分支选择的表达方法,如:如果明天是晴天,那么出去郊游,否则延期出行。然后引导学生对比几个不同的示例仔细观察,查找出语句中的共同点和不同点,并通过课件中的动画引导他们进行思考分析,逐步归纳出这种句型的表达方式:如果条件成立,那么执行动作1,否则执行动作2。由此实现了由特定的自然语言表述,到通用的自然语言格式的过渡。再通过提问的方式引导学生说出if、then、else等单词,用英文替换中文表述,结合VB命令格式中的符号约定,让学生自己写出VB中if语句的基本表示方式,if条件表达式then语句序列1else语句序列2,实现自然语言到vb语言的过渡。但这个格式并不完整,可再次让学生思考,哪些项是必需的哪些是可以省略的。这里还是用表格对比法,让学生看到,在自然语言中表述分支选择时,比较口语化的时候,有些语句是可以省略的。对应到VB中,也是一样,这样就得出了最终的if语句语法格式,If<条件表达式>Then[<语句序列1>][Else<语句序列2>]。随后,再对一些要注意的地方进行讲解说明。到此,本节课的重点部分也讲述完毕,在这个过程中,主要采用了举例、比较、类推、提问、讲授、动画等教学方法,整个过程采用了“自然语言表述实例自然语言通用句型VB语法格式”的教学顺序,层层深入,符合特殊到一般、具体到抽象,由浅入深,由易到难的认知规律,由此实现了重点的突出。If语句的用法是本节课的难点,这里主要利用流程图作为突破点的。首先,给学生讲解如何根据语法格式绘制它的流程图,通过PPT动画,将语法构造与流程图一一对应起来,使程序的执行过程更加直观,让学生对程序代码与流程图的关系的理解更直白,更透彻。然后,通过举例法,让学生了解,如何将实际问题进行分解,转换为相应的流程图,再根据前面所学,将流程图转换为具体代码。课程进行到这里,部分学生的注意力可能已经开始分散,此时可进行游戏的第一步解密,不但再次激发起学生的兴趣,也进一步帮学生理解如何分解问题,由问题到流程图,再由流程图到程序代码。在难点的讲解中,主要采用了动画、对比、举例等教学方法,通过由语法流程图,构建了语法与流程图之间的对应关系,再根据实际问题绘制流程图,反推代码,实现难点的突破。

3、课堂练习:为了检验学生对这部分知识点的掌握情况,通过布置习题,让学生思考解答,针对学生的完成情况做出点评,纠正学生易犯的错误,达到巩固新知的目的。在这一环节中,主要采用练习法和纠错法等教学方法。

4、课后小结:与学生一起回顾本节所学内容,加深记忆和理解,完成知识的建构。并告诉学生,将在第二学时继续对游戏解密,完成整个程序的设计,让他们抱着期待的心情迎接下一节课。

程序设计论文篇(4)

随着Internet的迅速发展,Java作为一种面向对象的高级语言得到了越来越广泛的应用。它既具有一般程序设计语言所具有的安全性、多线程等特点,同时又具有独特的平台无关性的优势。为了适应社会的发展,培养更符合市场需求的计算机专业人才,很多高校都陆续开设了Java语言的相关课程。但是在传统的Java语言教学过程中,课堂一般以教师为主导,首先按照教材章节顺序向学生灌输一个个抽象的概念、语法和算法,然后再去布置相关的实践任务让学生在机房实践操作。这种先理论后实践、理论和实践完全割裂的教学方式忽视了学生的互动参与,导致课堂乏味,学生学习兴趣下降,教学内容单纯倚重课堂讲授,学生实训操作练习很少,而且学与做相脱离,不利于学生理解消化课程知识和锻炼编程能力,难以取得理想的教学效果。针对这些问题,教师可以在该课程的教学中引入案例教学,以书本知识点为基础,以案例为依托,使学生在制作案例的过程中逐渐理解Java基本理论知识,在理解理论知识后不断提高Java语言的编程能力[1]。

一、案例教学法的实施意义

案例教学法由美国哈佛商学院提出,通过在课堂教学中由教师围绕案例组织教学,将学生引入特定的情境之中,启发学生分析案例,探讨案例解决方案,实现课堂师生的双向互动和学生学习效果的及时反馈,激发学生学习的积极性,提高教学效果。在Java语言程序设计课程教学中应用案例教学法就是通过实施一个完整的Java案例来组织教学活动,用典型案例把理论知识与实践教学有机地结合起来,把理论知识融入到案例制作之中。教师通过案例实施完成教学过程,学生通过案例制作掌握Java的语言知识和编程技巧,使教学做有机融合,提高该课程的教学效果。与传统教学方式相比,案例教学方法更能充分发掘学生的创造潜能,培养学生学习Java语言的兴趣,提高学生解决实际问题的综合能力[2]。在Java语言程序设计教学中实施案例教学,教学过程通过教学案例的实施过程来开展,通过“提出案例目标--分析案例任务--实施案例--边学边做--总结反馈”的环节分解每个知识点,充分体现学中做、做中学的教学理念,展现互动创新、注重应用、共同协作的教学风格。

二、Java语言程序设计案例教学的实施

(一)明确Java语言程序设计的教学计划在Java语言程序设计课程的教学中使用案例教学方法,教师首先要明确该课程的教学计划。具体包括特定的教学对象、明确的教学目的、课程的教学效果和对教学过程实施的整体设计及其控制。教学计划的制定必须以市场需求为导向,符合程序设计语言课程的教学规律,既不能脱离学生的实际学习能力,也不能丧失该课程注重实践应用能力培养的教学特点。因此,通过市场调研、企业专家访谈和毕业生信息反馈等形式,确定本课程的教学计划是使学生掌握面向对象程序设计的开发方法,理解类、实例、继承、包的应用,体会面向对象的程序设计方法在软件系统开发中的优势,使学生能够运用面向对象的思想、方法和Java语言开发应用程序。同时在该课程的教学中注重进一步的培养学生的软件设计与开发能力、程序调试能力,养成良好的程序编写习惯,从而为本专业的后续课程的学习奠定坚实的基础。(二)精心准备Java教学案例资料结合高职学生的特点,本课程将抽象的理论知识点细化和组织到具体形象的案例中去,让学生在具体的案例中体会知识点的应用。为此构建该课程规范的一体化案例教学资料库是非常重要的,选取的教学案例要能很好地和相关地教学知识点紧密融合。因此,在讲稿和课件中注重设计好每个案例“如何运用,怎样引入,何时引入,怎样与知识点有机衔接”。为了更好的提高学生的学习积极性,体现高职课程应用型、实用型的特色,Java教学中应用的案例要生动、实用,最好能从实际工作中的应用出发,提取一些典型的教学案例,能够模拟真实的企业工作环境,按照软件开发的流程组织教学。这样一方面可以使得学生可以了解以后工作的内容,激发学生学习的热情,另一方面可以改变高中时的以掌握理论知识为中心的学习方式,变被动学习为主动操作,突出实践技能的培养,使学生养成良好的程序设计开发习惯[3]。但是实际工作中的案例一般都比较综合,结构庞大,涉及的知识点比较多,如果直接应用到教学中对于初学者来说过于复杂,这就要求教师对这些案例必须要进行加工,抽取出关键部分,把繁杂无关的部分去除,有效引导学生进行学习。在学生具有一定的编程基础的情况下,再给学生真实的综合案例,通过由简单到复杂、由单一模块制作到综合案例制作的学习过程逐渐掌握Java语言的知识和编程方法,从而提高学生对实际工作情况的适应度。学生在分析案例寻求解决方案的过程中,会自然地与所学知识点进行结合,而案例中较为复杂问题的解决,能够激发学生不断学习、勇于创新的热情,打破学生原有的知识范围,拓展学生的知识领域,从而使得学生从被动的学习者转变为主动运用知识来处理各种各样的问题的开发者,不断提高软件开发的分析和解决问题的实践能力。(三)设计合理的课后练习案例由于Java语言比较抽象,知识点较多,对实践操作要求又比较高,仅仅凭着上课有限的教学时间是远远不够的,所以在每一章节的课堂教学结束后,教师必须选取合适的案例,为学生布置所涉及相关知识点的课后作业,从而让学生能通过课后作业练习对Java语言能够进一步深入的理解。(四)理论课和实践课合为一体传统的Java教学模式一般是先理论后实践,理论课和实践课分开,理论课在多媒体教室完成,而且理论课时一般都是实践课时的2倍以上。在具体的教学中,为了保证后期课程的教学难点能够掌握,理论课都先于实践课开始。这样的教学安排会使得理论课已经进行一半后,实践课才刚开始。而在Java语言等程序设计课程中,学生对于知识的掌握和编程能力的培养,在很大程度上是通过实践操作来实现的,但课后并不是每个学生都会自觉地在自己的计算机上编程练习,还有一部分学生虽然也在自己的计算机上编程调试了。但是一旦在调试中遇到困难得不到解决,往往就会退缩,把问题搁置等着上实践课再来解决,以至于造成学生学习进度缓慢,编程能力得不到有效提高。为此,可以把Java语言程序的理论课和实践课结合在一起,把授课地点设在机房中,教师以教学案例为主线,首先分析案例,然后引导学生思考案例解决方案,接着引出案例涉及的相关知识点,再把知识点应用到案例制作过程中,边做边讲,通过这种教学做一体化的教学方式把理论和实践有机结合起来,把抽象难懂的理论知识通过具体的操作帮助学生理解,学生的学习热情有了很大的提高,学习效果也有了明显的改善。(五)重视教学的互动与及时反馈传统的教学方法一般是教师讲、学生听,课堂只注重知识的单向输出,忽略了师生之间的沟通和学生的实际的接受效果。通过教师和学生之间的及时沟通,不仅能够使教师发现学生学习的薄弱环节,而且可以发现教学过程的不足,动态调整教学实施过程,更重要的是增进了师生感情,从而引发学生的学习兴趣[4]。在Java语言程序设计中应用案例教学法就能很好的实现教学的互动,使教师能够及时的得到课堂教学效果的反馈。首先在案例教学中,学生拿到案例后,在教师的引导下先要进行分析消化,然后在案例制作的过程中学习相关的Java语言知识,这无形中会使学生加深了对知识的理解,而且学习过程是在和教师的互动中进行的。同时学生的成果要经过学生自评、教师点评环节,这一方面调动了学生学习和动手的积极性,也促使教师加深思考,根据学生制作案例的情况了解学生掌握新知识点的程度,及时调整教学内容和教学进度,不断完善案例教学的实施过程。(六)典型教学案例实施过程:自动计数器图1计数器初值为0图2计数器自动加1图3加数器变为减数器图4计数器自动减1在Java图形界面开发讲授时,教师如果只是介绍各个组件的构造方法和常用的方法,就会让学生觉得枯燥乏味,不知道每个方法具体的应用,而且不能让学生了解组件显示的难点--坐标的确定,因此有必要通过案例教学来实施这部分知识点的教学。比较典型的一个教学案例是自动计数器的制作。计数器初值为0,如图1所示;当单击“自动加1”按钮时,程序实现计数器功能,如图2所示;当计到100时,“自动加1”按钮显示为“自动减1”,如图3所示;并自动实现减数器的功能,如图4所示。如此循环,直到单击“退出”按钮为止。在讲授时,教师可以首先演示该程序的功能和运行过程,让学生明确学习目的,然后对着运行界面引导学生分析程序的实现思路:自定义一个窗口类,在窗口类的构造函数中添加单行编辑框和按钮组件。然后重写按钮事件处理方法actionPer-formed。在讲解窗口类的实现中,要详细讲解单行编辑框组件和按钮组件的坐标的确定。接着再详细说明在用户单击了按钮后,如何控制计数器计数:先要判断选择了哪个按钮,这里教师告诉学生通过事件的getSource方法可以获得事件源;然后再根据按钮的文本内容执行相应的操作,“自动加1”将使num加1,“自动减1”将使num减1;最后用setText方法把新的num设置为单行编辑框的值。这是一个综合了多个知识点的案例,涉及到组件的添加、事件处理、整型数和字符串类型的相互转换、事件源的判断等知识点。这个案例的学了有助于让学生掌握这些界面开发的知识点外,也会让他们学到流程控制的编程技巧。

三、结束语

在Java语言程序设计的教学中,以教学案例的实施为主线,通过教学内容、案例选择、授课模式等一系列的改革措施,培养学生独立分析问题和解决问题的能力。实践证明案例教学法不仅可以提高高职学生学习Java语言的兴趣,使他们在学习的过程中由被动接收知识变为主动培养实践技能,而且增强了学生在实践操作中的自信心,学生的编程能力也有了明显的提高。

作者:王惠 单位:九州职业技术学院

参考文献:

[1]李天书.案例教学法在专业课教学中的应用与实践[J].职业时空,2014(6).

程序设计论文篇(5)

语意(Semantic)即语言的意义,产品语意学(ProductSemantics)则是研究产品语言(ProductLanguage)的意义的学问。其理论架构始于1950年德国乌尔姆造型大学的“符号运用研究”,更远可追溯至芝加哥新包豪斯学校的查理斯(Charles)与莫理斯(Morris)的记号论。这一概念于1983年由美国的克里彭多夫(K.Krippendorf)、德国的布特教授(R.Butter)明确提出,并在1984年美国克兰布鲁克艺术学院(CranbrookAcademyofArt)由美国工业设计师协会(IDSA)所举办的“产品语意学研讨会”中予以定义:产品语意学乃是研究人造物的形态在使用情境中的象征特性,以及如何应用在工业设计上的学问。它突破了传统设计理论将人的因素都归入人机工程学的简单作法,扩宽了人机工程学的范畴;突破了传统人机工程学仅对人物理及生理机能的考虑,将设计因素深入至人的心理、精神因素。会议论文结集由《创新》(Innovation)杂志专辑出版。1985年在荷兰举办了全球性的产品语意研讨会,飞利浦公司在布莱克(BlaichRobert)的领导下采取“造型传达设计策略”而获得空前成功,展现了产品语意理论的具体应用成果。1989年夏,荷兰赫尔辛基工业艺术大学举办了国际产品语意学讲习班。由此,产品语意学被推广到欧洲。1991年毕德克在《设计——产品造型的历史、理论及实务》一书中详细介绍了产品语言和产品语意的众多论述,并指出“产品语言”是设计领域的深层知识(In-depthKnowledge)和设计的核心竞争力(CoreCompetence)。1997年,德国《form》杂志再度以产品语言为主题(OnLanguage,ObjectsandDesign),重新对产品的表现形式与诠释意义加以探讨,并提出各方见解。[1]

克里彭多夫自1984年以来对产品语意学提出了广义的陈述:产品语意反映了心理的、社会的及文化的连贯性,产品从而成为人与象征环境的连接者,产品语意构架起了一个象征环境,从而远远超越了纯粹生态社会的影响。他将产品语意划分为四个层面:1操作内容(OperationalContext):使用过程实际上是人与人工物的交互行为;2社会语言内容(SocialinguisticContext):人与人之间的交流实际是一种关于特殊的人工物、人工物的使用及其使用者之间的联系,因而人工物成为现实生活组成部分的同构;3起源内容(ContextofGenesis):设计者、制造者、销售者、使用者和其他人都参与创造和消费人工物,并在不同程度上导致文化和物质的“熵”变;4生态内容(EcologicalContext):技术和文化的自动拷贝将影响“物体系”内的交互行为。设计一种产品,也就是设计一种语言。[2]

M.Mccoy则在探讨产品造型时,则从以下五个问题进行产品语意设计。

1环境(EnvironmentalContext):产品的形态、大小、材质、色彩等应该与产品所处的自然环境和社会环境相协调;

2记忆性(Memory):一个新产品的出现,未必要创造一种全新的造型语言,而是从一些旧有形象上寻找一些大众共有的记忆,通过产品语言的连继性与熟悉性产生共鸣;

3操作性(Operation):通过控制、显示、外形、材质及色彩的明确语意及各项控制键的关系,呈现清晰、易理解的操作,以引导正确操作行为;

4程序(Process):语意设计不是要加强产品技术的神秘感,恰恰相反,产品内部不可见的机构运作,需要透过外部形态予以宣示,虽然很多新科技是无法目睹的,设计师则须面对产品内部技术运作的层面加以诠释,不只是技术上如何运作,而是使我们用心中的眼睛来设想其运作;

5使用的仪式性(RitualofUse):简洁的造型可以满足人们日常生活中简单、高效的要求,而某些仪式性的场合则需要赋予产品以或庄重或温馨或冷峻或理性的造型解说,从而完成情境设计及物体与使用者间的心理互动(PsychologicalInteraction)。

2、群体文化学与用户研究

群体文化学(Ethnography),又称人种志学、民族志学,作为文化人类学的一个分支,是描述某个社会群体和阶层文化的学科,主要通过实地调查来观察群体并总结群体行为、信仰和生活方式。[3]20世纪后半叶,很多设计研究机构及设计公司开始从社会学科中寻找信息和方法,以帮助他们来了解用户与产品之间的关系,及用户使用产品的态度。近年来,群体文化学中研究人群文化和生活形态的方法,被借鉴用于产品开发初期的用户研究,以群体人类学的视角,综合使用各种社会学研究方法来观察群体并总结群体行为、信仰和活动模式。

应用群体文化学方法于用户研究,有助于对用户多样性的全面认识,从而识别用户的相似点,进而探求存在于多样化人群中的常数,例如:用户都有相似的生理需要和根植于社会环境、文化背景、知识体系和生活经验的各种需要。通过参与用户的生活,并将其如实详尽地记录下来,可以发现设计机会的线索,从而有效解决人的多样化与产品准确命中目标用户之间的矛盾。更关键的是,它不仅是描述性的,而且是预见性的:通过对目标市场中代表性人群的深入理解,尤其是对消费者的生活方式、生活体验和产品使用的深刻理解,能够对消费者对产品功能、形态、材料和色彩以及使用和购买模式的喜好进行预测,通过观察消费者面对技术、造型和使用时的情绪和态度,从而明确产品应该具备的品质;通过了解人们本质上如何认识他们周围的世界、他们最新关注的焦点以及他们所抛弃的东西,研究团队可以获得对人们在未来几年需要、要求和愿望的变化的深入认识,从而预测消费需求的重要转变,监视市场的动态发展。[4]

基本程序与方法如下:通过问卷调查对目标群体使用产品的特定活动和背景环境有一个总的理解;对报纸、书籍、杂志、电视、广播、网站等各个媒体相关主题的资料收集,通过对二手资料进行归类、分析,提取舆论引导的关键词,分析产品发展的可能趋势;通过身体风暴(BodyStorm)观察法、深度访谈(DepthInterview)、影像故事(VideoEthnography)等方法,针对产品使用过程、使用环境、使用态度,了解个人如何看待、理解这些产品,并发现特定产品与其生活方式某一方面的行为之间的联系;通过实地考察了解产品被使用时的环境及情形以理解产品发挥作用的来龙去脉;运用相机观察法(ObservationalCamera),由参与人使用一次性相机并通过日记的形式记录他们在给定的环境中认为重要的事或物,完成“视觉日记”,这种记录可以是他们所关注的活动、一天中的亮点、或者他们喜爱的服装和颜色,从中可以发现一些鲜为人知的故事特别是用户与设计师看待同一事物的不同方式。在前期全面、详实、充分、有效的调查研究之后,就可以确定典型用户模型(Persona);并详细描述生活场景(Scenario),从中可以发现大量可进行设计创新的具体线索,从而引导后期的设计创造。

3、基于群体文化学的语意设计程序与方法

将克里彭多夫关于产品语意的内容分析与现代设计程序相结合,可以构造一个基于产品语意学的设计程序。首先,通过用户研究、背景分析和对产品的语意理解,可以发掘出产品独特的语意内容并加以深入研究,然后整合这些特色内容并加以强化,最后将那些需要赋予意义的设计内容加以发展。这个程序可以划分为研究阶段、整合阶段、设计阶段等三个阶段,设计团队通过在“质”与“量”上对每一演化阶段的意义进行较准确地把握,可以将抽象、模糊的设计意象转化为明确具体的产品形象。以下对三个阶段分别说明。

研究阶段。这是一个诱导阶段,设计团队通过用户研究寻找设计机会,并寻求对那些影响真实环境的设计内容的理解。通过问卷调查、二手资料分析,提取舆论引导的关键词,分析产品的意义来源和发展趋势,了解产品语意的起源内容和生态内容;通过“BodyStorm”观察法、深度访谈等方法,针对具体产品的使用过程和使用环境,了解用户的背景资料与其个人的行为方式、生活方式、思维方式之间的联系,寻求典型的行为、动作、态度、观念与产品之间的观念,进而理解产品语意的操作内容、社会语言内容;通过实地考察了解产品被使用时的环境及情形以理解产品发挥作用的来龙去脉,寻求意义的动线;在“视觉日记”中发现一些特点、亮点和差异点,作为产品语意分析的又有效补充。设计团队将不同层次的数据、信息、知识等转换为不同的理解:从二手资料中抽象生成意义,从用户研究中看到产品与产品、产品与人、人与人之间的关系,从用户体验和交互行为中捕捉形象。

整合阶段。第二阶段设计团队将研究阶段所获取的知识转化为设计概念。在前期全面充分有效的调查研究后,针对典型用户模型,并详细描述生活情景,并将生活情景划分为若干个使用情景,分析使用情景出现的频次和重要程度,据此深入理解目标市场中的代表性人群,尤其是其生活方式、生活体验和使用方式从而确定产品的外观、感觉、功能和使用目的,可以了解他们本质上如何认识他们周围的世界、他们最新关注的焦点以及他们所抛弃的东西,从而获取产品语意的可能来源。生活场景中的每一个情景、每一组关联,都是一次语意的发生机会。设计团队通过时间、空间、关系、程度等原则理解、比较、评估这些语意的发生点,并加以整合,从而创造出最终设计成果的一个模糊的意义。

设计阶段。第三阶段是一个演绎过程,是一个循环的认知过程。它可能由一些最初的不能理解的感觉或概念开始,不断在使用情景中那一幕幕场景、一组组关联发现呼应,进一步明确假设的内容,并围绕解释学背景循环展开。在此过程中,产品特征将在语意内容和对模型赋予的意义之间区分出来,经过不断的选择、放大、验证、排除,这些被建构出来的模糊意义的若干分枝将会聚集到一个有效、紧凑的范围,从而实现明确的理解结果。

基于抽象概念的相似性或相关性,我们很容易运用“意象联想法”展开思维的发散,这种方法的使用效果与设计者的生活经验和对相关二手资料的占有量息息相关。通过团队研究确定语意主题后,运用“主题展开法”,将主题做关联性分析,通过静态的情景分析和动态的情节联想,找出更为细致、更为简单的子主题;不断重复这个步骤,将子主题转化为意义单一的语素;然后将语素的单一意义转化为形、色、光、质;通过对语素的排列组合,将子主题转化为形体或表情,进而将主题转化为一个整体的象征物或者角色。意象联想法主要用于语意的发散和分析;主题展开法主要用于语意的发展和组合;而在在产品细节或整体形象的语意表现上,则可以运用隐喻法、象征法、用典法等多种方法。需要特别强调的是,上述这些方法在使用过程并不是割裂或矛盾的,而是多种方法的综合使用,灵感在意象的碰撞中迸发。

4、结语

时至今日,传统意义上的大众市场已然渐次消失,取而代之的是“区域文化”、“小众市场”、“文化亚群”的观点;设计便被卷入一场在大众、群体或个人之间,以价值(包括使用的、交换的、符号的)为目的却又各行其道的混乱中。语意设计的方式,也往往反映出设计者对“生活”及“文化”的细腻关怀。产品语言的运用,视其条件、架构与定位的差异,往往会侧重某项脉络功能;所以它并非以一种风格呈现,而是表达一种系统,并借此系统发展出多样化的视觉品质。对产品语意的理解,不能脱离它的社会文化脉络,某些事物的意义并不在它的表面,而与它的使用功能、环境和生活实践的联系密不可分。如果对形式与语意的联系规定得过于直接,就会使语意失去其复杂性而变得浅薄。

产品语意不再是设计师个人设计的技巧和主观概念的臆想,而是设计团队的集体智慧和知识整合。设计团队的组织结构、知识背景、管理规范等都将影响产品语意的准确获取。因此,结合用户研究、团队管理和产品语意的设计程序与方法,通过形式与内容的呼应与互补,能够将深埋于消费者、使用者意识和潜意识中的心理、文化、社会、环境等深层意义更准确投射在视觉形式上,引发他者的感知进而共鸣。

参考文献:

[1]胡飞杨瑞,设计符号与产品语意:理论、方法与应用,北京:中国建筑工业出版社,2003:116

程序设计论文篇(6)

TI公司专门推出了PCI2040桥芯片是专门针对PCI总线和DSP接口用的,本文利用它和DSP来处理视频信号,并用双端口RAM实现DSP之间的数据传输。

1硬件设计

1.1PCI总线控制芯片PCI2040

PCI总线是一种不依附于某个具体处理器的局部总线,它支持32位或64位的总线宽度,频率通常是33MHz,目前最快的PCI2.0总线工作频率是66MHz。工作在33MHz、32位时,理论上最大数据传输速率能达到133MB/s。它支持猝发工作方式,提高了传输速度,支持即插即用,PCI部件和驱动程序可以在各种不同的平台上运行[1]。

实现PCI总线协议一般有两种方法,一是用FPGA设计实现,但PCI协议比较复杂,因此难度较大;二是采用PCI总线控制芯片,如AMCC公司的S5933、PLX公司的PCI9080等通用的PCI接口芯片。TI公司专门推出了针对PCI总线和DSP接口的芯片PCI2040[2],它不但实现了PCI总线控制的功能,而且提供了和DSP芯片无缝的接口,因而大大简化了系统设计的复杂度并缩短了开发时间。

PCI2040是一个PCI-DSP桥接器件,它提供了PCI局部总线和TMS320C54X8位主机接口(HPI)与TMS320C6X16位主机接口的无缝连接。一片PCI2040最多能同时挂接4片DSP芯片。同时,它还提供了一个串行EEPROM接口,一个通用输入输出接口(GPIO)和一个16位通用总线接口(为TIJTAG测试总线控制器提供接口)[2]。PCI2040只能作为PCI目标设备使用,不能作为PCI主设备使用;它只支持单字的读写,不能提供DMA操作。PCI2040能够兼容3.3V和5V信号环境系统中的3.3V和5V信号可以直接从PCI插槽中获得。

PCI2040和TMS320C6201的接口如图1所示。

1.2PCI2040寄存器说明

PCI2040桥256字节的配置头如图2所示,HPICSR基地址、控制空间基地址(ControlSpaceBaseAddress)值都是系统自动分配的。所有的PNP器件都是如此它将控制空间映射到主机内存,映射的空间大小为32KB。4片DSP芯片的选择是通过解码PCI_AD14、PCI_AD13来实现的,其对应关系如表1所示。而DSPHPI寄存器的地址则是由PCI_AD12和PCI_AD11来决定的,其对应关系如表2所示。

图1PCI2040和TMS320C6201的接口

表1DSP选择

AD[14:13]

TMS320C6xDSP

00

HCS0(选择第一块DSP)

01

HCS1(选择第二块DSP)

10

HCS2(选择第三块DSP)

11

HCS3(选择第四块DSP)

表1HPI寄存器映射

AD[12:11]

TMS320C6xHPIRegister

00

HPI控制寄存器

01

HPI地址寄存器

10

HPI自增数据寄存器

11

HPI数据寄存器

因此,DSP与主机交换数据的过程,也就是读写HPI寄存器的过程。也就是说,通过主机访问DSP板上资源,只需要将相应地址赋予HPIA寄存器中,然后读写数据就可以通过HPID寄存器。具体描述如下:

(1)初始化PCI2040内部配置寄存器,指向特定的DSP(因为本系统有两块DSP和PCI2040相连),指定数据传输宽度为16位。

(2)分配HPICSR基地址和控制空间基地址,允许PCI2040进行内存映射或I/O端口映射。值得注意的是,PCI2040控制空间只能映射在主机的内存空间里,不能映射在I/O空间。以上两步都由驱动程序完成。

(3)脱离复位状态后,PCI2040解码从PCI总线来的地址,以此来做出响应。若落入32KB的控制空间中,则根据PCI_AD12、PCI_AD11及PCI_AD14、PCI_AD13片选情况访问相应HPI寄存器。

(4)设定HPI控制寄存器中的BOB位,选择正确的高低16位排列方式。

(5)主机开始对HPI寄存器进行读写。

1.3双DSP系统硬件设计

本文所采用的双DSP系统主要用来处理视频信号及高速数据采集,该系统是基于TMS320C6201DSP和PCI2040而设计的。此卡的主要功能是:(1)采集视频信号或其他模拟信号经A/D转换后,交给DSP进行相应处理,然后将处理后的数据通过PCI2040经PCI总线存放在计算机硬盘上或者直接存储到板上RAM中,然后通过PCI总线将视频数据传送到主机后显示。(2)两块DSP之间的通信可以通过McBSP或双端口RAM。

该系统的特点有:两块TMS320C6201DSP,处理能力可达3200MIPS;每片C6201带512KSBSRAM,256KBFLASH;16KB高速双口RAM用于两块C6201之间进行数据交换;12位ADC;32位高速FIFO。系统硬件框图如图3所示。

2基于WDM的PCI驱动程序设计

WDM是新一代的驱动程序构架,它是一个跨平台的驱动程序模型,在WINDOWS98以上的操作系统中都实现了全面兼容。不仅如此,WDM驱动程序还可以在不修改源代码的情况下经过重新编译后在非Intel平台上运行,因而为驱动程序开发人员提供了极大的方便。

WDM驱动程序是分层的,即不同层上的驱动程序有着不同的优先级,而Windows9x下的VxD则没有此结构。另外,WDM还引入了功能设备对象FDO(FunctionalDeviceObject)与物理设备对象PDO(PhysicalDeviceObject)两个新概念来描述硬件。PDO代表实际存在的硬件设备,它是在总线驱动程序(BUSDRIVER)下枚举并建立的,负责与真实硬件进行I/O操作。FDO是由用户驱动程序建立的,一般来说,它是用户与真实硬件进行I/O操作的一个窗口,是Win32赖以沟通内核的一个桥梁。对于驱动程序开发者,真正需要做的就是开发FDO。至于PDO,则由BUSDRIVER建立,并在需要的时候作为参数由I/OManager或其它系统组件传给你的FDO。

在应用层与底层进行通讯时,操作系统为每一个用户请求打包成一个IRP(IORequestPacket)结构,将其发送至驱动程序,并通过识别IRP中的PDO来识别是发送给哪一个设备的。另外,WDM不是通过驱动程序名称,而是通过一个128位的全局惟一标识符(GUID)来识别驱动程序的[3]。

WDM驱动程序都有一个初始化入口点,即DriverEntry,它相当于C语言中的main函数。当WDM驱动程序被装入时,内核调用DriverEntry例程。另外WDM设备驱动程序还需要一个即插即用模块,即AddDevice。AddDevice例程就是PnP管理器在用户插入新设备时调用它来创建WDM设备对象的。

本文主要采用Windows2000DDK来设计该驱动程序。调试工具为SOFTICE。驱动程序的主要工作集中在:

(1)DriverEntry(),这是驱动程序的入口点,驱动程序被装入时首先执行DriverEntry例程。主要工作是建立驱动程序这所需的函数。

(2)dspPciAddDevice(),在这个例程里驱动程序主要是创建设备。

(3)dspPciPnp(),在这个例程中驱动程序主要是启动设备和停止设备等,并且从PnP管理器读出为双DSP所分配的硬件资源,包括HPICSR基地址和HPI控制空间基地址,对PCI配置空间进行初始化。初始化中断等。需要注意的是,在初始化中断之前禁止卡向主机发中断,因此应有屏蔽中断的操作。

(4)dspPciDeviceControl(),在这个例程中可以定制自己的函数来达到Ring3层和Ring0层相互通讯的目的。通过IOCTL_CODE可以区分不同的请求。

(5)Isr_Irq(),这个例程是用来处理中断的。Windows2000的中断处理机制是假定多个设备可以共享一个硬件中断。因此,Isr的首要工作就是找出哪一个设备发生了中断。如果没有,则应该立刻返回FALSE,以便HAL能把中断送往其它设备驱动程序。中断服务例程Isr执行在提升的IRQL上,在DIRQL级别上运行的代码需要尽可能快地运行。通常情况下,若判断中断是由自己的设备产生的,则调用一个在DISPATCH_LEVEL级别上运行的延迟过程调用(DpcFor_Irq)。

程序设计论文篇(7)

对于大多数课程而言,从宏观上将课程知识点及其关联讲授给学生非常必要,这便于学生更加系统深刻地理解所学内容。作为教材讲解C语言程序设计的知识点结构。知识点之间的关联可以层层细化,教师首先从宏观上给学生介绍C语言程序的整体组成结构。教师对涉及的知识点进行归类,共包含预处理命令、数据类型、运算符、语句和函数等5部分,从宏观上梳理C语言与程序设计课程的知识点是非常必要和重要的,这样可以避免学生“只见树木,不见森林”,最后只学到一堆零散的知识点,只有从宏观上把握各个知识点在知识体系中的位置和作用,才能学得深、记得牢。对于程序语言课程,如果仅仅介绍语法的运用,学生往往对知识点理解不深刻。我们在教学实践中的体会是:在讲解C语言语法的基础上,适当地剖析编程语言在计算机中的运行机制,会让学生的理解更加透彻。因此,我们的课堂教学方法分为如下两部分。

1)课件讲解。课件讲解包括两部分,即知识点要点总结和知识点运行机制剖析。知识点要点总结就是告诉学生该知识点如何使用;而知识点运行机制剖析则告诉学生该程序在计算机内存中的执行过程。由于绝大部分高校在开设C语言程序设计之前都会开设计算机文化基础等课程,因此学生有足够的计算机基础知识来理解C语言程序的运行机制。

2)实例演示。作为一门编程语言,C语言需要在实践中理解和掌握,因此,课堂教学中,在具体的编程环境(如VC++6.0)下演示十分必要。通过在具体的软件环境下编程,告诉学生应该做什么和不应该做什么,并总结该知识点的注意事项。相比传统的脱离编程环境,只在PPT或黑板上进行板书的教学模式,该方法的教学效果要好得多。在课堂教学中,具体的教学步骤如下:①使用PPT或者板书列出该知识点的注意要点;②在编程环境(如VC++6.0)下演示该知识点的用法,给出正确的和错误的使用方法,并进行对比;③通过幻灯片动画或Flas等形式演示程序在计算机内存中的执行过程,让学生更加深刻地理解程序的运行机制。

3)教学难点与重点——“复合知识点”。从C语言的教学内容来讲,数组、函数和指针是教学的重点章节,这些章节之间相互关联的部分又是重点中的难点,如数组和函数结合,数组名做函数参数,数组和指针结合,指向数组的指针变量,函数和指针结合,指向函数的指针变量等。在教学过程中要反复强调各个知识点的注意事项,如果基本知识点能够理解透彻,上述难点内容也就迎刃而解了。

1.2上机实践教学

在实践教学中,教师可以通过实际教学案例循序渐进地强化学生对C语言知识点的理解。上机实践的教学内容通常分为两部分:基本知识点练习和综合训练。首先通过基本知识点的练习,让学生掌握该知识点的使用,即巩固课堂所学内容;然后通过一个综合性的大作业,训练学生综合应用C语言知识点的能力,例如,通过编写“学生课程成绩统计系统”考查学生对数组、结构体、指针、函数、文件等知识的综合掌握情况。对于初学编程语言的学生,往往没有养成良好的编程习惯,出错的可能性较大,而出错之后进行调试又将耗费较长的时间,这势必对学生的学习热情产生负面影响。因此,一开始就给学生制定科学的编程步骤和规范,使学生养成良好的编程习惯,将大大减少程序出错的可能。下面是按照上述五步编写的一个完整的C语言程序,用来比较两个整数的大小。按照上述五步进行编程,经过一段时间的训练之后,学生出现语法错误的可能性大大降低,此时学生更多的精力将集中在程序算法的设计和实现上。

1.3考试形式

对于C语言程序设计的考核方式,我们采用知识点考核和编程实践相结合的方式。知识点考核偏重于C语言基本语法,用于检验学生对知识点的掌握是否全面,此项考核约占总成绩的40%;编程实践考核用于检验学生的实际动手能力,学生将在规定的时间内根据题目在机器上编程,此项考核约占总成绩的60%。为了实现知识点的考核,我们将考试与计算机二级C语言上机考试紧密结合,采用题库平台进行上机考试,学生直接在机器上答题并提交,知识点考核多采取客观题,如填空题、程序修改题以及读程序题等,编程题在实战编程中考核。C语言程序设计课程的重要特点就是实践性强,学习该课程的目的就是为了编写程序。因此从考试的角度讲,进行编程实践是最合适的方式,通过上机编程来考核学生的学习情况也是最公正和客观的方式。

2C语言程序设计教学实践结果分析

中国矿业大学(北京)每年都有40多个班级同时开设C语言程序设计课程,因此该课程教学质量的高低将直接影响全校理工科学生对C语言的理解和掌握。中国矿业大学(北京)C语言程序设计教学团队经过长期的探索总结出一套行之有效的C语言教学方法,我们将上述方法在学校越崎实验班中进行了试点。如图2所示,采用上述教学法的越崎实验班的C语言程序设计课程考试成绩要明显好于其他班级,其中90分以上的学生占10.7%,80分以上的学生占总人数的53.6%。另外,学生的学习积极性比采用上述方法前得到明显提高,很多学生都对计算机编程产生了浓厚兴趣,实践证明我们提出的上述方法是行之有效的。

程序设计论文篇(8)

二、以案例促实践,培养学生的学习兴趣、自主学习能力、工程实践能力

初步认知案例,调动学生的积极性,激发学生的学习兴趣。课堂上,在讲授知识点之前,先给出一个案例,通过多媒体演示运行的状态,已预习的学生将会对案例有浅显的认识或者通过教材往往可以得到一定的认知。从案例中寻找知识点,对理论知识概括总结,培养自主学习能力。与传统的教学模式相比,通过引入案例交互式的教学方法更能让学生积极主动地参与,真正实现以学生为主体“、做中学”。当然,案例的构建和选择是非常重要的,要有效地激发学生的兴趣,就要求教师精心设计和恰当安排。从初步认识案例,结合学生自主学习教材的知识,他们将会能动地找出相应的知识点,基本领会到这些知识点如何运用。同时,教师可适当地多演示相似的案例,让学生分组讨论,进而总结案例中涉及的基础理论知识、掌握的基本技能等。通过该方式,能使学生深刻地认识到课堂上所学到的基本知识,达到自主学习能力的培养。反思案例,培养学生的工程实践能力。按照传统教学模式,让学生依据案例所涵盖的知识点,能写出同层次水平的新案例,通过分组讨论,选择与实际问题结合紧密、对知识点反馈性强的案例,可以增加到案例库中,更加激发学生的激情,从成就感中获得喜悦,进而培养学生的工程实践能力。

三、以实践促课堂教学,增强教师授课中理论联系实践的意识,培养学生的归纳总结能力,提高学生的基本技能

采取由浅入深、由表及里的实践练习,为运用技术打下坚实的理论基础。打破传统实验课堂的教学模式,通过对案例的认识和对知识点的挖掘,依据培养目标让学生自主设计实验内容,通过实验课堂分组进行实践,选拔科学合理、结构清楚、层次多样的优秀实验方案,鼓励学生多思考、多总结、多实践。收集案例或实践教学中学生易犯的错误或易混淆的知识点,及时反馈、纠正。如前面所说,将实验课堂上得到的比较优秀的案例添加到案例库中,这样不断改进、优化、更新案例,使教师能在授课中自主地将理论与实践紧密联系,从而更好地指导教学内容。挖掘有效的教学手段、教学方法,体现一定的教学艺术,实现“从做中学,从学中做”,培养学生的语言表述能力、综合分析问题能力、逻辑推理能力和知识归纳总结能力。同时,根据实践的效果和教学内容安排,可以适当增加开创性课题,开拓思维,将有限的知识通过前沿课题或项目融入学生的第二课堂,培养他们不断探索和创新思维的能力。四、以理论和实践促科研项目,教学过程中渗透科学研究前沿知识,让学生了解相关学科的前沿研究动态,鼓励和引导学生创新,培养学生具有可持续发展的学习能力、创新能力教学过程中,以学生为主体,教师起主导作用,引导学生积极参与,坚持“以人为本”,注重学生的个性发展,多方位培养学生可持续发展。学习是自身发展的需要,也是社会发展的需要。不断学习才能适应社会发展,才能满足企业的需求。有时,企业将学习能力作为衡量人才的重要标准之一。激发学生的潜力,转变教育观念,采取一定的措施和策略让学生将终身学习养成一种良好的习惯。组建以教师为核心的课题研究组,健全学生的人格和素质发展,以扎实的理论知识、极强的实践动手能力为基础,使教学与科研完美结合。教师将科研项目分解为学生力所能及的小课题,以老师为指导,选择能力较强的学生作为课题负责人,组员充分发挥所学理论和技能,以科学合理的方法手段解决问题,培养学生的工程实践能力,让学生掌握一定的创新方法,进而更加激发学生的学习兴趣,增强学生的学习能力。同时,培养学生查阅资料、文献的能力,注重培养学生的知识积累和灵活运用意识,以学生的实际应用能力为主要目的,加强学生的知识应用、动手操作、团队协作、创新创造等能力的培养,以适应社会需求、企业需要的综合素质强的应用型人才。

程序设计论文篇(9)

2、程序设计中&符号的使用

C++程序中&符号出现的情况是标示为引用,对于函数的变化中会起到一定的作用,虽然不改变代码的性质,但是对于函数的定义还是会出现一定的影响。&符号改变的数学函数的参数变化,对于参数的定义域起到了重要的作用。在C语言中的函数值的变化,其中关于main函数的变化之最多,也是在程序研究中使用&符号最多、最为关键的因素之一。在对于main函数的&符号使用中,首先要弄清楚函数的最初原型,对于函数的表达意义要有初步的了解,并且能够合理的使用程序的改变方程式,对于main中的函数参数中&符号也有着不同的规范要求。在main可编辑函数中,agent是表示函数中参数的含义,&符号是表示为函数的变化地址,同时&符号也表达出函数中参数的个数,把agent最为函数参数的指导性参数值进行分析判断,统计&符号可以得到函数相关数组的即时数组信息。在操作系统中,函数中&符号的配置启动中,完全取决于操作系统的函数变化,对于操作中函数的初始变化值有着严格的要求,并在运行初始阶段进行函数的归零处理,后期在每个不同函数变换的模块当中,提取出不同数值的数据参数,来指导计算机程序的有效运行状态。通过改变符号的方式可以对于程序的效率有一定的提升。由上述例子看出,在函数中传引用和传指针的效果是相同的。这样,被调函数中的形参实际上就是主调函数中的实参或目标变量的别名,因此被调函数中所有对形参的操作实际上就是对相应的主调函数中目标变量的操作,一般传递的数据较多时,采用引用时程序的效率较高。虽然使用指针传递地址也能达到相同的效果,但因为在被调函数中还要为形参分配存储单元,而且在主调函数的实参必须使用变量的地址,这种方式必将导致程序阅读性较差,而使用引用便显得简单易懂,而且程序结构也更清晰。常引用声明方式:const类型标识符&引用名=目标变量名;在这种引用方式中,由于目标变量的值的修改不能通过引用来间接修改,因此可以很好地保护目标变量的值,使得引用有了很好的安全性,即相当于目标为const型的变量。当参数需要定义为引用型是,如果实际需要容许尽可能定义为const,这样可以保证代码的健壮性,同时也能带来其它的好处。在函数的定义过程中对于代码的变量指标在初始定义之后,在对变量的变化值进行记录,该代码指针变量便指向初始化指针变量的目标变量。通常情况下规定,具体操作过程时,对代码的指针的操作实际是对其所指向变量的间接操作。程序设计过程中使用指针可以让系统的程序的可读性降低,在操作起来也相对的困难。而由于引用本身就是目标变量的别名,编程中对引用的操作就是对目标变量的直接操作。引用其实也是一种指针,只不过其操作方式与指针不相同,指针可以一对多进行映射,而引用却只能一对一的进行,也就是一个参数对应一个代码指针数值,即&符号中的数字不能被改变,因此在对于符号的使用中,鉴于引用比指针更容易进行操控和编辑。

程序设计论文篇(10)

ADSP21160具有很大的片内存储区、多重内部总线结构、独立的I/O子系统;具有构造多处理器系统的所有特点,能够真正支持处理器数目的可调节功能,十分适合组成高性能浮点的多DSP系统。

VxWorks是目前世界上用户数量最大的实时操作系统。这使它除了具有优越的技术性能之外,还具有丰富的应用软件支持、良好的技术服务和可靠的系统稳定性。由于它具有以上优点,本系统中选用了VxWorks作为MVME167的操作系统。

一、ADSP21160的特点

ADSP21160是AD公司采用超级哈佛结构的一种新产品。21160的汇编代码与2106x兼容,处理器具有SIMD(单指令流多数据流)功能;而2106x只具有SISD(单指令流单数据流)功能。为了充分利用这种新的功能,一些指令做了一些改变。ADSP21160包括1个100/150MHz的运算核、双端片内SRAM、1个支持多处理器的集成在片内的I/O处理器和多重内部总线以消除I/O瓶颈。

ADSP21160的汇编源代码与2106x兼容。SIMD计算结构:2个32bit的计算单元,其中每一个单元包括乘法器、ALU、移位寄存器及寄存器文件。具有完备的与设备接口功能。包括独立的I/O处理器、4Mbit的片内双端SRAM、可直接连接的多处理器特性及端口(串口、连接口、外总线及JTAG)。

ADSP21160包括2个运算处理单元,具有SIMD功能。处理单元指的是PEX和PEY。PEX始终是有效的,而PEY的有效是通过设置MODE1寄存器中的PEYEN位来实现的。当PEY模式有效时,同一条指令在2个处理器单元中都得到执行,但每一个处理器单元中的操作数不同。

SIMD模式在存储区和处理器单元之间的数据传输也是很有作用的。当使用SIMD模式,通过加倍数据带宽来保证处理器单元的操作。在SIMD模式,当使用DAGs来传输数据时,存储区每次访问所传输的是两个数据值。

ADSP21160包括4Mbit的片内SRAM,分为两块,每一块2Mbit。可以定义为不同字长的指令和数据存储。每一个存储块的双端口结构可以使存储块独立地被运算核处理和I/O处理器访问。21160的存储区最大可以容纳128K的32bit数据,或256K的16bit数据,或85K的48bit指令,或其他混合字长的数据,但总和最大为4Mbit。所有存储区可以16、32、48、64bit字长的字访问。外端口支持处理器与片外存储器及外设的接口,片外的4G地址空间属于21160的统一地址空间。

外端口支持同步、异步及同步BURST访问。DMA控制器的操作相对处理器运算核是独立和不可见的,即DMA操作可与执行指令同时进行。DMA传输可以在内部存储区与外部存储区、设备或主机之间进行。21160共有14个DMA通道,其中:连接口(linkport)占6个;串口占4个;外端口(externalport)占4个。21160可以通过DMA传输来下载程序,异步设备也可以通过DMA请求/应答线来控制2个DMA通道。

21160具有许多特点支持多DSP系统。外端口与连接口支持多处理器系统的直接连接,外端口支持统一的地址空间,允许DSP之间互相访问。片内具有分布式总线仲裁逻辑,最多支持6片21160和主机连接。外端口的最大数据传输率为400MB/s,广播写信号可以同时发

送到各片21160。6个连接口提供了另一种方法实现多处理器之间的通信。连接口的最高传输速率为600MB/s。

整个系统基于VME总线。VME总线系统作为最早的国际通用开放式总线,自1981年起,经历了近20年的发展。其影响不断扩大,功能不断完善,现已成为性能最好、应用最广的国际总线标准之一。

根据设计要求,采用了4片ADSP21160。片外共享内存SRAM可以被主机和各片DSP直接访问;EPROM用来存放初始化程序和各片DSP要运行的程序,在系统上电后这些程序被下载到各片DSP中;LEDs用来显示插件的状态,如reset、normal等。每一片都有1个连接口连到插件的前面板,这样前端采集来的数据就可以很方便地传输到多DSP上,而且也使数据的传输模式更加灵活。

连接口(linkport)是SHARC系列DSP芯片的一个特点。ADSP21160共有6个8bit连接口提供额外的I/O服务。在100MHz时钟下运行时,每个连接口可达100MB/s。连接口尤其适合多处理器间点到点的连接。连接口可以独立地同时操作,通过连接口的数据封装成48/32bit字长后,可以从片内存储区直接被运算核读取或DMA传输。每一个连接口有它自己的双缓冲I/O寄存器,数据传输可编程,硬件由时钟/应答握手线控制。4片DSP使用连接口实现DSP间两两互连。

21160的主机接口可以很方便地与标准微处理器总线(16/32bit)相连,几乎不需要额外硬件。主机通过21160的外端口对其进行访问,存储区地址映射为统一的地址空间。4个DMA通道可以用于主机接口,代码和数据传输的软件开销很小,主处理器通过HBR、HBG和REDY信号线与21160进行通信,主机可以对片内存储区进行直接读写。

二、开发环境Tornado

VxWorks的开发环境是WindRiver公司提供的Tornado。Tornado采用主机-目标机开发方式,主机系统可采用运行SunSolaris、HP-UX以及Win95/NT的工作站或个人计算机,VxWorks则运行在Intelx86、MC68K、PowerPC或SPARC等处理器上。Tornado支持各种主机-目标机连接方式,如以太网、串行线、在线仿真器和ROM仿真器。

Tornado的体系结构使得许多强有力的开发工具可以用于各种目标机系统和各种主机-目标机连接方式下,而不受制于目标机的资源和通信机制。同时VxWorks具有良好的可剪裁性。因此它适用于各种嵌入式环境的开发,小到资源极其有限的个人手持式设备如PDA(PersonalDigitalAssistant);大到多处理机系统,如VME系统。

Tornado可提供一个直观的、可视化的、用户可扩充的开发环境,极大缩短了开发周期。同时,由于Tornado是一个完全的开放系统,使得集成第三方开发工具变得十分容易。

主机与目标机之间的通信是通过运行各自处理器上的进程来完成的,使主机上的开发工具和目标机的操作系统可以完全脱离相互连接的方式。

为了摆脱主机-目标机通信带宽和目标机资源的限制,Tornado将传统的目标机方的工具迁移到主机上,如shell、loader和符号表等。这样,系统不再需要额外的时间和带宽在主机和目标机之间交换信息,降低了对连接带宽的需求,也避免了目标机的资源(如内存)被工具或符号表大量占用,使得应用程序拥有更多的系统资源。同时这种迁移也使得各种主机开发工具独立于目标机存在,从而使同一主机平台上的工具可以用于所有的目标机系统。

作为一个应用软件开发环境,Tornado提供了友好的可视化开发界面、交叉编译环境、源码级调试工具、目标机命令解释器和目标机状态监视器等多种应用工具,为应用软件开发提供了一个高效而可靠的平台。

三、程序设计

我们选用的DSP开发工具是AD公司提供的VisualDSP。这是一个集成开发环境,支持对SHARC系列DSP芯片的开发。实时操作系统VxWorks的开发工具是WindRiver公司的Tornado集成开发工具。VisualDSP可以C语言或汇编语言编

写的DSP代码,最新版本的VisualDSP还支持C++。它还有1个优点,就是可以编译多片DSP的源代码,并产生下载文件,这就可以很方便地进行多DSP系统的软件模拟。

ADSP21160阵列的设计结构使它既可以构成单指令流多数据流(SIMD)的并行处理机,也可以构成多指令流单数据流(MISD)或多指令流多数据流(MIMD)的流水线处理机,视用户的要求而定。这两种并行方案的选择,简单来说就是选择分割数据流还是分割处理工序。SIMD方案的原理如图1所示。

以下介绍我们实验室承担的水声信号处理系统。本系统以VME总线为系统开发平台,前端调理模件、模数转换模件和前端控制模件等为VME插件,采用SHARC级DSP芯片阵列完成声纳信号实时处理,基于嵌入式实时操作系统VxWorks及X窗口系统的中央控制和显示。

图2是4片DSP的任务分配图。从前端采集来的信号,经波束形成和复解调,再经过窄带滤波后的信号分为两路,一路送去进行幅度检波,一路做频域处理。幅度检波就是对复信号求模,根据信号幅度判决有无目标存在。频域处理分两种情况:当发射信号为单频脉冲时,进行功率谱估计,然后根据多普勒频移估计目标速度;当发射信号为双曲调频信号时,进行相关处理。

声纳综合数据处理主要包括主动声纳信号处理和被动声纳信号处理。其中,主动声纳信号处理又根据发射信号的不同,分为非相干处理、相干处理、功率谱处理。声纳综合数据处理主要完成:目标自动检测、目标参数测定和动目标跟踪。

四、操作流水线

操作流水线是模块内数据计算与I/O的流水线,物理上表现为CPU与I/O端口的DMA之间的并行。在前端处理中由于数据率高,通信开销很大。以通信任务最为繁重的复解调和多普勒补偿模块为例,输入数据率为2Mw/s,输出数据率为4Mw/s,高速连接口LinkPort最高速率为100Mw/s,如果采用串行传输的话,通信时间就将占用60%以上的处理时间,计算时间显然严重不足。所以必须采用并行执行,流程图如图3所示。这也是一种异步流水线方式,每次传送和计算完成都须要设置标志以通知下一操作。

结束语

在VxWorks实时操作系统下,4片ADSP21160上的程序已经通过模拟输入和系统测试。采用SHARCDSP阵列能够很好地完成声纳信号实时处理,每一片DSP至少有10%的计算裕量,基本达到设计要求。

送到各片21160。6个连接口提供了另一种方法实现多处理器之间的通信。连接口的最高传输速率为600MB/s。

整个系统基于VME总线。VME总线系统作为最早的国际通用开放式总线,自1981年起,经历了近20年的发展。其影响不断扩大,功能不断完善,现已成为性能最好、应用最广的国际总线标准之一。

根据设计要求,采用了4片ADSP21160。片外共享内存SRAM可以被主机和各片DSP直接访问;EPROM用来存放初始化程序和各片DSP要运行的程序,在系统上电后这些程序被下载到各片DSP中;LEDs用来显示插件的状态,如reset、normal等。每一片都有1个连接口连到插件的前面板,这样前端采集来的数据就可以很方便地传输到多DSP上,而且也使数据的传输模式更加灵活。

连接口(linkport)是SHARC系列DSP芯片的一个特点。ADSP21160共有6个8bit连接口提供额外的I/O服务。在100MHz时钟下运行时,每个连接口可达100MB/s。连接口尤其适合多处理器间点到点的连接。连接口可以独立地同时操作,通过连接口的数据封装成48/32bit字长后,可以从片内存储区直接被运算核读取或DMA传输。每一个连接口有它自己的双缓冲I/O寄存器,数据传输可编程,硬件由时钟/应答握手线控制。4片DSP使用连接口实现DSP间两两互连。

21160的主机接口可以很方便地与标准微处理器总线(16/32bit)相连,几乎不需要额外硬件。主机通过21160的外端口对其进行访问,存储区地址映射为统一的地址空间。4个DMA通道可以用于主机接口,代码和数据传输的软件开销很小,主处理器通过HBR、HBG和REDY信号线与21160进行通信,主机可以对片内存储区进行直接读写。

二、开发环境Tornado

VxWorks的开发环境是WindRiver公司提供的Tornado。Tornado采用主机-目标机开发方式,主机系统可采用运行SunSolaris、HP-UX以及Win95/NT的工作站或个人计算机,VxWorks则运行在Intelx86、MC68K、PowerPC或SPARC等处理器上。Tornado支持各种主机-目标机连接方式,如以太网、串行线、在线仿真器和ROM仿真器。

Tornado的体系结构使得许多强有力的开发工具可以用于各种目标机系统和各种主机-目标机连接方式下,而不受制于目标机的资源和通信机制。同时VxWorks具有良好的可剪裁性。因此它适用于各种嵌入式环境的开发,小到资源极其有限的个人手持式设备如PDA(PersonalDigitalAssistant);大到多处理机系统,如VME系统。

Tornado可提供一个直观的、可视化的、用户可扩充的开发环境,极大缩短了开发周期。同时,由于Tornado是一个完全的开放系统,使得集成第三方开发工具变得十分容易。

主机与目标机之间的通信是通过运行各自处理器上的进程来完成的,使主机上的开发工具和目标机的操作系统可以完全脱离相互连接的方式。

为了摆脱主机-目标机通信带宽和目标机资源的限制,Tornado将传统的目标机方的工具迁移到主机上,如shell、loader和符号表等。这样,系统不再需要额外的时间和带宽在主机和目标机之间交换信息,降低了对连接带宽的需求,也避免了目标机的资源(如内存)被工具或符号表大量占用,使得应用程序拥有更多的系统资源。同时这种迁移也使得各种主机开发工具独立于目标机存在,从而使同一主机平台上的工具可以用于所有的目标机系统。

作为一个应用软件开发环境,Tornado提供了友好的可视化开发界面、交叉编译环境、源码级调试工具、目标机命令解释器和目标机状态监视器等多种应用工具,为应用软件开发提供了一个高效而可靠的平台。

三、程序设计

我们选用的DSP开发工具是AD公司提供的VisualDSP。这是一个集成开发环境,支持对SHARC系列DSP芯片的开发。实时操作系统VxWorks的开发工具是WindRiver公司的Tornado集成开发工具。VisualDSP可以C语言或汇编语言编

写的DSP代码,最新版本的VisualDSP还支持C++。它还有1个优点,就是可以编译多片DSP的源代码,并产生下载文件,这就可以很方便地进行多DSP系统的软件模拟。

ADSP21160阵列的设计结构使它既可以构成单指令流多数据流(SIMD)的并行处理机,也可以构成多指令流单数据流(MISD)或多指令流多数据流(MIMD)的流水线处理机,视用户的要求而定。这两种并行方案的选择,简单来说就是选择分割数据流还是分割处理工序。SIMD方案的原理如图1所示。

以下介绍我们实验室承担的水声信号处理系统。本系统以VME总线为系统开发平台,前端调理模件、模数转换模件和前端控制模件等为VME插件,采用SHARC级DSP芯片阵列完成声纳信号实时处理,基于嵌入式实时操作系统VxWorks及X窗口系统的中央控制和显示。

图2是4片DSP的任务分配图。从前端采集来的信号,经波束形成和复解调,再经过窄带滤波后的信号分为两路,一路送去进行幅度检波,一路做频域处理。幅度检波就是对复信号求模,根据信号幅度判决有无目标存在。频域处理分两种情况:当发射信号为单频脉冲时,进行功率谱估计,然后根据多普勒频移估计目标速度;当发射信号为双曲调频信号时,进行相关处理。

声纳综合数据处理主要包括主动声纳信号处理和被动声纳信号处理。其中,主动声纳信号处理又根据发射信号的不同,分为非相干处理、相干处理、功率谱处理。声纳综合数据处理主要完成:目标自动检测、目标参数测定和动目标跟踪。

四、操作流水线

上一篇: 大学生本科论文 下一篇: 限额管理论文
相关精选
相关期刊