protel与学生信息管理系统总结报告.doc
《protel与学生信息管理系统总结报告.doc》由会员分享,可在线阅读,更多相关《protel与学生信息管理系统总结报告.doc(25页珍藏版)》请在冰豆网上搜索。
![protel与学生信息管理系统总结报告.doc](https://file1.bdocx.com/fileroot1/2022-10/19/ff464a17-f13e-4caa-8aa1-c232ac4de8ab/ff464a17-f13e-4caa-8aa1-c232ac4de8ab1.gif)
沈阳航空航天大学
电子设计应用软件训练总结报告
学生姓名:
刘兆
学院专业:
电子信息工程
班级学号:
94020104
指导教师:
王颖
训练时间:
2011年7月8日至2011年7月22日
(一)PROTEL部分
1.任务说明:
(1)熟练掌握PROTEL软件的使用;
(2)按要求绘制电路原理图;
(3)能够按要求建立元件库和封装库;
(4)按要求根据电路原理图绘制PCB版图(能够用自动布线和手动布线相结合)。
2.原理图绘制说明:
我们这次实习的任务是:
练习学会使用PROTEL99SE软件。
从中我们要学会使用PROTEL99SE软件来绘制任一原理图以及任一PCB原理图
一,首先双击桌面图标打开protel99E
二,执行菜单命令:
file/new出现了新建数据库对话框
三,点击ok按钮新建文件夹Folder1,双击打开Folder1,在里面新建电路原理图
四.设置图纸信息:
按要求设置电路原理图图纸为A4尺寸,点击菜单“设计”选项,然后再“sheel选项”下找到标准风格进行页面大小设置,如图所示
页面大小设置
五,原理图的建立:
根据任务书上的电路原理图,去库里找相对应的元件对应摆好,但有些原件在元件库中并不存在,需要自己建立,我这个电路的一些单片机原件和一些数码管均需自己建,当把各种元件放到合适的位置之后将就可以连线了,连线的时候一定要和原理图上的引脚一一对应,并用PgUp和PgDn键依次为放大、缩小键,可以调节电路图的清晰度,便于检查。
检查无误后便可以保存原理图,则原理图绘制完毕。
3.印制板图绘制说明:
在绘制PCB原理图之前,要先给元件原理图进行封装。
新建一个PCBDocment,如下图:
在库里找每个元件对应的封装号,然后添加到每个元件的封装栏中,进行保存。
如果库里没有需要我们自己做出封装。
根据原理图在菜单栏中点击设计菜单,创建网络表,生成一个Sheet1.NET文件。
点击菜单栏中的文件菜单,新建一个PCBDocment,点击设计菜单,生成网络表,在网络表中会显示错误之处,将错误尽量的改正完之后再执行,如果没改完也可强制执行,然后在生成的pcb板中进行修改也可以。
然后进行手动布局,将原件排的尽量密一些,尽量放在一个矩形框中。
而后用粉色线将原理图圈至框内,制成印制板边框图,给板布局,并确定原点。
然后点击“自动布线”,给板全部布线。
最后便生成印制版图。
自己做的原件
1.根据原理图生成的网络表文件
打执行菜单Design/LoadNets命令,然后在弹出的窗口中单击Browse按钮,再在弹出的窗口中选择电路原理图设计生成的网络表文件(扩展名为Net)。
绘制印制板图。
2.直接放置元件绘制印制板图
3.创建一个元件的封装
创建新的封装元件在Prote中有二种方法,一是手工创建,二是用向导创建。
绘制的封装元件的尺寸必须和实际的元件尺寸绝对相吻合,这些尺寸包括外形尺寸、焊盘尺寸、焊盘间尺寸、元件引脚穿孔尺寸等。
4.对所绘制电路进行简要分析:
该电路仅由蜂鸣器,电阻,电容,开关,电源,数码管,总线,单片机组成。
数码管的封装库中都没有找到,需要自己创建,制版图中同色线并没有相交叉,检查元件引脚均已连接正确,说明电路图连接准确,可以生成制板了。
5.体会及合理化建议
PROTEL99SE软件的课设,使我掌握了PROTEL99SE软件的基本应用,让我掌握基本电路图的绘制,掌握了基本印刷电路板的绘制,学会对一些基本电子元件创建和封装,为以后将使所学理论知识用于实践奠定了基础。
建议:
1.希望老师能多讲一些关于protel的知识,一个小时的讲解毕竟有些少。
附录I电路原理图
附录II印制板图
(二)软件设计部分
一.题目分析
1、问题描述
要求设计一个能够对学生学籍信息进行综合管理的系统。
2、基本要求
该程序应实现如下主要功能:
1.添加功能:
添加一个学生的基本信息,包括姓名,年龄,性别,学号,生日,家庭住址,家庭电话号码;
2.删除功能:
能够对一个姓名的信息进行按姓名进行删除;
3.显示功能:
显示所有学生的主要信息包括姓名,学号,家庭住址,家庭电话号码;
4.查找功能:
根据你键入的学生姓名,显示其详细信息;
5.修改功能:
对学生的信息进行修改。
二.设计部分
经过对设计题目的分析可知,整个程序的设计实现主要分为六个模块,其中每一个模块对应一个函数,他们的功能分别是:
创建链表(creatlist),删除(deletelist)显示(displaylist)查询(funsearch)修改(funmodily)主函数(main)
1.创建链表(creatlist)建立一个链表,可把所需要的信息进行存储,其程序为
LinkListCreateList(void);
intGetLength(LinkListhead);
LinkNodeGetNode(LinkListhead,inti);
LinkNodeLocateNode(LinkListhead,char*strName);
intcompare(char*,char*);
voidDisplayNode(LinkNodepNode);
voidReleaseList(LinkListhead);
voidFunDelete(LinkListhead);
voidFunSearch(LinkListhead);
voidFunModify(LinkListhead);
//-----------函数实现------------
LinkListCreateList(void)
{//用尾插法,构造带头节点的链表,返回带头节点的链表的头指针。
LinkListhead=newNode;//在堆中申请的空间,因为要返回这个空链表.
head->next=NULL;
//用尾插法,为了实现与输入一致性。
LinkNodepNode,rear;//定义两个指针,一个是操作指针,一个是尾指针。
rear=head;
charchAgain;
do
{pNode=newNode;
if(!
pNode)
{cout<<"内存申请失败!
退出系统."<exit(-1);}
cout<<"请输入学号:
";
cin>>pNode->m_strID;//待测试。
cout<";
cin>>pNode->m_strName;
cout<";
cin>>pNode->m_strSex;
cout<";
cin>>pNode->m_Birthday;
cout<";
cin>>pNode->m_nYear;
cout<";
cin>>pNode->m_Address;
cout<";
cin>>pNode->m_PhNumber;
//链入表尾。
rear->next=pNode;
rear=pNode;//将尾指针指向新表尾。
cout<<"信息录入成功!
是否继续?
(Y/N):
";
cin>>chAgain;
}while(chAgain=='Y'||chAgain=='y');
rear->next=NULL;//结束单链表。
returnhead;//返回头指针。
}
2.删除(deletelist)删除学生信息,依照要求按姓名进行删除,其程序为
voidDeleteList(LinkListhead,inti)
{//按姓名来删除。
LinkNodepPreNode=GetNode(head,i-1);
LinkNodepNode=pPreNode->next;//指向被删除节点。
//----i的合法性--------
if(pPreNode==NULL||pNode==NULL)
{cout<<"i不合法,无法删除。
"<return;}
pPreNode->next=pNode->next;
deletepNode;
cout<<"删除成功!
"<LinkListhead=newNode;
chAgain=='Y'||chAgain=='y'
rear->next=NULL;
returnhead;
pNode=newNode;
!
pNode
cout<<"请输入学号:
";
cout<<"内存申请失败!
退出系统."<流程图
3.显示(displaylist)显示是输入学生姓名则显示学生的姓名,学号,家庭住址,家庭电话。
其程序为
voidDisplayList(LinkListhead)
{//在STDIO中显示整个链表的内容。
LinkNodepNode=head->next;//从开始节点开始扫描。
cout<<"********************************************************************"<cout<<"姓名学号家庭住址家庭电话性别年龄出生日期"<cout<<"------------------------------------------------------------------------"<while(pNode)
{DisplayNode(pNode);
cout<pNode=pNode->next;}
cout<<"========================================================="<流程图
4.查询(funsearch)输入该学生的姓名,则会出现该学生详细信息,其程序为
voidFunSearch(LinkListhead)
{//查询子系统。
cout<<"-----------------------------------------"<cout<<"--1.按姓名查询0.退出子系统-