学生信息管理系统总结Word文档格式.docx
《学生信息管理系统总结Word文档格式.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统总结Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
![学生信息管理系统总结Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/28/ab0ee567-bf63-46b5-82f3-021d3f212085/ab0ee567-bf63-46b5-82f3-021d3f2120851.gif)
202*年7月8日至202*年7月22日
(一)PROTEL部分
1.任务说明:
(1)熟练掌握PROTEL软件的使用;
(2)按要求绘制电路原理图;
(3)能够按要求建立元件库和封装库;
(4)按要求根据电路原理图绘制PCB版图(能够用自动布线和手动布线相结合)。
2.原理图绘制说明:
我们这次实习的任务是:
练习学会使用PROTEL99SE软件。
从中我们要学会使用PROTEL99SE软件来绘制任一原理图以及任一PCB原理图
一,首先双击桌面图标打开protel99E
二,执行菜单命令:
出现了新建数据库对话框
三,点击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
流程图
3.显示(displaylist)显示是输入学生姓名则显示学生的姓名,学号,家庭住址,家庭电话。
其程序为
voidDisplayList(LinkListhead){//在STDIO中显示整个链表的内容。
LinkNodepNode=head->
next;
//从开始节点开始扫描。
cout
4.查询(funsearch)输入该学生的姓名,则会出现该学生详细信息,其程序为voidFunSearch(LinkListhead){//查询子系统。
coutreturn;
}else
{pNode=GetNode(head,i);
cout{coutstrName;
strcpy(pNode->
m_strName,strName);
break;
}case2:
{coutstrID;
pNode->
m_strID=strID;
}case3:
{coutAddress;
m_Address=Address;
}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语言程序设计的思路和方法有了更深入的了解和清醒的认识,加深了我对C语言中算法,数据类型,运算符与表达式,程序结构设计,循环控制,函数,指针,结构体,文件等方面的应用能力,使我基本掌握了设计程序的思路,能够独立编写并调试一些简单的程序。
同时我也认识到了自己的不足,在以前的学习中我主要注重语法规则,通过这次程序设计我认识到,语法虽然重要,但是只会语法,甚至把语法背得滚瓜烂熟,也不肯可能编写出好的程序,一定要把重点放到解题的思路上,通过大量的例题学习怎样设计一个算法,构造一个程序。
在学习开始时更不能在语法细节上死背死抠。
五.程序清单
/*学生信息管理系统
至少有学号、姓名、性别、年龄、出生年月、家庭住址、家庭电话号码。
显示:
姓名学号家庭住址、家庭电话号码查找:
按姓名查找修改
对学生信息进行统一管理,完成添加、修改、删除等操作在上述功能的基础上进行进一步完善。
*//*
此程序插入/删除动作较多,所以可采用单链表结构。
**********************************************/#include#include#include#includeusingnamespacestd;
//----------构造链表节点---------------typedefstructStudent{stringm_strID;
//学号。
charm_strName[20];
stringm_strSex;
stringm_Address;
intm_Birthday;
//出生日期unsignedintm_nYear;
//年龄。
longm_PhNumber;
//电话号码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;
else
returnNULL;
LinkNodeLocateNode(LinkListhead,char*strName){//按姓名查询。
。
//从需要从开始节点开始扫描,因为头节点没数据。
while(pNode&
!
compare(pNode->
m_strName,strName))pNode=pNode->
intcompare(char*m_strName,char*strName){inti=0;
while(m_strName[i]==strName[i])
{if(m_strName[i]=="
\\0"
||strName[i]=="
)return1;
i++;
}return0;
//***********************************************voidDeleteList(LinkListhead,inti){//按姓名来删除。
LinkNodepPreNode=GetNode(head,i-1);
LinkNodepNode=pPreNode->
//指向被删除节点。
//----i的合法性--------
if(pPreNode==NULL||pNode==NULL)
{coutpNode=pNode->
//if(compare(pNode->
m_strName,strName))if(pNode==NULL)
return-1;
//表示没有此节点。
elsereturni;
//else}
couti=GetLocation(head,strName);
if(i==-1)
{coutcharstrName[20];
coutstrName;
LinkNodepNode=LocateNode(head,strName);
if(pNode==NULL){
coutcin>
>
Address;
}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
友情提示:
本文中关于《学生信息管理系统总结》给出的范例仅供您参考拓展思维使用,学生信息管理系统总结:
该篇文章建议您自主创作。