当前位置:文档之家› 编程应用范例

编程应用范例

编程应用范例
编程应用范例

第4节编程应用范例

[学习要求]掌握MCS-51单片机的基本应用。

[重点与难点]

重点:动态扫描LED显示电路编程范例;定时/计数器软件编程范例;A/D接口电路;矩阵式键盘接口技术及编程。

难点:动态扫描LED显示电路编程范例;定时/计数器软件编程范例。

[理论内容]

一、并行I/O口编程范例

单片机I/O的应用最典型的是通过I/O口与7段LED数码管构成显示电路,下面从常用的LED显示原理开始,详尽讲解利用单片机驱动LED数码管的电路及编程原理,目的在于通过这一编程范例,让初学者了解I/O口的编程原理,意在起举一反三,抛砖引玉的作用。

LED的发光原理,稍有电子技术基础的人士都很清楚,这里不想作过多的介绍,7段LED数码管,则在一定形状的绝缘材料上,利用单只LED组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出0-9的数字。

LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图1是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。

图1 段数码管

将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。

以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED 的电流通常较小,一般均需在回路中接上限流电阻。假如我们将"b"和"c"段接上正电源,其它端接地或悬空,那么"b"和"c"段发光,此时,数码管显示将显示数字“1”。而将"a"、"b"、"d"、"e"和"g"段都接上正电源,其它引脚悬空,此时数码管将显示“2”。其它字符的显示原理类同,读者自行分析即可。

图2 LED显示电路

图2中使用80C51单片机,电容C1、C2和CRY1组成时钟振荡电路,这部分基本无需调试,只要元件可靠即会正常起振。C3和R1为单片机的复位电路,80C51的并行口P1.0-P1.7直接与LED数码管的"a-f"引脚相连,中间接上限流电阻R3-R10。值得一提的是,80C51并行口的输出驱动电流并非很大,为使LED有足够的亮度,LED数码管应选用高亮度的器件。

此外,图中的80C51还可选用C51系列的其它单片机,只要它们的指令系统兼容C51即可正常运行,程序可直接移植,例如选用低价Flash型的AT89C1051或 2051等,它们的ROM可反复擦写,非常适合作实验用途。

·程序清单:

01 START: ORG 0100H ;程序起始地址

02 MAIN: MOV R0,#00H ;从“0”开始显示

03 MOV DPTR,#TABLE ;表格地址送数据指针

04 DISP: MOV A,R0 ;送显示

05 MOVC A,@A+ADPTR ;指向表格地址

06 MOV P1,A ;数据送LED

07 ACALL DELAY ;延时

08 INC R0 ;指向下一个字符

09 CJNE R0,#0AH,DISP ;未显示完,继续

10 AJMP MAIN ;下一个循环

11 DELAY: MOV R1,#0FFH ;延时子程序,延时时间赋值

12 LOOP0: MOV R2,#0FFH

13 LOOP1: DJNZ R2,LOOP1

14 DJNZ R1,LOOP0

15 RET ;子程序返回

16 TABLE: DB 0C0H ;字型码表

17 DB 0F9H

18 DB 0A4H

19 DB 0B0H

20 DB 99H

21 DB 92H

22 DB 82H

23 DB 0F8H

24 DB 80H

25 DB 90H

26 END ;程序结束

二、动态扫描LED显示电路编程范例

上一小节讲述了单只LED与单片机的接口电路及编程实例,目的在于让初学者了解LED在单片机中的应用原理,单只LED显示在实际应用中并无多大用途,一般都是多位的LED显示。现在作进一步学习,要讲解的是8位LED的显示原理及实际的编程方法。这里没有采用多I/O口的8051系列单片机,而是采用了完全兼容C51指令系统的质优价廉的AT89C2051单片机,它的软件编程与C51完全一致。

在多数的应用场合中,设计者并不希望使用多I/O端口的单片机,原则上是使用尽量少引脚的器件。在没有富余端口的情况下,怎样通过扩展电路达到预期的目的呢?这里希望通过此例使设计人员在实际应用中了解一点电路扩展的原理,对实际的应用有所帮助。

图3 LED动态扫描电路

图3中,由于AT89C2051外部15个I/O引脚,即P1口和P3口,单P3口的P3.6是不引出的,15个I/O口要直接驱动8位LED显然是不够的,电路中通过一片面74LS273对地址进行锁存,如果P1口仅用于显示驱动,而没有与其它外设进行数据交换,可省略这个锁存器,直接或通过其他驱动电路驱动连接LED。地址线通过一片74LS138三—八译码器对8位LED进行分时选通,这样在任一时刻,只有一位LED是点亮的,但只要扫描的频率足够高(一般大于25Hz),由于人眼的视觉暂留特性,直观上感觉却是连续点亮的,这就是常说的动态扫描电路。

此电路中,74LS273用于驱动LED的8位段码,8位LED相应的"a"—"g"段连在一起,它们的公共端分别连至由74LS138(点击芯片型号可浏览其详细的技术手册)译码选通后经74LS04反相驱动的输出端。这样当选通某一位LED时,相应的地址线(74LS04输出端)输出的是高电平,所以LED选用共阳LED数码管。

动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取几个ms左右为宜,这就要求在编写程序时,选通某一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。在C51指令中,延时子程序是相当简单的,并且延时时间也很容易更改,可参见程序清单中的DELAY延时子程序。

为简单起见,我们只是编写了8位LED同步显示"00000000"—"11111111"直到"99999999"数字,并且反复循环。程序很简单,流程图略去。

·程序清单:

三、串行口动态扫描显示电路编程范例

单片机并行I/O口数量总是有限的,有时并行口需作其他更重要的用途,一般也不会用数量众多的并行I/O口专门用来驱动显示电路,能否用80C51的串行通信口加上少量I/O及扩展芯片用于显示电路呢?答案是肯定的。

80C51的串行通信口是一个功能强大的通信口,而且是相当好用的通信口,用于显示驱动电路再合适不过了,下面就根据这种需要设计一个用两个串行通信口线加上两根普通I/O 口,设计一个4位LED显示电路。当然只要再加上两根I/O口线即可轻易实现8位LED的显示电路。

图4 串行动态LED扫描电路

图4中采用C2051单片机,同时用廉价易得的74LS164和74LS138作为扩展芯片。74LS164是一个8位串入并出的移位寄存器,其此处的功能是将C2051串行通信口输出的串行数据译码并在其并口线上输出,从而驱动LED数码管。74LS138是一个3-8译码器,它将单片机输出的地址信号译码后动态驱动相应的LED。但74LS138电流驱动能力较小,为此,电路使用了未级驱动三极管2SA1015作为地址驱动。

将4只LED的段位都连在一起,它们的公共端则由74LS138分时选通,这样任何一个时刻,都只有一位LED在点亮,也即动态扫描显示方式。使用串行口进行LED通信,程序编写相当简单,用户只需将需显示的数据直接送串口发送缓冲器,等待串行中断即可,看看下面的程序。·程序清单

四、定时/计数器软件编程范例

下面以一个实际的时钟电路来说明定时器的软件编程方法,时钟是最为常见的显示时、分、秒为单位的计时工具,它是典型的应用代表。

时钟的最小计时单位是秒,但使用单片机定时器来进行计时,若使用6.0MHz的晶振,即使按工作方式1工作,最大的计时时间也只能到131ms,所以我们可把每个定时时间取125ms,这样定时器溢出8次(125ms╳8=1000ms)就得到最小的计时单位秒。而要实现8次计数用软件方法实现是轻而易举的。

电路中使用定时器1,以工作方式1工作,定时器进行125ms定时。采用中断方法进行

溢出次数的累计,当计满8次即得到1秒的计时。

一个时钟的计时累加,要实现分、时的进位,要用到多种进制,秒、分、时中的进位是十进制,秒向分进位和分想时进位却是六十进制,而每天又有十二小时制或二十四小时制,它们分别又是十二进制和二十四进制。从秒到分和从分到小时可以通过软件累加和数值比较方法实现。

在单片机的内部RAM中,需要设置显示缓冲区,显示的时、分、秒值是从显示缓冲区中取出的,在RAM中设置四个单元作为显示缓冲区,分别是7AH、7BH、7CH。为使电路和原理叙述方便,这里不显示秒值,秒的进位我们通过闪烁分值实现。这样一共有四位LED 分别显示时和分值。同时时钟都需要校准的。在程序中还需设置显示码表,要显示的数值通过查表指令将显示用的真正码值送到LED上。电路中用单片机AT89C2051的P3.4和P3.5两个I/O口外接微动开关来实现时和分的校正,每按一次小时或分值加1,连续按下数值累计下去,实现时钟的校准。

在电路中还设置了一个蜂鸣器,用作简单报时用,如可设早上7:30分起床,中午1点30分再有起床报时,每次响时1分钟,响1秒,停2秒的方式,而不是连续响铃。这个程序采用12小时制,为此,要在程序中设置相应的标志,以利于主程序识别。同样计时程序中还会有几个相关的标志,主要是控制程序流的转向。程序中都作了较详细的注释,这里不再赘述(见附录)。

图5 时钟电路原理图

图5中,硬件电路还是以低价的AT89C2051单片机为微处理单元,这个芯片兼容C51指令系统,在C51上编写的程序,无需任何修改即可方便地移植到这个芯片上来。以P1口

作为LED的字段位驱动输出,秒的“进位”采用分值闪烁提示,亮0.5秒,熄0.5秒。,P3.1—P3.3用于位驱动,使用动态扫描方式显示,每位LED的显示时间10—25ms之间均可,扫描频率不能太高,否则每位LED显示的时间过短,亮度太低,不易于观看,以肉眼不感觉到LED闪烁为宜。为了直观,驱动输出没有采用集成电路,而是使用了分立元件—三极管,但工作原理却是一致的。

这个电路结构决定LED采用共阳极的数码管,可以采用LQ5101BS普通的发光二极管,驱动三极管可采用易得的2SA1015和2SC1815等型号,当然也可使用象S9012,S9013,S9014,2N5401,2N5555等小功率三极管,其它器件没有特殊要求。为便于实验,单片机AT89C2051可采用DIP20P插座,程序编制好后,调试无错,即可烧写到AT89C2051中,值得一提的是,AT89C2051是Falsh程序存储器,程序可反复擦写,对于做实验是非常方便的。

五、MCS-51高精度A/D接口电路—ICL7135

ICL7135具有±20000个数的分辨率,而且有BCD码和STB选通信号输出,与微机接口十分方便,因此有很多文章介绍ICL7135作为微机的高精度A/D接口电路。本文与其他文章不同之处是利用ICL7135的“busy”输出信号与单片机MCS-51衔接。

在小型化仪表中,应该以最少的元件完成尽可能多的任务,8031需外接EPROM,剩下的16个I/O口是十分宝贵的。如果利用ICL7135的BCD码和STB选通信号就要占5个I/O 口,而利用ICL7135的“busy”端,只要一个I/O和8031内部的一个定时器就可以把ICL7135的数据送入单片机。

为了便于读者理解,首先介绍ICL7135的“busy”端的功能。ICL7135是以双积分方式进行A/D转换的电路。每个转换周期分为三个阶段:

1.自动调零阶段

2.被测电压积分阶段

3.对基准电压进行反积分阶段

图6 busy输出波形

以输入电压Vx为例,其积分器输出端(ICL7135的4脚)的波形如图6所示。“busy”输出端(ICL7135的21脚)高电平的宽度等于积分和反积分时间之和。ICL7135内部规定积分时间固定为10001个时钟脉冲时间,反积分时间长度与被测电压的大小成比例。如果利用单片机内部的计数器对ICL7135的时钟脉冲计数,利用“busy”作为计数器门控信号,控制计数器只能在busy为高电平时计数,将这段busy高电平时间内计数器的内容减去10001,其余数便等于被测电压的数值。

图7 定时器T0在MODE1时,其长度为16位

图7是MCS-51定时器的逻辑框图,如果把T0规定为模式1定时器方式。定时器控制端(8031的12脚)接ICL7135的“busy”端。这样就能实现计数器由“busy”控制对单片机1/12时钟频率的计数要求。

图8 ICL7135与8031的接口电路

图8是ICL7135与单片机MCS-51通过“busy”接口的电路图。若8031的时钟采用6MHz 晶体,在不执行MOVX指令的情况下,ALE是稳定的1MHz频率,经过4分频可得到250kHz 的稳定频率,传给ICL7135时钟输入端,使ICL7135的转换速率为每秒6.25次,选取这一转换速率,一方面照顾ICL7135A/D转换的精度,另一方面为了尽量少占用8031的资源。定时器为16位计数器,最大计数值65535。在6.25次/秒转换速率条件下,满度电压输入时,busy宽度为30001个时钟脉冲。再结合图4.5-1和2可知,8031内部定时器的输入频率是500kHz,比ICL7135的时钟频率(250kHz)高1倍,在满度电压输入时,定时器计数值为30001x2=60002。不超过定时器最大值。在“busy”高电平期间定时器的数值除以2,再减去10001,余数便是被测电压的数值。具体程序如下:

六、矩阵式键盘接口技术及编程

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图9所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

图9 矩阵式键盘接口电路

矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。具体的识别及编程方法如下所述。

确定矩阵式键盘上何键被按下通常采用“行扫描法”,行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,其识别过程如下:

判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。

判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。其方法

是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。

下面给出一个具体的例子:

电路原理图仍如图4.6-1所示。8031单片机的P1口用作键盘I/O口,键盘的列线接到P1口的低4位,键盘的行线接到P1口的高4位。列线P1.0-P1.3分别接有4个上拉电阻到正电源+5V,并把列线P1.0-P1.3设置为输入线,行线P1.4-P.17设置为输出线。4根行线和4根列线形成16个相交点。

检测当前是否有键被按下。检测的方法是P1.4-P1.7输出全“0”,读取P1.0-P1.3的状态,若P1.0-P1.3为全“1”,则无键闭合,否则有键闭合。为了去除键抖动,当检测到有键按下后,延时一段时间再做下一步的检测判断。

若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进行扫描。P1.4-P1.7按下述4种组合依次输出:

P1.7 1 1 1 0

P1.6 1 1 0 1

P1.5 1 0 1 1

P1.4 0 1 1 1

在每组行输出时读取P1.0-P1.3,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值

为了保证键每闭合一次CPU仅作一次处理,必须去除键释放时的抖动。

图10 键盘扫描程序的流程图

键盘扫描程序(流程图见图10所示)如下:

SCAN: MOV

P1,#0FH

MOV A,P1

ANL A,#0FH

CJNE A,#0FH,NEXT1 ;当前有键被按下

SJMP NEXT3

NEXT1: A CALL D20MS ;有键按下后,延时一段时间再做下一步的检测判断

MOV A,#0EFH

NEXT2: M OV R1,A

MOV P1,A

MOV A,P1

ANL A,#0FH

CJNE A,#0FH,KCODE;

MOV A,R1

SETB C

RLC A

JC NEXT2

NEXT3: M OV R0,#00H

RET

KCODE: MOV B,#0FBH

NEXT4: R RC A

INC B

JC NEXT4

MOV A,R1

SWAP A

NEXT5: R RC A

INC B

INC B

INC B

INC B

JC NEXT5

NEXT6: M OV A,P1 ANL A,#0FH

CJNE A,#0FH,NEXT6 MOV R0,#0FFH RET

软件项目详细设计文档示例模版

XXX软件/项目/系统 详细设计说明书 拟制日期 评审人日期 批准日期 编写单位或个人

修订历史

目录 XXX软件详细设计说明书 (1) Revision Record 修订记录 (2) 1引言 (1) 1.1编写目的 (1) 1.2背景 (1) 1.3参考资料 (1) 1.4术语定义及说明 (1) 2设计概述 (1) 2.1任务和目标 (1) 2.1.1需求概述 (1) 2.1.2运行环境概述 (1) 2.1.3条件与限制 (1) 2.1.4详细设计方法和工具 (1) 3系统详细需求分析 (1) 3.1详细需求分析 (2) 3.2详细系统运行环境及限制条件分析接口需求分析 (2) 4总体方案确认 (2) 4.1系统总体结构确认 (2) 4.2系统详细界面划分 (2) 4.2.1应用系统与支撑系统的详细界面划分 (2) 4.2.2系统内部详细界面划分 (2) 5系统详细设计 (2) 5.1系统结构设计及子系统划分 (3) 5.2系统功能模块详细设计 (3) 5.3系统界面详细设计 (3) 5.3.1外部界面设计 (3) 5.3.2内部界面设计 (3) 5.3.3用户界面设计 (3) 6、数据库系统设计 (4) 6.1设计要求 (4) 6.2 信息模型设计 (4) 6.3数据库设计 (4) 6.3.1设计依据 (4) 6.3.2数据库种类及特点 (4) 6.3.3数据库逻辑结构 (4) 6.3.4物理结构设计 (4) 6.3.5数据库安全 (4) 6.3.6数据字典 (4) 7非功能性设计 (4) 8 (5) 9环境配置 (5)

1引言 1.1编写目的 说明编制的目的是,大体上介绍一下软件系统中各层次中模块或子程序、以及数据库系统的设计考虑,表明此文档是主要是为编码人员提供服务,并且其他类型的项目参与人员也可以通过此文档对软件/项目有更深入了解。 1.2背景 说明此软件或系统的项目背景、需求背景、开发目的等,还可以列出参与人员等相关信息。 1.3参考资料 列出本文档中引用的文献、资料、标准等相关信息(一般是具有出版或版权性质的文件)。 1.4术语定义及说明 列出文档中用到的和开发有关,或与行业、业务、需求有关的专业术语,并进行解释。 2设计概述 2.1任务和目标 说明详细设计的任务及详细设计所要达到的目标。 2.1.1需求概述 对所开发软件的概要描述, 包括主要的业务需求、输入、输出、主要功能、性能等,尤其需要描述系统性能需求。 2.1.2运行环境概述 对本系统所依赖于运行的硬件,包括操作系统、数据库系统、运行库、中间件、接口软件、可能的性能监控与分析等软件环境的描述,及配置要求。 2.1.3条件与限制 详细描述系统所受的内部和外部条件的约束和限制说明。包括业务和技术方面的条件与限制以及进度、管理等方面的限制。 2.1.4详细设计方法和工具 简要说明详细设计所采用的方法和使用的工具,如数据库设计工具、界面设计工具、原型设计工具等。 3系统详细需求分析 主要对系统级的需求进行分析。首先应对需求分析提出的企业需求进一步确认,并对由于情况变化而带来的需求变化进行较为详细的分析。

程序设计基础课程设计报告 内容样例

第一章目的与要求 书上有。 第二章需求分析 软件设计的一个重要的环节就是需求分析。本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。以下是ATM取款机管理系统所需要的需求分析。 ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。 ①登录: 输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面 ②挂失功能: 确认是否对银行卡进行挂失,挂失后账户无法操作 ③修改密码: 用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码 ④取款功能: 用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内 ⑤转账功能: 用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账

号 ⑥查询功能: 用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额 模拟ATM取款机的操作: 首先录入账户信息,格式如下 ㈠、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 ㈡、查询功能:查询账户余额。 ㈢、取款功能:取款,更新余额。 ㈣、挂失功能:挂失后,该账户不能进行任何操作。 ㈤、修改密码:输入原密码和新设置密码。 ㈥、转账功能:输入转账的转出账户以及转账金额,进行转账。

第三章设计分析 3.1、ATM系统管理 3.1.1系统基本功能 首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并与ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。 基本功能: 登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 查询功能---------查询账户余额。 取款功能---------取款,更新余额。 挂失功能---------挂失后,该账户不能进行任何操作。 修改密码---------输入原密码和新设置密码。 转账功能---------输入转账的转出账户以及转账金额,进行转账。、

PIC编程指导文档

PIC-CCS编程教程 内部资料

写在扉页 希望尽我的绵薄之力给你一臂之力! 赠言: 生命因抗争而尊贵! 整理:Frankey 2010-5-1

第一部分:综述 相信通过前面单片机课程和智能电子制作二的学习,大家都已经很熟悉51单片机的编程规则和编程环境了,现在我们又将要接触PIC系列单片机的编程和学习,面对新的开发环境和芯片,有些同学觉得这个转换很难,其实一点都不难,大家都要有信心才行,对于每种芯片和其对应的开发环境,大家只要做到把握里面的规律,学起来是不会难的,在下面的学习中我们对PIC系列单片机选用MPLAB软件编写代码,编译器选用CCS编译器,不管是51单片机系统的开发还是PIC系列单片机的开发,其基础全是C语言(或者汇编语言),所不同的是各个编译器拥有不同的数据类型定义和各种特殊的处理器指令以及预处理指令。 1、CCS编译器定义的数据类型 在编写程序之前,我们首先需要了解CCS编译器支持的数据类型: 2、CCS编译器特有的处理器指令以及预处理指令

这一部分大家可以参看CCS_Microchip_PIC.pdf电子文档中的内容得到详细的结果。在CCS_Microchip_PIC书本的第三章对其进行了详细的讲解。 第二部分:IO端口操作 1、IO端口操作常用函数如下表所示: 上表常用的函数的参数具体使用规则可以通过下面两个途径得到: (1)芯片的头文件(本材料里面采用的芯片为PIC16f883,所以可以在CCS编译器安装路径中找到PIC16f883.h头文件了解)。 (2)通过MPLAB的帮助键调出CCS编译器的帮助文件进行查找了解。

概要设计说明书范例及模板

《XXXXXX》概要设计说明书 张三、李四、王五

1.引言 1.1编写目的 在本机票预定系统项目的前一阶段,也就是需求分析阶段中,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对航空公司、各旅行社及机场的实地调研中获得,并在需求规格说明书中得到详尽得叙述及阐明。 本阶段已在系统的需求分析的基础上,对机票预定系统做概要设计。主要解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。 在下一阶段的详细设计中,程序设计员可参考此概要设计报告,在概要设计对机票预定系统所做的模块结构设计的基础上,对系统进行详细设计。在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。 1.2项目背景 机票预定系统将由两部分组成:置于个旅行社定票点的前台客户程序,以及置于航空公司的数据库服务器。本系统与其他系统的关系如下: 1.3定义 1.3.1 专门术语 SQL SERVER: 系统服务器所使用的数据库管理系统(DBMS)。 SQL: 一种用于访问查询数据库的语言 事务流:数据进入模块后可能有多种路径进行处理。 主键:数据库表中的关键域。值互不相同。 外部主键:数据库表中与其他表主键关联的域。 ROLLBACK: 数据库的错误恢复机制。 1.3.2 缩写

系统:若未特别指出,统指本机票预定系统。 SQL: Structured Query Language(结构化查询语言)。 ATM: Asynchronous Transfer Mode (异步传输模式)。 1.4参考资料 以下列出在概要设计过程中所使用到的有关资料: 1.机票预定系统项目计划任务书浙江航空公司1999/3 2.机票预定系统项目开发计划《**》软件开发小组1999/3 3.需求规格说明书《**》软件开发小组1999/3 4.用户操作手册(初稿)《**》软件开发小组1999/4 5.软件工程及其应用周苏、王文等天津科学技术出版社1992/1 6.软件工程张海藩清华大学出版社1990/11 7.Computer Network A.S.Tanenbaun Prentice Hall 1996/01 文档所采用的标准是参照《软件工程导论》沈美明著的“计算机软件开发文档编写指南”。 2.任务概述 2.1 目标 2.2 运行环境 系统将由两部分程序组成,安装在各旅行社客户机上的客户程序及航空公司内的数据服务器程序。 根据调研得知所有旅行社的计算机配置均在Pentium 133级别以上,客户程序应能够在Pentium 133级别以上, Win NT环境下运行。 2.3 需求概述 浙江航空公司为方便旅客,需开发一个机票预定系统。为便于旅客由旅行社代替航空公司负责为旅客定票,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。 要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。 2.4 条件与限制 3.总体设计 3.1 处理流程 下面将使用(结构化设计)面向数据流的方法对机票预定系统的处理流程进行分

编写一个计算器程序课程设计报告 范例

《金融IT 入门-程序设计》 课程设计报告 中国地质大学长城学院 XX 系 2017年 月 3 日 目录 一.总体概述: 二.设计目标: 三.程序流程图: 四.程序代码: 五.设计 体会: 题目: 用Python 编写简易计算器程序 学 号: 专业: 班级: 姓名: 指导教师: 2016-2017学年 第二学期

一、设计内容 1.课程设计目的: 1)掌握Java语言的程序设计方法; 2)理论联系实际,进一步提高学生的软件开发技术; 3)培养学生分析、解决问题的能力; 4)提高学生实践论文撰写能力。 2.课程设计任务: 1)设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算); 2)有求倒数、退格和清零功能。 3.创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。图形界面采用继承windowadapter类,采取调用类方法来注册监听! 4.设计要求: 1)设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。

2)课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 3)认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。 二、原理与分析 1.开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。 2.设计思路 设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。 3.设计效果图 设计时先在设计界面中添加按钮等控件,后在按钮的actionPerformed事件中添加代码完成其功能其中调用了Java类中的Math函数库以及各种字符串操作。设计的界面如下: 图一计算器运行界面 三、设计过程 1.程序思路: 1)本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p 加入到”Center”区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。如: Button b=new Button(); (事件监听器); 2)事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完

c语言程序设计文档格式

封面 此页统一购买注意本页以下两项的填写 指导老师:李筠虞闯 完成日期:2016-6-5

成绩评定表

课程设计任务书

目录 1、内容及要求 ................................................ 错误!未定义书签。 2、功能分析 .................................................... 错误!未定义书签。 3、设计 ............................................................ 错误!未定义书签。 4、运行与测试 ................................................ 错误!未定义书签。 5、总结 ............................................................ 错误!未定义书签。参考文献 .......................................................... 错误!未定义书签。

1、内容及要求 1.1内容: 人事档案管理:建立数据文件(职工、部门、职称)完成:①数据录入②查询③插入、删除、修改④排序等功能。 1.2要求: 1.程序代码完成,编译运行成功。 2.数据输入首选采用文件的方式,其次键盘输入。 3.分析采用哪种合适的存储结构来储存数据 4.设计一定的用户界面,简洁。 2、功能分析 2.1. 程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样的重要性。在人事管理过程中,由于预计记录对于一个单位的人事数来说太大,操作除了能够增加、删除、修改、保存等外,更多的情况是查询,且能够实现快速查询。特别是当需要动态变化时利用指针,例如插入和删除数据等操作时,为方便插入和删除人事记录,通过数据的自动的移动数据,实现动态管理。 2.2本系统涉及的模块主要有:开始、系统管理、人事管理、信息查询等四大模块。 (1)开始界面主要包括: 各个功能的选择。 (1)人事管理主要包括: (编号、姓名等)基本内容的录入,增加等。 (2) 系统管理主要包括:员工信息的修改,排序等。 (3) 信息查询主要包括:员工信息的查找、删除等。 2.3功能模块图

需求分析说明书、详细设计说明书、概要设计说明书样例

以下是需求分析说明书、详细设计说明书、概要设计说明书样例 需要详细资料的去 https://www.doczj.com/doc/0213470489.html,/BBS/view.asp?ID={CA9329C0-93C5-4417-9170-452FF61E8C DB}&page=1下载 XX系统概要设计说明书 目录 1. 文档介绍1 1.1 文档目的1 1.2 文档范围1 1.3 读者对象1 1.4 参考文献1 1.5 术语与缩写解释1 2. 系统概述2 3. 设计约束2 3.1需求约束2 3.2隐含约束2 4. 设计策略3 4.1扩展策略3

4.2复用策略3 4.3折衷策略3 5.系统总体结构3 5.1、系统总体结构3 5.2、子系统功能及接口4 6. 子系统的结构与功能5 6.1、TERMSERV 5 7. 功能需求追溯5 8. 环境的配置5 9.其它6 附录 6 A、与主机接口6 B、与终端接口6 1. 文档介绍 1.1 文档目的 编写该文档的目的在于从总体设计的角度明确xxxx系统的功能和处理模式,明确与银联的接口,使系

统开发人员和产品管理人员明确产品功能,可以有针对性的进行系统开发、测试、验收等各方面的工作。 1.2 文档范围 1.3 读者对象 该文档的读者为用户代表、软件分析人员、开发管理人员和测试人员。 1.4 参考文献 《xxxx系统需求说明书》 1.5 术语与缩写解释 无 2. 系统概述 XX系统是以触摸屏为主要交互工具,帮助用户以自助方式做业务查询。本系统的主要功能包括:话费 查询、新业务介绍、网点分布查询、自助终端分布查询、电信新闻、交易监控、设备维护和监控等。本系 统的设计目标是保证系统可以7*24小时安全、高效无故障运行;业务人员可以轻松完成设备和交易的监控 、管理工作;报表种类齐全,可以满足业务人员各种帐务需求。 3. 设计约束

软件著作权设计说明书范本二

北京天一博胜知识产权代理有限公司—内部培训资料 软件着作权-说明书范本(二) 设计说明书 中国版权保护中心接收登记的文档包含两种:操作说明书或设计说明书。 设计说明书适合没有界面的嵌入式软件,插件软件,后台运行软件以及游戏软件。一般包含结构图,软件流程图,函数说明,模块说明,数据接口,出错设计等。 操作说明书适合管理类软件,有操作界面,一般应包含登录界面,主界面,功能界面截图,截图之间有相应的文字说明,能全面展示软件的主要功能。 格式要求:一、说明书应提交前、后各连续30页,不足60页的,应当全部提交。 二、说明书页眉应标注软件的名称和版本号,应当与申请表中名称完全一致, 页眉右上应标注页码,说明书每页不少于30行,有图除外,另外截图 应该清晰完整。 范例如下: 天一博胜探伤仪控制软件 设计说明书 一、引言 目的 编写详细设计说明书是软件开发过程必不可少的部分,其目的是为了使开发人员在完成概要设计说明书的基础上完成概要设计规定的各项模块的具体实现的设计工作。 二、软件总体设计 2.1软件需求概括 本软件采用传统的软件开发生命周期的方法,采用自顶向下,逐步求精的结构化的软件设计方法。 本软件主要有以下几方面的功能 (1)连接设备 (2)提取数据 (3)保存数据 (4)删除仪器数据 (5)查看历史数据 定义 本项目定义为一个典型的多点互动探伤软件。它将实现多点设备和系统程序的无缝对接,以实现

多点互动功能。 2.2需求概述 1.要求利用PQLib硬件商提供的SDK开发出对应的触摸屏系统。 2.系统要显示图片,并实现图片相关所有的多点操作,包括放大,缩小,旋转,平移的功能。 3.要提供美观的图片菜单,在菜单中要提供必要的图片简介信息。 4.系统图片的维护更新要方便。 2.3条件与限制 系统开发的条件是普通PC以及相对应的系统,本次开发所用的系统是WINDOW SERVER2003以及ADOBE FlashCS4。由于硬件开发商提供的开发文档不是很详尽,这对系统开发产生了一定限制影响。 总体设计 2.4总体结构和模块接口设计 系统整体结构框架如图 系统整体结构框架图 2.5模块功能逻辑关系 系统详细的模块信息所示: 系统详细的模块信息表 主模块 帧模块名称功能简述 第一帧多点环境初始化。 第二帧实现业务逻辑。 支撑类模块 类模块名称功能简述 PICDeals用于对图片载入的支持。 模块内部关系结构如下图所示: 系统模块内部关系图 这里说明一下的是,用户传来的是操作信息,这种信息是通过硬件接受后按照一定协议通过数据传输通道传送过来的。 2.6(结构图)设计和描述 本软件的主要功能是实现对钢丝绳仪器数据的提取、分析和存储的功能,软件重点是实现与下位机通信和数据分析。 三、软件功能描述 3.1 连接功能流程图和详细流程描述 设备与电脑之间用USB设备建立连接,连接之前需要先安装USB驱动,如果安装无误并建立连接之后,点击“连接”,软件给设备存储器发送一个命令,是存储器做好准备,并返回设备时间和电量信息。连接建立后,还可以重新设置设备时钟。 3.2提取数据功能流程图和详细流程描述

程序设计文档

蛇吞食程序设计 【摘要】本游戏设计采用MFC编程,对键盘消息、定时器消息、图形界面等三个主要模块进行设计,可视化强。本游戏初始编写比较基础,程序代码相对简单。此游戏具有可靠性,安全性以及低成本等特点。 【关键词】键盘消息定时器消息图形界面 一.功能模块的划分 整个界面由一个长宽为540*540的矩形框(此为蛇的活动范围和食物出现的范围)、分数栏等构成。 键盘消息:按动键盘↑、↓、←、→使蛇的方向进行改变。 定时器消息:整个程序只用到一个定时器,在OnStart()里对定时器进行设定SetTimer(1,100,NULL),在OnTimer()中对蛇和食物进行处理:第一关:将block 设置为1,当分数超过10分蛇不能通过墙壁;第二关:将block设置为2,设置

障碍物并且蛇不能碰到墙壁,但有最低分数为20分。 图形界面:位图处理:在OnDraw()里面画出蛇和食物的图片。一张蛇图有四个方向的四条蛇,改变x_org(横坐标)、y_org(纵坐标)、t_org(宽度)、b_org (长度)、t_org1(蛇图显示区域的横坐标)的值来控制蛇不同方向的运动,用rand()来随机产生食物的图片。在执行Invalidate()时自动显示位图的不同状态。菜单功能模块:Set包含Start、Gameover、First、Second。Start启动定时器、Gameover关掉定时器并且退出游戏界面。First和Second分别选择游戏级别。Help 是游戏的说明。 二.程序流程 程序流程: 1.程序执行Ondraw()函数部分,显示出蛇朝右的图片和食物图片。 2.选择级别First或者Second,此时程序会调用OnFirst()或OnSecond() 改变block的值。若选择的First,block将赋值为1,然后选择Start程序 调用OnStart()函数,将m_nStart赋值为1,程序将执行第一关的代码, 蛇能够穿墙而过。如果分数超过10分(即score>10),游戏将自动升级, 蛇不能穿墙而过,碰到墙壁蛇将死亡;若选择的Second,block将赋值 为2,然后选择Start程序调用OnStart()函数,将m_nStart赋值为1,程序将执行第二关的代码,蛇不能够穿墙而过,而且在活动范围内有障 碍物,但有最低分20分,若碰到墙壁或障碍物蛇将死亡。 3.在选择Start后,程序自动启动定时器,执行OnTimer()部分的代码, 若block=1,执行第一关的代码,蛇可以分别在四个方向上运动,score 自动加分直到超过10,则改变代码蛇不能撞墙。若撞墙则KillTimer() 并将score置为0; 4.在执行OnTimer()部分的代码时,要不断执行Invalidate()进行刷新, 然后调用Ondraw(),画出不同状态下的图形。 5.选择GameOver选项,调用OnEnd()函数,使m_nstart=0, KillTimer() 并且退出游戏。

需求分析说明书、概要设计说明书、详细设计说明书部分样例.doc

需求分析说明书、概要设计说明书、详细设计说明书部分样例 作者:rjgczj 出处:csai论坛 以下是需求分析说明书、详细设计说明书、概要设计说明书样例,需要的朋友来信联系。rjgczj@ For personal use only in study and research; not for commercial use XX系统概要设计说明书 目录 1. 文档介绍1 1.1 文档目的1 1.2 文档范围1 1.3 读者对象1 1.4 参考文献1 1.5 术语与缩写解释1 2. 系统概述2 3. 设计约束2 3.1需求约束2 3.2隐含约束2 4. 设计策略3 4.1扩展策略3 4.2复用策略3 4.3折衷策略3 5.系统总体结构3 5.1、系统总体结构3

5.2、子系统功能及接口4 6. 子系统的结构与功能5 6.1、TERMSERV 5 7. 功能需求追溯5 8. 环境的配置5 9.其它6 附录 6 A、与主机接口6 B、与终端接口6 1. 文档介绍 1.1 文档目的 编写该文档的目的在于从总体设计的角度明确xxxx系统的功能和处理模式,明确与银联的接口,使系统开发人员和产品管理人员明确产品功能,可以有针对性的进行系统开发、测试、验收等各方面的工作。 1.2 文档范围 1.3 读者对象 该文档的读者为用户代表、软件分析人员、开发管理人员和测试人员。 1.4 参考文献 《xxxx系统需求说明书》 1.5 术语与缩写解释 无 2. 系统概述 XX系统是以触摸屏为主要交互工具,帮助用户以自助方式做业务查询。本系统的主要功能包括:话费查询、新业务介绍、网点分布查询、自助终端分布查询、电信新闻、交易监控、设备维护和监控等。本系统的设计目标是保证系统可以7*24小时安全、高效无故障运行;业务人员可以轻松完成设备和交易的监控、管理工作;报表种类齐全,可以满足业务人员各种帐务需求。

范例-软件设计说明书(详细部分)

软件设计说明

目录 1围 (1) 1.1标识 (1) 1.2系统概述 (1) 1.3文档概述 (1) 2引用文档 (1) 3CSCI 级设计决策 (1) 4CSCI 体系结构设计 (2) 4.1CSCI部件 (2) 4.2执行方案 (3) 4.3接口设计 (3) 4.3.1接口标识和接口图 (3) 4.3.x (接口的项目唯一标识符) (4) 5CSCI 详细设计 (6) 5.X (软件单元的项目唯一标识符,或者一组软件单元的标志符) (6) 6需求可追踪性 (9) 7注解 (11) 附录A (11)

软件设计说明 1围 1.1标识 要求:本节应包含这个文档所适用的系统和软件的完全标识,(若适用)应包括标识号、名称、缩略名、版本号及发布号。 1.2系统概述 要求: 1)本节主要描述本文档适用的系统和软件的用途; 2)概述系统开发、运行和维护的历史; 3)标识项目的投资方、需方、用户、开发方和保障机构; 4)标识当前和计划的运行现场; 5)列出其它有关文档。 1.3文档概述 本节应概述本文档的用途和容,描述与它的使用有关的性或私密性考虑。 2引用文档 列出引用的所有文档,包括文档的编号、标题、修订版本和日期。 3CSCI 级设计决策 要求:本章应根据需要分节给出CSCI 级设计决策,即CSCI 行为设计的决策(忽略其部实现,从用户角度出发描述系统将怎样运转以满足需求)和其它影响组成该CSCI 的软件单元的选择与设计的决策。如果在需求中所有这些决策是明确的,或者这些决策要推迟到CSCI 的软件单元的设计时指出,则本章应如实述。 针对关键性需求(例如对安全性、性、私密性等需求)作出的设计决策,应在专门的章节中加以叙述。 CSCI 级设计决策的例子如下: 1)关于CSCI 将接收的输入和将产生的输出的设计决策,包括与其它系统、HWCI、CSCI 和用户的接口(本文档的4.3.x 节指出本说明要考虑的主题); 2)有关响应每个输入或条件的CSCI 行为的设计决策,包括CSCI 要执行的动作、响应时间和其它性能特性,模型化的物理系统的说明,选定的方程式/算法/规则,以及对不允许的输入或条件进行的处理; 3)有关数据库/数据文件如何呈现给用户的设计决策(本文档的4.3.x 节标识了本说明

完整版详细设计说明书实例

信息发布系统 (详细设计说明书) JAVA 实践小学期第22组 1.0 2010/9/5 编写单位: 设计人员: 版 本: 编写日期:

目录 第一部分、引言 (2) 1.1编写目的 (2) 1.2背景 (3) 1.3定义 (3) 3.1程序描述 (5) 3.2整体结构 (5) 3.3性能 (5) 3.4输入输出项 (5) 3.5算法 (5) 3.6主要类的设计 (5) 3.7存储分配 (7) 3.8注释 (7) 3.9限制条件 (7) 3.10测试计划 (7) 3.11尚未解决的问题 (7) 4.1程序描述 (7) 4.2功能 (7) 4.3性能 (8) 4.4输入输出项 (8) 4.5限制条件 (8) 5设计特点 (8) 5.1通信便捷 (8) 5.2开发速度快 (8) 第六部分、项目分工 (8) 附录: (9) 第一部分、引言 1.1编写目的 本说明书在概要设计的基础上,对信息发布系统的各模块、程序分别进行了实现层面上的要 求和说明。 软件开发小组的产品实现成员应该阅读和参考本说明进行代码的编写、测试。

1.2背景 说明: A、软件系统的名称:信息发布系统 B、任务提出者:JAVA实践小学期开发者:第22组成员 C、实现完成的系统将可用在所有JAVA虚拟机的个人PC上.为使用者提供信息发布,浏 览,评论的方式,沟通各个用户? 1.3定义 服务器端API :服务器端设计者通过规范的API文档,提供给客户端,以方便客户端的开 发,使得同时进行,提高效率,节约时间。两端通过protocol (协议类)进行通信。 Gson:Google提供的一个类库。通过使用这个类库,可以把把对象转换成json格式的字符串,以方便在网络中的传输。也可反向将字符串转换成对象,这样带有方法地操作对象,可以有效,方便地保证信 息的沟通。 Json: JavaScript Object Notation,是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,JSON采用完全独立于语言的文本格式, 这些特性使得JSON成为理想的数据交换语言。 1.4参考资料,相关的文件包括: A、《项目需求说明》; B、《项目详细设计说明书》; C、《项目概要设计说明书》;参考资料: 《软件工程概论》,王华 第二部分、程序系统的结构 该系统为了两大部分:客户端与服务器端,中间通过protocol类通信。其中使用gson库来转换和逆向转换对象,实现标准包括: 1、客户端主程序 A、工程类型:JAVA项目; B、工程名称:信息发布系统 C、编译生成文件:jar形式 D、引用的组件:JDK,Gson库 注:以上提供的是工具集合,具体用到的类都包含在里面 2、服务器端主程序: 服务器端程序以及数据库操作类(DBO) 3、服务器端数据库操作 验证用户,用户注册,更改密码,更新文档,新建文档,新建记录(包括浏览记录和回复记录),查看文档,删除文档,查看记录。

《软件工程》软件设计阶段开发文档示例

3.软件设计 3.1开发工具 本游戏使用MyEclipse为开发工具,MyEclipse是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE 以及移动应用的开发。 在使用MyEclipse之前首先要搭建Java开发环境。编写和运行Java程序之前需要安装JDK(Java Developers Kits)并配置相关环境变量。JDK 是整个Java 的核心,包括了 3.2概要设计 模型层、“结束游戏”、 3.3流程设计 整个游戏的流程设计图如下图所示。玩家进入游戏界面后,点击上方“开始游戏”按钮后方可通过方向键控制用户小车的移动,然后系统通过是否超时、是否与其它小车碰撞、是否到达终点来判断游戏胜利或失败。当游戏成功或失败后,玩家可以点击窗口上方“再来一局”重新开始游戏。此外,在任何时候用户都能够通过点击窗口上方“退出游戏”按钮关闭窗口退出游戏。

3.4主要类图 MyPlayer类是游戏中的玩家类(用户赛车类),用户可以通过方向键控制用户赛车的移动。MyEnermy类是游戏中除用户赛车外的其它赛车类。

图3-3MyPlayer 玩家类和MyEnermy 对手类类 MyRoad 类是游戏中的道路类。 图 3-4MyRoad 道路类 BackGroundMusic 类是游戏中的背景音乐类。 图3-5BackGroundMusic 背景音乐 MyWindow 类为窗口类,用于设置游戏窗口大小、名称等。MyMain 为主函数类,框架是Swing GUI 应用程序的主程序,窗口包括边界、标题、关闭按钮。 图3-5MyWindow 窗口类

软件工程文档模板范例

目录 三、需求规格说明书 (2) 四、概要设计说明书 (12) 五、详细设计说明书 (15)

3软件需求说明书软件需求说明书的编制是为了使用户的软件开发者双方对该软件的起初规定有一个共同的理解,使之成为整个开发工作的基础。编制软件需求说明书的内容要求如下: 3.1引言 3.1.1 编写的目的 3.1.2 背景 3.1.3 定义 3.1.1 参考资料 3.2任务概述 3.2.1目标 3.2.2用户的点 3.2.3假定与约束 3.3需求规定 3.3.1对功能的规定 3.3.2对性能的规定

3.3.2.1 精度 3.3.2 .2 时间特性要求 3.3.2 .3 灵活性 3.3.3 输入输出要求 3.3.4 数据管理能力的要求 3.3.5 故障处理要求 3.3.6 其它的专门的要求 3.4 运行环境规定 3.4.1 设备 3.4.2 支持软件 3.4.3 接口 3.4.4 控制 4数据需求说明书数据要求说明书的编制目的是为了向整个开发时期提供关于处理数据的描述和数据采集要求的技术信息。编制数据要求说明书的内容要求如下: 4.1引言

4.1. 1 编写目的 4.1. 2 背景 4.1. 3 定义 4.1. 4 参考资料 4.2 数据的逻辑描述 4.2. 1 静态数据 4.2. 2 动态输入数据 4.2. 3 动态输出数据 4.2. 4 内部生成数据 4.2. 5 数据约定 4.3 数据的采集 4.3. 1 要求和范围 4.3. 2 输入的承担者 4.3. 3 处理 4.3. 4 影响 5概要设计说明书概要设计说明书可称作系统设计说明书,这里说的系统是指程序系统,编制的目的是说明对程序的系统的设计考虑,包括

模块化程序设计实例

9 .5 模块化程序设计实例 《程序设计基础》(基于C语言讲解)石光华编著—北京: 清华大学出版社 下面以设计一个简单的成绩管理软件为例,一步一步地按模块化程序设计方法进行设计。 1 .定义问题 设计一个成绩管理软件,其基本功能包括:输入成绩,成绩加分,计算平均成绩,找出最高分,找出最低分,输出成绩等。 2 .确定组成程序的模块 根据成绩管理软件的功能,确定软件的基本模块包括:输入模块,加分模块,平均分模块,最高分模块,最低分模块,输出模块等。 142 程序设计基础 3 .绘制程序结构图 成绩管理软件的结构图如图9-5所示。 图9-5 成绩管理软件结构图 4 .流程图 用流程图确定主程序的逻辑结构,如图9-6所示。 在流程图中,istate 的作用是记录是否已经输入成绩。istate 的使用有如下两种 方式。 (1) 作为全局变量使用。此时istate可以在所有模块中改变其值,主程序更简洁,但 可能产生边际效应。 (2) 作为主程序的局部变量使用。此时istate只能在主程序中改变其值。在主程序 中可以直观地看到其变化,能够防止边际效应。 采用方式(2)的主程序如下。

#include < stdio .h> #define SIZE 10 void main() { int iscore[SIZE] ={0}; int key= - 1; int iresult=0; float fresult=0; int istate=0; printf(″1:Input scores;\n″); 第9章模块化程序设计 143 图9-6 成绩管理软件主程序流程图 printf(″2:Output scores;\n″); printf(″3:Count for the max score;\n″); printf(″4:Count for the minimum score;\n″); printf(″5:Count for the total score;\n″); printf(″6:Count for theaverage score;\n″); printf(″- 1:Exit .\n″); while(1) { printf(″Please input your choose:″); scanf(″%d″,&key); if (key = = - 1) 144 程序设计基础

数据结构程序设计说明文档

数据结构课题报告说明书

数据结构课题报告 指导教师:喝安全 组长:肖清泉 组员:朱智红、苏彦洲 班级:计算机科学与技术(正大) 专业:计算机科学与技术(帅范) 时间:2015-01-20 ——2015-03-01 课程设计题目:图书管理系统 、八 前 图书馆管理系统或许众所周知,任何一个学校,有关单位似乎都需要这个类似的系统以此管理图书与读者借阅情况。借此,我们合作也做出一个系统,尽管可能有些逊色,但感觉还是可以本系统总结了前人牛人的经验,剔除了其中的不足创造了自己独有的特色。传承了牛人的优点,经过我们仔细的观摩,思考后创造此系统。“书上得来终觉浅,要知此事需躬行。”是呀!在没亲身动手去编写程序时,我总觉得我会了。书本上的我都懂了。可我真的懂

了吗?答案是否定的。在编写过程中,会出现很多的问题,而这些问题你是在书本上是接触不到的。只有发现问题,解决问题,你才会有提高。在过去人们对信息管理的主要方式是基于文本、表格等纸质的手工处理之上的,而用手工进行图书借阅管理存在多种弊端,其中包括图书过于繁多,包含很多的信息数据的管理对于图书借阅情况如:借阅天数、超过限定借阅时间等等的统计和核实,往往采用对借阅卡的人工查询进行,对借阅天数等用人工计算、手抄进行。信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说缺乏系统、规范的管理手段人们操控起来是很困难的;因此,使用电子化的管理手段将是大势所趋,建立一个图书管理系统也是图书管理部门提高工作效益的有效手段。系统能够合理高效地利用图书资源,使得图书借阅更加的科学合理。 第一章需求分析与目的概述 --------- 04 1.1 需求分析概述---------------- 一04 1.2 系统功冃匕分析------------- 一04 第二章系统设计---------- ---04 3.1 系统功能模块设计------------ ——04 3.1.1 信息录入--------------- 05 3.1.2 学生菜单-------------- 05 3.1.3 老师菜单-------------- 06 3.1.4 图书管理员菜单------------- 07

软件概要设计说明书范例

XX概要设计说明书

文档修改记录

填写说明 1. 系统结构的定义 本体系对整个软件系统按如下结构方式进行划分:系统子系统模块子模块 其中: (1)“系统子系统”划分属于“系统设计”,在系统设计说明书中予以描述。 (2)“子系统模块”划分属于“概要设计”,在本说明书中予以描述。 (3)“模块子模块”划分属于“详细设计”,在详细设计说明书中予以描述。如果系统相对简单,可以省略“子模块”这一层次。 2. 如果填写了系统设计说明书,则在本说明书中略过“系统子系统”划分的相关内容(即第2章)。 3. 如果系统相对简单,不需要做“系统子系统”划分,这种情况下,取消填写系统设计说明书,只须填写本说明书,直接套用“子系统模块”划分(即第3章)进行“系统模块”划分(把其中“子系统”一词替换为“系统”),并删除本说明书中“系统子系统”划分的相关内容(第2章)。

目录 1. 简介 ................................................................ 错误!未定义书签。 . 背景和目的.................................................... 错误!未定义书签。 . 范围.......................................................... 错误!未定义书签。 . 术语和缩略语.................................................. 错误!未定义书签。 2. 系统总体设计 ........................................................ 错误!未定义书签。 . 任务概述...................................................... 错误!未定义书签。 目标 .................................................... 错误!未定义书签。 需求概述 ................................................ 错误!未定义书签。 . 设计概述...................................................... 错误!未定义书签。 总体约束 ................................................ 错误!未定义书签。 系统外部接口 ............................................ 错误!未定义书签。 设计方案概述 ............................................ 错误!未定义书签。 . 系统架构设计.................................................. 错误!未定义书签。 系统的逻辑架构设计 ...................................... 错误!未定义书签。 系统的物理架构设计 ...................................... 错误!未定义书签。 . 子系统定义.................................................... 错误!未定义书签。 子系统列表 .............................................. 错误!未定义书签。 子系统间关系 ............................................ 错误!未定义书签。 3. 子系统1设计 ........................................................ 错误!未定义书签。 . 任务概述...................................................... 错误!未定义书签。 目标 .................................................... 错误!未定义书签。 需求概述 ................................................ 错误!未定义书签。 . 设计概述...................................................... 错误!未定义书签。 总体约束 ................................................ 错误!未定义书签。 子系统外部接口 .......................................... 错误!未定义书签。 设计方案概述 ............................................ 错误!未定义书签。 . 子系统架构设计................................................ 错误!未定义书签。 . 模块定义...................................................... 错误!未定义书签。

相关主题
相关文档 最新文档