数据结构课程设计---实时监控报警系统

数据结构课程设计---实时监控报警系统

ID:11464316

大小:130.50 KB

页数:0页

时间:2018-07-12

数据结构课程设计---实时监控报警系统_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《数据结构课程设计---实时监控报警系统》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、课程设计报告姓名:张晓静学号:1104014006     班级:11计本班四班题目:实时监控报警系统。建立一个报警和出警管理信息系统。要求:(1)采用一定的存储结构存储报警信息,要求有内容、时间;(2)有一次的出警就应该在待处理的信息中删除这条信息;(3)记录出警信息;(4)待处理信息过多时会发出警告。一、问题分析和任务定义。有题目可知,我们需要建立一个报警、出警系统,这个课题的重点有如下几点:(1)用什么样的存储结构储存报警信息。(2)如何实现报警和出警这两项主要功能。(3)如何将出警信息保存下来,以待查询。(4)报警信息储存过多时需要发出警告。经过一学期的数据结构

2、的学习,我学习到了链表这一种数据结构,考虑到需要储存以及删除一些信息,所以我选择用链表来储存报警信息,且可以将上述的任务要求转化成一下几点:(1)用链表储存报警信息以及出警信息。(2)报警即将输入的信息储存在链表A里,我将会对链表A进行插入操作,将出警信息插入到A中;出警则是对储存报警信息的链表进行删除,首先查找到相应的信息,再对链表A进行删除操作,并用链表B储存删除的结点。(3)输出储存在链表B中的结点信息,即可知道出警信息。(4)对储存报警信息的链表A进行遍历,若它的结点个数过多,则发出警告。二、数据结构的选择和概要设计。由以上的问题可知,我选择使用链表这一种数据结

3、构来完成我的程序。由于报警时要求有内容有时间、出警时则可以根据案件的编号或者是报案的时间出警,所以链表中结点的类型是结构体。typedefstruct{intnum;//编号chartime[30];//时间charmatter[50];//内容}datatype;typedefstructnode{datatypedata;structnode*next;}Listnode;所用到的数据结构:numnext域timematter对于本次的课程设计,我的主要思路是:在主函数中输出一个菜单,让用户选择需要执行的操作,包括报警、出警、查看出警记录、退出程序。再编写子函数,子

4、函数有插入函数:voidinsertnode(linklisthead,Listnode*x);删除函数:intdelnode(linklisthead,Listnode*x);查找函数(以便查找到需要删除的出警记录):Listnode*listfind(linklisthead);输出出警记录函数:voidprintlist(linklisthead);完成主要的功能。子函数之间的调用如下:Insertnode()//插入函数主函数delnode()listnode()//删除函数和查找函数voidmain()printflist()//输出函数三、详细设计和编码。(

5、1)链表的结构类型如下:typedefstruct{intnum;//编号chartime[30];//时间charmatter[50];//内容}datatype;typedefstructnode{datatypedata;structnode*next;}Listnode;定义指向Listnode结构体的指针类型;Listnode*linklist,*A,*B;A指向未处理的报警信息的链表头结点,B指向报警信息的链表头结点(2)编写主函数,主函数中使用switch()语句,case1:中解决出警问题,调用插入函数,记录下出警记录,并提示用户已经报警成功。但是由于题

6、目要求报警信息储存过多时需要发出警告,首先对链表A进行遍历,若A的结点个数过多则输出警告信息,如下:设置一个整型变量jj,遍历到链表A有一个结点jj则加1,以此来记录结点的个数。intjj=0;h=A->next;while(h){//通过链表遍历来确定有多少节点jj++;h=h->next;}if(jj>3){//此时已有3次警务未处理printf("累计多次警务未处理,建议立即处理警务!");break;}插入函数voidinsertnode(linklisthead,Listnode*x);首先在case1中定义一个链表x,要求用户输入报警的信息,包括时间内容编号

7、,将信息存储在x中,再将x插入到链表A中,插入的过程是:首先寻找合适的插入位置,再利用指针,进行插入。voidinsertnode(linklisthead,Listnode*x){Listnode*p1,*p2;p1=head;p2=p1->next;while(p2!=NULL&&(p2->data.numdata.num)){//寻找插入位置p1=p2;p2=p2->next;}p1->next=x;//按编号大小顺序插入x->next=p2;}这样不断地执行case1的操作,就会得到一个从头结点算起编号由小到大的链表,报警

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。