实时监控报警系统—课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中北大学
课程设计报告
(实时监控报警系统)
学院:软件学院
专业:软件工程系
学生姓名:严云飞学号:0921010447 设计题目:实时监控报警系统
设计地点:软件学院机房
指导教师:尹四清薛海丽
目录
一、课程设计题目………………………………………………………
二、设计目的……………………………………………………………
三、需求分析…………………………………………………………
四、概要设计……………………………………………………………
五、详细设计……………………………………………………………
六、心得体会…………………………………………………………
一、课程设计题目:
实时监控报警系统
二、设计目的
数据结构是计算机专业的核心课程,是计算机科学的算法理论基础和软件设计的技术基础。它主要研究信息的逻辑结构及其基本操作在计算机中的表示和实现。
数据结构是实践性很强的课程。课程设计是加强学生实践能力的一个强有力手段。课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。
三、需求分析
1.程序设计任务:
建立一个报警和出警管理的系统。
2. 明确规定:
1. 采用一定的存储结构存储报警信息,要求有内容、时间;
2. 有一次的出警就应该在待处理的信息中删除这条信息;
3. 记录出警信息;
4. 待处理信息过多时会发出警告;
四、概要设计
1本程序中用到的抽象数据类型定义如下
ADT List {
数据对象:D={ai|ai∈ElemSet,i=1,2,....,n,n>=0}
数据关系:Rl={
基本操作;
IntList(&L)
操作结果:构造一个空的线性表L。
ListEmpty(L)
操作结果:若L为空表,则返回TRUE,否则返回FALSE。
ListInsert(&L,i,e)
操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1.
ListDelet(&L,i,&e)
操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1.
ListTraverse(L,visit())
操作结果:依次对L的每个数据元素调用函数visit(),一旦visit()失败,则操作失败。
}ADT list
其他抽象数据类型定义如下
typedef struct LNode
{
char * data;
struct LNode *next;
} LNode, *LinkList;
2函数间的调用关系:
首先定义用来存放报警信息的单链表,然后编写各个需要的基本操作函数,然后写出主函数。主函数与其他模块之间的调用关系是:主函数中先调用LinkList 和L InitList_L(L)函数创建存放报警信息的空链表。接着调用ListCreate_L(L,n)函数在空链表的基础上初始化报警信息,调用visit_L(L)函数显示所有报警信息。然后调用ListDelete_L(L,i,x) 函数来实现出警并显示出警信息和ListInsert_L(L,i,x)函数来对报警系统进行插入信息。
五、详细设计
源程序:#include "stdafx.h"
#include
#include
#include
#include
#define LIST_INIT_SIZE 20
#define OK 1
#define OVERFLOW -2
#define ERROR 0
typedef int Status;
/* 定义单链表*/
typedef struct LNode
{
char * data;
struct LNode *next;
} LNode, *LinkList;
int InitList_L(LinkList &L)
{
L=new LNode;
if(!L) exit(OVERFLOW);
L->next=NULL;
return OK;
}//InitList_L
void ListCreate_L(LinkList &L,int n) { //尾插法建立带头结点的单链表L
char * x;
LNode *p;
printf(" ");
for(int i=n;i>0;--i)
{
p=new LNode;
x=new char[20];
if(!p) exit(OVERFLOW);
scanf("%s",x);
{p->data=x;
p->next=L->next;
L->next=p;}
}
}//ListCreate_L
int ListInsert_L(LinkList &L, int i, char * e)
{ // 在带头结点的单链线性表L的第i个元素之前插入元素e LNode *p,*s;
int j=0;
p = L;
while ( p && j < i-1)
{
p = p->next;
++j;
}
if (!p || j > i-1) return 0;
s = new LNode;
s->data = e;
s->next = p->next;
p->next = s;
return 1;
}//ListInsert_L
int ListDelete_L(LinkList &L, int i,char e[])
{