软件课程设计课程设计.docx

上传人:b****0 文档编号:17465208 上传时间:2023-07-25 格式:DOCX 页数:24 大小:692.70KB
下载 相关 举报
软件课程设计课程设计.docx_第1页
第1页 / 共24页
软件课程设计课程设计.docx_第2页
第2页 / 共24页
软件课程设计课程设计.docx_第3页
第3页 / 共24页
软件课程设计课程设计.docx_第4页
第4页 / 共24页
软件课程设计课程设计.docx_第5页
第5页 / 共24页
软件课程设计课程设计.docx_第6页
第6页 / 共24页
软件课程设计课程设计.docx_第7页
第7页 / 共24页
软件课程设计课程设计.docx_第8页
第8页 / 共24页
软件课程设计课程设计.docx_第9页
第9页 / 共24页
软件课程设计课程设计.docx_第10页
第10页 / 共24页
软件课程设计课程设计.docx_第11页
第11页 / 共24页
软件课程设计课程设计.docx_第12页
第12页 / 共24页
软件课程设计课程设计.docx_第13页
第13页 / 共24页
软件课程设计课程设计.docx_第14页
第14页 / 共24页
软件课程设计课程设计.docx_第15页
第15页 / 共24页
软件课程设计课程设计.docx_第16页
第16页 / 共24页
软件课程设计课程设计.docx_第17页
第17页 / 共24页
软件课程设计课程设计.docx_第18页
第18页 / 共24页
软件课程设计课程设计.docx_第19页
第19页 / 共24页
软件课程设计课程设计.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件课程设计课程设计.docx

《软件课程设计课程设计.docx》由会员分享,可在线阅读,更多相关《软件课程设计课程设计.docx(24页珍藏版)》请在冰点文库上搜索。

软件课程设计课程设计.docx

软件课程设计课程设计

软件课程设计课程设计

沈阳航空航天大学电子信息工程学院

 

电子设计应用软件训练

总结报告

 

专业:

电子信息工程学院

训练时间:

2013年7月1日至2012年7月12日

电子信息工程学院

电子设计应用软件训练任务

一、训练任务

1、PROTEL部分

(1)熟练掌握PROTEL软件的使用;

(2)按要求绘制电路原理图和PCB版图(能够用自动布线和手动布线相结合);

(3)能够按要求建立元件库和封装库。

2、软件设计部分

按照给定的软件设计任务完成相应的软件设计(见软件设计任务部分)。

二、基本要求及说明

1、PROTEL部分

(1)电路原理图图纸尺寸按照给定的任务作相应的设置;

(2)电路原理图见PROTEL训练任务部分;

(3)按指定电路图在PROTEL99中绘制原理图和印制板图;

(4)按照给定要求创建原理图器件和该器件的相应的封装(见PROTEL训练任务部分)。

查找资料,按资料创建原理图中某一元件及其封装形式;

2、软件设计部分

按软件设计要求实现相应的功能(见软件设计任务部分)

三、按照要求撰写总结报告

 

成绩评定表

评语、建议或需要说明的问题:

 

指导教师签字:

日期:

成绩

 

PROTEL训练任务

 

Protel部分

一、任务说明

1.熟练掌握PROTEL软件的使用;

2.按要求绘制电路原理图和PCB版图(能够用自动布线和手动布线相结合);

3.能够按要求建立元件库和封装库。

二、原理图绘制说明并新建一个元件库

1.新建设计数据库文件

打开Protel99,应先建立数据库,点击File中的new,DatabaseFileName处可输入设计库存盘文件名,点击Browse改变存盘目录,单击OK,即可建立设计数据库。

如下图1。

          图1 新建设计数据库

选取File/New...打开NewDocument对话框,如图,选取SchematicDocument建立一个新的原理图文档。

如图2。

图2 新建原理图文档

选择菜单中的Ddesign/Options命令,系统将弹出DocumentOptions对话框,并在其中选择SheetOptions选项卡进行设置接下来要设置电路图图纸信息,将电路原理图图纸设置为A4尺寸。

如图3所示。

图3页面大小设置

Win7系统无法添加库,在EDA实验中心如果在library找不到对应元件,点击Add/Remove按钮,屏幕将出现“元件库添加、删除”对话框。

在DesignExplorer99\Library\Sch文件夹下选取元件库文件,然后点击Add按钮,此元件库就会出现在SelectedFiles框中,然后点击OK按钮,完成该元件库的添加。

如图4所示。

图4元件库添加、删除

2.元件库的建立

由于有的元件在库中找不到,我们可以自己新建元件库,建好后的元件库如图5所示,共自建三个原件

图5自建的元件库

3绘制导线

单击WiringTools工具栏中的有两条线的图标,光标变成十字形,单击鼠标左键确定导线的起点,在导线的终点处单击鼠标左键确定终点,单击鼠标右键,则完成了一段导线的绘制,此时仍为绘制状态,将光标移到新导线的起点,单击鼠标左键,按前面的步骤绘制另一条导线,最后单击鼠标右键两次退出绘制状态。

绘制好的原理图如图附录I所示。

三、印制板图绘制说明

1.生成网络表文件

打开原理图文件,执行菜单命令Design|CreateNetlist,系统弹出NetlistCreation网络表设置对话框,如图6所示。

图6电气规则检查

如果此时检查没有错误,检查结果如图7所示

图7电气规则检查结果

当我们设计好原理图,在进行了ERC电气规则检查正确无误后,就要生成网络表,为PCB布线做准备。

在“Design”下选取“CreateNetlist”对话框,设置为那种格式的网络表。

网表生成后,就可以进行PCB设计了。

如图8所示。

图8网络表的生成

生成的网络表如图9所示

图9生成的网络表

2.元件封装的创建

如果原理图中的元件的封装形式在封装库中没有,需要自己建立,在自己的封装库中建立如下:

首先根据任务书中给的尺寸距离,开始在封装库中放置焊点,放置焊点时光标变为十字,中间带有一个焊盘,移动光标使焊盘到达合适的位置后,单击鼠标将其定位,将工作层面切换到顶层布线层,执行菜单命令画线,然后画出绘制元件的外形轮廓——方形。

将原件重新命名,这样该元件的封装就成功创建了。

3.绘制印制板图

新建PCB文件,在“Documents”中新建“Sheet1.Pcb”,如图10所示。

图10新建Sheet1.Pcb

在PCB文档界面下点击“Design”菜单下的“Netlist”,然后通过浏览找到自己新建的扩展名为.NET的文件,这样就把网络表导入到PCB文件中了,如果没有错误就开始布线,选择自动布线。

完成布线结果见附录Ⅱ图。

四、总结

通过这次protel课程设计,我基本了解了软件的使用,同时在老师的指导下能够完成两张图的制作,学到了不少知识,也开拓了视野。

五、参考文献

1. 赵建领.Protel99SE设计宝典.第2版,[M]北京:

电子工业出版社,2011

2. 邓奕.Protel99SE原理图与PCB设计,[M]北京:

人民邮电出版社,2011

3. 杜刚.电路板设计与制作:

Protel应用教程主编,[M]清华大学出版社2010

4. 陈强.Protel电路设计入门与实例,[M]中国电力出版社2009

5. 蔡杏山.零起步轻松学Protel99SE电路设计,[M]人民邮电出版社2007

 

附录I电路原理图

附录II印制板图

 

软件设计任务

题目猴子吃桃子问题

内容及要求:

有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。

用多种方法实现求出原来这群猴子共摘了多少个桃子。

要求:

1.采用数组数据结构实现上述求解

2.采用链数据结构实现上述求解

 

一、任务说明

根据题目要求,设猴子共摘的桃子个数为n即是第一天桃子的个数n1,第第二天时桃子个数n2,第三天时桃子个数n3,第四天时桃子个数n4,第五天时桃子个数n5,第六天时桃子个数n6,第七天时桃子个数n7,第八天时桃子个数n8,第九天时桃子个数n9,第十天时桃子个数n10。

由题中“每天都吃当前桃子的一半且再多吃一个”很容易知道n10=1,n9-(n9/2+1)=n10,n8-(n8/2+1)=n9……依

次推出公式:

ni-1-(ni-1/2+1)=ni(0

即ni-1=2*(ni+1)(0

 

二、软件设计过程及流程图

1.软件设计过程

数组求解法分析

分析:

声明一个长度为10的整形数组a[10],分别存放各天猴子吃前的桃子数。

下图1所示:

n1

n2

n3

n4

n5

n6

n7

n8

n9

n10

a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]

 

图1数组元素分布图

先将a[9]赋值为1,用一个循环语句

for(inti=8;i>=0;i--)

a[i]=2*(a[i+1]+1);为其余各数组元素赋值,则数组元素a[0]的值便是该问题的解。

数据类型定义:

inta[10];

a[9]=1;

 

链表求解法分析

分析:

建立单链表,声明一个类用来对链表的结点指针进行定义,在初始化函数中利用头插法创建具有10个元素的链表,并依次安公式ni-1=2*(ni+1)(0

赋值得到一个如图2所示的链表。

head

 

图2链表结点逻辑结构图

那么N1便是要求问题的解。

数据类型定义:

classlist

{

public:

intdata;

classlist*next;

voidpush();

};typedefclasslistnode;//建立单链表(将class重定义为node)

typedefnode*link;//定义结点指针

 

2.流程图

数组求解法

 

N

 

Y

 

 

 

图三

链表求解法

 

 

 

N

 

Y

 

 

 

 

图四

 

三、程序调试过程以及实验结果

数组求解法

图五

 

链表求解法

图六

调试分析

数组求解模块的时间复杂度:

因为其中循环for(i=8;i>=0;i--),因此其时间复杂度为O(9).数组求解模块的空间复杂度:

因为不需要输入任何数据,所以该算法为原地工作。

链表求解模块的时间复杂度:

因为算法中用到一个循环来输出,因此其时间复杂度为O(9).链表求解模块的空间复杂度:

原地工作。

调试基本无错误,仅字体及符号的错误,很容易便改正过来。

软件可以很快算出猴子吃桃的个数

 

四、结论

各算法特点及在例题功能扩展:

数组的使用要先确定其长度,有时候会造成空间浪费,但是存取方便;用链式存储方式是一种动态的存储,长度是不用规定的,需要用指针来找到元素所在存储单元;而递归算法,存储空间要得少,但要知道准确计算函数,相对比较难。

在本例题中,我们可以通过对各种方法,利用for循环进行输出,就得到每一天桃子的剩余量。

五、参考文献

[1]李云清,杨庆红.数据结构(C语言版).北京:

人民邮电出版社,2004.

[2]严蔚敏,吴伟民.数据结构(C语言版).北京:

清华大学出版.1997.

[3]苏光奎,李春葆.数据结构导学.北京:

清华大学出版.2002.

[4]周海英,马巧梅,靳雁霞.数据结构与算法设计.北京:

国防工业出版社,2007.

[5]张海藩.软件工程导论.北京:

清华大学出版社.2003.

六、程序清单

用数组数据结构实现上述求解

#include

voidmain()

{

inti,tao[10];

tao[9]=1;//tao[9]代表第10天剩的桃子数

for(i=8;i>=0;i--){

tao[i]=2*(tao[i+1]+1);

}

printf("共摘了%d个桃子!

\n",tao[0]);

}

用链数据结构实现上述求解

#include

#include

#defineNULL0

typedefstructlinknode

{

   intdata;

   structlinknode*next;

}node;

node*head;

voidcreat()

{

  node*p,*s;

  intpeaches=1;

  intday=10;

  head=(node*)malloc(sizeof(node));

  p=head;

  while(day>0)

{

   s=(node*)malloc(sizeof(node));

  s->data=peaches;

  p->next=s;

  p=s;

  peaches=(peaches+1)*2;

  day--;

}

   p->next=NULL;

   p=head;

   head=head->next;

   free(p);

}

  voidprint()

{

   node*p;

   p=head;

  intday=10;

  while(p&&day>0)

{printf("%d:

%d\n",day,p->data);

   p=p->next;

  day--;

}

}

  voidmain()

{

   creat();

   print();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2