您现在的位置是: 首页 > 情感作文 情感作文
课程设计报告总结_课程设计报告总结怎么写
zmhk 2024-04-30 人已围观
简介课程设计报告总结_课程设计报告总结怎么写 大家好,很高兴能够为大家解答这个课程设计报告总结问题集合。我将根据我的知识和经验,为每个问题提供清晰和详细的回答,并分享一些相关的案例和研究成果,以促进大家的学习和思考。1.sql数据库课程设计报告2.画
大家好,很高兴能够为大家解答这个课程设计报告总结问题集合。我将根据我的知识和经验,为每个问题提供清晰和详细的回答,并分享一些相关的案例和研究成果,以促进大家的学习和思考。
1.sql数据库课程设计报告
2.画法几何与土木工程制图课程设计报告怎么写
3.网络课程设计实验报告
4.数据结构课程设计报告(一元多项式的计算)
5.数电数字钟课程设计报告
sql数据库课程设计报告
网络即时通信系统是为用户开发研制的,用户是系统的最终使用者和评价者,所以在网络通信系统的开发设计的过程中,我们树立了从用户的寻求出发,面向用户,一切为了用户的观念,在分析与设计系统的前期,为了保证系统的功能的完善多次寻求周围同学和老师的意见,了解他们的要求,依照功能完善,界面美观,操作简单的原则进行设计 。
严格按阶段进行
系统的开发设计是一项较大的工程,所以应该将整个系统的开发设计过程划分为若干阶段,相应的阶段又要分为若干个不同的步骤,每个阶段和步骤都要有明确的工作任务和目标。这种有序的组织安排,条例清楚、层次分明,便于计划的制定和控制,并且为后续工作的进行奠定了坚实的基础,提高了工作效率和质量。
采用系统的观点处理
在系统分析阶段,在对原系统进行全面调查和分析的基础上,构造系统的最佳逻辑模型,使用户对将来完整系统的轮廓有个初步的了解和认识,以便及时和用户进行交流和探讨,不断提高系统的完善性。在此基础上进行系统的物理实现和设计,切实完成逻辑模型的具体功能。逻辑设计和物理实现二者是相辅相成、密不可分的,这样使系统的设计更加稳妥合理。
整个系统的设计主要采用快速原形法
快速原形法是信息系统设计的一个重要方法。它是根据用户提出的需求,由用户和开发者共同确定系统的基本要求和主要功能,并在一个较短的时间内建立一个实验性的、简单的信息系统模型,通过用户不断提出的意见和建议,对模型进行不断的修改和完善,直到用户比较满意为止,以便形成一个相对稳定、较为理想的管理信息系统。该方法的主要优点。
1.脉络清楚,所有问题都围绕一个模型展开,使彼此之间联系紧密。
2.有助于发现用户需求,通过对原形和用户接触,能够启发开发人员去挖掘问题,从而不断的修正、完善,最终得到一个理想的系统。
3.系统开发效率高,此方法的开发周期短、使用灵活、容易修改,这对于管理体制不够稳定的系统更加适合。
4.系统的可扩展性好,由于此方法是在原型应用中不断发展完善和修改的,所以有较强的扩展性。
在进行代码设计时,遵循了以下原则。
唯一性:在本系统中,每一个代码都和系统中的每一个对象唯一确定。
标准性:主要体现在对程序文件名命名和对数据文件命名的标准化上,遵循简单扼要,方便适用的原则。一目了然,无重复现象。为了系统维护人员便于进行系统维护,使用了统一的标准。
合理性:系统中代码设计与编码对象的分类相适应,以使代码对编码对象的分类据有标志作用。
简单性:在设计过程中采用Code-Behind代码分离,使数据库操作代码和前端调用代码分离,页面修改容易。
适应性:在代码设计过程中,代码反映了编码对象的特点,便于识别和记忆,使系统维护人员容易了解和掌握,便于进行维护工作。
系统总体功能结构
网络通信系统包含以下主要功能。
用户注册;用户登录;
查找好友;查看好友资料;
添加好友;
删除好友;
发送消息;
发送文件.
数据库表主要用来存放用户的注册信息和用户的好友资料,可利用两张数据库表来 存放用户信息和用户好友的资料。包括用户的号码,昵称,密码,在线与否,ip地址,资料,头像号,性别,E-mail和籍贯等信息。其中,用户昵称和密码是必需的字段;在线与否是由系统自动设置的;其余的信息是可选的字段。
课题整体以JAVA为平台,采用Eclipse开发工具,并使用SQL Server 2000管理数据库数据开发而成的基于Socket的集中式网络通信系统,系统采用客户机/服务器(C/S)的模式设计,是一个三层C/S结构,数据库服务器、应用程序服务器端 、应用程序客户端。系统采用C/S结构,可以将任务合理分配到客户机端和服务器端 ,从而降低了系统的通信开销。
客户层。
客户层是应用程序的用户接口部分,它担负着用户与应用间的对话功能,用于检查用户的输入数据,显示应用的输出数据,为了直观的进行操作,客户层需要使用图形用户接口,若聊天用户变更,系统只需改写显示控制和数据检查程序即可,而不会影响其他两层。
服务层。(功能层)
服务层相当于应用的本体,它是将具体的业务处理逻辑编入程序中。在应用设计中,必须避免在表示层和功能层之间进行多次的数据交换,这就需要尽可能进行一次性的业务处理达到优化整体设计的目的。
数据层
数据层是DBMS,本系统使用了Microsoft 公司的SQL Ssever2000数据库服务器来管理数据。SQL Ssever2000能迅速的执行大量数据的更新和检索,因此,从功能层传送到数
据层的要求一般都使用SQL语言。
画法几何与土木工程制图课程设计报告怎么写
题目:多功能数码种的设计
一、设计目的
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,我们此次设计数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法.
三、原理框图
1.数字钟的构成
数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。
(a) 数字钟组成框图
2.晶体振荡器电路
晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。一般输出为方波的数字式晶体振荡器电路通常有两类,一类是用TTL门电路构成;另一类是通过CMOS非门构成的电路,本次设计采用了后一种。如图(b)所示,由CMOS非门U1与晶体、电容和电阻构成晶体振荡器电路,U2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波。输出反馈电阻R1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一个高增益的反相放大器。电容C1、C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。
(b) CMOS 晶体振荡器(仿真电路)
3.时间记数电路
一般采用10进制计数器如74HC290、74HC390等来实现时间计数单元的计数功能。本次设计中选择74HC390。由其内部逻辑框图可知,其为双2-5-10异步计数器,并每一计数器均有一个异步清零端(高电平有效)。
秒个位计数单元为10进制计数器,无需进制转换,只需将QA与CPB(下降沿有效)相连即可。CPA(下降没效)与1HZ秒输入信号相连,Q3可作为向上的进位信号与十位计数单元的CPA相连。
秒十位计数单元为6进制计数器,需要进制转换。将10进制计数器转换为6进制计数器的电路连接方法如图 2.4所示,其中Q2可作为向上的进位信号与分个位的计数单元的CPA相连。
十进制-六进制转换电路
分个位和分十位计数单元电路结构分别与秒个位和秒十位计数单元完全相同,只不过分个位计数单元的Q3作为向上的进位信号应与分十位计数单元的CPA相连,分十位计数单元的Q2作为向上的进位信号应与时个位计数单元的CPA相连。
时个位计数单元电路结构仍与秒或个位计数单元相同,但是要求,整个时计数单元应为12进制计数器,不是10的整数倍,因此需将个位和十位计数单元合并为一个整体才能进行12进制转换。利用1片74HC390实现12进制计数功能的电路如图(d)所示。
(d)十二进制电路
另外,图(d)所示电路中,尚余-2进制计数单元,正好可作为分频器2HZ输出信号转化为1HZ信号之用。
4.译码驱动及显示单元电路
选择CD4511作为显示译码电路;选择LED数码管作为显示单元电路。由CD4511把输进来的二进制信号翻译成十进制数字,再由数码管显示出来。这里的LED数码管是采用共阴的方法连接的。
计数器实现了对时间的累计并以8421BCD码的形式输送到CD4511芯片,再由4511芯片把BCD码转变为十进制数码送到数码管中显示出来。
5.校时电路
数字钟应具有分校正和时校正功能,因此,应截断分个位和时个位的直接计数通路,并采用正常计时信号与校正信号可以随时切换的电路接入其中。即为用COMS与或非门实现的时或分校时电路,In1端与低位的进位信号相连;In2端与校正信号相连,校正信号可直接取自分频器产生的1HZ或2HZ(不可太高或太低)信号;输出端则与分或时个位计时输入端相连。当开关打向下时,因为校正信号和0相与的输出为0,而开关的另一端接高电平,正常输入信号可以顺利通过与或门,故校时电路处于正常计时状态;当开关打向上时,情况正好与上述相反,这时校时电路处于校时状态。
实际使用时,因为电路开关存在抖动问题,所以一般会接一个RS触发器构成开关消抖动电路,所以整个较时电路就如图(f)。
(f)带有消抖电路的校正电路
6.整点报时电路
电路应在整点前10秒钟内开始整点报时,即当时间在59分50秒到59分59秒期间时,报时电路报时控制信号。
当时间在59分50秒到59分59秒期间时,分十位、分个位和秒十位均保持不变,分别为5、9和5,因此可将分计数器十位的QC和QA 、个位的QD和QA及秒计数器十位的QC和QA相与,从而产生报时控制信号。
报时电路可选74HC30来构成。74HC30为8输入与非门。
四、元器件
4.共阴八段数码管6个
5.网络线2米/人
6.CD4511集成块6块
7.CD4060集成块1块
8.74HC390集成块3块
9.74HC51集成块1块
10.74HC00集成块4块
11.74HC30集成块1块
12.10MΩ电阻5个
13.500Ω电阻14个
14.30p电容2个
15.32.768k时钟晶体1个
16.蜂鸣器10个
五、各功能块电路图
数字钟从原理上讲是一种典型的数字电路,可以由许多中小规模集成电路组成,所以可以分成许多独立的电路。
(一) 六进制电路
由74HC390、7400、数码管与4511组成,电路如图一。
(二) 十进制电路
由74HC390、7400、数码管与4511组成,电路如图二。
(三) 六十进制电路
由两个数码管、两4511、一个74HC390与一个7400芯片组成,电路如图三。
(四) 双六十进制电路
由2个六十进制连接而成,把分个位的输入信号与秒十位的Qc相连,使其产生进位,电路图如图四。
(五) 时间计数电路
由1个十二进制电路、2个六十进制电路组成,因上面已有一个双六十电路,只要把它与十二进制电路相连即可,详细电路见图五。
(六) 校正电路
由74CH51D、74HC00D与电阻组成,校正电路有分校正和时校正两部分,电路如图六。
(七) 晶体振荡电路
由晶体与2个30pF电容、1个4060、一个10兆的电阻组成,芯片3脚输出2Hz的方波信号,电路如图七。
(八) 整点报时电路
由74HC30D和蜂鸣器组成,当时间在59:50到59:59时,蜂鸣报时,电路如图八
网络课程设计实验报告
包括以下主要内容:
1、前言:简单介绍选题的背景和目的,说明选定该课程设计的原因以及预期的学习目标。
2、设计思路:详细阐述选题的设计思路,包括概念、原理、方法等方面的描述。对于画法几何和土木工程制图两个不同的选题,这部分的内容应当相应地有所不同。
3、设计过程:详细描述课程设计过程中的相关步骤和实验操作,包括数据采集、分析和处理等方面的内容。还可以配合、表格等辅助材料加强论证力度。
4、实验结果:展示实验结果和数据分析,比较各种方法的优缺点,并说明选择特定方法的原因和依据。同时,也需要进行数据可靠性和误差分析等方面的探讨。
5、结论:总结全文的主要内容,回答研究问题并给出具体的结论,同时提出未来可能的研究方向和改进建议。
6、参考文献:列举在课程设计中使用的相关参考资料和引用的论文、书籍等信息。
数据结构课程设计报告(一元多项式的计算)
实用网络技术》课程设计
参考答案
一、 设计思路
根据该学院网络需求,将该学院网络划分为:出口层、核心层、汇聚层、接入层四个层次;
出口层使用防火墙一台,其DMZ区连接学院服务器,外网口连接Internet,内网口连接核心层;
使用两台三层交换机(Rs1-Rs2)组成网络核心层;四台三层交换机(Rs2-Rs6)组成网络汇聚层,核心层与汇聚层使用双链路以实现线路备份与负载均衡;
使用二层交换机若干台构成网络接入层,连接服务器和个人计算机。
二、 网络拓朴图
三、 防火墙端口和三层交换机VLAN接口配置
防火墙DMZ口:172.16.1.62/26
防火墙内网口1:10.0.1.2/30(与Rs1点对点连接)
防火墙内网口2:10.0.1.26/30(与Rs2点对点连接)
RS1:配置VLAN接口6个。
Vlan 11: 10.0.1.1/30 用于与防火墙点对点连接;
Vlan 21: 10.0.1.5/30 用于与Rs2点对点连接;
Vlan 31: 10.0.1.9/30 用于与Rs3点对点连接;
Vlan 41: 10.0.1.13/30 用于与Rs4点对点连接;
Vlan 51: 10.0.1.17/30 用于与Rs5点对点连接;
Vlan 61: 10.0.1.21/30 用于与Rs6点对点连接;
RS2:配置VLAN接口6个。
Vlan 12: 10.0.1.25/30 用于与防火墙点对点连接;
Vlan 22: 10.0.1.6/30 用于与Rs1点对点连接;
Vlan 32: 10.0.1.29/30 用于与Rs3点对点连接;
Vlan 42: 10.0.1.33/30 用于与Rs4点对点连接;
Vlan 52: 10.0.1.37/30 用于与Rs5点对点连接;
Vlan 62: 10.0.1.41/30 用于与Rs6点对点连接;
RS3:配置VLAN接口5个。
Vlan 13: 10.0.1.10/30 用于与Rs1点对点连接;
Vlan 23: 10.0.1.30/30 用于与Rs2点对点连接;
Vlan 33: 192.168.0.1/26 用于办公计算机接入;
Vlan 43: 192.168.0.65/26 用于教学计算机接入;
Vlan 53: 192.168.0.129/25 用于科研用计算机接入;
RS4:配置VLAN接口3个。
Vlan 14: 10.0.1.14/30 用于与Rs1点对点连接;
Vlan 24: 10.0.1.34/30 用于与Rs2点对点连接;
Vlan 34: 192.168.1.1/24 用于研究生计算机接入;
RS5:配置VLAN接口5个。
Vlan 15: 10.0.1.18/30 用于与Rs1点对点连接;
Vlan 25: 10.0.1.38/30 用于与Rs2点对点连接;
Vlan 35: 192.168.2.1/24 用于250台实验用计算机接入;
Vlan 45: 192.168.3.1/24 用于250台实验用计算机接入;
Vlan 55: 192.168.4.1/24 用于250台实验用计算机接入;
RS6:配置VLAN接口5个。
Vlan 16: 10.0.1.22/30 用于与Rs1点对点连接;
Vlan 26: 10.0.1.42/30 用于与Rs2点对点连接;
Vlan 36: 192.168.5.1/24 用于250台实验用计算机接入;
Vlan 46: 192.168.6.1/24 用于250台实验用计算机接入;
Vlan 56: 192.168.7.1/24 用于230台实验用计算机接入;
四、 网段分配表
网段名 始地址 末地址 子网掩码 默认网关 接入三层交换机
服务器 172.16.1.1 172.16.1.61 255.255.255.192 172.16.1.62 防火墙
办公用计算机 192.168.0.2 192.168.0.61 255.255.255.192 192.168.0.1 RS3
教学用计算机 192.168.0.66 192.168.0.125 255.255.255.192 192.168.0.65 RS3
… … … … … …
… … … … … …
… … … … … …
… … … … … …
… … … … … …
… … … … … …
… … … … … …
… … … … … …
… … … … … …
… … … … … …
… … … … … …
(此表自己完善)
五、 路由设计
1、 静态路由
使用静态路由解决路由问题时,各三层交换机路由表如下表
三层交换机名 目标网段/掩码位数 下一跳IP 下一跳接口
RS1 172.16.1.0/26 10.0.1.2 Vlan11
RS1 192.168.0.0/24 10.0.1.10 Vlan31
Rs1 192.168.1.0/24 10.0.1.14 Vlan41
Rs1 192.168.2.0/23 10.0.1.18 Vlan51
Rs1 192.168.4.0/24 10.0.1.18 Vlan51
Rs1 192.168.5.0/24 10.0.1.22 Vlan61
Rs1 192.168.6.0/23 10.0.1.22 Vlan61
Rs1 0.0.0.0/0 10.0.1.2 Vlan11
三层交换机名 目标网段/掩码位数 下一跳IP 下一跳接口
RS2 172.16.1.0/26 10.0.1.26 Vlan12
RS2 192.168.0.0/24 10.0.1.30 Vlan32
Rs2 192.168.1.0/24 10.0.1.34 Vlan42
Rs2 192.168.2.0/23 10.0.1.38 Vlan52
Rs2 192.168.4.0/24 10.0.1.38 Vlan52
Rs2 192.168.5.0/24 10.0.1.42 Vlan62
Rs2 192.168.6.0/23 10.0.1.42 Vlan62
Rs2 0.0.0.0/0 10.0.1.26 Vlan12
三层交换机名 目标网段/掩码位数 下一跳IP 下一跳接口
Rs3 0.0.0.0/0 10.0.1.9 Vlan13
(完善Rs4、Rs5、Rs6路由表)
2、 RIP路由协议(如果使用了静态路由,就可不必使用RIP协议)
在三层交换机上启用RIP协议。
其中Rs1作如下配置
Rs1(config)#router rip
Rs1(config router)#version 2
Rs1(config router)#network 10.0.1.0
其中Rs2作如下配置
Rs2(config)#router rip
Rs2(config router)#version 2
Rs2(config router)#network 10.0.1.0
其中Rs3作如下配置
Rs3(config)#router rip
Rs3(config router)#version 2
Rs3(config router)#network 10.0.1.0
Rs3(config router)#network 192.168.0.0
其中Rs4作如下配置
Rs4(config)#router rip
Rs4(config router)#version 2
Rs4(config router)#network 10.0.1.0
Rs4(config router)#network 192.168.1.0
其中Rs5作如下配置
Rs5(config)#router rip
Rs5(config router)#version 2
Rs5(config router)#network 10.0.1.0
Rs5(config router)#network 192.168.2.0
Rs5(config router)#network 192.168.3.0
Rs5(config router)#network 192.168.4.0
(自己完善Rs6配置)
六、 网站设计与功能板块(略,参考自己学院网站,作描述即可)。
数电数字钟课程设计报告
问题描述
编程实现一元多项式的加法计算。
基本要求
能用链表实现一元多项式的加法计算,并能打印出计算结果。
所需知识
(1)基本编程方法和程序设计知识。
(2)链表的理解和运算与运用。
所用算法
遍历算法和递归算法。
操作平台
Visual C++
#include<stdio.h>
#include<graphics.h>
#define MAX 100
typedef struct polynode
{ float coef;
int expn;
struct polynode *next;
}node;
node * create(void) /*指针函数,返回指针类型;用尾插法建立一元多项式的链表的函数*/
{
node *h,*r,*s;
float c;
int e;
h=(node *)malloc(sizeof(node)); /*建立多项式的头结点,为头结点分配存储空间*/
r=h; /*r指针始终动态指向链表的当前表尾,以便于做尾插入,其初值指向头结点*/
printf("coef:");
scanf("%f",&c); /*输入系数*/
printf("expn: ");
scanf("%d",&e); /*输入指数*/
while(c!=0.0) /*输入系数为0时,表示多项式的输入结束*/
{
s=(node *)malloc(sizeof(node)); /*申请新结点*/
s->coef=c; /*申请新结点后赋值*/
s->expn=e; /*申请新结点后赋值*/
r->next=s; /*做尾插,插入新结点*/
r=s; /*r始终指向单链表的表尾*/
printf("coef:");
scanf("%f",&c);
printf("expn: ");
scanf("%d",&e);
}
r->next=NULL; /*将表的最后一个结点的next置NULL,以示表结束*/
return(h);
}
void polyadd(node *pa, node *pb) /*一元多项式相加函数,用于将两个多项式相加,
然后将和多项式存放在多项式pa中,并将多项式pb删除*/
{
node *p,*q,*pre,*temp;
int sum;
p=pa->next; /*令p和q分别指向pa和pb多项式链表中的第一个结点*/
q=pb->next;
pre=pa; /*位置指针,指向和多项式pa*/
while(p!=NULL&&q!=NULL) /*当两个多项式均未扫描结束时,执行以下操作*/
{
if(p->expn<q->expn) /*若p指向的多项式指数小于q指的指数*/
{
pre->next=p; /*将p结点加入到和多项式中*/
pre=pre->next;
p=p->next;
}
if(p->expn==q->expn) /*若指数相等,则相应的系数相加*/
{
sum=p->coef+q->coef;
if(sum!=0)
{
p->coef=sum;
pre->next=p;pre=pre->next;p=p->next;
temp=q;q=q->next;free(temp);
}
else /*如果系数和为零,则删除结点p与q,并将指针指向下一个结点*/
{
temp=p->next;free(p);p=temp;
temp=q->next;free(q);q=temp;
}
}
if (q->expn<p->expn)
{
pre->next=q; /*将q结点加入到和多项式中*/
pre=pre->next;
q=q->next;
}
}
if(p!=NULL) /*多项式A中还有剩余,则将剩余的结点加入到和多项式中*/
pre->next=p;
else /*否则将B的结点加入到和多项式中*/
pre->next=q;
}
void print(node * p) /*输出函数,打印出一元多项式*/
{
while(p->next!=NULL)
{
p=p->next;
printf(" %f*x^%d",p->coef,p->expn);
}
}
void calculate() /*给多项式赋值并计算*/
{ float cal=1.0,mid=0.0,las;
int j;
float num, x;
int i=0;
float later=0.0;
int e[MAX];float c[MAX];
printf("Please input num:"); /*输入常数的值*/
scanf("%f",&num);
printf("Please input x:"); /*输入未知数X的值*/
scanf("%f",&x);
printf("Please input e[0]:"); /*输入数组的初值以判断是否循环*/
scanf("%d",&e[0]);
printf("Please input c[0]:");
scanf("%f",&c[0]);
while(e[i]!=0 && c[i]!=0.0 ) /*此循环用于多项式的计算*/
{ cal=1;
for(j=0;j<e[i];j++) /*表示出X的几次方*/
{
cal=cal*x;
}
i++;
mid=cal*c[i-1]; /*表示出单项*/
later+=mid;
printf("Please input e[%d] and c[%d] :",i,i);
scanf("%d%f",&e[i],&c[i]);
}
las=later+num; /*表示出完整的多项式*/
printf("The Result is :\n");
printf("%f",las); /*最终的计算结果*/
sleep(3);
}
void main()
{
node * pa,* pb,*pc,*p,*q,*pre;
int driver=VGA,mode=VGAHI;
initgraph(&driver,&mode,"c:\\tc ");
setbkcolor(BLUE);
setcolor(RED);
printf("Welcome,Let's go!\n");
printf("Next, you will see the process of computing !");
printf("\nPlease input the coef and expn of pa:\n");
pa=create(); /*调用建立链表函数,创建多项式A*/
print(pa);
printf("\nPlease input the coef and expn of pb:\n");
pb=create(); /*同理,创建B*/
print(pb);
p=pa->next; /*以下代码用于排序*/
pa->next=NULL;
while(p!=NULL)
{
if(pa->next==NULL)
{
pa->next=p;p=p->next;
pa->next->next=NULL;
}
else
{ pre=pa;q=pre->next;
while(q!=NULL && p->expn>q->expn)
{
pre=q;q=q->next;
}
q=p->next;
p->next=pre->next;
pre->next=p;
p=q;
}
}
printf("\nthe first ordered one:\n");print(pa); /*输出排序后的pa*/
p=pb->next; /*以下代码用于给pb排序*/
pb->next=NULL;
while(p!=NULL)
{
if(pb->next==NULL)
{
pb->next=p;p=p->next;
pb->next->next=NULL;
}
else
{ pre=pb;q=pre->next;
while(q!=NULL && p->expn>q->expn)
{
pre=q;q=q->next;
}
q=p->next;
p->next=pre->next;
pre->next=p;
p=q;
}
}
printf("\nthe second ordered one:\n");print(pb); /*输出排序后的pb*/
printf("\nSum of the polys is:\n");
polyadd(pa,pb); /*调用一元多项式相加函数*/
print(pa); /*调用输出函数,打印结果*/
printf("\n");
setbkcolor(RED);
calculate(); /*调用计算多项式值的函数*/
}
编后总结
本程序在逻辑设计,详细设计,程序编码和程序调试阶段时本来都城有设计save()保存函数,和load()下载函数,分别用来保存创建的多项式,和下载其它需计算的多项式数据,这样这个系统才能更加实用,void createadj()原来的函数原型为arcnode *createdj()函数中用链表结构把adjmatrix[][]的数据都保存其中,这样就能实现数据的保存,但随之要把Dijkstra中的adjmatrix[][]转换成用arcnode 指针的形式进行表示,因为只有这样,下载后的数据才能使用。但在最后的调试阶段中,发现dijkstra无法运行,但又苦于无法用save()函数保存adjmatrix[][],最后只放弃save()和load()函数,在 main()主函数中初始化该算式。从这次程序设计中我看到自己的不足之处,今后要更努力的学习和掌握好数据结构程序设计的知识。
数字电子技术课程设计报告
题 目: 数字钟的设计与制作
学 年
学 期:
专 业 班 级:
学 号: 姓 名:
指导教师及职称:讲师
时 间:
地点:
设计目的
熟悉集成电路的引脚安排.
掌握各芯片的逻辑功能及使用方法.
了解面包板结构及其接线方法.
了解数字钟的组成及工作原理.
熟悉数字钟的设计与制作.
设计要求
1.设计指标
时间以24小时为一个周期;
显示时,分,秒;
有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;
计时过程具有报时功能,当时间到达整点前5秒进行蜂鸣报时;
为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号.
2.设计要求
画出电路原理图(或仿真电路图);
元器件及参数选择;
电路仿真与调试;
PCB文件生成与打印输出.
3.制作要求 自行装配和调试,并能发现问题和解决问题.
4.编写设计报告 写出设计与制作的全过程,附上有关资料和图纸,有心得体会.
设计原理及其框图
1.数字钟的构成
数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路.由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定.通常使用石英晶体振荡器电路构成数字钟.图 3-1所示为数字钟的一般构成框图.
图3-1 数字钟的组成框图
⑴晶体振荡器电路
晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定.不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路.
⑵分频器电路
分频器电路将32768Hz的高频方波信号经32768()次分频后得到1Hz的方波信号供秒计数器进行计数.分频器实际上也就是计数器.
⑶时间计数器电路
时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为12进制计数器.
⑷译码驱动电路
译码驱动电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流.
⑸数码管
数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供的为LED数码管.
2.数字钟的工作原理
1)晶体振荡器电路
晶体振荡器是构成数字式时钟的核心,它保证了时钟的走时准确及稳定.
图3-2所示电路通过CMOS非门构成的输出为方波的数字式晶体振荡电路,这个电路中,CMOS非门U1与晶体,电容和电阻构成晶体振荡器电路,U2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波.输出反馈电 阻R1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一个高增益的反相放大器.电容C1,C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能.由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确.
晶体XTAL的频率选为32768HZ.该元件专为数字钟电路而设计,其频率较低,有利于减少分频器级数.
从有关手册中,可查得C1,C2均为30pF.当要求频率准确度和稳定度更高时,还可接入校正电容并采取温度补偿措施.
由于CMOS电路的输入阻抗极高,因此反馈电阻R1可选为10MΩ.较高的反馈电阻有利于提高振荡频率的稳定性.
非门电路可选74HC00.
图3-2 COMS晶体振荡器
2)分频器电路
通常,数字钟的晶体振荡器输出频率较高,为了得到1Hz的秒信号输入,需要对振荡器的输出信号进行分频.
通常实现分频器的电路是计数器电路,一般采用多级2进制计数器来实现.例如,将32768Hz的振荡信号分频为1HZ的分频倍数为32768(215),即实现该分频功能的计数器相当于15极2进制计数器.常用的2进制计数器有74HC393等.
本实验中采用CD4060来构成分频电路.CD4060在数字集成电路中可实现的分频次数最高,而且CD4060还包含振荡电路所需的非门,使用更为方便.
CD4060计数为14级2进制计数器,可以将32768HZ的信号分频为2HZ,其内部框图如图3-3所示,从图中可以看出,CD4060的时钟输入端两个串接的非门,因此可以直接实现振荡和分频的功能.
图3-3 CD4046内部框图
3)时间计数单元
时间计数单元有时计数,分计数和秒计数等几个部分.
时计数单元一般为12进制计数器计数器,其输出为两位8421BCD码形式;分计数和秒计数单元为60进制计数器,其输出也为8421BCD码.
一般采用10进制计数器74HC390来实现时间计数单元的计数功能.为减少器件使用数量,可选74HC390,其内部逻辑框图如图 2.3所示.该器件为双2—5-10异步计数器,并且每一计数器均提供一个异步清零端(高电平有效).
图3-4 74HC390(1/2)内部逻辑框图
秒个位计数单元为10进制计数器,无需进制转换,只需将QA与CPB(下降沿有效)相连即可.CPA(下降没效)与1HZ秒输入信号相连,Q3可作为向上的进位信号与十位计数单元的CPA相连.
秒十位计数单元为6进制计数器,需要进制转换.将10进制计数器转换为6进制计数器的电路连接方法如图3-5所示,其中Q2可作为向上的进位信号与分个位的计数单元的CPA相连.
图3-5 10进制——6进制计数器转换电路
分个位和分十位计数单元电路结构分别与秒个位和秒十位计数单元完全相同,只不过分个位计数单元的Q3作为向上的进位信号应与分十位计数单元的CPA相连,分十位计数单元的Q2作为向上的进位信号应与时个位计数单元的CPA相连.
时个位计数单元电路结构仍与秒或个位计数单元相同,但是要求,整个时计数单元应为12进制计数器,不是10的整数倍,因此需将个位和十位计数单元合并为一个整体才能进行12进制转换.利用1片74HC390实现12进制计数功能的电路如图3-6所示.
另外,图3-6所示电路中,尚余-2进制计数单元,正好可作为分频器2HZ输出信号转化为1HZ信号之用.
图3-6 12进制计数器电路
4)译码驱动及显示单元
计数器实现了对时间的累计以8421BCD码形式输出,选用显示译码电路将计数器的输出数码转换为数码显示器件所需要的输出逻辑和一定的电流,选用CD4511作为显示译码电路,选用LED数码管作为显示单元电路.
5)校时电源电路
当重新接通电源或走时出现误差时都需要对时间进行校正.通常,校正时间的方法是:首先截断正常的计数通路,然后再进行人工出触发计数或将频率较高的方波信号加到需要校正的计数单元的输入端,校正好后,再转入正常计时状态即可.
根据要求,数字钟应具有分校正和时校正功能,因此,应截断分个位和时个位的直接计数通路,并采用正常计时信号与校正信号可以随时切换的电路接入其中.图3-7所示即为带有基本RS触发器的校时电路,
图3-7 带有消抖动电路的校正电路
6)整点报时电路
一般时钟都应具备整点报时电路功能,即在时间出现整点前数秒内,数字钟会自动报时,以示提醒.其作用方式是发出连续的或有节奏的音频声波,较复杂的也可以是实时语音提示.
根据要求,电路应在整点前10秒钟内开始整点报时,即当时间在59分50秒到59分59秒期间时,报时电路报时控制信号.报时电路选74HC30,选蜂鸣器为电声器件.
元器件
1.实验中所需的器材
5V电源.
面包板1块.
示波器.
万用表.
镊子1把.
剪刀1把.
网络线2米/人.
共阴八段数码管6个.
CD4511集成块6块.
CD4060集成块1块.
74HC390集成块3块.
74HC51集成块1块.
74HC00集成块5块.
74HC30集成块1块.
10MΩ电阻5个.
500Ω电阻14个.
30p电容2个.
32.768k时钟晶体1个.
蜂鸣器.
2.芯片内部结构图及引脚图
图4-1 7400 四2输入与非门 图4-2 CD4511BCD七段译码/驱动器
图4-3 CD4060BD 图4-4 74HC390D
图4-5 74HC51D 图4-6 74HC30
3.面包板内部结构图
面包板右边一列上五组竖的相通,下五组竖的相通,面包板的左边上下分四组,每组中X,Y列(0-15相通,16-40相通,41-55相通,ABCDE相通,FGHIJ相通,E和F之间不相通.
个功能块电路图
一个CD4511和一个LED数码管连接成一个CD4511驱动电路,数码管可从0---9显示,以次来检查数码管的好坏,见附图5-1.
图5-1 4511驱动电路
利用一个LED数码管,一块CD4511,一块74HC390,一块74HC00连接成一个十进制计数器,电路在晶振的作用下数码管从0—9显示,见附图5-2.
图5-2 74390十进制计数器
利用一个LED数码管,一块CD4511,一块74HC390,一块74HC00和一个晶振连接成一个六进制计数器,数码管从0—6显示,见附图5-3.
图5-3 74390六进制计数器
利用一个六进制电路和一个十进制连接成一个六十进制电路,电路可从0—59显示,见附图5-4.
图5-4 六十进制电路
利用两个六十进制的电路合成一个双六十进制电路,两个六十进制之间有进位,见附图5-5.
图5-5 双六十进制电路
利用CD4060,电阻及晶振连接成一个分频——晶振电路,见附图5-6.
图5-6 分频—晶振电路
利用74HC51D和74HC00及电阻连接成一个校时电路,见附图5-7.
图5-7 校时电路
利用74HC30和蜂鸣器连接成整点报时电路.见附图5-8.
图5-8 整点报时电路
利用两个六十进制和一个十二进制连接成一个时,分,秒都会进位的电路总图,见附图5-9.
图5-9 时,分,秒的进位连接图
总接线元件布局简图,见附图6-1
芯片连接图见附图7-1
八,总结
设计过程中遇到的问题及其解决方法.
在检测面包板状况的过程中,出现本该相通的地方却未通的状况,后经检验发现是由于万用表笔尖未与面包板内部垂直接触所至.
在检测CD4511驱动电路的过程中发现数码管不能正常显示的状况,经检验发现主要是由于接触不良的问题,其中包括线的接触不良和芯片的接触不良,在实验过程中,数码管有几段二极管时隐时现,有时会消失.用5V电源对数码管进行检测,一端接地,另一端接触每一段二极管,发现二极管能正常显示的,再用万用表欧姆档检测每一根线是否接触良好,在检测过程中发现有几根线有时能接通,有时不能接通,把接触不好的线重新接过后发现能正常显示了.其次是由于芯片接触不良的问题,用万用表欧姆档检测有几个引脚本该相通的地方却未通,而检测的导线状况良好,其解决方法为把CD4511的芯片拔出,根据面包板孔的的状况重新调整其引脚,使其正对于孔,再用力均匀地将芯片插入面包板中,此后发现能正常显示,本次实验中还发现一块坏的LED数码管和两块坏的CD4511,经更换后均能正常显示.
在连接晶振的过程中,晶振无法起振.在排除线与芯片的接触不良问题后重新对照电路图,发现是由于12脚未接地所至.
在连接六进制的过程中,发现电路只能4,5的跳动,后经发现是由于接到与非门的引脚接错一根所至,经纠正后能正常显示.
在连接校正电路的过程中,出现时和分都能正常校正时,但秒却受到影响,特别时一较分钟的时候秒乱跳,而不校时的时候,秒从40跳到59,然后又跳回40,分和秒之间无进位,电路在时,分,秒进位过程中能正常显示,故可排除芯片和连线的接触不良的问题.经检查,校正电路的连线没有错误,后用万用表的直流电压档带电检测秒十位的QA,QB,QC和QD脚,发现QA脚时有电压时而无电压,再检测秒到分和分到时的进位端,发现是由于秒到分的进位未拔掉所至.
在制作报时电路的过程中,发现蜂鸣器在57分59秒的时候就开始报时,后经检测电路发现是由于把74HC30芯片当16引脚的芯片来接,以至接线都错位,重新接线后能正常报时.
连接分频电路时,把时个位的QD和时十位的1脚断开,然后时十位的1脚接到晶振的3脚,时十位的3脚接到秒个位的1脚,所连接的电路图无法正常工作,时十位从0-9的跳,时个位只能显示一个0,在这个电路中3脚的分频用到两次,故无法正常显示,因此要把12进制接到74HC390的一个逻辑电路空出来用于分频即可,因此把时十位的CD4511的12,6脚接地,7脚改为接74HC390的5脚,74HC390的3,4脚断开,然后4脚接9脚即可,其中空出的74HC390的3脚就可用于2Hz的分频,分频后变为1Hz,整个电路也到此为正常的数字钟计数.
2.设计体会
在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法.
在连接六进制,十进制,六十进制的进位及十二进制的接法中,要求熟悉逻辑电路及其芯片各引脚的功能,那么在电路出错时便能准确地找出错误所在并及时纠正了.
在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的,例如仿真的连接示意图中,往往没有接高电平的16脚或14脚以及接低电平的7脚或8脚,因此在实际的电路连接中往往容易遗漏.又例如74HC390芯片,其本身就是一个十进制计数器,在仿真电路中必须连接反馈线才能正常显示,而在实际电路中无需再连接,因此仿真图和电路连接图还是有一定区别的.
在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的.
3.对该设计的建议
此次的数字钟设计重在于仿真和接线,虽然能把电路图接出来,并能正常显示,但对于电路本身的原理并不是十分熟悉.总的来说,通过这次的设计实验更进一步地增强了实验的动手能力.
好了,今天关于课程设计报告总结就到这里了。希望大家对课程设计报告总结有更深入的了解,同时也希望这个话题课程设计报告总结的解答可以帮助到大家。