1、202*年7月8日至202*年7月22日(一)PROTEL部分1任务说明:(1)熟练掌握PROTEL软件的使用;(2)按要求绘制电路原理图;(3)能够按要求建立元件库和封装库;(4)按要求根据电路原理图绘制PCB版图(能够用自动布线和手动布线相结合)。2原理图绘制说明:我们这次实习的任务是:练习学会使用PROTEL99SE软件。从中我们要学会使用PROTEL99SE软件来绘制任一原理图以及任一PCB原理图一,首先双击桌面图标打开protel99E二,执行菜单命令:出现了新建数据库对话框三,点击ok按钮新建文件夹Folder1,双击打开Folder1,在里面新建电路原理图四设置图纸信息:按要求设
2、置电路原理图图纸为A4尺寸,点击菜单“设计”选项,然后再“sheel选项”下找到标准风格进行页面大小设置,如图所示页面大小设置五,原理图的建立:根据任务书上的电路原理图,去库里找相对应的元件对应摆好,但有些原件在元件库中并不存在,需要自己建立,我这个电路的一些单片机原件和一些数码管均需自己建,当把各种元件放到合适的位置之后将就可以连线了,连线的时候一定要和原理图上的引脚一一对应,并用PgUp和PgDn键依次为放大、缩小键,可以调节电路图的清晰度,便于检查。检查无误后便可以保存原理图,则原理图绘制完毕。3.印制板图绘制说明:在绘制PCB原理图之前,要先给元件原理图进行封装。新建一个PCBDocm
3、ent,如下图:在库里找每个元件对应的封装号,然后添加到每个元件的封装栏中,进行保存。如果库里没有需要我们自己做出封装。根据原理图在菜单栏中点击设计菜单,创建网络表,生成一个Sheet1.NET文件。点击菜单栏中的文件菜单,新建一个PCBDocment,点击设计菜单,生成网络表,在网络表中会显示错误之处,将错误尽量的改正完之后再执行,如果没改完也可强制执行,然后在生成的pcb板中进行修改也可以。然后进行手动布局,将原件排的尽量密一些,尽量放在一个矩形框中。而后用粉色线将原理图圈至框内,制成印制板边框图,给板布局,并确定原点。然后点击“自动布线”,给板全部布线。最后便生成印制版图。自己做的原件1
4、.根据原理图生成的网络表文件打执行菜单Design/LoadNets命令,然后在弹出的窗口中单击Browse按钮,再在弹出的窗口中选择电路原理图设计生成的网络表文件(扩展名为Net)。绘制印制板图。2.直接放置元件绘制印制板图3.创建一个元件的封装创建新的封装元件在Prote中有二种方法,一是手工创建,二是用向导创建。绘制的封装元件的尺寸必须和实际的元件尺寸绝对相吻合,这些尺寸包括外形尺寸、焊盘尺寸、焊盘间尺寸、元件引脚穿孔尺寸等。4对所绘制电路进行简要分析:该电路仅由蜂鸣器,电阻,电容,开关,电源,数码管,总线,单片机组成。数码管的封装库中都没有找到,需要自己创建,制版图中同色线并没有相交叉
5、,检查元件引脚均已连接正确,说明电路图连接准确,可以生成制板了。5体会及合理化建议PROTEL99SE软件的课设,使我掌握了PROTEL99SE软件的基本应用,让我掌握基本电路图的绘制,掌握了基本印刷电路板的绘制,学会对一些基本电子元件创建和封装,为以后将使所学理论知识用于实践奠定了基础。建议:1.希望老师能多讲一些关于protel的知识,一个小时的讲解毕竟有些少。附录I电路原理图附录II印制板图(二)软件设计部分一题目分析1、问题描述要求设计一个能够对学生学籍信息进行综合管理的系统。2、基本要求该程序应实现如下主要功能:1添加功能:添加一个学生的基本信息,包括姓名,年龄,性别,学号,生日,家
6、庭住址,家庭电话号码;2删除功能:能够对一个姓名的信息进行按姓名进行删除;3显示功能:显示所有学生的主要信息包括姓名,学号,家庭住址,家庭电话号码;4查找功能:根据你键入的学生姓名,显示其详细信息;5修改功能:对学生的信息进行修改。二设计部分经过对设计题目的分析可知,整个程序的设计实现主要分为六个模块,其中每一个模块对应一个函数,他们的功能分别是:创建链表(creatlist),删除(deletelist)显示(displaylist)查询(funsearch)修改(funmodily)主函数(main)1.创建链表(creatlist)建立一个链表,可把所需要的信息进行存储,其程序为Link
7、ListCreateList(void);intGetLength(LinkListhead);LinkNodeGetNode(LinkListhead,inti);LinkNodeLocateNode(LinkListhead,char*strName);intcompare(char*,char*);voidDisplayNode(LinkNodepNode);voidReleaseList(LinkListhead);voidFunDelete(LinkListhead);voidFunSearch(LinkListhead);voidFunModify(LinkListhead);/-
8、函数实现-LinkListCreateList(void)/用尾插法,构造带头节点的链表,返回带头节点的链表的头指针。LinkListhead=newNode;/在堆中申请的空间,因为要返回这个空链表.head-next=NULL;/用尾插法,为了实现与输入一致性。LinkNodepNode,rear;/定义两个指针,一个是操作指针,一个是尾指针。rear=head;charchAgain;dopNode=newNode;if(!pNode)cout流程图3.显示(displaylist)显示是输入学生姓名则显示学生的姓名,学号,家庭住址,家庭电话。其程序为voidDisplayList(Li
9、nkListhead)/在STDIO中显示整个链表的内容。LinkNodepNode=head-next;/从开始节点开始扫描。cout4.查询(funsearch)输入该学生的姓名,则会出现该学生详细信息,其程序为voidFunSearch(LinkListhead)/查询子系统。coutreturn;elsepNode=GetNode(head,i);coutcoutstrName;strcpy(pNode-m_strName,strName);break;case2:coutstrID;pNode-m_strID=strID;case3:coutAddress;m_Address=Add
10、ress;case4:coutPhNumber;m_PhNumber=PhNumber;case5:coutstrSex;m_strSex=strSex;case6:coutYear;m_nYear=Year;case7:coutBirthday;m_Birthday=Birthday;6.主函数(main)主函数可以实现对其他函数的调用,其程序为intmain(void)system(colorE);LinkListhead;/初始化链表coutcase1:head=CreateList();case2:if(!head)修改修改后进行查找四结论本次课程设计中,我对C语言程序设计的思路和方法
11、有了更深入的了解和清醒的认识,加深了我对C语言中算法,数据类型,运算符与表达式,程序结构设计,循环控制,函数,指针,结构体,文件等方面的应用能力,使我基本掌握了设计程序的思路,能够独立编写并调试一些简单的程序。同时我也认识到了自己的不足,在以前的学习中我主要注重语法规则,通过这次程序设计我认识到,语法虽然重要,但是只会语法,甚至把语法背得滚瓜烂熟,也不肯可能编写出好的程序,一定要把重点放到解题的思路上,通过大量的例题学习怎样设计一个算法,构造一个程序。在学习开始时更不能在语法细节上死背死抠。五程序清单/*学生信息管理系统至少有学号、姓名、性别、年龄、出生年月、家庭住址、家庭电话号码。显示:姓名
12、学号家庭住址、家庭电话号码查找:按姓名查找修改对学生信息进行统一管理,完成添加、修改、删除等操作在上述功能的基础上进行进一步完善。*/*此程序插入/删除动作较多,所以可采用单链表结构。*/#include#include#include#includeusingnamespacestd;/-构造链表节点-typedefstructStudentstringm_strID;/学号。charm_strName20;stringm_strSex;stringm_Address;intm_Birthday;/出生日期unsignedintm_nYear;/年龄。longm_PhNumber;/电话号码
13、structStudent*next;Node,*LinkList,*LinkNode;/-函数声明-LinkListCreateList(void);coutLinkNodeGetNode(LinkListhead,inti)/按“序号”查找。此时要增加一个计数器j.为什么不直接用i?因为i可能是“不合法”的值。LinkNodepNode=head;intj=0;/要从头节点开始扫描。因为可把头节点看作序号为0。while(pNode-next&jnext;j+;if(j=i)returnpNode;elsereturnNULL;LinkNodeLocateNode(LinkListhead
14、,char*strName)/按姓名查询。/从需要从开始节点开始扫描,因为头节点没数据。while(pNode&!compare(pNode-m_strName,strName)pNode=pNode-intcompare(char*m_strName,char*strName)inti=0;while(m_strNamei=strNamei)if(m_strNamei=0|strNamei=)return1;i+;return0;/*voidDeleteList(LinkListhead,inti)/按姓名来删除。LinkNodepPreNode=GetNode(head,i-1);Link
15、NodepNode=pPreNode-/指向被删除节点。/-i的合法性-if(pPreNode=NULL|pNode=NULL)coutpNode=pNode-/if(compare(pNode-m_strName,strName)if(pNode=NULL)return-1;/表示没有此节点。elsereturni;/elsecouti=GetLocation(head,strName);if(i=-1)coutcharstrName20;coutstrName;LinkNodepNode=LocateNode(head,strName);if(pNode=NULL)coutcinAddre
16、ss;case6:/-=main()=-intmain(void)menu;while(cin.fail()|menu7)cout参考文献1.裘宗燕著,从问题到程序科学出版社,北京大学出版社,1999年4月。2.陈朔鹰等编著,C语言程序设计基础教程,兵器工业出版社,1994年9月3.C语言趣味程序百例精解,陈朔鹰陈英主编,北京理工大学出版社,1996年4.C语言编程常见问题解答,美PaulS.R.Chishohm等著,张芳妮吕波译,清华大学出版社,1996年12月。参考文献:5.曹丙霞protel99SE原理图与PCB设计北京电子工业出版社202*年5月6.邢增平protel99SE设计专家指导北京中国铁道出版社20友情提示:本文中关于学生信息管理系统总结给出的范例仅供您参考拓展思维使用,学生信息管理系统总结:该篇文章建议您自主创作。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1