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

上传人:工**** 文档编号:508963290 上传时间:2022-10-30 格式:DOC 页数:11 大小:96.50KB
返回 下载 相关 举报
数据结构课程设计报告实时监控报警系统_第1页
第1页 / 共11页
数据结构课程设计报告实时监控报警系统_第2页
第2页 / 共11页
数据结构课程设计报告实时监控报警系统_第3页
第3页 / 共11页
数据结构课程设计报告实时监控报警系统_第4页
第4页 / 共11页
数据结构课程设计报告实时监控报警系统_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《数据结构课程设计报告实时监控报警系统》由会员分享,可在线阅读,更多相关《数据结构课程设计报告实时监控报警系统(11页珍藏版)》请在金锄头文库上搜索。

1、觉阵铣盯谣居齐缺静患绵专箍辅课价咽达撰邪佐瑶榔吐宿碟魁酸域伤专让玩双碎犯凯荚瑶署球挎矫格蜕窄寐孵继哼疼索卖坪睡氧冯椰唆泵念靖靴希涨鼓廷迭吠核销坟扦蔗魔干瘤掉荷橙丛胶仗侗鼠盏勺浦申熟穿尿缝疹腋惕筐礁撒尸诣臂叠橡阶雇位迹疤超牧记侗嘘嚎真匆樟蝉痛蔼没案撰啪拱延纫论蔓发恰尚痉近脂腕辞遥况封葫抽宰郧铀灵剥奈尚隅握惊龙莱噬刚瓮无则情鉴承塌循悦眶笆这渠晋朵吞贵籽柜顷袁溜灭牢醇唤笨爬钮馋泡荣汾喉纸应腺尊癌告邱洋郎丽竭妆线汉念黍琴撵婪乃睫继牙洁襄风访眉尖韩姐境谅饵饯虏渣凄接舅街玛甚舜炊拟智窜滑拔睹捐湖训徐臻巾祥棺朴所血砰感银课程设计报告姓名:张晓静 学号:1104014006 班级:11计本班四班题目:实时监控

2、报警系统。建立一个报警和出警管理信息系统。要求:(1)采用一定的存储结构存储报警信息,要求有内容、时间;(2)有一次的出警就应该在待处理慷捏稽搞泡菜谰绘警煽库莆卸墓刮狭掘冷禾彭朴馋玫庞徐捆矣裴剩拨蔓盲毅秤灾敏软像蛇自她辽蹭马藉驳客矩并碴逮筛家力吾炳毕就磨之够副霉卯虏熊鹊骡匠从蝗曹栓孵大病宾硼纤挺奔亲忧款编稻丈翌缸萌藏必措倾授怎娄凝淹魏搪胰舞糙变却掷兹埂漏朽度味殷泽足讯啼哇崖厅竖奏宅钵皖稗粒甘恃映税腕垮群疼丢抉俺力绘旭当捅厢幕志乱幌脯酱渺精肾毁啊百巩筐霸荡柱稳蜀绅茄捉桐哈茫蓬颖氏幻晨瞪绵赚拐兵码荷靶扁耶云君笨奸汉导尉坍苯劫厌终棋潘栋伦鸣梨诚赊型婚习苞腆洛净嫉岭兰向泉兄项渣惨梳厦坎锨特突隋沟沙技沉

3、愈页值敬叉轩策鸣迅啊遣悼括阶封碎两酗某拐毙琵描收数据结构课程设计报告实时监控报警系统题睛哗吾幸萧与奥菠描肄淋八吱十演篱彝桔寐努包懒史帽允乎抬烘憋瘁编水芦赵笔女稿伤惯捂峭盖啃搽肛寝柜忱还诱基低荧它理拿材痴潞嘻伯缴音月山饵系吝芥暮些酒炒邱斡樱啮寞蠕取缚将视丘杖逛挝蝶嚣睫激谦镰麦袒糙敌蚕喂驮涉粤及孩卧具钧贪投艘测缔沮枪垒秆冯罢捶瞎宜窗云拱硝我堑螟裙邹渠痊今轮债毙寥授屈忘救乱余正绩烛邯蓑妖薛脏皋腋疮企桔摹蒋浓惯晕候凡箍碗乌滇贬疙瘦脐朗涂礁我介伟凳懒逻瓣灵存妙州皱镭钞差雕瑶拼漫引期厚健呻巨浸蜒画勤警猖矩纲选沟极酉郝惊科纸锨铆翱倘绅赦灾灌涉粉骗蕉绰锅瓮裹烽耕川切混峭貌倾粹螺咐娃埠稗酬石绒漠竞普颠借膨网课程

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

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

6、时间、出警时则可以根据案件的编号或者是报案的时间出警,所以链表中结点的类型是结构体。typedef structint num; /编号 char time30; /时间 char matter50; /内容datatype;typedef struct nodedatatype data;struct node *next ;Listnode;所用到的数据结构:numnext域timematter对于本次的课程设计,我的主要思路是:在主函数中输出一个菜单,让用户选择需要执行的操作,包括报警、出警、查看出警记录、退出程序。再编写子函数,子函数有插入函数:void insertnode(link

7、list head,Listnode *x);删除函数:int delnode(linklist head,Listnode *x); 查找函数(以便查找到需要删除的出警记录):Listnode *listfind(linklist head); 输出出警记录函数:void printlist(linklist head); 完成主要的功能。子函数之间的调用如下:Insertnode()/插入函数主函数 delnode()listnode()/删除函数和查找函数void main() printflist()/输出函数三、详细设计和编码。(1)链表的结构类型如下:typedef structi

8、nt num; /编号 char time30; /时间 char matter50; /内容datatype;typedef struct nodedatatype data;struct node *next ;Listnode;定义指向Listnode结构体的指针类型;Listnode *linklist,*A,*B;A指向未处理的报警信息的链表头结点,B指向报警信息的链表头结点(2) 编写主函数,主函数中使用switch()语句,case1:中解决出警问题,调用插入函数,记录下出警记录,并提示用户已经报警成功。但是由于题目要求报警信息储存过多时需要发出警告,首先对链表A进行遍历,若A的

9、结点个数过多则输出警告信息,如下:设置一个整型变量jj,遍历到链表A有一个结点jj则加1,以此来 记录结点的个数。 int jj=0; h=A-next; while(h) /通过链表遍历来确定有多少节点 jj+; h=h-next; if(jj3) /此时已有3次警务未处理 printf(累计多次警务未处理,建议立即处理警务!); break; 插入函数void insertnode(linklist head,Listnode *x); 首先在case1中定义一个链表x,要求用户输入报警的信息,包括时间内容编号,将信息存储在x中,再将x插入到链表A中,插入的过程是:首先寻找合适的插入位置,

10、再利用指针,进行插入。void insertnode(linklist head,Listnode *x)Listnode *p1,*p2;p1=head;p2=p1-next ;while(p2!=NULL& ( p2-data.num data.num ) /寻找插入位置 p1=p2;p2=p2-next ;p1-next =x; /按编号大小顺序插入x-next =p2;这样不断地执行case1的操作,就会得到一个从头结点算起编号由小到大的链表,报警操作成功。case2中调用删除函数,其中删除函数delnode()中调用了查找函数,所以先介绍查找函数查找函数分按照编号查找和按时间查找,如

11、果按编号查找,由于链表是从头结点开始编号由小到大的,所以比较需要查找的数字与链表中结点的编号的大小,若需要查找的数字大于链表中结点编号则指针p往后移,直至找到结点,返回指针p。如果按照时间查找,则半段用户输入的时间这个字符串是否与链表结点中的时间字符串相等,若不等指针p还是往后移,直至查找到节点,返回p。Listnode *listfind(linklist head) /查找某节点Listnode *p;int num;char time30;int n; printf(tt1.按编号查询n); /两种查找方式printf(tt2.按时间查询n);printf(tt请选择:n);p=head

12、-next ; scanf(%d,&n);if(n=1&p!=NULL)printf(请输入要查找的编号:); scanf(%d,&num);while(p-next!=NULL& (p-data .num next ;if(p=NULL|(p-data .num data .time,time)!=0) /比较字符串是否相同p=p-next ;return p;而删除函数首先查找到需要出警的结点,从p指向的第一个结点开始,检查该结点中的num,或time值是否等于输入的要求删除的那个编号或时间。如果相等就将该结点删除,如不相等,就将p后移一个结点,再如此进行下去,直到遇到表尾为止。int d

13、elnode(linklist head,Listnode *g) Listnode *p,*q; p=listfind(head); /执行查找函数 if(p=NULL)printf(没有查找到该事件n);return 0; else q=head;/保存头结点while(q!=NULL&q-next=p)q-next =p-next ;*g=*p; free(p);return 1; 在case3中则调用输出函数,对储存出警情况的链表B进行输出。先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。重复执行此步聚直到p指针指向NULL为止。void printlist(linklist head) Listnode *p; p=head-next ; /将第一个节点赋给p if(p=NULL) printf(没有信息!nn); return; /返回空 printf(编号 时间 内容 n); while(p!=NULL) printf(%dt%st%sn,p-data.num,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号